commit: 5e3406541f08d5d69ab6eee06f0978d6cd840fa5
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 6 00:39:57 2021 +0000
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Tue Jul 6 01:15:20 2021 +0000
URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=5e340654
Bump boost to v1.76.0
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
gkbuilds/boost-build.gkbuild | 20 +---
gkbuilds/boost.gkbuild | 10 +-
.../boost-build-1.71.0-respect-c_ld-flags.patch | 9 --
.../boost-build-1.71.0-disable_python_rpath.patch | 0
...ost-build-1.73.0-add-none-feature-options.patch | 0
...oost-build-1.74.0-no-implicit-march-flags.patch | 0
.../1.76.0/boost-build-1.76.0-python-numpy.patch | 24 ++++
.../boost-build-1.76.0-respect-user-flags.patch | 11 ++
.../1.75.0/boost-1.73-property-tree-include.patch | 45 --------
.../boost-1.71.0-context-x32.patch | 0
.../boost-1.71.0-disable_icu_rpath.patch | 0
.../boost-1.73-boost-mpi-python-PEP-328.patch | 17 +++
.../boost/1.76.0/boost-1.74-CVE-2012-2677.patch | 125 +++++++++++++++++++++
patches/boost/1.76.0/boost-1.76-boost-numpy.patch | 23 ++++
patches/boost/1.76.0/boost-1.76-sparc-define.patch | 21 ++++
15 files changed, 234 insertions(+), 71 deletions(-)
diff --git a/gkbuilds/boost-build.gkbuild b/gkbuilds/boost-build.gkbuild
index baf1811..5d470c1 100644
--- a/gkbuilds/boost-build.gkbuild
+++ b/gkbuilds/boost-build.gkbuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 2019-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# distcc is known to fail compiling boost and will fallback
@@ -9,31 +9,19 @@ MY_PV="${PV//./_}"
S="${WORKDIR}/boost_${MY_PV}/tools/build/src"
QA_IGNORE_DYNAMICALLY_LINKED_PROGRAM='(bjam|b2)$'
-src_prepare() {
- default
-
- # remove default -march/-mcpu definitions
- # bjam is trying to be clever and injects -march= in order to
- # optimize code for you. This breaks on 32-bit builds, because
- # -march=i686 will not work on an i486 CHOST.
- # https://bugs.gentoo.org/624616
- sed -e '/^cpu-flags\s*gcc\s*OPTIONS/d' \
- -e '/toolset\.flags\s*gcc\s*OPTIONS/d' \
- -e "/cpu_flags('gcc',\s*'OPTIONS'/d" \
- -i tools/gcc.{jam,py} || die "Failed removing -march/-mcpu"
-}
-
src_compile() {
cd engine || die "Failed to chdir to '${S}/engine'!"
local myargs=(
./build.sh
cxx
+ --cxx="$(tc-getCXX)"
+ --cxxflags="${CXXFLAGS}"
-d+2
--without-python
)
- CC=$(tc-getBUILD_CC) CXX=$(tc-getBUILD_CXX) gkexec "${myargs[*]}"
+ gkexec "${myargs[*]}"
}
src_install() {
diff --git a/gkbuilds/boost.gkbuild b/gkbuilds/boost.gkbuild
index a796e0f..9b7c1b5 100644
--- a/gkbuilds/boost.gkbuild
+++ b/gkbuilds/boost.gkbuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 2019-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# distcc is known to fail compiling boost and will fallback
@@ -18,6 +18,14 @@ create_user-config.jam() {
cat > "${user_config_jam}" <<- __EOF__ || die
using ${compiler} : ${compiler_version} :
${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}"
<linkflags>"${LDFLAGS}" ;
__EOF__
+
+ # Boost.Build does not allow for disabling of numpy
+ # extensions, thereby leading to automagic numpy
+ # https://github.com/boostorg/python/issues/111#issuecomment-280447482
+ sed \
+ -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g'
\
+ -i "${S}"/libs/python/build/Jamfile \
+ || die
}
ejam() {
diff --git
a/patches/boost-build/1.75.0/boost-build-1.71.0-respect-c_ld-flags.patch
b/patches/boost-build/1.75.0/boost-build-1.71.0-respect-c_ld-flags.patch
deleted file mode 100644
index f51abea..0000000
--- a/patches/boost-build/1.75.0/boost-build-1.71.0-respect-c_ld-flags.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/engine/build.sh
-+++ b/engine/build.sh
-@@ -439,5 +439,5 @@
- if check_debug_build "$@" ; then B2_CXXFLAGS="${B2_CXXFLAGS_DEBUG}"
- else B2_CXXFLAGS="${B2_CXXFLAGS_RELEASE} -DNDEBUG"
- fi
--echo_run ${B2_CXX} ${CXXFLAGS} ${B2_CXXFLAGS} ${B2_SOURCES} -o b2
-+echo_run ${B2_CXX} ${CPPFLAGS} ${CXXFLAGS} ${LDFLAGS} ${B2_CXXFLAGS}
${B2_SOURCES} -o b2
- echo_run cp b2 bjam
diff --git
a/patches/boost-build/1.75.0/boost-build-1.71.0-disable_python_rpath.patch
b/patches/boost-build/1.76.0/boost-build-1.71.0-disable_python_rpath.patch
similarity index 100%
rename from
patches/boost-build/1.75.0/boost-build-1.71.0-disable_python_rpath.patch
rename to
patches/boost-build/1.76.0/boost-build-1.71.0-disable_python_rpath.patch
diff --git
a/patches/boost-build/1.75.0/boost-build-1.73.0-add-none-feature-options.patch
b/patches/boost-build/1.76.0/boost-build-1.73.0-add-none-feature-options.patch
similarity index 100%
rename from
patches/boost-build/1.75.0/boost-build-1.73.0-add-none-feature-options.patch
rename to
patches/boost-build/1.76.0/boost-build-1.73.0-add-none-feature-options.patch
diff --git
a/patches/boost-build/1.75.0/boost-build-1.74.0-no-implicit-march-flags.patch
b/patches/boost-build/1.76.0/boost-build-1.74.0-no-implicit-march-flags.patch
similarity index 100%
rename from
patches/boost-build/1.75.0/boost-build-1.74.0-no-implicit-march-flags.patch
rename to
patches/boost-build/1.76.0/boost-build-1.74.0-no-implicit-march-flags.patch
diff --git a/patches/boost-build/1.76.0/boost-build-1.76.0-python-numpy.patch
b/patches/boost-build/1.76.0/boost-build-1.76.0-python-numpy.patch
new file mode 100644
index 0000000..ed04d54
--- /dev/null
+++ b/patches/boost-build/1.76.0/boost-build-1.76.0-python-numpy.patch
@@ -0,0 +1,24 @@
+From 61adb508853be1fa2c01a0c3a0c55fbd16cb9a52 Mon Sep 17 00:00:00 2001
+From: Peter Dimov <[email protected]>
+Date: Mon, 24 May 2021 22:11:23 +0300
+Subject: [PATCH] Declare the /python//numpy target to hold the include path
+ (fixes #725)
+
+---
+ tools/python.jam | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/tools/python.jam b/tools/python.jam
+index 00706932d2..0dfc750a22 100644
+--- a/tools/python.jam
++++ b/tools/python.jam
+@@ -1052,6 +1052,9 @@ local rule configure ( version ? : cmd-or-prefix ? :
includes * : libraries ? :
+ ;
+ }
+
++ # Declare the numpy target, which contains the NumPy include directory
++
++ alias numpy : : $(target-requirements) : : <include>$(.numpy-include) ;
+ }
+
+ # Conditional rule specification that will prevent building of a target
diff --git
a/patches/boost-build/1.76.0/boost-build-1.76.0-respect-user-flags.patch
b/patches/boost-build/1.76.0/boost-build-1.76.0-respect-user-flags.patch
new file mode 100644
index 0000000..2289e70
--- /dev/null
+++ b/patches/boost-build/1.76.0/boost-build-1.76.0-respect-user-flags.patch
@@ -0,0 +1,11 @@
+--- a/engine/build.sh
++++ b/engine/build.sh
+@@ -496,7 +496,7 @@
+ if test_true ${B2_DEBUG_OPT} ; then B2_CXXFLAGS="${B2_CXXFLAGS_DEBUG}"
+ else B2_CXXFLAGS="${B2_CXXFLAGS_RELEASE} -DNDEBUG"
+ fi
+- ( B2_VERBOSE_OPT=${TRUE} echo_run ${B2_CXX} ${B2_CXXFLAGS} ${B2_SOURCES}
-o b2 )
++ ( B2_VERBOSE_OPT=${TRUE} echo_run ${B2_CXX} ${CPPFLAGS} ${B2_CXXFLAGS}
${LDFLAGS} ${B2_SOURCES} -o b2 )
+ ( B2_VERBOSE_OPT=${TRUE} echo_run cp b2 bjam )
+ }
+
diff --git a/patches/boost/1.75.0/boost-1.73-property-tree-include.patch
b/patches/boost/1.75.0/boost-1.73-property-tree-include.patch
deleted file mode 100644
index 5393882..0000000
--- a/patches/boost/1.75.0/boost-1.73-property-tree-include.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From d1c8825a45a0717e1ad79583d3283b0e5e32831e Mon Sep 17 00:00:00 2001
-From: Andrey Semashev <[email protected]>
-Date: Tue, 28 Apr 2020 22:03:04 +0300
-Subject: [PATCH] Fix usage of deprecated Boost.Bind features
-
-This fixes deprecation warnings generated by boost/bind.hpp.
-
-Also, use a more actual include path for ref.hpp.
----
- boost/property_tree/json_parser/detail/parser.hpp | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/boost/property_tree/json_parser/detail/parser.hpp
b/boost/property_tree/json_parser/detail/parser.hpp
-index 5554990fb..6cf636394 100644
---- a/boost/property_tree/json_parser/detail/parser.hpp
-+++ b/boost/property_tree/json_parser/detail/parser.hpp
-@@ -3,8 +3,8 @@
-
- #include <boost/property_tree/json_parser/error.hpp>
-
--#include <boost/ref.hpp>
--#include <boost/bind.hpp>
-+#include <boost/core/ref.hpp>
-+#include <boost/bind/bind.hpp>
- #include <boost/format.hpp>
-
- #include <iterator>
-@@ -214,7 +214,7 @@ namespace boost { namespace property_tree {
- void process_codepoint(Sentinel end, EncodingErrorFn error_fn) {
- encoding.transcode_codepoint(cur, end,
- boost::bind(&Callbacks::on_code_unit,
-- boost::ref(callbacks), _1),
-+ boost::ref(callbacks), boost::placeholders::_1),
- error_fn);
- }
-
-@@ -517,7 +517,7 @@ namespace boost { namespace property_tree {
- void feed(unsigned codepoint) {
- encoding.feed_codepoint(codepoint,
- boost::bind(&Callbacks::on_code_unit,
-- boost::ref(callbacks), _1));
-+ boost::ref(callbacks),
boost::placeholders::_1));
- }
-
- Callbacks& callbacks;
diff --git a/patches/boost/1.75.0/boost-1.71.0-context-x32.patch
b/patches/boost/1.76.0/boost-1.71.0-context-x32.patch
similarity index 100%
rename from patches/boost/1.75.0/boost-1.71.0-context-x32.patch
rename to patches/boost/1.76.0/boost-1.71.0-context-x32.patch
diff --git a/patches/boost/1.75.0/boost-1.71.0-disable_icu_rpath.patch
b/patches/boost/1.76.0/boost-1.71.0-disable_icu_rpath.patch
similarity index 100%
rename from patches/boost/1.75.0/boost-1.71.0-disable_icu_rpath.patch
rename to patches/boost/1.76.0/boost-1.71.0-disable_icu_rpath.patch
diff --git a/patches/boost/1.76.0/boost-1.73-boost-mpi-python-PEP-328.patch
b/patches/boost/1.76.0/boost-1.73-boost-mpi-python-PEP-328.patch
new file mode 100644
index 0000000..444db2b
--- /dev/null
+++ b/patches/boost/1.76.0/boost-1.73-boost-mpi-python-PEP-328.patch
@@ -0,0 +1,17 @@
+--- a/libs/mpi/build/__init__.py
++++ b/libs/mpi/build/__init__.py
+@@ -1,10 +1,12 @@
++from __future__ import absolute_import
++
+ import sys
+ if sys.platform == 'linux2':
+ import DLFCN as dl
+ flags = sys.getdlopenflags()
+ sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL)
+- import mpi
++ from . import mpi
+ sys.setdlopenflags(flags)
+ else:
+- import mpi
++ from . import mpi
+
diff --git a/patches/boost/1.76.0/boost-1.74-CVE-2012-2677.patch
b/patches/boost/1.76.0/boost-1.74-CVE-2012-2677.patch
new file mode 100644
index 0000000..ff947f7
--- /dev/null
+++ b/patches/boost/1.76.0/boost-1.74-CVE-2012-2677.patch
@@ -0,0 +1,125 @@
+https://src.fedoraproject.org/rpms/boost/raw/master/f/boost-1.58.0-pool.patch
+https://bugzilla.redhat.com/show_bug.cgi?id=828856
+https://bugs.gentoo.org/620468
+https://svn.boost.org/trac10/ticket/6701
+
+Index: boost/pool/pool.hpp
+===================================================================
+--- a/boost/pool/pool.hpp (revision 78317)
++++ b/boost/pool/pool.hpp (revision 78326)
+@@ -27,4 +27,6 @@
+ #include <boost/pool/poolfwd.hpp>
+
++// std::numeric_limits
++#include <boost/limits.hpp>
+ // boost::integer::static_lcm
+ #include <boost/integer/common_factor_ct.hpp>
+@@ -358,4 +360,11 @@
+ }
+
++ size_type max_chunks() const
++ { //! Calculated maximum number of memory chunks that can be allocated in
a single call by this Pool.
++ size_type partition_size = alloc_size();
++ size_type POD_size = integer::static_lcm<sizeof(size_type), sizeof(void
*)>::value + sizeof(size_type);
++ return (std::numeric_limits<size_type>::max() - POD_size) /
alloc_size();
++ }
++
+ static void * & nextof(void * const ptr)
+ { //! \returns Pointer dereferenced.
+@@ -377,5 +388,7 @@
+ //! the first time that object needs to allocate system memory.
+ //! The default is 32. This parameter may not be 0.
+- //! \param nmax_size is the maximum number of chunks to allocate in one
block.
++ //! \param nmax_size is the maximum number of chunks to allocate in one
block.
++ set_next_size(nnext_size);
++ set_max_size(nmax_size);
+ }
+
+@@ -400,7 +413,7 @@
+ }
+ void set_next_size(const size_type nnext_size)
+- { //! Set number of chunks to request from the system the next time that
object needs to allocate system memory. This value should never be set to 0.
+- //! \returns nnext_size.
+- next_size = start_size = nnext_size;
++ { //! Set number of chunks to request from the system the next time that
object needs to allocate system memory. This value should never be set to 0.
++ BOOST_USING_STD_MIN();
++ next_size = start_size = min
BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks());
+ }
+ size_type get_max_size() const
+@@ -410,5 +423,6 @@
+ void set_max_size(const size_type nmax_size)
+ { //! Set max_size.
+- max_size = nmax_size;
++ BOOST_USING_STD_MIN();
++ max_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nmax_size,
max_chunks());
+ }
+ size_type get_requested_size() const
+@@ -713,7 +727,7 @@
+ BOOST_USING_STD_MIN();
+ if(!max_size)
+- next_size <<= 1;
++ set_next_size(next_size << 1);
+ else if( next_size*partition_size/requested_size < max_size)
+- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1,
max_size*requested_size/ partition_size);
++ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1,
max_size * requested_size / partition_size));
+
+ // initialize it,
+@@ -753,7 +767,7 @@
+ BOOST_USING_STD_MIN();
+ if(!max_size)
+- next_size <<= 1;
++ set_next_size(next_size << 1);
+ else if( next_size*partition_size/requested_size < max_size)
+- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1,
max_size*requested_size/ partition_size);
++ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1,
max_size * requested_size / partition_size));
+
+ // initialize it,
+@@ -797,4 +811,6 @@
+ //! \returns Address of chunk n if allocated ok.
+ //! \returns 0 if not enough memory for n chunks.
++ if (n > max_chunks())
++ return 0;
+
+ const size_type partition_size = alloc_size();
+@@ -845,7 +861,7 @@
+ BOOST_USING_STD_MIN();
+ if(!max_size)
+- next_size <<= 1;
++ set_next_size(next_size << 1);
+ else if( next_size*partition_size/requested_size < max_size)
+- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1,
max_size*requested_size/ partition_size);
++ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1,
max_size * requested_size / partition_size));
+
+ // insert it into the list,
+Index: libs/pool/test/test_bug_6701.cpp
+===================================================================
+--- a/libs/pool/test/test_bug_6701.cpp (revision 78326)
++++ b/libs/pool/test/test_bug_6701.cpp (revision 78326)
+@@ -0,0 +1,27 @@
++/* Copyright (C) 2012 Étienne Dupuis
++*
++* Use, modification and distribution is subject to the
++* Boost Software License, Version 1.0. (See accompanying
++* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
++*/
++
++// Test of bug #6701 (https://svn.boost.org/trac/boost/ticket/6701)
++
++#include <boost/pool/object_pool.hpp>
++#include <boost/limits.hpp>
++
++int main()
++{
++ boost::pool<> p(1024, std::numeric_limits<size_t>::max() / 768);
++
++ void *x = p.malloc();
++ BOOST_ASSERT(!x);
++
++ BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >=
p.get_next_size());
++ BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >= p.get_max_size());
++
++ void *y = p.ordered_malloc(std::numeric_limits<size_t>::max() / 768);
++ BOOST_ASSERT(!y);
++
++ return 0;
++}
diff --git a/patches/boost/1.76.0/boost-1.76-boost-numpy.patch
b/patches/boost/1.76.0/boost-1.76-boost-numpy.patch
new file mode 100644
index 0000000..d9af132
--- /dev/null
+++ b/patches/boost/1.76.0/boost-1.76-boost-numpy.patch
@@ -0,0 +1,23 @@
+From 0796305c863804a2b31610507c531da5c0408422 Mon Sep 17 00:00:00 2001
+From: Peter Dimov <[email protected]>
+Date: Mon, 24 May 2021 22:14:55 +0300
+Subject: [PATCH] Use the /python//numpy target instead of [ numpy.include ]
+ (fixes #361)
+
+---
+ libs/python/build/Jamfile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libs/python/build/Jamfile b/libs/python/build/Jamfile
+index dbc9fb203..03b69a25d 100644
+--- a/libs/python/build/Jamfile
++++ b/libs/python/build/Jamfile
+@@ -117,7 +117,7 @@ lib boost_numpy
+ <define>BOOST_NUMPY_SOURCE
+ [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
+ [ unless [ python.numpy ] : <build>no ]
+- <include>$(numpy-include)
++ <library>/python//numpy
+ <library>boost_python
+ <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+ -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
diff --git a/patches/boost/1.76.0/boost-1.76-sparc-define.patch
b/patches/boost/1.76.0/boost-1.76-sparc-define.patch
new file mode 100644
index 0000000..b3909ee
--- /dev/null
+++ b/patches/boost/1.76.0/boost-1.76-sparc-define.patch
@@ -0,0 +1,21 @@
+https://github.com/boostorg/predef/commit/1be0e4a2d8db15a405f64a6f65507b87c1be7e1a.patch
+
+From 1be0e4a2d8db15a405f64a6f65507b87c1be7e1a Mon Sep 17 00:00:00 2001
+From: tkoecker <[email protected]>
+Date: Fri, 21 May 2021 16:31:11 +0200
+Subject: [PATCH] added missing brackets (#118)
+--- a/boost/predef/architecture/sparc.h
++++ b/boost/predef/architecture/sparc.h
+@@ -34,10 +34,10 @@ Distributed under the Boost Software License, Version 1.0.
+
+ #if defined(__sparc__) || defined(__sparc)
+ # undef BOOST_ARCH_SPARC
+-# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv9) ||
defined(__sparc_v9__)
++# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv9) ||
defined(__sparc_v9__))
+ # define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(9,0,0)
+ # endif
+-# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv8) ||
defined(__sparc_v8__)
++# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv8) ||
defined(__sparc_v8__))
+ # define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(8,0,0)
+ # endif
+ # if !defined(BOOST_ARCH_SPARC)