[Buildroot] [PATCH 1/1] boost: fix static detection of lock-free atomic ints
Arnout Vandecappelle
arnout at mind.be
Tue Sep 4 21:39:52 UTC 2018
Hi Fabrice,
On 04/09/2018 21:27, Fabrice Fontaine wrote:
> Fixes:
> - http://autobuild.buildroot.net/results/bfc004ba10b50d4294be5ccd0abef7c00ed074d5
>
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> ---
> package/boost/boost.mk | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/package/boost/boost.mk b/package/boost/boost.mk
> index b2605a70b7..fe986edb00 100644
> --- a/package/boost/boost.mk
> +++ b/package/boost/boost.mk
> @@ -106,6 +106,16 @@ endif
> # variants. Override that if we want static only or shared only.
> ifeq ($(BR2_STATIC_LIBS),y)
Ahem, the autobuild failure you refer to actually has BR2_SHARED_LIBS=y, so how
can this fix the issue?
Looking at the failing command (from your commit log):
"/home/fabrice/buildroot/output/host/bin/arm-linux-g++" -o
"bin.v2/libs/system/build/gcc-6.4.0/debug/threading-multi/libboost_system.so.1.67.0"
-Wl,-h -Wl,libboost_system.so.1.67.0 -shared -Wl,--start-group
"bin.v2/libs/system/build/gcc-6.4.0/debug/threading-multi/error_code.o"
-Wl,-Bstatic -Wl,-Bdynamic -lrt -Wl,--end-group -fPIC -pthread -g -Wl,-elf2flt
-static
It's doing a link without TARGET_LDFLAGS, and TARGET_LDFLAGS contains the
-mid-shared-library -mshared-library-id=0 that is needed to link a shared
library on FLT.
And it makes sense that TARGET_LDFLAGS are not used, because we only pass that
*after* bootstrap.sh (I assume this stuff is evaluated by bootstrap.sh, and not
when running bjam itself?) Or, if it is evaluated by bjam, somehow bjam is
ignoring the linkflags we pass in user-config.jam.
> BOOST_OPTS += link=static runtime-link=static
> +
> +# When detecting features such as lockfree atomic ints, boost does not take into
> +# account the configuration provided by the user. Indeed, boost does not specify
> +# any value and as a result the default value (shared) is used
> +define BOOST_FIX_STATIC_FEATURES_DETECTION
> +$(SED) 's/has_atomic_flag_lockfree_test.cpp/has_atomic_flag_lockfree_test.cpp : <link>static <runtime-link>static/g;' \
> + $(@D)/libs/thread/build/Jamfile.v2
If such a change is needed for has_atomic_flag_lockfree, isn't it also needed
for the other build-time tests? has_iconv, has_icu, native_syslog, ...
Since I believe this patch cannot work, I've marked it as Changes Requested.
Regards,
Arnout
> +endef
> +
> +BOOST_PRE_CONFIGURE_HOOKS += BOOST_FIX_STATIC_FEATURES_DETECTION
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
More information about the buildroot
mailing list