47d33e20da
This commit adds a patch to cc-tool that fixes the boost.m4 logic used to detect the linker rpath option so that it works properly with static linking and additional libraries passed in LIBS. This is the second step to fix static linking of cc-tool on architectures like SPARC that need to link against libatomic: http://autobuild.buildroot.net/results/ed9f2524d0ccef318ff1bc99e5dea980111de989/ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
45 lines
1.9 KiB
Diff
45 lines
1.9 KiB
Diff
From 5e74a15ce1e093b4d8e83cdade60a43b09d698de Mon Sep 17 00:00:00 2001
|
|
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
Date: Sun, 20 Aug 2017 15:25:06 +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 <thomas.petazzoni@free-electrons.com>
|
|
---
|
|
m4/boost.m4 | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/m4/boost.m4 b/m4/boost.m4
|
|
index be470a7..f1825ba 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],
|
|
--
|
|
2.9.4
|
|
|