288b517193
Commitf3a483a81b
added -std=c++11 to boost build if context is selected and gcc is at least 4.7 however it has the side effect that cc-tool fails to find boost_system with the following error if context and system is enabled with a gcc greater than 6: configure:16312: /home/dawncrow/buildroot-test/scripts/instance-0/output/host/bin/x86_64-linux-g++ -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/dawncrow/buildroot-test/scripts/instance-0/output/host/x86_64-buildroot-linux-musl/sysroot/usr/include -L/home/dawncrow/buildroot-test/scripts/instance-0/output/host/x86_64-buildroot-linux-musl/sysroot/usr/lib conftest.o -lboost_system -latomic >&5 conftest.o: In function `boost::system::error_category::std_category::equivalent(int, std::error_condition const&) const': conftest.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition[_ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition]+0x37): undefined reference to `boost::system::detail::generic_category_instance' This error is related to the fact that since boost 1.68 and commit7b6dcf6ac6
, boost system headers are now C++14 "by default" with gcc above 6: - https://github.com/boostorg/system/issues/24 - https://github.com/boostorg/system/issues/26 - https://lists.boost.org/Archives/boost/2018/08/242770.php So when building with gcc > 6, cc-tool thinks that boost has generic_category_instance but because boost was compiled with std=c++11, this function will not be in the library causing a link error Instead of "hacking" even more boost, just remove -std=c++11 from boost.mk and select BOOST_THREAD with gcc lower than 6 Fixes: - http://autobuild.buildroot.org/results/fc8f8a64751c751b2b66301967cc008509bbaa70 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Tested-by: Matt Weber <matthew.weber@rockwellcollins.com> Reviewed-by: Ferdinand van Aartsen <ferdinand@ombud.nl> Tested-by: Ferdinand van Aartsen <ferdinand@ombud.nl> Signed-off-by: Peter Korsgaard <peter@korsgaard.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_6
|
|
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
|