diff --git a/debian/patches/981652-ftcbfs-objdump.patch b/debian/patches/981652-ftcbfs-objdump.patch new file mode 100644 index 0000000000000000000000000000000000000000..4001b4864fa630fe03747c83d2104fa7f6929d09 --- /dev/null +++ b/debian/patches/981652-ftcbfs-objdump.patch @@ -0,0 +1,57 @@ +Forwarded: https://github.com/codership/galera/issues/558#issuecomment-773088996 +Author: Helmut Grohne +Description: galera-4 fails to cross build from source, because it runs the build + architecture objdump on a host architecture ELF object. This is due to + hard coding the build architecture objdump in galera/src/CMakeLists.txt. + The solution here is to use ${CMAKE_OBJDUMP}, which refers to the + correctly detected objdump for the host architecture. Beyond this, it + also uses ldd, which is bound to fail during cross compilation. Almost + the same effect can be achieved with objdump -x though, so I propose + using it here as well. Please consider applying the attached patch as it + makes galera-4 cross buildable. + +--- a/galera/src/CMakeLists.txt ++++ b/galera/src/CMakeLists.txt +@@ -116,14 +116,14 @@ if (GALERA_VERSION_SCRIPT) + -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/galera-sym.map) + add_custom_command(TARGET galera_smm POST_BUILD + COMMAND +- sh -c "! objdump -T ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep asio 1> /dev/null" ++ sh -c "! ${CMAKE_OBJDUMP} -T ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep asio 1> /dev/null" + COMMENT "Checking library symbol visibility (hidden)" + VERBATIM) + else() + set(GALERA_LINK_OPTIONS "") + add_custom_command(TARGET galera_smm POST_BUILD + COMMAND +- sh -c "objdump -T ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep asio 1> /dev/null" ++ sh -c "${CMAKE_OBJDUMP} -T ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep asio 1> /dev/null" + COMMENT "Checking library symbol visibility (not hidden)" + VERBATIM) + endif() +@@ -132,7 +132,7 @@ if (NOT GALERA_WITH_SSL) + message(STATUS "Building Galera without SSL") + add_custom_command(TARGET galera_smm POST_BUILD + COMMAND +- sh -c "! (ldd ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep crypto 1> /dev/null) && ! (ldd ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep ssl 1> /dev/null)" ++ sh -c "! (${CMAKE_OBJDUMP} -x ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep NEEDED.*crypto 1> /dev/null) && ! (${CMAKE_OBJDUMP} -x ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep NEEDED.*ssl 1> /dev/null)" + COMMENT "Verifying that library is not linked with SSL" + VERBATIM) + else() +@@ -140,14 +140,14 @@ else() + message(STATUS "Building Galera with static SSL") + add_custom_command(TARGET galera_smm POST_BUILD + COMMAND +- sh -c "(objdump -t ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep OPENSSL 1> /dev/null) && (objdump -t ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep CRYPTO 1> /dev/null)" ++ sh -c "(${CMAKE_OBJDUMP} -t ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep OPENSSL 1> /dev/null) && (${CMAKE_OBJDUMP} -t ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep CRYPTO 1> /dev/null)" + COMMENT "Verifying that library has OpenSSL linked statically" + VERBATIM) + else() + message(STATUS "Building Galera with SSL") + add_custom_command(TARGET galera_smm POST_BUILD + COMMAND +- sh -c "(ldd ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep crypto 1> /dev/null) && (ldd ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep ssl 1> /dev/null)" ++ sh -c "(${CMAKE_OBJDUMP} -x ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep NEEDED.*crypto 1> /dev/null) && (${CMAKE_OBJDUMP} -x ${CMAKE_BINARY_DIR}/libgalera_smm.so | grep NEEDED.*ssl 1> /dev/null)" + COMMENT "Verifying that library is linked with SSL" + VERBATIM) + endif() diff --git a/debian/patches/series b/debian/patches/series index 76c4aae6b8ed610636f201017878522960baf9e1..004ebf4da3756bef64cabc233c618a5b88eeb5ba 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1,2 @@ salsa-ci-i386-builds.patch +981652-ftcbfs-objdump.patch