Commit 87dfeb10 authored by Thomas Petazzoni's avatar Thomas Petazzoni Committed by Peter Korsgaard
Browse files

boost: fix build problem by always building a threaded version

Boost normally allows to build a non-threaded variant by passing
threading=single or a multi-threaded variant by passing
threading=multi.

Unfortunately, the build of threading=single doesn't seem to work any
more, due to bizarre things in the build system. We get "duplicate
target" errors, that according to
http://lists.boost.org/boost-build/2012/11/26582.php should appear if
we ask for both threading=single,multi. But it seems to happen even in
the threading=single case.

Since Boost is such a big C++ beast, it probably doesn't make much
sense to try to support it on toolchains that don't have thread
support. So, we make the boost package depend on thread support. If
someone cares enough in getting Boost to work in a non-threaded
environment, then we can always revert back.

Note that the boost package has no reverse dependencies in Buildroot,
so we don't need to propagate this new dependency anywhere.

Fixes:

  http://autobuild.buildroot.org/results/439e72ac74c8058f30977e6abc39acd6379a17d3/build-end.log



Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
parent 2a786415
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
comment "boost requires a toolchain with C++ and large file support enabled"
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_LARGEFILE
comment "boost requires a toolchain with C++, large file and thread support enabled"
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_BOOST
	bool "boost"
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_LARGEFILE
	# Boost could theorically be built with threading=single, but
	# that unfortunately doesn't work. Until someone fixes that,
	# let's depend on threads.
	depends on BR2_TOOLCHAIN_HAS_THREADS
	select BR2_PACKAGE_BZIP2
	select BR2_PACKAGE_ZLIB
	help
@@ -14,12 +18,6 @@ config BR2_PACKAGE_BOOST

if BR2_PACKAGE_BOOST

config BR2_PACKAGE_BOOST_MULTITHREADED
	depends on BR2_TOOLCHAIN_HAS_THREADS
	bool "boost-multithreaded"
	help
	  Build the boost libraries as multithreaded

config BR2_PACKAGE_BOOST_CHRONO
	bool "boost-chrono"

@@ -76,7 +74,6 @@ config BR2_PACKAGE_BOOST_TEST
	bool "boost-test"

config BR2_PACKAGE_BOOST_THREAD
	depends on BR2_TOOLCHAIN_HAS_THREADS
	bool "boost-thread"

config BR2_PACKAGE_BOOST_TIMER
+2 −2
Original line number Diff line number Diff line
@@ -46,10 +46,10 @@ BOOST_FLAGS += --without-icu
endif

BOOST_OPT += toolset=gcc \
	     threading=multi \
	     variant=$(if $(BR2_ENABLE_DEBUG),debug,release) \
	     link=$(if $(BR2_PREFER_STATIC_LIB),static,shared) \
	     runtime-link=$(if $(BR2_PREFER_STATIC_LIB),static,shared) \
	     threading=$(if $(BR2_PACKAGE_BOOST_MULTITHREADED),multi,single)
	     runtime-link=$(if $(BR2_PREFER_STATIC_LIB),static,shared)

ifeq ($(BR2_PACKAGE_BOOST_LOCALE),y)
ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_CTNG_uClibc),y)