[Buildroot] [PATCH 23/29 v2] package/boost: bump to version 1.87.0
Yann E. MORIN
yann.morin.1998 at free.fr
Wed Apr 9 20:03:38 UTC 2025
Add a slew of new libraries as reported by ./bootstrap --show-libraries.
Add a comment about how to maintain the list, and that they may not all
need to be exposed in the menuconfig.
There has been a few dependency changes. Those have been identified by
removing all selects, building Boost with exactly one option enabled,
identifying those that built without issue (thus were leaf options),
then adding dependencies to failing options, and so on iteratively,
until all options would build when selected on their own, and without a
select that was not already satisfied transitively (that's a limitation,
but hey...)
Some dependencies were dropped, and that has been confirned by
inspecting the corresponding upstream component. For example, contract
no longer needs system since upstream commit eedf51b2c675 (removed
linking to boost.system [...]) and available since boost 1.72.0 (so yes,
we've had superfluous dependencies for a while now, but it is extra
diffficult to detect).
In some cases, this implies a change in what symbol has to be ignored or
not:
- contract now selects nothing, so appears orphaned, so must be
ignored;
- exception is now selected by coroutine, so no longer appears
orphaned, so must not be ignored;
- timer now selects nothing, so appears orphaned, so must be ignored;
- url now select system, so it no longer appears orphaned, so must not
be ignored.
Drop the backported patch, it's been applied upstream since 1.84.0.
Signed-off-by: Yann E. MORIN <yann.morin.1998 at free.fr>
Cc: Michael Nosthoff <buildroot at heine.tech>
Cc: Yegor Yefremov <yegorslists at googlemail.com>
---
Changes v1 -> v2:
- rewrite the comment explaining how to maintain the list of Boost
libs
- fix URL ref for hash
---
.../0001-unordered-fix-copy-assign.patch | 22 -------
package/boost/Config.in | 34 +++++------
package/boost/boost.hash | 4 +-
package/boost/boost.mk | 61 ++++++++++++++++++-
4 files changed, 75 insertions(+), 46 deletions(-)
delete mode 100644 package/boost/0001-unordered-fix-copy-assign.patch
diff --git a/package/boost/0001-unordered-fix-copy-assign.patch b/package/boost/0001-unordered-fix-copy-assign.patch
deleted file mode 100644
index 670552535a..0000000000
--- a/package/boost/0001-unordered-fix-copy-assign.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Upstream Patch for Unordered
-
-Prevent erroneous copying of groups data, update max load to properly propagate
-
-Signed-off-by: Michael Nosthoff <buildroot at heine.tech>
-Upstream: https://github.com/boostorg/unordered/commit/067884a4e213352e7c81c441f1453c54735c39f3
-diff --git a/include/boost/unordered/detail/foa/core.hpp b/include/boost/unordered/detail/foa/core.hpp
-index 239d05d3..7ae9f2c8 100644
---- a/boost/unordered/detail/foa/core.hpp
-+++ b/boost/unordered/detail/foa/core.hpp
-@@ -1870,9 +1870,10 @@ private:
-
- void fast_copy_elements_from(const table_core& x)
- {
-- if(arrays.elements){
-+ if(arrays.elements&&x.arrays.elements){
- copy_elements_array_from(x);
- copy_groups_array_from(x);
-+ size_ctrl.ml=std::size_t(x.size_ctrl.ml);
- size_ctrl.size=std::size_t(x.size_ctrl.size);
- }
- }
diff --git a/package/boost/Config.in b/package/boost/Config.in
index 784c40278b..d1d1dc2423 100644
--- a/package/boost/Config.in
+++ b/package/boost/Config.in
@@ -65,11 +65,11 @@ config BR2_PACKAGE_BOOST_CONTEXT
comment "boost-context needs a toolchain w/ C++11, gcc>=4.8"
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+# check-symbol ignore
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++.
@@ -82,10 +82,9 @@ config BR2_PACKAGE_BOOST_COROUTINE
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # boost-context
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_EXCEPTION
select BR2_PACKAGE_BOOST_SYSTEM
- select BR2_PACKAGE_BOOST_THREAD
help
deprecated coroutine library, the non-deprecated coroutine2
library is a header-only library and does not need to be
@@ -105,7 +104,6 @@ config BR2_PACKAGE_BOOST_DATE_TIME
A set of date-time libraries based on generic programming
concepts.
-# check-symbol ignore
config BR2_PACKAGE_BOOST_EXCEPTION
bool "boost-exception"
help
@@ -125,7 +123,6 @@ config BR2_PACKAGE_BOOST_FIBER
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
select BR2_PACKAGE_BOOST_CONTEXT
select BR2_PACKAGE_BOOST_FILESYSTEM
- select BR2_PACKAGE_BOOST_SYSTEM
help
C++11 userland threads library.
@@ -149,7 +146,6 @@ config BR2_PACKAGE_BOOST_FILESYSTEM
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).
@@ -165,6 +161,8 @@ config BR2_PACKAGE_BOOST_IOSTREAMS
bool "boost-iostreams"
select BR2_PACKAGE_BZIP2
select BR2_PACKAGE_ZLIB
+ select BR2_PACKAGE_BOOST_RANDOM
+ select BR2_PACKAGE_BOOST_REGEX
help
Boost.IOStreams provides a framework for defining streams,
stream buffers and i/o filters.
@@ -172,6 +170,7 @@ config BR2_PACKAGE_BOOST_IOSTREAMS
config BR2_PACKAGE_BOOST_JSON
bool "boost-json"
select BR2_PACKAGE_BOOST_CONTAINER
+ select BR2_PACKAGE_BOOST_SYSTEM
help
Boost.JSON is a portable C++ library which provides containers
and algorithms that implement JavaScript Object Notation, or
@@ -193,7 +192,6 @@ config BR2_PACKAGE_BOOST_LOCALE
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
@@ -214,11 +212,7 @@ config BR2_PACKAGE_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.
@@ -233,6 +227,8 @@ comment "boost-log needs a toolchain not affected by GCC bug 64735"
config BR2_PACKAGE_BOOST_MATH
bool "boost-math"
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # C++14
+ select BR2_PACKAGE_BOOST_CONTAINER
+ select BR2_PACKAGE_BOOST_RANDOM
help
Boost.Math includes several contributions in the domain of
mathematics:
@@ -282,6 +278,8 @@ config BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
config BR2_PACKAGE_BOOST_PYTHON
bool "boost-python"
depends on BR2_PACKAGE_PYTHON3
+ select BR2_PACKAGE_BOOST_CONTAINER
+ select BR2_PACKAGE_BOOST_GRAPH
help
The Boost Python Library is a framework for interfacing Python
and C++. It allows you to quickly and seamlessly expose C++
@@ -324,8 +322,6 @@ config BR2_PACKAGE_BOOST_SYSTEM
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.
@@ -334,18 +330,16 @@ 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
+ select BR2_PACKAGE_BOOST_CHRONO # For dependents only
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
+# check-symbol ignore
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.
@@ -361,9 +355,9 @@ config BR2_PACKAGE_BOOST_TYPE_ERASURE
comment "boost-type_erasure needs a toolchain not affected by GCC bug 64735"
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
-# check-symbol ignore
config BR2_PACKAGE_BOOST_URL
bool "boost-url"
+ select BR2_PACKAGE_BOOST_SYSTEM
help
Boost.URL is a portable C++ library which provides containers
and algorithms which model a "URL," more formally described
@@ -382,9 +376,9 @@ config BR2_PACKAGE_BOOST_WAVE
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_CONTAINER
select BR2_PACKAGE_BOOST_FILESYSTEM
- select BR2_PACKAGE_BOOST_SYSTEM
+ select BR2_PACKAGE_BOOST_SERIALIZATION
select BR2_PACKAGE_BOOST_THREAD
help
The Boost.Wave library is a Standards conformant, and highly
diff --git a/package/boost/boost.hash b/package/boost/boost.hash
index 14403758ac..2a76244a2e 100644
--- a/package/boost/boost.hash
+++ b/package/boost/boost.hash
@@ -1,5 +1,5 @@
-# From https://www.boost.org/users/history/version_1_83_0.html
-sha256 6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e boost_1_83_0.tar.bz2
+# From https://www.boost.org/users/history/version_1_87_0.html
+sha256 af57be25cb4c4f4b413ed692fe378affb4352ea50fbe294a11ef548f4d527d89 boost_1_87_0.tar.bz2
# Locally computed
sha256 c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 LICENSE_1_0.txt
diff --git a/package/boost/boost.mk b/package/boost/boost.mk
index 6847ea5cfe..41a9b15ab3 100644
--- a/package/boost/boost.mk
+++ b/package/boost/boost.mk
@@ -4,7 +4,7 @@
#
################################################################################
-BOOST_VERSION = 1.83.0
+BOOST_VERSION = 1.87.0
BOOST_SOURCE = boost_$(subst .,_,$(BOOST_VERSION)).tar.bz2
BOOST_SITE = https://archives.boost.io/release/$(BOOST_VERSION)/source
BOOST_INSTALL_STAGING = YES
@@ -21,39 +21,96 @@ BOOST_CPE_ID_VENDOR = boost
# but no longer present in the newer Boost version, or libraries missing in
# this list but present in that nwewer version.
BOOST_ALL_LIBS = \
+ any \
+ asio \
+ assert \
atomic \
+ beast \
+ bimap \
+ bind \
+ charconv \
chrono \
+ cobalt \
+ compat \
container \
+ container_hash \
context \
contract \
+ conversion \
+ core \
coroutine \
+ coroutine2 \
+ crc \
date_time \
+ describe \
+ detail \
+ dll \
+ endian \
exception \
fiber \
filesystem \
+ flyweight \
+ function \
+ function_types \
+ geometry \
graph \
graph_parallel \
+ hana \
headers \
+ heap \
+ integer \
+ interprocess \
+ intrusive \
iostreams \
+ iterator \
json \
+ lambda2 \
+ lexical_cast \
locale \
+ lockfree \
log \
math \
+ move \
+ mp11 \
mpi \
+ msm \
+ multi_index \
+ mysql \
nowide \
+ optional \
+ outcome \
+ parameter \
+ pfr \
+ poly_collection \
+ predef \
+ process \
program_options \
python \
random \
+ ratio \
+ redis \
regex \
+ scope \
serialization \
+ signals2 \
+ smart_ptr \
stacktrace \
+ stl_interfaces \
system \
test \
thread \
+ throw_exception \
timer \
+ tuple \
type_erasure \
+ type_index \
+ unordered \
url \
- wave
+ uuid \
+ variant \
+ variant2 \
+ wave \
+ winapi
BOOST_TARGET_CXXFLAGS = $(TARGET_CXXFLAGS)
--
2.47.0
More information about the buildroot
mailing list