Rebase to 1.90.0
See https://fedoraproject.org/wiki/Changes/F44_Boost_1_90 Drop boost-system subpackage and libboost_thread.so linker script Add new boost-charconv, boost-cobalt, and boost-process subpackages
This commit is contained in:
parent
403199971d
commit
ec7383f6bd
16 changed files with 203 additions and 677 deletions
|
|
@ -1,114 +0,0 @@
|
|||
From f364ee7be2bb1a44a2724d92f67490deaf19dc5e Mon Sep 17 00:00:00 2001
|
||||
From: Andrey Semashev <andrey.semashev@gmail.com>
|
||||
Date: Mon, 11 May 2020 19:59:23 +0300
|
||||
Subject: [PATCH] Removed usage of deprecated header boost/detail/iterator.hpp.
|
||||
|
||||
The header was deprecated in favor of <iterator>. It generates compiler
|
||||
warnings and will be removed in a future release.
|
||||
---
|
||||
boost/detail/algorithm.hpp | 2 +-
|
||||
boost/graph/adjacency_iterator.hpp | 6 +++---
|
||||
boost/graph/detail/adjacency_list.hpp | 5 +++--
|
||||
boost/graph/incremental_components.hpp | 6 +++---
|
||||
4 files changed, 10 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/boost/detail/algorithm.hpp b/boost/detail/algorithm.hpp
|
||||
index 7793fb357..9b3195cbf 100644
|
||||
--- a/boost/detail/algorithm.hpp
|
||||
+++ b/boost/detail/algorithm.hpp
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
#ifndef BOOST_ALGORITHM_HPP
|
||||
#define BOOST_ALGORITHM_HPP
|
||||
-#include <boost/detail/iterator.hpp>
|
||||
+
|
||||
// Algorithms on sequences
|
||||
//
|
||||
// The functions in this file have not yet gone through formal
|
||||
diff --git a/boost/graph/adjacency_iterator.hpp b/boost/graph/adjacency_iterator.hpp
|
||||
index 5325e7875..4693e3a3a 100644
|
||||
--- a/boost/graph/adjacency_iterator.hpp
|
||||
+++ b/boost/graph/adjacency_iterator.hpp
|
||||
@@ -10,7 +10,7 @@
|
||||
#ifndef BOOST_ADJACENCY_ITERATOR_HPP
|
||||
#define BOOST_ADJACENCY_ITERATOR_HPP
|
||||
|
||||
-#include <boost/detail/iterator.hpp>
|
||||
+#include <iterator>
|
||||
#include <boost/iterator/iterator_adaptor.hpp>
|
||||
#include <boost/graph/graph_traits.hpp>
|
||||
|
||||
@@ -45,7 +45,7 @@ template < class Graph,
|
||||
class adjacency_iterator_generator
|
||||
{
|
||||
typedef
|
||||
- typename boost::detail::iterator_traits< OutEdgeIter >::difference_type
|
||||
+ typename std::iterator_traits< OutEdgeIter >::difference_type
|
||||
difference_type;
|
||||
|
||||
public:
|
||||
@@ -81,7 +81,7 @@ template < class Graph,
|
||||
class inv_adjacency_iterator_generator
|
||||
{
|
||||
typedef
|
||||
- typename boost::detail::iterator_traits< InEdgeIter >::difference_type
|
||||
+ typename std::iterator_traits< InEdgeIter >::difference_type
|
||||
difference_type;
|
||||
|
||||
public:
|
||||
diff --git a/boost/graph/detail/adjacency_list.hpp b/boost/graph/detail/adjacency_list.hpp
|
||||
index 4b11fa516..c1a2ada23 100644
|
||||
--- a/boost/graph/detail/adjacency_list.hpp
|
||||
+++ b/boost/graph/detail/adjacency_list.hpp
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <boost/range/irange.hpp>
|
||||
#include <boost/graph/graph_traits.hpp>
|
||||
#include <memory>
|
||||
+#include <iterator>
|
||||
#include <algorithm>
|
||||
#include <boost/limits.hpp>
|
||||
|
||||
@@ -2370,7 +2371,7 @@ namespace detail
|
||||
typedef typename OutEdgeList::size_type degree_size_type;
|
||||
typedef typename OutEdgeList::iterator OutEdgeIter;
|
||||
|
||||
- typedef boost::detail::iterator_traits< OutEdgeIter >
|
||||
+ typedef std::iterator_traits< OutEdgeIter >
|
||||
OutEdgeIterTraits;
|
||||
typedef
|
||||
typename OutEdgeIterTraits::iterator_category OutEdgeIterCat;
|
||||
@@ -2398,7 +2399,7 @@ namespace detail
|
||||
|
||||
// Edge Iterator
|
||||
|
||||
- typedef boost::detail::iterator_traits< EdgeIter > EdgeIterTraits;
|
||||
+ typedef std::iterator_traits< EdgeIter > EdgeIterTraits;
|
||||
typedef typename EdgeIterTraits::iterator_category EdgeIterCat;
|
||||
typedef typename EdgeIterTraits::difference_type EdgeIterDiff;
|
||||
|
||||
diff --git a/boost/graph/incremental_components.hpp b/boost/graph/incremental_components.hpp
|
||||
index 1ad8c9403..f16882e2a 100644
|
||||
--- a/boost/graph/incremental_components.hpp
|
||||
+++ b/boost/graph/incremental_components.hpp
|
||||
@@ -13,10 +13,10 @@
|
||||
#ifndef BOOST_INCREMENTAL_COMPONENTS_HPP
|
||||
#define BOOST_INCREMENTAL_COMPONENTS_HPP
|
||||
|
||||
-#include <boost/detail/iterator.hpp>
|
||||
+#include <boost/tuple/tuple.hpp>
|
||||
#include <boost/graph/detail/incremental_components.hpp>
|
||||
#include <boost/iterator/counting_iterator.hpp>
|
||||
-#include <boost/make_shared.hpp>
|
||||
+#include <boost/smart_ptr/make_shared.hpp>
|
||||
#include <boost/pending/disjoint_sets.hpp>
|
||||
#include <iterator>
|
||||
|
||||
@@ -69,7 +69,7 @@ void compress_components(ParentIterator first, ParentIterator last)
|
||||
}
|
||||
|
||||
template < class ParentIterator >
|
||||
-typename boost::detail::iterator_traits< ParentIterator >::difference_type
|
||||
+typename std::iterator_traits< ParentIterator >::difference_type
|
||||
component_count(ParentIterator first, ParentIterator last)
|
||||
{
|
||||
std::ptrdiff_t count = 0;
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From c3ada7a1b2b54f4b27585f72308a76984f8489b4 Mon Sep 17 00:00:00 2001
|
||||
From: jzmaddock <john@johnmaddock.co.uk>
|
||||
Date: Tue, 16 Mar 2021 10:47:16 +0000
|
||||
Subject: [PATCH] Add missing #includes.
|
||||
|
||||
---
|
||||
test/multiprecision_float_test.cpp | 1 +
|
||||
test/multiprecision_int_test.cpp | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/test/multiprecision_float_test.cpp b/test/multiprecision_float_test.cpp
|
||||
index 904c59d8f..bc2a9364d 100644
|
||||
--- boost_1_76_0/libs/random/test/multiprecision_float_test.cpp
|
||||
+++ boost_1_76_0/libs/random/test/multiprecision_float_test.cpp
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <boost/multiprecision/debug_adaptor.hpp>
|
||||
#include <boost/scoped_ptr.hpp>
|
||||
#include <boost/random.hpp>
|
||||
+#include <boost/mpl/list.hpp>
|
||||
#include <sstream>
|
||||
|
||||
|
||||
diff --git a/test/multiprecision_int_test.cpp b/test/multiprecision_int_test.cpp
|
||||
index 577e52aff..41ec229b5 100644
|
||||
--- boost_1_76_0/libs/random/test/multiprecision_int_test.cpp
|
||||
+++ boost_1_76_0/libs/random/test/multiprecision_int_test.cpp
|
||||
@@ -32,6 +32,7 @@
|
||||
#include <boost/random/uniform_int.hpp>
|
||||
#include <boost/random/uniform_smallint.hpp>
|
||||
#include <boost/random/discrete_distribution.hpp>
|
||||
+#include <boost/mpl/list.hpp>
|
||||
#include <sstream>
|
||||
|
||||
typedef boost::mpl::list <
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
From 6a8ff06728b64a1121a6179d891ab0baf3b9290b Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Palka <ppalka@redhat.com>
|
||||
Date: Mon, 4 Dec 2023 09:27:13 -0500
|
||||
Subject: [PATCH] Adjust options to remove RPATH for Fedora package builds
|
||||
|
||||
---
|
||||
tools/build/src/tools/gcc.jam | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
|
||||
index c753afc23..e0b627726 100644
|
||||
--- a/tools/build/src/tools/gcc.jam
|
||||
+++ b/tools/build/src/tools/gcc.jam
|
||||
@@ -1035,12 +1035,12 @@ rule link.dll ( targets * : sources * : properties * )
|
||||
|
||||
actions link bind LIBRARIES
|
||||
{
|
||||
- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS))
|
||||
+ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -o "$(<)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS))
|
||||
}
|
||||
|
||||
actions link.dll bind LIBRARIES
|
||||
{
|
||||
- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2])" -o "$(<[1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS))
|
||||
+ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2])" -o "$(<[1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS))
|
||||
}
|
||||
|
||||
###
|
||||
--
|
||||
2.43.0
|
||||
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
--- boost_1_81_0/boost/phoenix/stl/tuple.hpp~ 2023-03-15 09:31:59.327721489 +0000
|
||||
+++ boost_1_81_0/boost/phoenix/stl/tuple.hpp 2023-03-15 09:32:02.787722445 +0000
|
||||
@@ -106,14 +106,16 @@
|
||||
tuple_detail::idx_wrap<N>(), t);
|
||||
}
|
||||
|
||||
+#ifndef BOOST_PHOENIX_NO_PREDEFINED_TERMINALS
|
||||
// Make unpacked argument placeholders
|
||||
namespace placeholders {
|
||||
#define BOOST_PP_LOCAL_LIMITS (1, BOOST_PHOENIX_ARG_LIMIT)
|
||||
#define BOOST_PP_LOCAL_MACRO(N) \
|
||||
- auto uarg##N = \
|
||||
+ const auto uarg##N = \
|
||||
boost::phoenix::get_<(N)-1>(boost::phoenix::placeholders::arg1);
|
||||
#include BOOST_PP_LOCAL_ITERATE()
|
||||
}
|
||||
+#endif
|
||||
}} // namespace boost::phoenix
|
||||
|
||||
#endif // C++ 14
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
diff -up boost_1_81_0/libs/random/test/multiprecision_float_test.cpp.testfix boost_1_81_0/libs/random/test/multiprecision_float_test.cpp
|
||||
--- boost_1_81_0/libs/random/test/multiprecision_float_test.cpp.testfix 2023-08-29 16:07:40.127905519 -0400
|
||||
+++ boost_1_81_0/libs/random/test/multiprecision_float_test.cpp 2023-08-29 16:08:44.114856281 -0400
|
||||
@@ -77,7 +77,7 @@ typedef boost::mpl::list <
|
||||
boost::random::lognormal_distribution<big_float>,
|
||||
boost::random::normal_distribution<big_float>,
|
||||
#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
- boost::random::piecewise_constant_distribution<big_float>,
|
||||
+ boost::random::piecewise_constant_distribution<big_float, big_float>,
|
||||
boost::random::piecewise_linear_distribution<big_float>,
|
||||
#endif
|
||||
boost::random::student_t_distribution<big_float>,
|
||||
diff -up boost_1_81_0/libs/random/test/multiprecision_int_test.cpp.testfix boost_1_81_0/libs/random/test/multiprecision_int_test.cpp
|
||||
--- boost_1_81_0/libs/random/test/multiprecision_int_test.cpp.testfix 2023-08-29 16:06:58.543287627 -0400
|
||||
+++ boost_1_81_0/libs/random/test/multiprecision_int_test.cpp 2023-08-29 16:07:26.788707316 -0400
|
||||
@@ -216,7 +216,11 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(discrete_d
|
||||
ss >> d2;
|
||||
BOOST_CHECK(d == d2);
|
||||
|
||||
- boost::random::independent_bits_engine<boost::random::mt19937, std::numeric_limits<boost::multiprecision::uint1024_t>::digits, boost::multiprecision::uint1024_t > big_random;
|
||||
+ //
|
||||
+ // The number of digits in the independent_bits_engine must be low enough that we don't overflow
|
||||
+ // when converting to a double (see other_distributions declared above).
|
||||
+ //
|
||||
+ boost::random::independent_bits_engine<boost::random::mt19937, std::numeric_limits<boost::multiprecision::uint1024_t>::digits - 2, boost::multiprecision::uint1024_t > big_random;
|
||||
for(unsigned i = 0; i < 200; ++i)
|
||||
{
|
||||
result_type r = d(big_random);
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
From 819c2d6423b4e0f55c5f69e334bf81570e82f68f Mon Sep 17 00:00:00 2001
|
||||
From: "Ivan A. Melnikov" <iv@altlinux.org>
|
||||
Date: Thu, 17 Aug 2023 14:15:03 +0400
|
||||
Subject: [PATCH] Fix ABI detection for empty 'os.platform'
|
||||
|
||||
`in` operator in bjam always returns true if its first
|
||||
argument has no elements[1]. This means that if `os.platform`
|
||||
is empty (not detected), the construction introduced
|
||||
in commit d039c8e4da79dbc76481236249e22892bfdde047 sets
|
||||
ABI to `aapcs` on all platforms where `os.platform` is
|
||||
empty, including, e.g. riscv64, and breaks build there.
|
||||
|
||||
This commit refactors the condition to use '=' operator,
|
||||
to make sure that when `os.platform` is empty we get
|
||||
the default ABI value, and thus fixes build on riscv64.
|
||||
|
||||
[1] https://www.boost.org/doc/libs/1_83_0/tools/build/doc/html/index.html#jam.language.flow_of_control
|
||||
|
||||
Fixes: d039c8e4da79dbc76481236249e22892bfdde047
|
||||
---
|
||||
build/Jamfile.v2 | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/build/Jamfile.v2 b/build/Jamfile.v2
|
||||
index faaf892c..c07847ab 100644
|
||||
--- a/libs/context/build/Jamfile.v2
|
||||
+++ b/libs/context/build/Jamfile.v2
|
||||
@@ -79,7 +79,8 @@ local rule default_abi ( )
|
||||
local tmp = sysv ;
|
||||
if [ os.name ] = "NT" { tmp = ms ; }
|
||||
else if [ os.name ] = "CYGWIN" { tmp = ms ; }
|
||||
- else if [ os.platform ] in ARM ARM64 { tmp = aapcs ; }
|
||||
+ else if [ os.platform ] = "ARM" { tmp = aapcs ; }
|
||||
+ else if [ os.platform ] = "ARM64" { tmp = aapcs ; }
|
||||
else if [ os.platform ] = "MIPS32" { tmp = o32 ; }
|
||||
else if [ os.platform ] = "MIPS64" { tmp = n64 ; }
|
||||
return $(tmp) ;
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
Submodule libs/python 47d5bc76f6..8d15ce0517:
|
||||
diff --git a/libs/python/src/numpy/dtype.cpp b/libs/python/src/numpy/dtype.cpp
|
||||
index 88a20a27..1ce8c6ec 100644
|
||||
--- a/libs/python/src/numpy/dtype.cpp
|
||||
+++ b/libs/python/src/numpy/dtype.cpp
|
||||
@@ -98,37 +98,18 @@ python::detail::new_reference dtype::convert(object const & arg, bool align)
|
||||
return python::detail::new_reference(reinterpret_cast<PyObject*>(obj));
|
||||
}
|
||||
|
||||
-int dtype::get_itemsize() const { return reinterpret_cast<PyArray_Descr*>(ptr())->elsize;}
|
||||
-
|
||||
-bool equivalent(dtype const & a, dtype const & b) {
|
||||
- // On Windows x64, the behaviour described on
|
||||
- // http://docs.scipy.org/doc/numpy/reference/c-api.array.html for
|
||||
- // PyArray_EquivTypes unfortunately does not extend as expected:
|
||||
- // "For example, on 32-bit platforms, NPY_LONG and NPY_INT are equivalent".
|
||||
- // This should also hold for 64-bit platforms (and does on Linux), but not
|
||||
- // on Windows. Implement an alternative:
|
||||
-#ifdef _MSC_VER
|
||||
- if (sizeof(long) == sizeof(int) &&
|
||||
- // Manually take care of the type equivalence.
|
||||
- ((a == dtype::get_builtin<long>() || a == dtype::get_builtin<int>()) &&
|
||||
- (b == dtype::get_builtin<long>() || b == dtype::get_builtin<int>()) ||
|
||||
- (a == dtype::get_builtin<unsigned int>() || a == dtype::get_builtin<unsigned long>()) &&
|
||||
- (b == dtype::get_builtin<unsigned int>() || b == dtype::get_builtin<unsigned long>()))) {
|
||||
- return true;
|
||||
- } else {
|
||||
- return PyArray_EquivTypes(
|
||||
- reinterpret_cast<PyArray_Descr*>(a.ptr()),
|
||||
- reinterpret_cast<PyArray_Descr*>(b.ptr())
|
||||
- );
|
||||
- }
|
||||
+int dtype::get_itemsize() const {
|
||||
+#if NPY_ABI_VERSION < 0x02000000
|
||||
+ return reinterpret_cast<PyArray_Descr*>(ptr())->elsize;
|
||||
#else
|
||||
- return PyArray_EquivTypes(
|
||||
- reinterpret_cast<PyArray_Descr*>(a.ptr()),
|
||||
- reinterpret_cast<PyArray_Descr*>(b.ptr())
|
||||
- );
|
||||
+ return PyDataType_ELSIZE(reinterpret_cast<PyArray_Descr*>(ptr()));
|
||||
#endif
|
||||
}
|
||||
|
||||
+bool equivalent(dtype const & a, dtype const & b) {
|
||||
+ return a == b;
|
||||
+}
|
||||
+
|
||||
namespace
|
||||
{
|
||||
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
From 49ccf9c30a0ca556873dbf64b12b0d741d1b3e66 Mon Sep 17 00:00:00 2001
|
||||
From: Arvid Norlander <arvid-norlander@users.noreply.github.com>
|
||||
Date: Fri, 8 Nov 2024 16:48:43 +0100
|
||||
Subject: [PATCH] Fix build on clang-19 (which checks more things in
|
||||
uninstantiated templates)
|
||||
|
||||
Fixes issue #402
|
||||
---
|
||||
include/boost/thread/future.hpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/boost/thread/future.hpp b/include/boost/thread/future.hpp
|
||||
index 00f504b9b..d15d7ffa5 100644
|
||||
--- a/boost/thread/future.hpp
|
||||
+++ b/boost/thread/future.hpp
|
||||
@@ -4668,7 +4668,7 @@ namespace detail
|
||||
}
|
||||
run_it& operator=(BOOST_THREAD_RV_REF(run_it) x) BOOST_NOEXCEPT {
|
||||
if (this != &x) {
|
||||
- that_=x.that;
|
||||
+ that_=x.that_;
|
||||
x.that_.reset();
|
||||
}
|
||||
return *this;
|
||||
|
|
@ -1,118 +0,0 @@
|
|||
From f3e0cde514e444c2e25a3522d05a6e244fb2f23a Mon Sep 17 00:00:00 2001
|
||||
From: jzmaddock <john@johnmaddock.co.uk>
|
||||
Date: Fri, 17 May 2024 19:17:04 +0100
|
||||
Subject: [PATCH 1/2] Correct float_next(+INF) and float_prior(-INF) Fixes
|
||||
https://github.com/boostorg/math/issues/1132
|
||||
|
||||
---
|
||||
include/boost/math/special_functions/next.hpp | 32 ++++++++++++++-----
|
||||
test/test_next.cpp | 11 +++++--
|
||||
2 files changed, 32 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/include/boost/math/special_functions/next.hpp b/include/boost/math/special_functions/next.hpp
|
||||
index c696b97b5..02a208e4e 100644
|
||||
--- a/boost/math/special_functions/next.hpp
|
||||
+++ b/boost/math/special_functions/next.hpp
|
||||
@@ -194,10 +194,14 @@ T float_next_imp(const T& val, const std::true_type&, const Policy& pol)
|
||||
|
||||
int fpclass = (boost::math::fpclassify)(val);
|
||||
|
||||
- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE))
|
||||
+ if (fpclass == (int)FP_INFINITE)
|
||||
{
|
||||
- if(val < 0)
|
||||
+ if (val < 0)
|
||||
return -tools::max_value<T>();
|
||||
+ return val; // +INF
|
||||
+ }
|
||||
+ else if (fpclass == (int)FP_NAN)
|
||||
+ {
|
||||
return policies::raise_domain_error<T>(
|
||||
function,
|
||||
"Argument must be finite, but got %1%", val, pol);
|
||||
@@ -243,10 +247,14 @@ T float_next_imp(const T& val, const std::false_type&, const Policy& pol)
|
||||
|
||||
int fpclass = (boost::math::fpclassify)(val);
|
||||
|
||||
- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE))
|
||||
+ if (fpclass == (int)FP_INFINITE)
|
||||
{
|
||||
- if(val < 0)
|
||||
+ if (val < 0)
|
||||
return -tools::max_value<T>();
|
||||
+ return val; // +INF
|
||||
+ }
|
||||
+ else if (fpclass == (int)FP_NAN)
|
||||
+ {
|
||||
return policies::raise_domain_error<T>(
|
||||
function,
|
||||
"Argument must be finite, but got %1%", val, pol);
|
||||
@@ -328,10 +336,14 @@ T float_prior_imp(const T& val, const std::true_type&, const Policy& pol)
|
||||
|
||||
int fpclass = (boost::math::fpclassify)(val);
|
||||
|
||||
- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE))
|
||||
+ if (fpclass == (int)FP_INFINITE)
|
||||
{
|
||||
- if(val > 0)
|
||||
+ if (val > 0)
|
||||
return tools::max_value<T>();
|
||||
+ return val; // -INF
|
||||
+ }
|
||||
+ else if (fpclass == (int)FP_NAN)
|
||||
+ {
|
||||
return policies::raise_domain_error<T>(
|
||||
function,
|
||||
"Argument must be finite, but got %1%", val, pol);
|
||||
@@ -378,10 +390,14 @@ T float_prior_imp(const T& val, const std::false_type&, const Policy& pol)
|
||||
|
||||
int fpclass = (boost::math::fpclassify)(val);
|
||||
|
||||
- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE))
|
||||
+ if (fpclass == (int)FP_INFINITE)
|
||||
{
|
||||
- if(val > 0)
|
||||
+ if (val > 0)
|
||||
return tools::max_value<T>();
|
||||
+ return val; // -INF
|
||||
+ }
|
||||
+ else if (fpclass == (int)FP_NAN)
|
||||
+ {
|
||||
return policies::raise_domain_error<T>(
|
||||
function,
|
||||
"Argument must be finite, but got %1%", val, pol);
|
||||
diff --git a/test/test_next.cpp b/test/test_next.cpp
|
||||
index b4f05b437..8bb5f8d99 100644
|
||||
--- a/libs/math/test/test_next.cpp
|
||||
+++ b/libs/math/test/test_next.cpp
|
||||
@@ -171,12 +171,12 @@ void test_values(const T& val, const char* name)
|
||||
BOOST_CHECK_EQUAL(boost::math::float_advance(val, primes[i]), v1);
|
||||
BOOST_CHECK_EQUAL(boost::math::float_advance(val, -primes[i]), v2);
|
||||
}
|
||||
- if(std::numeric_limits<T>::is_specialized && (std::numeric_limits<T>::has_infinity))
|
||||
+ BOOST_IF_CONSTEXPR(std::numeric_limits<T>::is_specialized && (std::numeric_limits<T>::has_infinity))
|
||||
{
|
||||
BOOST_CHECK_EQUAL(boost::math::float_prior(std::numeric_limits<T>::infinity()), (std::numeric_limits<T>::max)());
|
||||
BOOST_CHECK_EQUAL(boost::math::float_next(-std::numeric_limits<T>::infinity()), -(std::numeric_limits<T>::max)());
|
||||
- BOOST_MATH_CHECK_THROW(boost::math::float_prior(-std::numeric_limits<T>::infinity()), std::domain_error);
|
||||
- BOOST_MATH_CHECK_THROW(boost::math::float_next(std::numeric_limits<T>::infinity()), std::domain_error);
|
||||
+ BOOST_CHECK_EQUAL(boost::math::float_prior(-std::numeric_limits<T>::infinity()), -std::numeric_limits<T>::infinity());
|
||||
+ BOOST_CHECK_EQUAL(boost::math::float_next(std::numeric_limits<T>::infinity()), std::numeric_limits<T>::infinity());
|
||||
if(boost::math::policies:: BOOST_MATH_OVERFLOW_ERROR_POLICY == boost::math::policies::throw_on_error)
|
||||
{
|
||||
BOOST_MATH_CHECK_THROW(boost::math::float_prior(-(std::numeric_limits<T>::max)()), std::overflow_error);
|
||||
@@ -188,6 +188,11 @@ void test_values(const T& val, const char* name)
|
||||
BOOST_CHECK_EQUAL(boost::math::float_next((std::numeric_limits<T>::max)()), std::numeric_limits<T>::infinity());
|
||||
}
|
||||
}
|
||||
+ BOOST_IF_CONSTEXPR(std::numeric_limits<T>::is_specialized && (std::numeric_limits<T>::has_quiet_NaN))
|
||||
+ {
|
||||
+ BOOST_MATH_CHECK_THROW(boost::math::float_prior((std::numeric_limits<T>::quiet_NaN)()), std::domain_error);
|
||||
+ BOOST_MATH_CHECK_THROW(boost::math::float_next((std::numeric_limits<T>::quiet_NaN)()), std::domain_error);
|
||||
+ }
|
||||
//
|
||||
// We need to test float_distance over multiple orders of magnitude,
|
||||
// the only way to get an accurate true result is to count the representations
|
||||
--
|
||||
2.45.1
|
||||
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
From ea786494db78efdf178cbe36810f3326156e3347 Mon Sep 17 00:00:00 2001
|
||||
From: Kefu Chai <tchaikov@gmail.com>
|
||||
Date: Fri, 3 May 2024 15:08:05 +0800
|
||||
Subject: [PATCH] make sure eval_convert_to() do not terminate with super large
|
||||
number
|
||||
|
||||
this change is a follow-up of d51f2e9dbb. it intends to
|
||||
address the exception thrown in a noexcept functon.
|
||||
|
||||
a minimal reproducer looks like
|
||||
|
||||
```c++
|
||||
|
||||
int main() {
|
||||
std::string s = "32767456456456456456545678943512357658768763546575675";
|
||||
boost::multiprecision::cpp_int num(s);
|
||||
std::cout << num.convert_to<float>() << std::endl;
|
||||
}
|
||||
```
|
||||
|
||||
since boost 1.79, the code above terminates like
|
||||
```
|
||||
Program returned: 139
|
||||
Program stderr
|
||||
terminate called after throwing an instance of 'boost::wrapexcept<std::domain_error>'
|
||||
what(): Error in function float_next<float>(float): Argument must be finite, but got inf
|
||||
Program terminated with signal: SIGSEGV
|
||||
```
|
||||
|
||||
because `float_next_imp()` throws 'boost::wrapexcept<std::domain_error>'
|
||||
if the number is NAN of INF. and `eval_convert_to()` is marked as
|
||||
`noexcept(boost::multiprecision::detail::is_arithmetic<R>::value &&
|
||||
std::numeric_limits<R>::has_infinity)`,
|
||||
but only `overflow_error` is ignored in the policy passed to
|
||||
`float_next()`.
|
||||
|
||||
so, in this change, `std::domain_error` is ignored as well, so that
|
||||
``num.convert_to<float>()` returns a NaN in this case.
|
||||
|
||||
Refs #553
|
||||
|
||||
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
|
||||
---
|
||||
include/boost/multiprecision/cpp_int/misc.hpp | 9 ++++++---
|
||||
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/include/boost/multiprecision/cpp_int/misc.hpp b/include/boost/multiprecision/cpp_int/misc.hpp
|
||||
index cdae2f75..a8a76400 100644
|
||||
--- a/boost/multiprecision/cpp_int/misc.hpp
|
||||
+++ b/boost/multiprecision/cpp_int/misc.hpp
|
||||
@@ -184,7 +184,9 @@ eval_convert_to(R* result, const cpp_int_backend<MinBits1, MaxBits1, SignType1,
|
||||
|
||||
template <class R, std::size_t MinBits1, std::size_t MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1>
|
||||
inline BOOST_MP_CXX14_CONSTEXPR typename std::enable_if<std::is_floating_point<R>::value && !is_trivial_cpp_int<cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1> >::value, void>::type
|
||||
-eval_convert_to(R* result, const cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1>& backend) noexcept(boost::multiprecision::detail::is_arithmetic<R>::value && std::numeric_limits<R>::has_infinity)
|
||||
+eval_convert_to(R* result, const cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1>& backend) noexcept(boost::multiprecision::detail::is_arithmetic<R>::value &&
|
||||
+ (std::numeric_limits<R>::has_infinity ||
|
||||
+ std::numeric_limits<R>::has_quiet_NaN))
|
||||
{
|
||||
BOOST_MP_FLOAT128_USING using std::ldexp;
|
||||
if (eval_is_zero(backend))
|
||||
@@ -244,10 +246,11 @@ eval_convert_to(R* result, const cpp_int_backend<MinBits1, MaxBits1, SignType1,
|
||||
if ((eval_lsb_imp(backend) < static_cast<std::size_t>(bits)) || eval_bit_test(backend, static_cast<std::size_t>(bits + 1)))
|
||||
{
|
||||
#ifdef BOOST_MP_MATH_AVAILABLE
|
||||
- BOOST_IF_CONSTEXPR(std::numeric_limits<R>::has_infinity)
|
||||
+ BOOST_IF_CONSTEXPR(std::numeric_limits<R>::has_infinity || std::numeric_limits<R>::has_quiet_NaN)
|
||||
{
|
||||
// Must NOT throw:
|
||||
- *result = boost::math::float_next(*result, boost::math::policies::make_policy(boost::math::policies::overflow_error<boost::math::policies::ignore_error>()));
|
||||
+ *result = boost::math::float_next(*result, boost::math::policies::make_policy(boost::math::policies::overflow_error<boost::math::policies::ignore_error>(),
|
||||
+ boost::math::policies::domain_error<boost::math::policies::ignore_error>()));
|
||||
}
|
||||
else
|
||||
{
|
||||
--
|
||||
2.44.0
|
||||
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
From 9c974cf22c53315d90a7c1bef7cea9b4f552d088 Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Palka <ppalka@redhat.com>
|
||||
Date: Wed, 6 Dec 2023 14:21:13 -0500
|
||||
Subject: [PATCH] Work around spurious Boost.Regex test failures
|
||||
|
||||
---
|
||||
libs/regex/example/timer/regex_timer.cpp | 1 +
|
||||
libs/regex/test/static_mutex/static_mutex_test.cpp | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/libs/regex/example/timer/regex_timer.cpp b/libs/regex/example/timer/regex_timer.cpp
|
||||
index d121b70f1..bee544908 100644
|
||||
--- a/libs/regex/example/timer/regex_timer.cpp
|
||||
+++ b/libs/regex/example/timer/regex_timer.cpp
|
||||
@@ -13,6 +13,7 @@
|
||||
#pragma warning(disable: 4996 4127)
|
||||
#endif
|
||||
|
||||
+#define BOOST_TIMER_ENABLE_DEPRECATED
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/regex.hpp>
|
||||
#include <boost/cregex.hpp>
|
||||
diff --git a/libs/regex/test/static_mutex/static_mutex_test.cpp b/libs/regex/test/static_mutex/static_mutex_test.cpp
|
||||
index be7500bd3..935e74525 100644
|
||||
--- a/libs/regex/test/static_mutex/static_mutex_test.cpp
|
||||
+++ b/libs/regex/test/static_mutex/static_mutex_test.cpp
|
||||
@@ -16,6 +16,7 @@
|
||||
* DESCRIPTION: test program for boost::static_mutex.
|
||||
*/
|
||||
|
||||
+#define BOOST_TIMER_ENABLE_DEPRECATED
|
||||
#include <boost/regex/pending/static_mutex.hpp>
|
||||
#include <boost/thread/thread.hpp>
|
||||
#include <boost/timer.hpp>
|
||||
--
|
||||
2.43.0
|
||||
|
||||
42
boost-1.90-system.patch
Normal file
42
boost-1.90-system.patch
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
From d9554db26c3dbb00a6a293ee4fd4966e4e278da8 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Dimov <pdimov@gmail.com>
|
||||
Date: Mon, 15 Dec 2025 21:51:45 +0200
|
||||
Subject: [PATCH] Install boost_system as header-only
|
||||
|
||||
---
|
||||
boost-install.jam | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/boost-install.jam b/boost-install.jam
|
||||
index b87e308..5e6bfa6 100644
|
||||
--- a/tools/boost_install/boost-install.jam
|
||||
+++ b/tools/boost_install/boost-install.jam
|
||||
@@ -1015,7 +1015,7 @@ local rule install-cmake-config- ( install-or-stage : version : name : requireme
|
||||
|
||||
local library-type = UNKNOWN ;
|
||||
|
||||
- if $(name) = boost_headers || $(name) = boost_math || $(name) = boost_exception
|
||||
+ if $(name) = boost_headers || $(name) = boost_math || $(name) = boost_exception || $(name) = boost_system
|
||||
{
|
||||
library-type = INTERFACE ;
|
||||
}
|
||||
From 9529e070ea9e9afd1da17edd48993d560fdc0d7a Mon Sep 17 00:00:00 2001
|
||||
From: Peter Dimov <pdimov@gmail.com>
|
||||
Date: Mon, 15 Dec 2025 21:52:49 +0200
|
||||
Subject: [PATCH] Still install boost_system, for the CMake configuration. Refs
|
||||
#132.
|
||||
|
||||
---
|
||||
build.jam | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/build.jam b/build.jam
|
||||
index 65da5aa6..5b6545c8 100644
|
||||
--- a/libs/system//build.jam
|
||||
+++ b/libs/system//build.jam
|
||||
@@ -21,4 +21,5 @@ explicit
|
||||
;
|
||||
|
||||
call-if : boost-library system
|
||||
+ : install boost_system
|
||||
;
|
||||
31
boost-1.90.0-no-rpath.patch
Normal file
31
boost-1.90.0-no-rpath.patch
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
From 6a8ff06728b64a1121a6179d891ab0baf3b9290b Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Palka <ppalka@redhat.com>
|
||||
Date: Mon, 4 Dec 2023 09:27:13 -0500
|
||||
Subject: [PATCH] Adjust options to remove RPATH for Fedora package builds
|
||||
|
||||
---
|
||||
tools/build/src/tools/gcc.jam | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
|
||||
index c753afc23..e0b627726 100644
|
||||
--- a/tools/build/src/tools/gcc.jam
|
||||
+++ b/tools/build/src/tools/gcc.jam
|
||||
@@ -1035,12 +1035,12 @@ rule link.dll ( targets * : sources * : properties * )
|
||||
|
||||
actions link bind LIBRARIES
|
||||
{
|
||||
- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<:T)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS))
|
||||
+ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -o "$(<:T)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS))
|
||||
}
|
||||
|
||||
actions link.dll bind LIBRARIES
|
||||
{
|
||||
- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION)$(SPACE)-Wl,$(RPATH) -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2]:T)" -o "$(<[1]:T)" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS))
|
||||
+ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2]:T)" -o "$(<[1]:T)" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS))
|
||||
}
|
||||
|
||||
###
|
||||
--
|
||||
2.43.0
|
||||
|
||||
212
boost.spec
212
boost.spec
|
|
@ -42,11 +42,17 @@
|
|||
%bcond_without quadmath
|
||||
%endif
|
||||
|
||||
%ifnarch x86_64
|
||||
%bcond_with stacktrace_from_exception
|
||||
%else
|
||||
%bcond_without stacktrace_from_exception
|
||||
%endif
|
||||
|
||||
Name: boost
|
||||
%global real_name boost
|
||||
Summary: The free peer-reviewed portable C++ source libraries
|
||||
Version: 1.83.0
|
||||
Release: 17%{?dist}
|
||||
Version: 1.90.0
|
||||
Release: 1%{?dist}
|
||||
License: BSL-1.0 AND MIT AND Python-2.0.1
|
||||
|
||||
# Replace each . with _ in %%{version}
|
||||
|
|
@ -58,12 +64,11 @@ License: BSL-1.0 AND MIT AND Python-2.0.1
|
|||
%global toplev_dirname %{real_name}_%{version_enc}
|
||||
URL: http://www.boost.org
|
||||
|
||||
# https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_83_0.tar.bz2
|
||||
Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{version_enc}.tar.bz2
|
||||
Source1: libboost_thread.so
|
||||
# https://archives.boost.io/release/1.90.0/source/boost_1_90_0.tar.bz2
|
||||
Source0: https://archives.boost.io/release/%{version}/source/%{name}_%{version_enc}.tar.bz2
|
||||
# Add a manual page for b2, based on the online documentation:
|
||||
# http://www.boost.org/boost-build2/doc/html/bbv2/overview.html
|
||||
Source2: b2.1
|
||||
Source1: b2.1
|
||||
|
||||
# Since Fedora 13, the Boost libraries are delivered with sonames
|
||||
# equal to the Boost version (e.g., 1.41.0).
|
||||
|
|
@ -103,12 +108,14 @@ Requires: %{name}-random%{?_isa} = %{version}-%{release}
|
|||
Requires: %{name}-regex%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-serialization%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-stacktrace%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-system%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-test%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-thread%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-timer%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-type_erasure%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-wave%{?_isa} = %{version}-%{release}
|
||||
# F44 dropped the boost-system subpackage
|
||||
Obsoletes: boost-system < 1.90.0
|
||||
Conflicts: boost-system < 1.90.0
|
||||
|
||||
%if %{with python3}
|
||||
Recommends: (boost-numpy3 if python3-numpy)
|
||||
|
|
@ -135,7 +142,7 @@ BuildRequires: libzstd-devel
|
|||
Patch0: boost-1.81.0-build-optflags.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1318383
|
||||
Patch1: boost-1.78.0-no-rpath.patch
|
||||
Patch1: boost-1.90.0-no-rpath.patch
|
||||
|
||||
# https://lists.boost.org/Archives/boost/2020/04/248812.php
|
||||
Patch2: boost-1.73.0-cmakedir.patch
|
||||
|
|
@ -143,41 +150,14 @@ Patch2: boost-1.73.0-cmakedir.patch
|
|||
# https://bugzilla.redhat.com/show_bug.cgi?id=1541035
|
||||
Patch3: boost-1.78.0-b2-build-flags.patch
|
||||
|
||||
# https://github.com/boostorg/random/issues/82
|
||||
Patch4: boost-1.76.0-random-test.patch
|
||||
|
||||
# PR https://github.com/boostorg/interval/pull/30
|
||||
# Fixes narrowing conversions for ppc -
|
||||
# https://github.com/boostorg/interval/issues/29
|
||||
Patch5: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2178210
|
||||
# https://github.com/boostorg/phoenix/issues/111
|
||||
# https://github.com/boostorg/phoenix/issues/115
|
||||
Patch6: boost-1.81-phoenix-multiple-defn.patch
|
||||
|
||||
# https://github.com/boostorg/random/commit/7561690135c67ecf88c2133bad7680ebd2665c36
|
||||
# https://github.com/boostorg/random/commit/4239d93dad32a11e4c3829050f8070d456266133
|
||||
Patch7: boost-1.81.0-random-test-fixes.patch
|
||||
|
||||
Patch8: boost-1.83-regex-test-fixes.patch
|
||||
|
||||
# https://github.com/boostorg/multiprecision/commit/ea786494db78efdf178cbe36810f3326156e3347
|
||||
Patch9: boost-1.83-multiprecision-convert-noexcept.patch
|
||||
|
||||
# https://github.com/boostorg/math/commit/f3e0cde514e444c2e25a3522d05a6e244fb2f23a
|
||||
# https://github.com/boostorg/math/issues/1132
|
||||
Patch10: boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch
|
||||
|
||||
# https://github.com/boostorg/context/pull/234
|
||||
Patch11: boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch
|
||||
|
||||
# https://github.com/boostorg/python/pull/432
|
||||
# https://github.com/boostorg/python/pull/443
|
||||
Patch12: boost-1.83-NumPy-2.x-dtype.patch
|
||||
|
||||
# https://github.com/boostorg/thread/pull/408
|
||||
Patch13: boost-1.83-fix-no-member-named_that_error.patch
|
||||
# Install boost_system for the CMake configuration
|
||||
# https://github.com/boostorg/system/issues/132
|
||||
Patch6: boost-1.90-system.patch
|
||||
|
||||
%bcond_with tests
|
||||
%bcond_with docs_generated
|
||||
|
|
@ -202,14 +182,33 @@ types and operations on these data types, as well as memory ordering
|
|||
constraints required for coordinating multiple threads through atomic
|
||||
variables.
|
||||
|
||||
%package charconv
|
||||
Summary: Run-time component of boost charconv library
|
||||
|
||||
%description charconv
|
||||
|
||||
Run-time support for Boost.Charconv, an implementation of <charconv>
|
||||
in C++11.
|
||||
|
||||
%package chrono
|
||||
Summary: Run-time component of boost chrono library
|
||||
Requires: %{name}-system%{?_isa} = %{version}-%{release}
|
||||
Obsoletes: boost-system < 1.90.0
|
||||
Conflicts: boost-system < 1.90.0
|
||||
|
||||
%description chrono
|
||||
|
||||
Run-time support for Boost.Chrono, a set of useful time utilities.
|
||||
|
||||
%package cobalt
|
||||
Summary: Run-time component of boost cobalt library
|
||||
|
||||
%description cobalt
|
||||
|
||||
Boost.Cobalt provides a set of easy to use coroutine primitives & utilities
|
||||
running on top of boost.asio. These will be of interest for applications that
|
||||
perform a lot of IO that want to not block unnecessarily, yet still want to
|
||||
have linear & readable code (i..e. avoid callbacks).
|
||||
|
||||
%package container
|
||||
Summary: Run-time component of boost container library
|
||||
|
||||
|
|
@ -218,7 +217,8 @@ Summary: Run-time component of boost container library
|
|||
Boost.Container library implements several well-known containers,
|
||||
including STL containers. The aim of the library is to offer advanced
|
||||
features not present in standard containers or to offer the latest
|
||||
standard draft features for compilers that comply with C++03.
|
||||
standard draft features for compilers that don't comply with the
|
||||
latest C++ standard.
|
||||
|
||||
%package contract
|
||||
Summary: Run-time component of boost contract library
|
||||
|
|
@ -275,7 +275,8 @@ micro-/userland-threads (fibers) scheduled cooperatively.
|
|||
%package filesystem
|
||||
Summary: Run-time component of boost filesystem library
|
||||
Requires: %{name}-atomic%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-system%{?_isa} = %{version}-%{release}
|
||||
Obsoletes: boost-system < 1.90.0
|
||||
Conflicts: boost-system < 1.90.0
|
||||
|
||||
%description filesystem
|
||||
|
||||
|
|
@ -314,8 +315,9 @@ simply "JSON"
|
|||
%package locale
|
||||
Summary: Run-time component of boost locale library
|
||||
Requires: %{name}-chrono%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-system%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-thread%{?_isa} = %{version}-%{release}
|
||||
Obsoletes: boost-system < 1.90.0
|
||||
Conflicts: boost-system < 1.90.0
|
||||
|
||||
%description locale
|
||||
|
||||
|
|
@ -332,17 +334,17 @@ Requires: %{name}-thread%{?_isa} = %{version}-%{release}
|
|||
|
||||
%description log
|
||||
|
||||
Boost.Log library aims to make logging significantly easier for the
|
||||
application developer. It provides a wide range of out-of-the-box
|
||||
tools along with public interfaces for extending the library.
|
||||
Run-time support for Boost.Log, a modular and extensible logging
|
||||
library that supports both narrow-character and wide-character logging.
|
||||
|
||||
%package math
|
||||
Summary: Math functions for boost TR1 library
|
||||
Summary: Run-time component of boost math toolkit
|
||||
|
||||
%description math
|
||||
|
||||
Run-time support for C99 and C++ TR1 C-style Functions from the math
|
||||
portion of Boost.TR1.
|
||||
Run-time support for Boost.Math, including floating-point utilities,
|
||||
specific width floating-point types, mathematical constants,
|
||||
statistical distributions, special functions, and more.
|
||||
|
||||
%package nowide
|
||||
Summary: Standard library functions with UTF-8 API on Windows
|
||||
|
|
@ -368,6 +370,14 @@ support for the NumPy extension of the Boost Python Library for Python 3.
|
|||
|
||||
%endif
|
||||
|
||||
%package process
|
||||
Summary: Run-time component of boost process library
|
||||
|
||||
%description process
|
||||
|
||||
Run-time support of the Boost.Process library, for managing system
|
||||
processes.
|
||||
|
||||
%package program-options
|
||||
Summary: Run-time component of boost program_options library
|
||||
|
||||
|
|
@ -419,14 +429,6 @@ Summary: Run-time component of boost stacktrace library
|
|||
|
||||
Run-time component of the Boost stacktrace library.
|
||||
|
||||
%package system
|
||||
Summary: Run-time component of boost system support library
|
||||
|
||||
%description system
|
||||
|
||||
Run-time component of Boost operating system support library, including
|
||||
the diagnostics support that is part of the C++11 standard library.
|
||||
|
||||
%package test
|
||||
Summary: Run-time component of boost test library
|
||||
|
||||
|
|
@ -437,7 +439,8 @@ program execution monitoring.
|
|||
|
||||
%package thread
|
||||
Summary: Run-time component of boost thread library
|
||||
Requires: %{name}-system%{?_isa} = %{version}-%{release}
|
||||
Obsoletes: boost-system < 1.90.0
|
||||
Conflicts: boost-system < 1.90.0
|
||||
|
||||
%description thread
|
||||
|
||||
|
|
@ -449,7 +452,8 @@ data specific to individual threads.
|
|||
%package timer
|
||||
Summary: Run-time component of boost timer library
|
||||
Requires: %{name}-chrono%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-system%{?_isa} = %{version}-%{release}
|
||||
Obsoletes: boost-system < 1.90.0
|
||||
Conflicts: boost-system < 1.90.0
|
||||
|
||||
%description timer
|
||||
|
||||
|
|
@ -460,8 +464,9 @@ with as little as one #include and one additional line of code.
|
|||
%package type_erasure
|
||||
Summary: Run-time component of boost type erasure library
|
||||
Requires: %{name}-chrono%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-system%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-thread%{?_isa} = %{version}-%{release}
|
||||
Obsoletes: boost-system < 1.90.0
|
||||
Conflicts: boost-system < 1.90.0
|
||||
|
||||
%description type_erasure
|
||||
|
||||
|
|
@ -481,8 +486,9 @@ Summary: Run-time component of boost C99/C++ preprocessing library
|
|||
Requires: %{name}-chrono%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-date-time%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-filesystem%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-system%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-thread%{?_isa} = %{version}-%{release}
|
||||
Obsoletes: boost-system < 1.90.0
|
||||
Conflicts: boost-system < 1.90.0
|
||||
|
||||
%description wave
|
||||
|
||||
|
|
@ -732,7 +738,7 @@ using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{pyth
|
|||
EOF
|
||||
%endif
|
||||
|
||||
./bootstrap.sh --with-toolset=%{toolchain} --with-icu
|
||||
./bootstrap.sh --with-toolset=%{toolchain} --with-icu --prefix=$RPM_BUILD_ROOT%{_prefix}
|
||||
|
||||
# N.B. When we build the following with PCH, parts of boost (math
|
||||
# library in particular) end up being built second time during
|
||||
|
|
@ -749,20 +755,12 @@ echo ============================= build serial ==================
|
|||
variant=release threading=multi debug-symbols=on pch=off \
|
||||
%if %{with python3}
|
||||
python=%{python3_version} \
|
||||
%endif
|
||||
%if !%{with stacktrace_from_exception}
|
||||
boost.stacktrace.from_exception=off \
|
||||
%endif
|
||||
stage
|
||||
|
||||
# See libs/thread/build/Jamfile.v2 for where this file comes from.
|
||||
if [ $(find serial -type f -name has_atomic_flag_lockfree \
|
||||
-print -quit | wc -l) -ne 0 ]; then
|
||||
DEF=D
|
||||
else
|
||||
DEF=U
|
||||
fi
|
||||
|
||||
m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} \
|
||||
%{SOURCE1} > $(basename %{SOURCE1})
|
||||
|
||||
# Build MPI parts of Boost with OpenMPI support
|
||||
|
||||
%if %{with openmpi} || %{with mpich}
|
||||
|
|
@ -804,7 +802,7 @@ export PATH=/bin${PATH:+:}$PATH
|
|||
|
||||
echo ============================= build Boost.Build ==================
|
||||
(cd tools/build
|
||||
./bootstrap.sh --with-toolset=%{toolchain})
|
||||
./bootstrap.sh --with-toolset=%{toolchain} --prefix=$RPM_BUILD_ROOT%{_prefix})
|
||||
|
||||
%check
|
||||
:
|
||||
|
|
@ -895,14 +893,24 @@ echo ============================= install serial ==================
|
|||
variant=release threading=multi debug-symbols=on pch=off \
|
||||
%if %{with python3}
|
||||
python=%{python3_version} \
|
||||
%endif
|
||||
%if !%{with stacktrace_from_exception}
|
||||
boost.stacktrace.from_exception=off \
|
||||
%endif
|
||||
install
|
||||
|
||||
# Override DSO symlink with a linker script. See the linker script
|
||||
# itself for details of why we need to do this.
|
||||
[ -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so ] # Must be present
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so
|
||||
install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/
|
||||
cat > $RPM_BUILD_ROOT%{_libdir}/libboost_system.so << EOT
|
||||
/* GNU ld linker script */
|
||||
|
||||
/*
|
||||
There is no runtime library for Boost.System.
|
||||
This empty linker script exists to support Fedora packages which use
|
||||
-lboost_system when linking and so require a library with that name.
|
||||
|
||||
This linker script will be remove in a future Fedora release.
|
||||
*/
|
||||
EOT
|
||||
chmod 644 $RPM_BUILD_ROOT%{_libdir}/libboost_system.so
|
||||
|
||||
echo ============================= install Boost.Build ==================
|
||||
(cd tools/build
|
||||
|
|
@ -925,7 +933,7 @@ echo ============================= install Boost.Build ==================
|
|||
rm $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp
|
||||
rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp
|
||||
# Install the manual page
|
||||
%{__install} -p -m 644 %{SOURCE2} -D $RPM_BUILD_ROOT%{_mandir}/man1/b2.1
|
||||
%{__install} -p -m 644 %{SOURCE1} -D $RPM_BUILD_ROOT%{_mandir}/man1/b2.1
|
||||
)
|
||||
|
||||
echo ============================= install Boost.QuickBook ==================
|
||||
|
|
@ -1001,6 +1009,11 @@ rm -f tmp-doc-files-to-be-installed
|
|||
rm -f tmp-doc-directories
|
||||
%{__install} -p -m 644 -t $EXAMPLESPATH LICENSE_1_0.txt
|
||||
|
||||
# The predef_check utility doesn't seem useful to package.
|
||||
(cd $RPM_BUILD_ROOT/%{_datadir}
|
||||
rm boost_predef/tools/check/*
|
||||
rm boost_predef/build.jam
|
||||
)
|
||||
|
||||
%post doctools
|
||||
CATALOG=%{_sysconfdir}/xml/catalog
|
||||
|
|
@ -1035,10 +1048,19 @@ fi
|
|||
%license LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_atomic.so.%{sonamever}
|
||||
|
||||
%files charconv
|
||||
%license LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_charconv.so.%{sonamever}
|
||||
|
||||
%files chrono
|
||||
%license LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_chrono.so.%{sonamever}
|
||||
|
||||
%files cobalt
|
||||
%license LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_cobalt.so.%{sonamever}
|
||||
%{_libdir}/libboost_cobalt_io.so.%{sonamever}
|
||||
|
||||
%files container
|
||||
%license LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_container.so.%{sonamever}
|
||||
|
|
@ -1109,6 +1131,10 @@ fi
|
|||
%{_libdir}/libboost_numpy%{python3_version_nodots}.so.%{sonamever}
|
||||
%endif
|
||||
|
||||
%files process
|
||||
%license LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_process.so.%{sonamever}
|
||||
|
||||
%files test
|
||||
%license LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_prg_exec_monitor.so.%{sonamever}
|
||||
|
|
@ -1142,10 +1168,9 @@ fi
|
|||
%{_libdir}/libboost_stacktrace_addr2line.so.%{sonamever}
|
||||
%{_libdir}/libboost_stacktrace_basic.so.%{sonamever}
|
||||
%{_libdir}/libboost_stacktrace_noop.so.%{sonamever}
|
||||
|
||||
%files system
|
||||
%license LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_system.so.%{sonamever}
|
||||
%if %{with stacktrace_from_exception}
|
||||
%{_libdir}/libboost_stacktrace_from_exception.so.%{sonamever}
|
||||
%endif
|
||||
|
||||
%files thread
|
||||
%license LICENSE_1_0.txt
|
||||
|
|
@ -1182,7 +1207,10 @@ fi
|
|||
%{_includedir}/%{name}
|
||||
%{_libdir}/cmake
|
||||
%{_libdir}/libboost_atomic.so
|
||||
%{_libdir}/libboost_charconv.so
|
||||
%{_libdir}/libboost_chrono.so
|
||||
%{_libdir}/libboost_cobalt.so
|
||||
%{_libdir}/libboost_cobalt_io.so
|
||||
%{_libdir}/libboost_container.so
|
||||
%{_libdir}/libboost_contract.so
|
||||
%if %{with context}
|
||||
|
|
@ -1210,6 +1238,7 @@ fi
|
|||
%if %{with python3}
|
||||
%{_libdir}/libboost_numpy%{python3_version_nodots}.so
|
||||
%endif
|
||||
%{_libdir}/libboost_process.so
|
||||
%{_libdir}/libboost_prg_exec_monitor.so
|
||||
%{_libdir}/libboost_unit_test_framework.so
|
||||
%{_libdir}/libboost_program_options.so
|
||||
|
|
@ -1223,6 +1252,9 @@ fi
|
|||
%{_libdir}/libboost_stacktrace_addr2line.so
|
||||
%{_libdir}/libboost_stacktrace_basic.so
|
||||
%{_libdir}/libboost_stacktrace_noop.so
|
||||
%if %{with stacktrace_from_exception}
|
||||
%{_libdir}/libboost_stacktrace_from_exception.so
|
||||
%endif
|
||||
%{_libdir}/libboost_system.so
|
||||
%{_libdir}/libboost_thread.so
|
||||
%{_libdir}/libboost_timer.so
|
||||
|
|
@ -1251,7 +1283,9 @@ fi
|
|||
%license LICENSE_1_0.txt
|
||||
%{_libdir}/openmpi/lib/cmake
|
||||
%{_libdir}/openmpi/lib/libboost_mpi.so
|
||||
%{_libdir}/openmpi/lib/libboost_graph.so
|
||||
%{_libdir}/openmpi/lib/libboost_graph_parallel.so
|
||||
%{_libdir}/openmpi/lib/libboost_container.so
|
||||
|
||||
%if %{with python3}
|
||||
|
||||
|
|
@ -1268,7 +1302,9 @@ fi
|
|||
|
||||
%files graph-openmpi
|
||||
%license LICENSE_1_0.txt
|
||||
%{_libdir}/openmpi/lib/libboost_graph.so.%{sonamever}
|
||||
%{_libdir}/openmpi/lib/libboost_graph_parallel.so.%{sonamever}
|
||||
%{_libdir}/openmpi/lib/libboost_container.so.%{sonamever}
|
||||
|
||||
%endif
|
||||
|
||||
|
|
@ -1283,7 +1319,9 @@ fi
|
|||
%license LICENSE_1_0.txt
|
||||
%{_libdir}/mpich/lib/cmake
|
||||
%{_libdir}/mpich/lib/libboost_mpi.so
|
||||
%{_libdir}/mpich/lib/libboost_graph.so
|
||||
%{_libdir}/mpich/lib/libboost_graph_parallel.so
|
||||
%{_libdir}/mpich/lib/libboost_container.so
|
||||
|
||||
%if %{with python3}
|
||||
|
||||
|
|
@ -1299,7 +1337,9 @@ fi
|
|||
|
||||
%files graph-mpich
|
||||
%license LICENSE_1_0.txt
|
||||
%{_libdir}/mpich/lib/libboost_graph.so.%{sonamever}
|
||||
%{_libdir}/mpich/lib/libboost_graph_parallel.so.%{sonamever}
|
||||
%{_libdir}/mpich/lib/libboost_container.so.%{sonamever}
|
||||
|
||||
%endif
|
||||
|
||||
|
|
@ -1319,6 +1359,12 @@ fi
|
|||
%{_mandir}/man1/b2.1*
|
||||
|
||||
%changelog
|
||||
* Sat Jan 10 2026 Jonathan Wakely <jwakely@fedoraproject.org> - 1.90.0-1
|
||||
- Rebase to 1.90.0
|
||||
- See https://fedoraproject.org/wiki/Changes/F44Boost189
|
||||
- Drop boost-system subpackage and libboost_thread.so linker script
|
||||
- Add new boost-charconv, boost-cobalt, and boost-process subpackages
|
||||
|
||||
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 1.83.0-17
|
||||
- Rebuilt for Python 3.14.0rc3 bytecode
|
||||
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
changequote(`[', `]')dnl
|
||||
/* GNU ld script
|
||||
|
||||
Boost.Thread header files pull in enough of Boost.System that
|
||||
symbols from the latter library are referenced by a compiled object
|
||||
that includes Boost.Thread headers. libboost_system-mt.so is among
|
||||
libboost_thread-mt.so's DT_NEEDED, but program linker requires that
|
||||
missing symbols are satisfied by direct dependency, not by a
|
||||
transitive one. Hence this linker script, which brings in the
|
||||
Boost.System DSO. */
|
||||
|
||||
INPUT(libboost_thread.so.VERSION)
|
||||
INPUT(libboost_system.so.VERSION)
|
||||
ifdef([HAS_ATOMIC_FLAG_LOCKFREE],[],
|
||||
[
|
||||
/* If the given architecture doesn't have lock-free implementation of
|
||||
boost::atomic_flag, the dependency on Boost.Atomic may leak from
|
||||
the header files to client binaries. */
|
||||
|
||||
INPUT(libboost_atomic.so.VERSION)
|
||||
])dnl
|
||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (boost_1_83_0.tar.bz2) = d133b521bd754dc35a9bd30d8032bd2fd866026d90af2179e43bfd7bd816841f7f3b84303f52c0e54aebc373f4e4edd601a8f5a5e0c47500e0e852e04198a711
|
||||
SHA512 (boost_1_90_0.tar.bz2) = 1c81b60f63367d7249f277f0a569c181926dcf5a725e30433dd336205f1782880489dd00df6a1a74fd107765d3ca2cd49f806788cabb7d5700a8a55927a9a199
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue