1c667a1140
Add boost context support for aarch64/aarch64_be. Context support for ARM is only available in the AAPCS ABI, so switch to AAPCS ABI for all ARM variants. While we're at it, update the URL about the context architecture support to the one corresponding to the current version of boost. Signed-off-by: Pieter De Gendt <pieter.degendt@gmail.com> [Arnout: update URL, extend commit message] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
399 lines
13 KiB
Plaintext
399 lines
13 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"
|
|
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
|
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_78_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_aarch64 || BR2_aarch64_be)
|
|
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_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
|
|
|| BR2_TOOLCHAIN_GCC_AT_LEAST_6 # boost-thread
|
|
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_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
|
|
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context, boost-thread
|
|
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_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
|
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_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-filesystem
|
|
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context
|
|
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_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
|
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
|
|
|
comment "boost-fiber needs a toolchain not affected by GCC bug 64735"
|
|
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
|
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
|
|
|| BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
|
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
|
|
|
config BR2_PACKAGE_BOOST_FILESYSTEM
|
|
bool "boost-filesystem"
|
|
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
|
|
select BR2_PACKAGE_BOOST_ATOMIC
|
|
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_JSON
|
|
bool "boost-json"
|
|
select BR2_PACKAGE_BOOST_CONTAINER
|
|
help
|
|
Boost.JSON is a portable C++ library which provides containers
|
|
and algorithms that implement JavaScript Object Notation, or
|
|
simply "JSON", a lightweight data-interchange format.
|
|
|
|
To use the library "header-only" this option is not needed.
|
|
|
|
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)
|
|
depends on !(BR2_TOOLCHAIN_HAS_GCC_BUG_64735 && BR2_PACKAGE_ICU) # boost-thread
|
|
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
|
|
|| !BR2_PACKAGE_ICU # boost-thread
|
|
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_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
|
depends on BR2_PACKAGE_ICU
|
|
depends on BR2_STATIC_LIBS
|
|
|
|
comment "boost-locale needs a toolchain not affected by GCC bug 64735"
|
|
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
|
depends on BR2_PACKAGE_ICU
|
|
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
|
|
|
config BR2_PACKAGE_BOOST_LOG
|
|
bool "boost-log"
|
|
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
|
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
|
|
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
|
|
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_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
|
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
|
|
|
comment "boost-log needs a toolchain not affected by GCC bug 64735"
|
|
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
|
|
|
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_NOWIDE
|
|
bool "boost-nowide"
|
|
help
|
|
Library for cross-platform, unicode aware 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_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"
|
|
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
|
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::current_exception
|
|
select BR2_PACKAGE_BOOST_CHRONO
|
|
select BR2_PACKAGE_BOOST_SYSTEM
|
|
help
|
|
Portable C++ multi-threading. C++11, C++14.
|
|
|
|
comment "boost-thread needs a toolchain not affected by GCC bug 64735"
|
|
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
|
|
|
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"
|
|
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
|
|
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
|
|
select BR2_PACKAGE_BOOST_SYSTEM
|
|
select BR2_PACKAGE_BOOST_THREAD
|
|
help
|
|
Runtime polymorphism based on concepts.
|
|
|
|
comment "boost-type_erasure needs a toolchain not affected by GCC bug 64735"
|
|
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
|
|
|
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
|
|
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
|
|
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
|
|
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.
|
|
|
|
comment "boost-wave needs a toolchain not affected by GCC bug 64735"
|
|
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
|
|
|
endif
|