f3a483a81b
Without std=c++11, mutex is not always correctly detected with gcc 4.7, 4.8 or even 5.x. As a result, boost_thread is wrongly selected by boost_context. mutex is available on gcc 4.7.x, the issue is that boost does not correctly detect it because -std=c++11 was missing. Keep thread select for gcc version lower or equal to 4.6. mutex is available since gcc 4.4 (with std=c++0x) but common buildroot practice for C++11 packages is to have a dependency on gcc 4.7, 4.8 or 4.9 depending on the requested C++11 features. Fixes: - http://autobuild.buildroot.net/results/fb046c04fe18bec973d120e4ab33971f32ba5769 - http://autobuild.buildroot.net/results/99f1a255b78a973faeb8bf3b94d78efc54426a8b Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
349 lines
10 KiB
Plaintext
349 lines
10 KiB
Plaintext
comment "boost needs a toolchain w/ C++, threads, wchar"
|
|
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
|
|
|
|
config BR2_PACKAGE_BOOST
|
|
bool "boost"
|
|
depends on BR2_INSTALL_LIBSTDCPP
|
|
# 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
|
|
depends on BR2_USE_WCHAR
|
|
help
|
|
A general purpose C++ library
|
|
|
|
http://www.boost.org/
|
|
|
|
if BR2_PACKAGE_BOOST
|
|
|
|
choice
|
|
prompt "Layout"
|
|
default BR2_PACKAGE_BOOST_LAYOUT_SYSTEM
|
|
help
|
|
Selects the layout of Boost binary names
|
|
|
|
config BR2_PACKAGE_BOOST_LAYOUT_SYSTEM
|
|
bool "system"
|
|
help
|
|
Boost binary names do not include the Boost version number
|
|
or the name and version number of the compiler.
|
|
|
|
config BR2_PACKAGE_BOOST_LAYOUT_TAGGED
|
|
bool "tagged"
|
|
help
|
|
Boost binary names include the encoded build properties such
|
|
as variant and threading, but do not include compiler name
|
|
and version, or Boost version. This option is useful if you
|
|
build several variants of Boost, using the same compiler.
|
|
|
|
config BR2_PACKAGE_BOOST_LAYOUT_VERSIONED
|
|
bool "versioned"
|
|
help
|
|
Boost binary names include the Boost version number, name
|
|
and version of the compiler and encoded build properties.
|
|
|
|
endchoice
|
|
|
|
config BR2_PACKAGE_BOOST_LAYOUT
|
|
string
|
|
default "system" if BR2_PACKAGE_BOOST_LAYOUT_SYSTEM
|
|
default "tagged" if BR2_PACKAGE_BOOST_LAYOUT_TAGGED
|
|
default "versioned" if BR2_PACKAGE_BOOST_LAYOUT_VERSIONED
|
|
|
|
config BR2_PACKAGE_BOOST_ATOMIC
|
|
bool "boost-atomic"
|
|
help
|
|
C++11-style atomic<>.
|
|
|
|
config BR2_PACKAGE_BOOST_CHRONO
|
|
bool "boost-chrono"
|
|
select BR2_PACKAGE_BOOST_SYSTEM
|
|
help
|
|
Useful time utilities. C++11.
|
|
|
|
config BR2_PACKAGE_BOOST_CONTAINER
|
|
bool "boost-container"
|
|
help
|
|
Standard library containers and extensions.
|
|
|
|
# see
|
|
# http://www.boost.org/doc/libs/1_59_0/libs/context/doc/html/context/architectures.html
|
|
# for the list of supported architectures. Sparc pretends to be
|
|
# supported, but it doesn't build.
|
|
config BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
|
bool
|
|
default y if ((BR2_arm || BR2_armeb) && BR2_ARM_CPU_HAS_ARM)
|
|
default y if BR2_i386
|
|
default y if BR2_mips
|
|
default y if BR2_mipsel
|
|
default y if BR2_powerpc
|
|
default y if BR2_x86_64
|
|
|
|
config BR2_PACKAGE_BOOST_CONTEXT
|
|
bool "boost-context"
|
|
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
|
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
|
select BR2_PACKAGE_BOOST_THREAD if !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
|
|
help
|
|
C++11 context switching library.
|
|
|
|
config BR2_PACKAGE_BOOST_CONTRACT
|
|
bool "boost-contract"
|
|
# pthread_condattr_setclock
|
|
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
|
select BR2_PACKAGE_BOOST_SYSTEM
|
|
help
|
|
Contract programming for C++.
|
|
|
|
comment "boost-contract needs a toolchain w/ NPTL"
|
|
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
|
|
|
config BR2_PACKAGE_BOOST_COROUTINE
|
|
bool "boost-coroutine"
|
|
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
|
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context
|
|
select BR2_PACKAGE_BOOST_CHRONO
|
|
select BR2_PACKAGE_BOOST_CONTEXT
|
|
select BR2_PACKAGE_BOOST_SYSTEM
|
|
select BR2_PACKAGE_BOOST_THREAD
|
|
help
|
|
deprecated coroutine library, the non-depricated coroutine2
|
|
library is a header-only library and does not need to be
|
|
selected.
|
|
|
|
comment "boost-coroutine needs a toolchain not affected by GCC bug 64735"
|
|
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
|
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
|
|
|
config BR2_PACKAGE_BOOST_DATE_TIME
|
|
bool "boost-date_time"
|
|
help
|
|
A set of date-time libraries based on generic programming
|
|
concepts.
|
|
|
|
config BR2_PACKAGE_BOOST_EXCEPTION
|
|
bool "boost-exception"
|
|
help
|
|
The Boost Exception library supports transporting of arbitrary
|
|
data in exception objects, and transporting of exceptions
|
|
between threads.
|
|
|
|
config BR2_PACKAGE_BOOST_FIBER
|
|
bool "boost-fiber"
|
|
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
|
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
|
# mips support uses the "pause" instruction, only available
|
|
# since mips32r2/mips64r2.
|
|
depends on !BR2_MIPS_CPU_MIPS32 && !BR2_MIPS_CPU_MIPS64
|
|
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context
|
|
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_85180
|
|
select BR2_PACKAGE_BOOST_CONTEXT
|
|
select BR2_PACKAGE_BOOST_FILESYSTEM
|
|
select BR2_PACKAGE_BOOST_SYSTEM
|
|
help
|
|
C++11 userland threads library.
|
|
|
|
comment "boost-fiber needs a toolchain w/ NPTL"
|
|
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
|
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
|
|
|
comment "boost-fiber needs a toolchain not affected by GCC bug 64735, 85180"
|
|
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
|
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 || BR2_TOOLCHAIN_HAS_GCC_BUG_85180
|
|
|
|
config BR2_PACKAGE_BOOST_FILESYSTEM
|
|
bool "boost-filesystem"
|
|
select BR2_PACKAGE_BOOST_SYSTEM
|
|
help
|
|
The Boost Filesystem Library provides portable facilities to
|
|
query and manipulate paths, files, and directories.
|
|
|
|
config BR2_PACKAGE_BOOST_GRAPH
|
|
bool "boost-graph"
|
|
select BR2_PACKAGE_BOOST_REGEX
|
|
help
|
|
The BGL graph interface and graph components are generic, in
|
|
the same sense as the the Standard Template Library (STL).
|
|
|
|
config BR2_PACKAGE_BOOST_GRAPH_PARALLEL
|
|
bool "boost-graph_parallel"
|
|
help
|
|
The PBGL graph interface and graph components are generic, in
|
|
the same sense as the the Standard Template Library (STL).
|
|
|
|
config BR2_PACKAGE_BOOST_IOSTREAMS
|
|
bool "boost-iostreams"
|
|
select BR2_PACKAGE_BZIP2
|
|
select BR2_PACKAGE_ZLIB
|
|
help
|
|
Boost.IOStreams provides a framework for defining streams,
|
|
stream buffers and i/o filters.
|
|
|
|
config BR2_PACKAGE_BOOST_LOCALE
|
|
bool "boost-locale"
|
|
# When boost-locale is enabled with icu support, Boost no
|
|
# longer supports building the libboost_* libraries as static
|
|
# libraries, causing build failures when other boost features
|
|
# than boost-locale are enabled. To work around this, we
|
|
# prevent using boost-locale on static linking configurations
|
|
# with icu enabled. See
|
|
# https://svn.boost.org/trac/boost/ticket/9685 for more
|
|
# details.
|
|
depends on !(BR2_STATIC_LIBS && BR2_PACKAGE_ICU)
|
|
select BR2_PACKAGE_BOOST_SYSTEM
|
|
select BR2_PACKAGE_BOOST_THREAD if BR2_PACKAGE_ICU
|
|
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
|
|
help
|
|
Provide localization and Unicode handling tools for C++.
|
|
|
|
comment "boost-locale needs a toolchain w/ dynamic library"
|
|
depends on BR2_PACKAGE_ICU
|
|
depends on BR2_STATIC_LIBS
|
|
|
|
config BR2_PACKAGE_BOOST_LOG
|
|
bool "boost-log"
|
|
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
|
select BR2_PACKAGE_BOOST_ATOMIC
|
|
select BR2_PACKAGE_BOOST_DATE_TIME
|
|
select BR2_PACKAGE_BOOST_FILESYSTEM
|
|
select BR2_PACKAGE_BOOST_REGEX
|
|
select BR2_PACKAGE_BOOST_SYSTEM
|
|
select BR2_PACKAGE_BOOST_THREAD
|
|
help
|
|
Logging library.
|
|
|
|
comment "boost-log needs a toolchain w/ NPTL"
|
|
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
|
|
|
config BR2_PACKAGE_BOOST_MATH
|
|
bool "boost-math"
|
|
help
|
|
Boost.Math includes several contributions in the domain of
|
|
mathematics:
|
|
|
|
The Greatest Common Divisor and Least Common
|
|
Multiple library provides run-time and compile-time evaluation
|
|
of the greatest common divisor (GCD) or least common multiple
|
|
(LCM) of two integers.
|
|
|
|
The Special Functions library currently provides eight
|
|
templated special functions, in namespace boost.
|
|
|
|
The Complex Number Inverse Trigonometric Functions are the
|
|
inverses of trigonometric functions currently present in the
|
|
C++ standard.
|
|
|
|
Quaternions are a relative of complex numbers often used to
|
|
parameterise rotations in three dimentional space.
|
|
|
|
Octonions, like quaternions, are a relative of complex
|
|
numbers.
|
|
|
|
config BR2_PACKAGE_BOOST_MPI
|
|
bool "boost-mpi"
|
|
help
|
|
Message Passing Interface library, for use in
|
|
distributed-memory parallel application programming.
|
|
|
|
config BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
|
|
bool "boost-program_options"
|
|
help
|
|
The program_options library allows program developers to
|
|
obtain program options, that is (name, value) pairs from the
|
|
user, via conventional methods such as command line and config
|
|
file.
|
|
|
|
config BR2_PACKAGE_BOOST_PYTHON
|
|
bool "boost-python"
|
|
depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3
|
|
help
|
|
The Boost Python Library is a framework for interfacing Python
|
|
and C++. It allows you to quickly and seamlessly expose C++
|
|
classes functions and objects to Python, and vice-versa,
|
|
using no special tools -- just your C++ compiler.
|
|
|
|
config BR2_PACKAGE_BOOST_RANDOM
|
|
bool "boost-random"
|
|
select BR2_PACKAGE_BOOST_SYSTEM
|
|
help
|
|
A complete system for random number generation.
|
|
|
|
config BR2_PACKAGE_BOOST_REGEX
|
|
bool "boost-regex"
|
|
help
|
|
A new infrastructure for generic algorithms that builds on top
|
|
of the new iterator concepts.
|
|
|
|
config BR2_PACKAGE_BOOST_SERIALIZATION
|
|
bool "boost-serialization"
|
|
help
|
|
Serialization for persistence and marshalling.
|
|
|
|
config BR2_PACKAGE_BOOST_SIGNALS
|
|
bool "boost-signals"
|
|
help
|
|
Managed signals & slots callback implementation.
|
|
|
|
config BR2_PACKAGE_BOOST_STACKTRACE
|
|
bool "boost-stacktrace"
|
|
depends on !BR2_STATIC_LIBS
|
|
help
|
|
Gather, store, copy and print backtraces.
|
|
|
|
comment "boost-stacktrace needs a toolchain w/ dynamic library"
|
|
depends on BR2_STATIC_LIBS
|
|
|
|
config BR2_PACKAGE_BOOST_SYSTEM
|
|
bool "boost-system"
|
|
help
|
|
Operating system support, including the diagnostics support
|
|
that will be part of the C++0x standard library.
|
|
|
|
config BR2_PACKAGE_BOOST_TEST
|
|
bool "boost-test"
|
|
depends on BR2_USE_MMU # fork()
|
|
select BR2_PACKAGE_BOOST_SYSTEM
|
|
select BR2_PACKAGE_BOOST_TIMER
|
|
help
|
|
Support for simple program testing, full unit testing, and for
|
|
program execution monitoring.
|
|
|
|
config BR2_PACKAGE_BOOST_THREAD
|
|
bool "boost-thread"
|
|
select BR2_PACKAGE_BOOST_ATOMIC if !BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
|
select BR2_PACKAGE_BOOST_CHRONO
|
|
select BR2_PACKAGE_BOOST_SYSTEM
|
|
help
|
|
Portable C++ multi-threading. C++11, C++14.
|
|
|
|
config BR2_PACKAGE_BOOST_TIMER
|
|
bool "boost-timer"
|
|
select BR2_PACKAGE_BOOST_CHRONO
|
|
select BR2_PACKAGE_BOOST_SYSTEM
|
|
help
|
|
Event timer, progress timer, and progress display classes.
|
|
|
|
config BR2_PACKAGE_BOOST_TYPE_ERASURE
|
|
bool "boost-type_erasure"
|
|
select BR2_PACKAGE_BOOST_SYSTEM
|
|
select BR2_PACKAGE_BOOST_THREAD
|
|
help
|
|
Runtime polymorphism based on concepts.
|
|
|
|
config BR2_PACKAGE_BOOST_WAVE
|
|
bool "boost-wave"
|
|
# limitation of assembler for coldfire
|
|
# error: Tried to convert PC relative branch to absolute jump
|
|
depends on !BR2_m68k_cf
|
|
select BR2_PACKAGE_BOOST_DATE_TIME
|
|
select BR2_PACKAGE_BOOST_FILESYSTEM
|
|
select BR2_PACKAGE_BOOST_SYSTEM
|
|
select BR2_PACKAGE_BOOST_THREAD
|
|
help
|
|
The Boost.Wave library is a Standards conformant, and highly
|
|
configurable implementation of the mandated C99/C++
|
|
preprocessor functionality packed behind an easy to use
|
|
iterator interface.
|
|
|
|
endif
|