package/boost: bump version to 1.77.0
PATCH 1/1 package/boost: bump version to 1.77.0
* drop 0001-fenv.patch, issue [0] was marked fixed since boost 1.64 (commit [1])
* drop upstreamed patch 0002
* filesystem now depends on boost-atomic
* math broke the build without atomic ints, disable for now. reported at [2].
[0] https://svn.boost.org/trac/boost/ticket/11756
[1] https://github.com/boostorg/test/commit/cb2a1c2488dc77b9baf1b05781208a9639dfcd69
[2] https://github.com/boostorg/math/issues/673
---
compile-tested with these defconfigs:
BR2_arm=y
BR2_cortex_a15=y
BR2_ARM_FPU_NEON=y
BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_UCLIBC_BLEEDING_EDGE=y BR2_PACKAGE_BOOST=y
BR2_PACKAGE_BOOST_CONTRACT=y BR2_PACKAGE_BOOST_COROUTINE=y BR2_PACKAGE_BOOST_EXCEPTION=y
BR2_PACKAGE_BOOST_FIBER=y
BR2_PACKAGE_BOOST_GRAPH=y BR2_PACKAGE_BOOST_GRAPH_PARALLEL=y BR2_PACKAGE_BOOST_IOSTREAMS=y
BR2_PACKAGE_BOOST_JSON=y
BR2_PACKAGE_BOOST_LOCALE=y
BR2_PACKAGE_BOOST_LOG=y
BR2_PACKAGE_BOOST_MATH=y
BR2_PACKAGE_BOOST_MPI=y
BR2_PACKAGE_BOOST_NOWIDE=y BR2_PACKAGE_BOOST_PROGRAM_OPTIONS=y BR2_PACKAGE_BOOST_RANDOM=y BR2_PACKAGE_BOOST_SERIALIZATION=y BR2_PACKAGE_BOOST_STACKTRACE=y
BR2_PACKAGE_BOOST_TEST=y BR2_PACKAGE_BOOST_TYPE_ERASURE=y BR2_PACKAGE_BOOST_WAVE=y
BR2_nios2=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
BR2_PACKAGE_BOOST=y
BR2_PACKAGE_BOOST_CONTRACT=y
BR2_PACKAGE_BOOST_DATE_TIME=y
BR2_PACKAGE_BOOST_EXCEPTION=y
BR2_PACKAGE_BOOST_GRAPH=y
BR2_PACKAGE_BOOST_GRAPH_PARALLEL=y
BR2_PACKAGE_BOOST_IOSTREAMS=y
BR2_PACKAGE_BOOST_JSON=y
BR2_PACKAGE_BOOST_LOCALE=y
BR2_PACKAGE_BOOST_MPI=y
BR2_PACKAGE_BOOST_NOWIDE=y
BR2_PACKAGE_BOOST_PROGRAM_OPTIONS=y
BR2_PACKAGE_BOOST_RANDOM=y
BR2_PACKAGE_BOOST_SERIALIZATION=y
BR2_PACKAGE_BOOST_STACKTRACE=y
BR2_PACKAGE_BOOST_TEST=y
BR2_sh=y
BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_SH_SH4_UCLIBC_STABLE=y BR2_PACKAGE_BOOST=y BR2_PACKAGE_BOOST_CONTRACT=y BR2_PACKAGE_BOOST_EXCEPTION=y BR2_PACKAGE_BOOST_GRAPH=y BR2_PACKAGE_BOOST_GRAPH_PARALLEL=y BR2_PACKAGE_BOOST_IOSTREAMS=y BR2_PACKAGE_BOOST_JSON=y BR2_PACKAGE_BOOST_LOCALE=y BR2_PACKAGE_BOOST_LOG=y BR2_PACKAGE_BOOST_MATH=y BR2_PACKAGE_BOOST_MPI=y BR2_PACKAGE_BOOST_NOWIDE=y BR2_PACKAGE_BOOST_PROGRAM_OPTIONS=y BR2_PACKAGE_BOOST_RANDOM=y BR2_PACKAGE_BOOST_SERIALIZATION=y BR2_PACKAGE_BOOST_STACKTRACE=y BR2_PACKAGE_BOOST_TEST=y BR2_PACKAGE_BOOST_TYPE_ERASURE=y BR2_PACKAGE_BOOST_WAVE=y
BR2_microblazeel=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_PACKAGE_BOOST=y
BR2_PACKAGE_BOOST_CONTRACT=y
BR2_PACKAGE_BOOST_EXCEPTION=y
BR2_PACKAGE_BOOST_GRAPH=y
BR2_PACKAGE_BOOST_GRAPH_PARALLEL=y
BR2_PACKAGE_BOOST_IOSTREAMS=y
BR2_PACKAGE_BOOST_JSON=y
BR2_PACKAGE_BOOST_LOCALE=y
BR2_PACKAGE_BOOST_LOG=y
BR2_PACKAGE_BOOST_MATH=y
BR2_PACKAGE_BOOST_MPI=y
BR2_PACKAGE_BOOST_NOWIDE=y
BR2_PACKAGE_BOOST_PROGRAM_OPTIONS=y
BR2_PACKAGE_BOOST_RANDOM=y
BR2_PACKAGE_BOOST_SERIALIZATION=y
BR2_PACKAGE_BOOST_STACKTRACE=y
BR2_PACKAGE_BOOST_TEST=y
BR2_PACKAGE_BOOST_TYPE_ERASURE=y
BR2_PACKAGE_BOOST_WAVE=y
BR2_arm=y
BR2_cortex_a15=y
BR2_ARM_FPU_NEON=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
BR2_PACKAGE_BOOST=y
BR2_PACKAGE_BOOST_FILESYSTEM=y
--- package/boost/0001-fenv.patch | 37 ---------------- ...2-src-event-cpp-fix-build-on-riscv32.patch | 42 ------------------- package/boost/Config.in | 3 ++ package/boost/boost.hash | 4 +- package/boost/boost.mk | 2 +- 5 files changed, 6 insertions(+), 82 deletions(-) delete mode 100644 package/boost/0001-fenv.patch delete mode 100644 package/boost/0002-src-event-cpp-fix-build-on-riscv32.patch
package/boost/0001-fenv.patch deleted +0 -37
@@ -1,37 +0,0 @@ -Disable fenv.h in certain configurations - -The boost build system does not properly test whether fenv.h is -available, and if it is, if it supports all the features used by -Boost. This causes build failures with uClibc (reported upstream at -https://svn.boost.org/trac/boost/ticket/11756) but also with glibc on -specific architectures that don't have a full fenv implementation, -such as NIOSII or Microblaze. - -To address this, we forcefully disable the use of fenv support in the -affected configurations. - -Signed-off-by: Bernd Kuhls <[email protected]> -[Thomas: add Microblaze/NIOSII exclusions.] -Signed-off-by: Thomas Petazzoni <[email protected]> - -Index: b/boost/config/platform/linux.hpp -=================================================================== ---- a/boost/config/platform/linux.hpp -+++ b/boost/config/platform/linux.hpp -@@ -48,6 +48,16 @@ - #endif - - // -+// uClibc has no support for fenv.h, and also a few architectures -+// don't have fenv.h support at all (or incomplete support) even with -+// glibc. -+ -+// -+#if defined(__UCLIBC__) || defined(__nios2__) || defined(__microblaze__) -+# define BOOST_NO_FENV_H -+#endif -+ -+// - // If glibc is past version 2 then we definitely have - // gettimeofday, earlier versions may or may not have it: - //
package/boost/0002-src-event-cpp-fix-build-on-riscv32.patch deleted +0 -42
42 lines not on this page · raw message
package/boost/Config.in +3 -0
@@ -163,6 +163,8 @@ comment "boost-fiber needs a toolchain not affected by 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
@@ -252,6 +254,7 @@ comment "boost-log needs a toolchain not affected by GCC bug 64735" config BR2_PACKAGE_BOOST_MATH bool "boost-math" + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS help Boost.Math includes several contributions in the domain of mathematics:
package/boost/boost.hash +2 -2
@@ -1,5 +1,5 @@ -# From https://www.boost.org/users/history/version_1_74_0.html -sha256 953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb boost_1_75_0.tar.bz2 +# From https://www.boost.org/users/history/version_1_77_0.html +sha256 fc9f85fc030e233142908241af7a846e60630aa7388de9a5fafb1f3a26840854 boost_1_77_0.tar.bz2 # Locally computed sha256 c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 LICENSE_1_0.txt
package/boost/boost.mk +1 -1
@@ -4,7 +4,7 @@ # ################################################################################ -BOOST_VERSION = 1.75.0 +BOOST_VERSION = 1.77.0 BOOST_SOURCE = boost_$(subst .,_,$(BOOST_VERSION)).tar.bz2 BOOST_SITE = https://boostorg.jfrog.io/artifactory/main/release/$(BOOST_VERSION)/source BOOST_INSTALL_STAGING = YES
Signature · 6 lines
2.32.0 _______________________________________________ buildroot mailing list [email protected] http://lists.busybox.net/mailman/listinfo/buildroot
Hello Michael,
package/boost/Config.in comment "boost-fiber needs a toolchain not affected by GCC bug 64735" · line 166
Quoted 3 lines · On Tue, 17 Aug 2021 22:01:39 +0200 Michael Nosthoff via buildroot…
config
BR2_PACKAGE_BOOST_FILESYSTEMpackage/boost/Config.in +1
-0bool "boost-filesystem" + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
Unfortunately, if you add such a dependency, you need to look at all the place where you have a "select BR2_PACKAGE_BOOST_FILESYSTEM" or a "select BR2_PACKAGE_BOOST_ATOMIC" and make sure they have a "depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS". And recursively, any package selecting those packages will also need to have this "depends on" added.
For example: package/cc-tool/Config.in selects BR2_PACKAGE_BOOST_FILESYSTEM, so it now needs to have this depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS.
In other words, if you can get a fix for this, it would make this version bump a lot simpler :-)
Thanks!
Thomas
Signature · 7 lines
Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com _______________________________________________ buildroot mailing list [email protected] http://lists.busybox.net/mailman/listinfo/buildroot
Hi Thomas,
Quoted 5 lines · Thomas Petazzoni
Hello Michael,
On Tue, 17 Aug 2021 22:01:39 +0200
Michael Nosthoff via buildroot <[email protected]> wrote:
Quoted 9 lines
package/boost/Config.in comment "boost-fiber needs a toolchain not affected by GCC bug 64735" · line 166
Quoted 3 lines
config
BR2_PACKAGE_BOOST_FILESYSTEM
bool "boost-filesystem"package/boost/Config.in +1
-0+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomicUnfortunately, if you add such a dependency, you need to look at all the place where you have a "select
BR2_PACKAGE_BOOST_FILESYSTEM" or a "selectBR2_PACKAGE_BOOST_ATOMIC" and make sure they have a "depends onBR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS". And recursively, any package selecting those packages will also need to have this "depends on" added.
Damn, I forgot those dependencies. Fabrice added them for atomic and thread before. It's not nice but it seems to be necessary since the dependency is now there.
Quoted 7 lines
For example: package/cc-tool/Config.in selects
BR2_PACKAGE_BOOST_FILESYSTEM, so it now needs to have this depends onBR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS.In other words, if you can get a fix for this, it would make this version bump a lot simpler :-)
The culprit is this commit [1]. So if c++20 is not available it always falls back on boost-atomic. From the sheer size of the commit I don't think we can "fix" this from buildroot in a sensible way.
Luckily no packages depend on boost-math, where I hope this dependency can be fixed/removed.
Regards,
Michael
[1] https://github.com/boostorg/filesystem/commit/2dda038306fd2953c2bbd01a15795994fbc32af2
Quoted 4 lines
Thanks!
Thomas
_______________________________________________
buildroot mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/buildroot