From 6c46456b18614995ef7915d6c41e98f876298b8b Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 29 Jul 2020 21:49:20 +0200 Subject: [PATCH] m4/boost.m4: fix rpath option check for static linking When statically linking, the order in which -l options are passed is important. The contents of the LIBS option passed to the configure environment should be passed *after* other -l options used internally by the package. For example, libboost_program_options may used symbols from the libatomic library, and in this case, one need to pass LIBS="-latomic" to cc-tool's configure script. When using dynamic linking, this works fine, because the rpath test does "-latomic -lboost_program_options". However, when statically linking, this doesn't work because libboost_program_options uses symbols from libatomic, so -latomic must be passed *after* -lboost_program_options. Therefore, this commit inverts the list of variables used to construct LIBS before doing the _BOOST_AC_LINK_IFELSE() test detecting the rpath option to be used. Indeed, $boost_save_LIBS contains the previously saved LIBS variable, and should be passed after $Boost_lib_LIBS. Signed-off-by: Thomas Petazzoni [Retrieved from: https://git.buildroot.net/buildroot/tree/package/cc-tool/0004-m4-boost.m4-fix-rpath-option-check-for-static-linkin.patch] Signed-off-by: Fabrice Fontaine --- m4/boost.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/m4/boost.m4 b/m4/boost.m4 index 7a92981..a667137 100644 --- a/m4/boost.m4 +++ b/m4/boost.m4 @@ -479,7 +479,7 @@ dnl generated only once above (before we start the for loops). *) for boost_cv_rpath_link_ldflag in -Wl,-R, -Wl,-rpath,; do LDFLAGS="$boost_save_LDFLAGS -L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" - LIBS="$boost_save_LIBS $Boost_lib_LIBS" + LIBS="$Boost_lib_LIBS $boost_save_LIBS" _BOOST_AC_LINK_IFELSE([], [boost_rpath_link_ldflag_found=yes break],