Compare commits

..

4 commits

Author SHA1 Message Date
Jonathan Wakely
007f23d850 Add boost-json to umbrella package 2022-07-14 13:28:47 +01:00
Jonathan Wakely
641b90a547 Add patch to fix filesystem::copy_file EXDEV handling
Resolves: #2106878
2022-07-14 12:53:00 +01:00
Jonathan Wakely
2775e939cb Add patch to fix Asio includes
Resolves: #2106441
2022-07-14 12:52:50 +01:00
Thomas W Rodgers
e0266acc24 Add BuildRequires: libzstd-devel to fix (#2042336) 2022-04-27 18:28:01 +01:00
25 changed files with 2152 additions and 575 deletions

View file

@ -0,0 +1,30 @@
--- boost_1_68_0/libs/pool/test/Jamfile.v2.orig 2018-08-01 20:50:52.000000000 +0000
+++ boost_1_68_0/libs/pool/test/Jamfile.v2 2018-12-01 17:29:33.322195409 +0000
@@ -22,18 +22,18 @@
import testing ;
test-suite pool :
- [ run test_simple_seg_storage.cpp : : : <toolset>msvc:<cxxflags>-wd4267 ]
- [ run test_pool_alloc.cpp ]
- [ run pool_msvc_compiler_bug_test.cpp : : : <toolset>msvc:<cxxflags>-wd4512 ]
- [ run test_msvc_mem_leak_detect.cpp ]
- [ run test_bug_3349.cpp ]
- [ run test_bug_4960.cpp ]
+ [ run test_simple_seg_storage.cpp : : : <toolset>msvc:<cxxflags>-wd4267 <library>/boost/system//boost_system ]
+ [ run test_pool_alloc.cpp : : : <library>/boost/system//boost_system ]
+ [ run pool_msvc_compiler_bug_test.cpp : : : <toolset>msvc:<cxxflags>-wd4512 <library>/boost/system//boost_system ]
+ [ run test_msvc_mem_leak_detect.cpp : : : <library>/boost/system//boost_system ]
+ [ run test_bug_3349.cpp : : : <library>/boost/system//boost_system ]
+ [ run test_bug_4960.cpp : : : <library>/boost/system//boost_system ]
[ run test_bug_1252.cpp : : :
<toolset>clang:<cxxflags>-Wno-c++11-long-long
<toolset>gcc:<cxxflags>-Wno-long-long
- <toolset>pathscale:<cxxflags>-Wno-long-long ]
- [ run test_bug_2696.cpp ]
- [ run test_bug_5526.cpp ]
+ <toolset>pathscale:<cxxflags>-Wno-long-long <library>/boost/system//boost_system ]
+ [ run test_bug_2696.cpp : : : <library>/boost/system//boost_system ]
+ [ run test_bug_5526.cpp : : : <library>/boost/system//boost_system ]
[ run test_threading.cpp : : : <threading>multi <library>/boost/thread//boost_thread ]
[ compile test_poisoned_macros.cpp ]
;

120
boost-1.58.0-pool.patch Normal file
View file

@ -0,0 +1,120 @@
Index: boost/pool/pool.hpp
===================================================================
--- boost/pool/pool.hpp (revision 78317)
+++ 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
===================================================================
--- libs/pool/test/test_bug_6701.cpp (revision 78326)
+++ 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;
+}

View file

@ -0,0 +1,37 @@
From daf4ef50c88c2b9a6bf2c40b537eebc202caad6e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Gonzalve?=
<sebastien.gonzalve@aliceadsl.fr>
Date: Sat, 14 Nov 2020 10:39:47 +0100
Subject: [PATCH] Do not try to access element when vector is empty
Trying to access tmp[0] causes a crash on Fedora when assertion on STL
are enabled.
/usr/include/c++/10/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>; std::vector<_Tp, _Alloc>::reference = unsigned char&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed.
This patch just passes nullptr as pointer to getSortKey() when tmp size
is 0, preventing dereferencing elements in empty vector.
I guess that &tmp[0] should be optimized as 'no real access' when
disabling assertion, but actually leads to crash when assert are
enabled.
---
src/icu/collator.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/locale/src/icu/collator.cpp b/libs/locale/src/icu/collator.cpp
index 7f1ea6a..dc59e8c 100644
--- a/libs/locale/src/icu/collator.cpp
+++ b/libs/locale/src/icu/collator.cpp
@@ -93,7 +93,7 @@ namespace boost {
std::vector<uint8_t> tmp;
tmp.resize(str.length());
icu::Collator *collate = get_collator(level);
- int len = collate->getSortKey(str,&tmp[0],tmp.size());
+ int len = collate->getSortKey(str,tmp.empty()?nullptr:&tmp[0],tmp.size());
if(len > int(tmp.size())) {
tmp.resize(len);
collate->getSortKey(str,&tmp[0],tmp.size());
--
2.26.2

View file

@ -0,0 +1,60 @@
diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
index ff3209f7b..1d8e7cbfe 100644
--- a/tools/build/src/tools/gcc.jam
+++ b/tools/build/src/tools/gcc.jam
@@ -577,7 +577,7 @@ rule compile.fortran ( targets * : sources * : properties * )
actions compile.c++ bind PCH_FILE
{
- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)"
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)"
}
actions compile.c bind PCH_FILE
@@ -587,7 +587,7 @@ actions compile.c bind PCH_FILE
actions compile.c++.preprocess bind PCH_FILE
{
- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)"
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)"
}
actions compile.c.preprocess bind PCH_FILE
@@ -704,20 +704,20 @@ actions compile.c.pch
###
# Declare flags and action for compilation.
-toolset.flags gcc.compile OPTIONS <optimization>off : -O0 ;
-toolset.flags gcc.compile OPTIONS <optimization>speed : -O3 ;
-toolset.flags gcc.compile OPTIONS <optimization>space : -Os ;
-
-toolset.flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
-toolset.flags gcc.compile OPTIONS <inlining>on : -Wno-inline ;
-toolset.flags gcc.compile OPTIONS <inlining>full : -finline-functions -Wno-inline ;
-
-toolset.flags gcc.compile OPTIONS <warnings>off : -w ;
-toolset.flags gcc.compile OPTIONS <warnings>on : -Wall ;
-toolset.flags gcc.compile OPTIONS <warnings>all : -Wall ;
-toolset.flags gcc.compile OPTIONS <warnings>extra : -Wall -Wextra ;
-toolset.flags gcc.compile OPTIONS <warnings>pedantic : -Wall -Wextra -pedantic ;
-toolset.flags gcc.compile OPTIONS <warnings-as-errors>on : -Werror ;
+toolset.flags gcc.compile OPTIONS <optimization>off : ;
+toolset.flags gcc.compile OPTIONS <optimization>speed : ;
+toolset.flags gcc.compile OPTIONS <optimization>space : ;
+
+toolset.flags gcc.compile OPTIONS <inlining>off : ;
+toolset.flags gcc.compile OPTIONS <inlining>on : ;
+toolset.flags gcc.compile OPTIONS <inlining>full : ;
+
+toolset.flags gcc.compile OPTIONS <warnings>off : ;
+toolset.flags gcc.compile OPTIONS <warnings>on : ;
+toolset.flags gcc.compile OPTIONS <warnings>all : ;
+toolset.flags gcc.compile OPTIONS <warnings>extra : ;
+toolset.flags gcc.compile OPTIONS <warnings>pedantic : ;
+toolset.flags gcc.compile OPTIONS <warnings-as-errors>on : ;
toolset.flags gcc.compile OPTIONS <debug-symbols>on : -g ;
toolset.flags gcc.compile OPTIONS <profiling>on : -pg ;
--
2.26.2

View file

@ -0,0 +1,25 @@
diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
index 02dc154cf..c076f70f4 100644
--- a/tools/build/src/tools/gcc.jam
+++ b/tools/build/src/tools/gcc.jam
@@ -1132,17 +1132,17 @@ actions link.mingw bind LIBRARIES
actions link.dll.mingw bind LIBRARIES
{
- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" -shared @"@($(<[-1]:T).rsp:E=$(START-GROUP) "$(>:T)" "$(LIBRARIES:T)" $(FINDLIBS-ST-PFX:T) -l$(FINDLIBS-ST:T) $(FINDLIBS-SA-PFX:T) -l$(FINDLIBS-SA:T) $(END-GROUP))" $(OPTIONS) $(USER_OPTIONS)
+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" "$(.IMPLIB-COMMAND)$(<[0])" -o "$(<[-1])" -shared @"@($(<[-1]:T).rsp:E=$(START-GROUP) "$(>:T)" "$(LIBRARIES:T)" $(FINDLIBS-ST-PFX:T) -l$(FINDLIBS-ST:T) $(FINDLIBS-SA-PFX:T) -l$(FINDLIBS-SA:T) $(END-GROUP))" $(OPTIONS) $(USER_OPTIONS)
}
actions link bind LIBRARIES
{
- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -o "$(<)" $(START-GROUP) "$(>)" "$(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)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
}
###

View file

@ -0,0 +1,114 @@
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;

View file

@ -0,0 +1,34 @@
From 71964b22c7fade69cc4caa1c869a868e3a32cc97 Mon Sep 17 00:00:00 2001
From: Christopher Kohlhoff <chris@kohlhoff.com>
Date: Wed, 2 Mar 2022 21:41:04 +1100
Subject: [PATCH] Header <utility> is needed for std::exchange.
---
include/boost/asio/awaitable.hpp | 1 +
include/boost/asio/impl/awaitable.hpp | 1 -
2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/boost/asio/awaitable.hpp b/include/boost/asio/awaitable.hpp
index a9cc90d43..750198995 100644
--- a/include/boost/asio/awaitable.hpp
+++ b/include/boost/asio/awaitable.hpp
@@ -25,6 +25,7 @@
# include <experimental/coroutine>
#endif // defined(BOOST_ASIO_HAS_STD_COROUTINE)
+#include <utility>
#include <boost/asio/any_io_executor.hpp>
#include <boost/asio/detail/push_options.hpp>
diff --git a/include/boost/asio/impl/awaitable.hpp b/include/boost/asio/impl/awaitable.hpp
index 49a47e29a..c66fa74c6 100644
--- a/include/boost/asio/impl/awaitable.hpp
+++ b/include/boost/asio/impl/awaitable.hpp
@@ -19,7 +19,6 @@
#include <exception>
#include <new>
#include <tuple>
-#include <utility>
#include <boost/asio/detail/thread_context.hpp>
#include <boost/asio/detail/thread_info_base.hpp>
#include <boost/asio/detail/type_traits.hpp>

View file

@ -0,0 +1,25 @@
From 5dde5a5a3c12dd8f52cb61ba220ec221ecfa98f0 Mon Sep 17 00:00:00 2001
From: Thomas Rodgers <rodgert@twrodgers.com>
Date: Thu, 29 Jul 2021 10:15:37 -0700
Subject: [PATCH] Use options from RPM for release builds with GCC
---
tools/build/src/engine/build.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh
index 58f41cb4a..f85040f99 100755
--- a/tools/build/src/engine/build.sh
+++ b/tools/build/src/engine/build.sh
@@ -325,7 +325,7 @@ case "${B2_TOOLSET}" in
B2_CXX="${B2_CXX} -pthread"
;;
esac
- B2_CXXFLAGS_RELEASE="-O2 -s"
+ B2_CXXFLAGS_RELEASE="${RPM_OPT_FLAGS} ${RPM_LD_FLAGS}"
B2_CXXFLAGS_DEBUG="-O0 -g"
;;
--
2.31.1

View file

@ -0,0 +1,152 @@
From 4b9052f1e0b2acf625e8247582f44acdcc78a4ce Mon Sep 17 00:00:00 2001
From: Andrey Semashev <andrey.semashev@gmail.com>
Date: Tue, 18 May 2021 22:53:40 +0300
Subject: [PATCH] Fallback to read/write loop if sendfile/copy_file_range fail.
Since sendfile and copy_file_range can fail for some filesystems
(e.g. eCryptFS), we have to fallback to the read/write loop in copy_file
implementation. Additionally, since we implement the fallback now,
fallback to sendfile if copy_file_range fails with EXDEV and use
copy_file_range on older kernels that don't implement it for
cross-filesystem copying. This may be beneficial if copy_file_range
is used within a filesystem, and is performed on a remote server NFS or CIFS).
Also, it was discovered that copy_file_range can also fail with EOPNOTSUPP
when it is performed on an NFSv4 filesystem and the remote server does
not support COPY operation. This happens on some patched kernels in RHEL/CentOS.
Lastly, to make sure the copy_file_data pointer is accessed atomically,
it is now declared as an atomic value. If std::atomic is unavailable,
Boost.Atomic is used.
Fixes https://github.com/boostorg/filesystem/issues/184.
---
diff --git a/src/operations.cpp b/src/operations.cpp
index abc7e4f6e..8f1130f00 100644
--- a/libs/filesystem/src/operations.cpp
+++ b/libs/filesystem/src/operations.cpp
@@ -135,6 +135,8 @@ using std::time_t;
# endif // BOOST_WINDOWS_API
#include "error_handling.hpp"
+#include <atomic>
+namespace atomic_ns = std;
namespace fs = boost::filesystem;
using boost::filesystem::path;
@@ -521,6 +522,9 @@ int copy_file_data_read_write(int infile, int outfile, uintmax_t size)
if (BOOST_UNLIKELY(!buf.get()))
return ENOMEM;
+ // Don't use file size to limit the amount of data to copy since some filesystems, like procfs or sysfs,
+ // provide files with generated content and indicate that their size is zero or 4096. Just copy as much data
+ // as we can read from the input file.
while (true)
{
ssize_t sz_read = ::read(infile, buf.get(), buf_sz);
@@ -555,7 +559,7 @@ int copy_file_data_read_write(int infile, int outfile, uintmax_t size)
}
//! Pointer to the actual implementation of the copy_file_data implementation
-copy_file_data_t* copy_file_data = &copy_file_data_read_write;
+atomic_ns::atomic< copy_file_data_t* > copy_file_data(&copy_file_data_read_write);
#if defined(BOOST_FILESYSTEM_USE_SENDFILE)
@@ -577,6 +581,23 @@ int copy_file_data_sendfile(int infile, int outfile, uintmax_t size)
int err = errno;
if (err == EINTR)
continue;
+
+ if (offset == 0u)
+ {
+ // sendfile may fail with EINVAL if the underlying filesystem does not support it
+ if (err == EINVAL)
+ {
+ fallback_to_read_write:
+ return copy_file_data_read_write(infile, outfile, size);
+ }
+
+ if (err == ENOSYS)
+ {
+ copy_file_data.store(&copy_file_data_read_write, atomic_ns::memory_order_relaxed);
+ goto fallback_to_read_write;
+ }
+ }
+
return err;
}
@@ -611,6 +632,44 @@ int copy_file_data_copy_file_range(int infile, int outfile, uintmax_t size)
int err = errno;
if (err == EINTR)
continue;
+
+ if (offset == 0u)
+ {
+ // copy_file_range may fail with EINVAL if the underlying filesystem does not support it.
+ // In some RHEL/CentOS 7.7-7.8 kernel versions, copy_file_range on NFSv4 is also known to return EOPNOTSUPP
+ // if the remote server does not support COPY, despite that it is not a documented error code.
+ // See https://patchwork.kernel.org/project/linux-nfs/patch/20190411183418.4510-1-olga.kornievskaia@gmail.com/
+ // and https://bugzilla.redhat.com/show_bug.cgi?id=1783554.
+ if (err == EINVAL || err == EOPNOTSUPP)
+ {
+#if !defined(BOOST_FILESYSTEM_USE_SENDFILE)
+ fallback_to_read_write:
+#endif
+ return copy_file_data_read_write(infile, outfile, size);
+ }
+
+ if (err == EXDEV)
+ {
+#if defined(BOOST_FILESYSTEM_USE_SENDFILE)
+ fallback_to_sendfile:
+ return copy_file_data_sendfile(infile, outfile, size);
+#else
+ goto fallback_to_read_write;
+#endif
+ }
+
+ if (err == ENOSYS)
+ {
+#if defined(BOOST_FILESYSTEM_USE_SENDFILE)
+ copy_file_data.store(&copy_file_data_sendfile, atomic_ns::memory_order_relaxed);
+ goto fallback_to_sendfile;
+#else
+ copy_file_data.store(&copy_file_data_read_write, atomic_ns::memory_order_relaxed);
+ goto fallback_to_read_write;
+#endif
+ }
+ }
+
return err;
}
@@ -646,13 +705,14 @@ struct copy_file_data_initializer
#endif
#if defined(BOOST_FILESYSTEM_USE_COPY_FILE_RANGE)
- // Although copy_file_range appeared in Linux 4.5, it did not support cross-filesystem copying until 5.3
- if (major > 5u || (major == 5u && minor >= 3u))
+ // Although copy_file_range appeared in Linux 4.5, it did not support cross-filesystem copying until 5.3.
+ // copy_file_data_copy_file_range will fallback to copy_file_data_sendfile if copy_file_range returns EXDEV.
+ if (major > 4u || (major == 4u && minor >= 5u))
cfd = &copy_file_data_copy_file_range;
#endif
- copy_file_data = cfd;
+ copy_file_data.store(cfd, atomic_ns::memory_order_relaxed);
}
}
const copy_file_data_init;
@@ -1412,7 +1472,7 @@ bool copy_file(path const& from, path const& to, unsigned int options, error_cod
goto fail_errno;
}
- err = detail::copy_file_data(infile.fd, outfile.fd, get_size(from_stat));
+ err = detail::copy_file_data.load(atomic_ns::memory_order_relaxed)(infile.fd, outfile.fd, get_size(from_stat));
if (BOOST_UNLIKELY(err != 0))
goto fail; // err already contains the error code

View file

@ -0,0 +1,27 @@
From 62fcbde69aae70af24a51cb6582a2a95f65441c2 Mon Sep 17 00:00:00 2001
From: Thomas Rodgers <rodgert@twrodgers.com>
Date: Wed, 4 Aug 2021 13:22:35 -0700
Subject: [PATCH] Fix duplicate typedef in mp.hpp [#671]
https://github.com/boostorg/math/pull/671
---
boost/math/tools/mp.hpp | 3 ---
1 file changed, 3 deletions(-)
diff --git a/boost/math/tools/mp.hpp b/boost/math/tools/mp.hpp
index dc8440988..3100a0bb6 100644
--- a/boost/math/tools/mp.hpp
+++ b/boost/math/tools/mp.hpp
@@ -426,9 +426,6 @@ struct make_integer_sequence_impl
template<typename T, T N>
using make_integer_sequence = typename detail::make_integer_sequence_impl<T, N>::type;
-template<std::size_t... I>
-using index_sequence = integer_sequence<std::size_t, I...>;
-
template<std::size_t N>
using make_index_sequence = make_integer_sequence<std::size_t, N>;
--
2.31.1

View file

@ -0,0 +1,33 @@
From f6818a161d3f835d246aceea0804243c887ac10b Mon Sep 17 00:00:00 2001
From: Thomas Rodgers <rodgert@twrodgers.com>
Date: Wed, 4 Aug 2021 13:09:57 -0700
Subject: [PATCH] Fix include inside boost namespace [#670]
https://github.com/boostorg/math/pull/670/commits/1ec5c98d80de97f9e962c5627e1a0e6096099894
---
boost/math/tools/mp.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/boost/math/tools/mp.hpp b/boost/math/tools/mp.hpp
index 35565646f..dc8440988 100644
--- a/boost/math/tools/mp.hpp
+++ b/boost/math/tools/mp.hpp
@@ -13,6 +13,7 @@
#include <type_traits>
#include <cstddef>
+#include <utility>
namespace boost { namespace math { namespace tools { namespace meta_programming {
@@ -338,7 +339,6 @@ using mp_remove_if_q = mp_remove_if<L, Q::template fn>;
// Index sequence
// Use C++14 index sequence if available
#if defined(__cpp_lib_integer_sequence) && (__cpp_lib_integer_sequence >= 201304)
-#include <utility>
template<std::size_t... I>
using index_sequence = std::index_sequence<I...>;
--
2.31.1

View file

@ -13,8 +13,8 @@ Fixes #29
diff --git a/include/boost/numeric/interval/detail/ppc_rounding_control.hpp b/include/boost/numeric/interval/detail/ppc_rounding_control.hpp
index 87fe8ee..99f9986 100644
--- boost_1_76_0/boost/numeric/interval/detail/ppc_rounding_control.hpp
+++ boost_1_76_0/boost/numeric/interval/detail/ppc_rounding_control.hpp
--- a/include/boost/numeric/interval/detail/ppc_rounding_control.hpp
+++ b/include/boost/numeric/interval/detail/ppc_rounding_control.hpp
@@ -28,10 +28,10 @@ typedef union {
double dmode;
} rounding_mode_struct;

View file

@ -0,0 +1,27 @@
From d1343f28dcbe25b100b082b34775bd92ead4602c Mon Sep 17 00:00:00 2001
From: jzmaddock <john@johnmaddock.co.uk>
Date: Tue, 25 Jan 2022 09:27:40 +0000
Subject: [PATCH] Update gcc Intel intrinsic usage config. Fixes
https://github.com/boostorg/multiprecision/issues/419.
---
include/boost/multiprecision/cpp_int/intel_intrinsics.hpp | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp b/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp
index eb4624bb4..37717cd51 100644
--- a/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp
+++ b/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp
@@ -19,7 +19,11 @@
// If this is GCC/clang, then check that the actual intrinsic exists:
//
#if defined(__has_builtin) && defined(__GNUC__)
-#if !__has_builtin(__builtin_ia32_addcarryx_u64) && defined(BOOST_MP_HAS_IMMINTRIN_H) && !(defined(BOOST_GCC) && (__GNUC__ >= 9))
+#if !__has_builtin(__builtin_ia32_addcarryx_u64) && defined(BOOST_MP_HAS_IMMINTRIN_H) \
+ && !(defined(BOOST_GCC) && (__GNUC__ >= 9) \
+ && (defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64)\
+ || defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_AMD64) \
+ || defined(_M_X64) || defined(__amd64__) || defined(_M_X64)))
#undef BOOST_MP_HAS_IMMINTRIN_H
#endif
#elif defined(BOOST_MP_HAS_IMMINTRIN_H) && defined(__GNUC__) && !(defined(BOOST_GCC) && (__GNUC__ >= 9))

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,34 @@
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 <

View file

@ -1,25 +0,0 @@
From 1ded9b9c219542442b3c10af815e5413a2a89c75 Mon Sep 17 00:00:00 2001
From: Thomas W Rodgers <trodgers@redhat.com>
Date: Tue, 1 Mar 2022 10:03:34 -0800
Subject: [PATCH] Adjust b2 build flags for Fedora Packaging
---
src/engine/build.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh
index f1ad08cb..ab58deba 100755
--- a/tools/build/src/engine/build.sh
+++ b/tools/build/src/engine/build.sh
@@ -323,7 +323,7 @@ case "${B2_TOOLSET}" in
gcc|gcc-*)
CXX_VERSION_OPT=${CXX_VERSION_OPT:---version}
- B2_CXXFLAGS_RELEASE="-O2 -s"
+ B2_CXXFLAGS_RELEASE="${RPM_OPT_FLAGS} ${RPM_LD_FLAGS}"
B2_CXXFLAGS_DEBUG="-O0 -g"
;;
--
2.35.1

View file

@ -1,70 +0,0 @@
From ebc90bc3e372dc8e5db21f79d2a79e4f5c4d01ee Mon Sep 17 00:00:00 2001
From: Patrick Palka <ppalka@redhat.com>
Date: Mon, 4 Dec 2023 09:24:20 -0500
Subject: [PATCH] Adjust options for Fedora package build
---
tools/build/src/tools/gcc.jam | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
index 834f5e1bf..c753afc23 100644
--- a/tools/build/src/tools/gcc.jam
+++ b/tools/build/src/tools/gcc.jam
@@ -513,7 +513,7 @@ rule compile.fortran ( targets * : sources * : properties * )
actions compile.c++ bind PCH_FILE
{
- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) $(INCLUDE-GCH)$(_)"$(PCH_FILE:S=)" $(INCLUDE-PCH)$(_)"$(PCH_FILE)" -I"$(INCLUDES)" -include$(_)"$(FORCE_INCLUDES)" -c -o "$(<)" "$(>:T)"
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) $(INCLUDE-GCH)$(_)"$(PCH_FILE:S=)" $(INCLUDE-PCH)$(_)"$(PCH_FILE)" -I"$(INCLUDES)" -include$(_)"$(FORCE_INCLUDES)" -c -o "$(<)" "$(>:T)"
}
actions compile.c bind PCH_FILE
@@ -523,7 +523,7 @@ actions compile.c bind PCH_FILE
actions compile.c++.preprocess bind PCH_FILE
{
- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) $(INCLUDE-GCH)$(_)"$(PCH_FILE:S=)" $(INCLUDE-PCH)$(_)"$(PCH_FILE)" -I"$(INCLUDES)" -include$(_)"$(FORCE_INCLUDES)" "$(>:T)" -E >"$(<)"
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) $(INCLUDE-GCH)$(_)"$(PCH_FILE:S=)" $(INCLUDE-PCH)$(_)"$(PCH_FILE)" -I"$(INCLUDES)" -include$(_)"$(FORCE_INCLUDES)" "$(>:T)" -E >"$(<)"
}
actions compile.c.preprocess bind PCH_FILE
@@ -627,22 +627,22 @@ actions compile.c.pch
###
# Declare flags and action for compilation.
-toolset.flags gcc.compile OPTIONS <optimization>off : -O0 ;
-toolset.flags gcc.compile OPTIONS <optimization>speed : -O3 ;
-toolset.flags gcc.compile OPTIONS <optimization>space : -Os ;
-toolset.flags gcc.compile OPTIONS <optimization>minimal : -O1 ;
+toolset.flags gcc.compile OPTIONS <optimization>off : ;
+toolset.flags gcc.compile OPTIONS <optimization>speed : ;
+toolset.flags gcc.compile OPTIONS <optimization>space : ;
+toolset.flags gcc.compile OPTIONS <optimization>minimal : ;
toolset.flags gcc.compile OPTIONS <optimization>debug : -Og ;
-toolset.flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
-toolset.flags gcc.compile OPTIONS <inlining>on : -Wno-inline ;
-toolset.flags gcc.compile OPTIONS <inlining>full : -finline-functions -Wno-inline ;
+toolset.flags gcc.compile OPTIONS <inlining>off : ;
+toolset.flags gcc.compile OPTIONS <inlining>on : ;
+toolset.flags gcc.compile OPTIONS <inlining>full : ;
-toolset.flags gcc.compile OPTIONS <warnings>off : -w ;
-toolset.flags gcc.compile OPTIONS <warnings>on : -Wall ;
-toolset.flags gcc.compile OPTIONS <warnings>all : -Wall ;
-toolset.flags gcc.compile OPTIONS <warnings>extra : -Wall -Wextra ;
-toolset.flags gcc.compile OPTIONS <warnings>pedantic : -Wall -Wextra -pedantic ;
-toolset.flags gcc.compile OPTIONS <warnings-as-errors>on : -Werror ;
+toolset.flags gcc.compile OPTIONS <warnings>off : ;
+toolset.flags gcc.compile OPTIONS <warnings>on : ;
+toolset.flags gcc.compile OPTIONS <warnings>all : ;
+toolset.flags gcc.compile OPTIONS <warnings>extra : ;
+toolset.flags gcc.compile OPTIONS <warnings>pedantic : ;
+toolset.flags gcc.compile OPTIONS <warnings-as-errors>on : ;
toolset.flags gcc.compile OPTIONS <debug-symbols>on : -g ;
toolset.flags gcc.compile OPTIONS <profiling>on : -pg ;
--
2.43.0

View file

@ -1,42 +0,0 @@
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
;

View file

@ -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)$(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

View file

@ -1,22 +0,0 @@
From 9ac89e9936b826c13e90611cb9a81a7aa0508d20 Mon Sep 17 00:00:00 2001
From: Michael Cho <michael@michaelcho.dev>
Date: Sun, 30 Mar 2025 21:45:49 -0400
Subject: [PATCH] Add include for add_const
Signed-off-by: Michael Cho <michael@michaelcho.dev>
---
include/boost/range/detail/any_iterator_interface.hpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/boost/range/detail/any_iterator_interface.hpp b/include/boost/range/detail/any_iterator_interface.hpp
index 1103be6c..79e71dbd 100644
--- boost_1_90_0/boost/range/detail/any_iterator_interface.hpp
+++ boost_1_90_0/boost/range/detail/any_iterator_interface.hpp
@@ -13,6 +13,7 @@
#include <boost/mpl/if.hpp>
#include <boost/range/detail/any_iterator_buffer.hpp>
#include <boost/iterator/iterator_categories.hpp>
+#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/is_convertible.hpp>
#include <boost/type_traits/is_reference.hpp>
#include <boost/type_traits/remove_const.hpp>

View file

@ -16,19 +16,15 @@
# All arches have mpich
%bcond_without mpich
%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10
%ifarch %{ix86}
# No OpenMPI support on these arches
%bcond_with openmpi
%else
%bcond_without openmpi
%endif
%ifarch s390
# No OpenMPI support on these arches
%bcond_with openmpi
%else
%bcond_without openmpi
%endif
%endif
%ifnarch %{ix86} x86_64 %{arm} ppc64 ppc64le aarch64 s390x riscv64
%ifnarch %{ix86} x86_64 %{arm} ppc64 ppc64le aarch64 s390x
%bcond_with context
%else
%bcond_without context
@ -42,18 +38,12 @@
%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.90.0
Release: 4%{?dist}
License: BSL-1.0 AND MIT AND Python-2.0.1
Version: 1.76.0
Release: 12%{?dist}
License: Boost and MIT and Python
# Replace each . with _ in %%{version}
%global version_enc %{lua:
@ -64,11 +54,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://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
Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{version_enc}.tar.bz2
Source1: libboost_thread.so
# Add a manual page for b2, based on the online documentation:
# http://www.boost.org/boost-build2/doc/html/bbv2/overview.html
Source1: b2.1
Source2: b2.1
# Since Fedora 13, the Boost libraries are delivered with sonames
# equal to the Boost version (e.g., 1.41.0).
@ -81,9 +71,7 @@ Source1: b2.1
# The subpackages that don't install shared libraries are also not pulled in
# (b2, build, doc, doctools, examples, static).
Requires: %{name}-atomic%{?_isa} = %{version}-%{release}
Requires: %{name}-charconv%{?_isa} = %{version}-%{release}
Requires: %{name}-chrono%{?_isa} = %{version}-%{release}
Requires: %{name}-cobalt%{?_isa} = %{version}-%{release}
Requires: %{name}-container%{?_isa} = %{version}-%{release}
Requires: %{name}-contract%{?_isa} = %{version}-%{release}
%if %{with context}
@ -102,7 +90,6 @@ Requires: %{name}-locale%{?_isa} = %{version}-%{release}
Requires: %{name}-log%{?_isa} = %{version}-%{release}
Requires: %{name}-math%{?_isa} = %{version}-%{release}
Requires: %{name}-nowide%{?_isa} = %{version}-%{release}
Requires: %{name}-process%{?_isa} = %{version}-%{release}
Requires: %{name}-program-options%{?_isa} = %{version}-%{release}
%if %{with python3}
Requires: %{name}-python3%{?_isa} = %{version}-%{release}
@ -111,15 +98,12 @@ 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}-url%{?_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)
@ -142,29 +126,61 @@ BuildRequires: libquadmath-devel
BuildRequires: bison
BuildRequires: libzstd-devel
# https://bugzilla.redhat.com/show_bug.cgi?id=828856
# https://bugzilla.redhat.com/show_bug.cgi?id=828857
# https://svn.boost.org/trac/boost/ticket/6701
Patch15: boost-1.58.0-pool.patch
# https://svn.boost.org/trac/boost/ticket/9038
Patch51: boost-1.58.0-pool-test_linking.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1541035
Patch0: boost-1.81.0-build-optflags.patch
Patch96: boost-1.75.0-build-optflags.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1318383
Patch1: boost-1.90.0-no-rpath.patch
Patch97: boost-1.75.0-no-rpath.patch
# https://lists.boost.org/Archives/boost/2020/04/248812.php
Patch2: boost-1.73.0-cmakedir.patch
Patch88: boost-1.73.0-cmakedir.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1899888
# https://github.com/boostorg/locale/issues/52
Patch94: boost-1.73-locale-empty-vector.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1958382
# https://github.com/boostorg/graph/pull/218
Patch98: boost-1.75.0-remove-deprecated-boost-iterator.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1541035
Patch3: boost-1.78.0-b2-build-flags.patch
Patch99: boost-1.76.0-b2-build-flags.patch
# https://github.com/boostorg/math/pull/670
Patch100: boost-1.76.0-fix-include-inside-boost-namespace.patch
# https://github.com/boostorg/math/pull/671
Patch101: boost-1.76.0-fix-duplicate-typedef-in-mp.patch
# https://github.com/boostorg/random/issues/82
Patch102: boost-1.76.0-random-test.patch
# PR https://github.com/boostorg/multiprecision/pull/421
# fixes ppc64le issue https://github.com/boostorg/multiprecision/issues/419
Patch103: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.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
Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch
# Install boost_system for the CMake configuration
# https://github.com/boostorg/system/issues/132
Patch6: boost-1.90-system.patch
# https://github.com/boostorg/ptr_container/pull/27
Patch105: boost-1.76.0-ptr_cont-xml.patch
# https://github.com/boostorg/range/pull/157
Patch7: boost-1.90.0-range.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2106441
Patch106: boost-1.76.0-asio-header.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2106878
# https://github.com/boostorg/filesystem/issues/184
Patch107: boost-1.76.0-filesystem-copy_file-exdev.patch
%bcond_with tests
%bcond_with docs_generated
@ -189,33 +205,14 @@ 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
Obsoletes: boost-system < 1.90.0
Conflicts: boost-system < 1.90.0
Requires: %{name}-system%{?_isa} = %{version}-%{release}
%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
@ -224,8 +221,7 @@ 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 don't comply with the
latest C++ standard.
standard draft features for compilers that comply with C++03.
%package contract
Summary: Run-time component of boost contract library
@ -250,7 +246,6 @@ provides a sort of cooperative multitasking on a single thread.
%package coroutine
Summary: Run-time component of boost coroutine library
Requires: %{name}-context%{?_isa} = %{version}-%{release}
%description coroutine
Run-time support for Boost.Coroutine, a library that provides
@ -270,8 +265,6 @@ on generic programming concepts.
%if %{with context}
%package fiber
Summary: Run-time component of boost fiber library
Requires: %{name}-context%{?_isa} = %{version}-%{release}
Requires: %{name}-filesystem%{?_isa} = %{version}-%{release}
%description fiber
@ -281,9 +274,7 @@ micro-/userland-threads (fibers) scheduled cooperatively.
%package filesystem
Summary: Run-time component of boost filesystem library
Requires: %{name}-atomic%{?_isa} = %{version}-%{release}
Obsoletes: boost-system < 1.90.0
Conflicts: boost-system < 1.90.0
Requires: %{name}-system%{?_isa} = %{version}-%{release}
%description filesystem
@ -311,7 +302,6 @@ stream buffers and i/o filters.
%package json
Summary: Run-time component of boost json library
Requires: %{name}-container%{?_isa} = %{version}-%{release}
%description json
@ -322,9 +312,8 @@ 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
@ -333,28 +322,25 @@ handling tools.
%package log
Summary: Run-time component of boost logging library
Requires: %{name}-atomic%{?_isa} = %{version}-%{release}
Requires: %{name}-chrono%{?_isa} = %{version}-%{release}
Requires: %{name}-filesystem%{?_isa} = %{version}-%{release}
Requires: %{name}-regex%{?_isa} = %{version}-%{release}
Requires: %{name}-thread%{?_isa} = %{version}-%{release}
%description log
Run-time support for Boost.Log, a modular and extensible logging
library that supports both narrow-character and wide-character logging.
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.
%package math
Summary: Run-time component of boost math toolkit
Summary: Math functions for boost TR1 library
%description math
Run-time support for Boost.Math, including floating-point utilities,
specific width floating-point types, mathematical constants,
statistical distributions, special functions, and more.
Run-time support for C99 and C++ TR1 C-style Functions from the math
portion of Boost.TR1.
%package nowide
Summary: Standard library functions with UTF-8 API on Windows
# Added for F33, remove for F35:
Obsoletes: boost-nowide <= 0.20190814
%description nowide
@ -377,14 +363,6 @@ 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
@ -436,6 +414,14 @@ 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
@ -446,8 +432,7 @@ program execution monitoring.
%package thread
Summary: Run-time component of boost thread library
Obsoletes: boost-system < 1.90.0
Conflicts: boost-system < 1.90.0
Requires: %{name}-system%{?_isa} = %{version}-%{release}
%description thread
@ -459,8 +444,7 @@ data specific to individual threads.
%package timer
Summary: Run-time component of boost timer library
Requires: %{name}-chrono%{?_isa} = %{version}-%{release}
Obsoletes: boost-system < 1.90.0
Conflicts: boost-system < 1.90.0
Requires: %{name}-system%{?_isa} = %{version}-%{release}
%description timer
@ -471,31 +455,20 @@ 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}-thread%{?_isa} = %{version}-%{release}
Obsoletes: boost-system < 1.90.0
Conflicts: boost-system < 1.90.0
Requires: %{name}-system%{?_isa} = %{version}-%{release}
%description type_erasure
The Boost.TypeErasure library provides runtime polymorphism in C++
that is more flexible than that provided by the core language.
%package url
Summary: Runtime component of boost URL library
%description url
Run-time support for the Boost.URL library, a Standards conforming
library for parsing Uniform Resource Locators.
%package wave
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
@ -513,10 +486,15 @@ Requires: libquadmath-devel%{?_isa}
%if %{with python3}
# Require boost-numpy3 here, because main boost metapackage only Recommends: it
Requires: %{name}-numpy3%{?_isa} = %{version}-%{release}
# Old Provides: for compatibility with packages that still require it.
# Added for F33, remove for F35:
Obsoletes: %{name}-python3-devel < 1.69.0-20
Provides: %{name}-python3-devel = %{version}-%{release}
Provides: %{name}-python3-devel%{?_isa} = %{version}-%{release}
%endif
# Added for F33, remove for F35:
Obsoletes: boost-nowide-devel <= 0.20190814
Provides: boost-nowide-devel = %{version}
Provides: boost-nowide-devel%{?_isa} = %{version}
%description devel
Headers and shared object symbolic links for the Boost C++ libraries.
@ -703,6 +681,10 @@ Tools for working with Boost documentation in BoostBook or QuickBook format.
%package b2
Summary: A low-level build tool
# Added for F33, remove for F35:
Obsoletes: boost-jam < 1.73.0
Provides: boost-jam = %{version}
Provides: boost-jam%{?_isa} = %{version}
%description b2
B2 (formerly Boost.Jam) is the low-level build engine tool for Boost.Build.
@ -710,8 +692,25 @@ Historically, B2 was based on on FTJam and on Perforce Jam but has grown
a number of significant features and is now developed independently.
%prep
%autosetup -n %{toplev_dirname} -p1
find ./boost -name '*.hpp' -perm /111 | xargs --no-run-if-empty chmod a-x
%setup -q -n %{toplev_dirname}
find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x
%patch15 -p0
%patch51 -p1
%patch96 -p1
%patch97 -p1
%patch99 -p1
%patch88 -p1
%patch94 -p1
%patch98 -p1
%patch100 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p2
%patch104 -p2
%patch105 -p1
%patch106 -p2
%patch107 -p1
%build
%set_build_flags
@ -745,7 +744,7 @@ using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{pyth
EOF
%endif
./bootstrap.sh --with-toolset=%{toolchain} --with-icu --prefix=$RPM_BUILD_ROOT%{_prefix}
./bootstrap.sh --with-toolset=%{toolchain} --with-icu
# N.B. When we build the following with PCH, parts of boost (math
# library in particular) end up being built second time during
@ -762,12 +761,20 @@ 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}
@ -809,7 +816,7 @@ export PATH=/bin${PATH:+:}$PATH
echo ============================= build Boost.Build ==================
(cd tools/build
./bootstrap.sh --with-toolset=%{toolchain} --prefix=$RPM_BUILD_ROOT%{_prefix})
./bootstrap.sh --with-toolset=%{toolchain})
%check
:
@ -844,14 +851,12 @@ mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \
${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/
%endif
# Using 'b2 stage' does not fix the paths in these files, so do it manually
sed -i -e 's|get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/.*"|get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../../../include"|' ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/*/*-config.cmake
# Remove generic parts of boost that were built for dependencies.
rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}*
rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy*
rm -rf ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/boost_{python,{w,}serialization}*
rm -rf ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/boost_numpy*
# Remove cmake files (some of these are duplicates of the generic bits anyway).
rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake
%{_openmpi_unload}
export PATH=/bin${PATH:+:}$PATH
@ -875,14 +880,12 @@ mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \
${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/
%endif
# Using 'b2 stage' does not fix the paths in these files, so do it manually
sed -i -e 's|get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/.*"|get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../../../include"|' ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/*/*-config.cmake
# Remove generic parts of boost that were built for dependencies.
rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}*
rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy*
rm -rf ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/boost_{python,{w,}serialization}*
rm -rf ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/boost_numpy*
# Remove cmake files (some of these are duplicates of the generic bits anyway).
rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake
%{_mpich_unload}
export PATH=/bin${PATH:+:}$PATH
@ -900,37 +903,21 @@ 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
cat > $RPM_BUILD_ROOT%{_libdir}/libboost_system.so << EOT
/* GNU ld script
# 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}/
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
# Remove cmake files until we know somebody wants them.
rm -r $RPM_BUILD_ROOT/%{_libdir}/cmake
echo ============================= install Boost.Build ==================
(cd tools/build
./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install
# Somewhere along the line the boost-build install directory became b2
# which seems not so great for our purposes, fix that up
mv $RPM_BUILD_ROOT%{_datadir}/b2 $RPM_BUILD_ROOT%{_datadir}/boost-build
# but make a symlink so b2 knows where to look
pushd $RPM_BUILD_ROOT%{_datadir}/
ln -s ./boost-build b2
popd
# Fix some permissions
chmod +x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py
# Fix shebang using unversioned python
@ -939,7 +926,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 %{SOURCE1} -D $RPM_BUILD_ROOT%{_mandir}/man1/b2.1
%{__install} -p -m 644 %{SOURCE2} -D $RPM_BUILD_ROOT%{_mandir}/man1/b2.1
)
echo ============================= install Boost.QuickBook ==================
@ -1015,11 +1002,6 @@ 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
@ -1054,19 +1036,10 @@ 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}
@ -1137,10 +1110,6 @@ 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}
@ -1174,9 +1143,10 @@ fi
%{_libdir}/libboost_stacktrace_addr2line.so.%{sonamever}
%{_libdir}/libboost_stacktrace_basic.so.%{sonamever}
%{_libdir}/libboost_stacktrace_noop.so.%{sonamever}
%if %{with stacktrace_from_exception}
%{_libdir}/libboost_stacktrace_from_exception.so.%{sonamever}
%endif
%files system
%license LICENSE_1_0.txt
%{_libdir}/libboost_system.so.%{sonamever}
%files thread
%license LICENSE_1_0.txt
@ -1190,10 +1160,6 @@ fi
%license LICENSE_1_0.txt
%{_libdir}/libboost_type_erasure.so.%{sonamever}
%files url
%license LICENSE_1_0.txt
%{_libdir}/libboost_url.so.%{sonamever}
%files wave
%license LICENSE_1_0.txt
%{_libdir}/libboost_wave.so.%{sonamever}
@ -1211,12 +1177,8 @@ fi
%files devel
%license LICENSE_1_0.txt
%{_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}
@ -1244,7 +1206,6 @@ 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
@ -1258,14 +1219,10 @@ 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
%{_libdir}/libboost_type_erasure.so
%{_libdir}/libboost_url.so
%{_libdir}/libboost_wave.so
%files static
@ -1287,11 +1244,8 @@ fi
%files openmpi-devel
%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}
@ -1308,9 +1262,7 @@ 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
@ -1323,11 +1275,8 @@ fi
%files mpich-devel
%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}
@ -1339,20 +1288,18 @@ fi
%files mpich-python3-devel
%license LICENSE_1_0.txt
%{_libdir}/mpich/lib/libboost_mpi_python%{python3_version_nodots}.so
%endif
%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
%files build
%license LICENSE_1_0.txt
%{_datadir}/%{name}-build/
%{_datadir}/b2
%files doctools
%license LICENSE_1_0.txt
@ -1365,185 +1312,11 @@ fi
%{_mandir}/man1/b2.1*
%changelog
* Thu Jan 15 2026 Yaakov Selkowitz <yselkowi@redhat.com> - 1.90.0-4
- Add dependencies on new subpackages to metapackage
* Tue Jan 13 2026 Jonathan Wakely <jwakely@fedoraproject.org> - 1.90.0-3
- Fix libboost_system.so linker script to avoid ldcondig warning
* Mon Jan 12 2026 Jonathan Wakely <jwakely@fedoraproject.org> - 1.90.0-2
- Add patch for boost/range/detail/any_iterator_interface.hpp
* 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
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 1.83.0-16
- Rebuilt for Python 3.14.0rc2 bytecode
* Tue Aug 05 2025 František Zatloukal <fzatlouk@redhat.com> - 1.83.0-15
- Rebuilt for icu 77.1
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.83.0-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Tue Jun 03 2025 Python Maint <python-maint@redhat.com> - 1.83.0-13
- Rebuilt for Python 3.14
* Sun Jan 26 2025 Wolfgang Stöggl <c72578@yahoo.de> - 1.83.0-12
- Add boost-1.83-fix-no-member-named_that_error.patch
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.83.0-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Tue Dec 24 2024 Sandro <devel@penguinpee.nl> - 1.83.0-10
- Backport patches for NumPy 2.x
* Fri Dec 06 2024 Pete Walter <pwalter@fedoraproject.org> - 1.83.0-9
- Rebuild for ICU 76
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.83.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sat Jun 08 2024 Python Maint <python-maint@redhat.com> - 1.83.0-7
- Rebuilt for Python 3.13
* Thu Jun 06 2024 Jonathan Wakely <jwakely@fedoraproject.org> - 1.83.0-6
- Add missing Requires for rpminspect errors.
* Sun Jun 02 2024 Songsong Zhang <U2FsdGVkX1@gmail.com> - 1.83.0-6
- Backport patch to fix RISC-V functions missing
* Sat May 25 2024 Kefu Chai <tchaikov@fedoraproject.org> - 1.83.0-5
- Add patch to fix Boost.Math bug where float_next(+INF) and float_prior(-INF)
returns NaN, but they should return +INF and -INF respectively.
See https://github.com/boostorg/math/issues/1132 and its fix at
* Sun May 05 2024 Kefu Chai <tchaikov@fedoraproject.org> - 1.83.0-4
- Add patch for Boost.Multiprecision bug
See https://github.com/boostorg/multiprecision/pull/618
* Wed Jan 31 2024 Pete Walter <pwalter@fedoraproject.org> - 1.83.0-3
- Rebuild for ICU 74
* Tue Jan 23 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.83.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.83.0-1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Dec 06 2023 Patrick Palka <ppalka@redhat.com> - 1.83.0-0
- Rebase to 1.83.0
- See https://fedoraproject.org/wiki/Changes/F40Boost183
- Drop patch for accumulators library that has since been applied upstream.
- Fix spurious Boost.Regex test failures.
* Sun Oct 29 2023 Orion Poplawski <orion@nwra.com> - 1.81.0-10
- Rebuild for openmpi 5.0.0, drops support for i686
* Tue Aug 29 2023 Tom Callaway <spot@fedoraproject.org> - 1.81.0-9
- apply upstream fixes for failing random tests
* Sun Aug 20 2023 Kefu Chai <tchaikov@fedoraproject.org> - 1.81.0-8
- Add patch for Boost.Accumulators bug
See https://github.com/boostorg/accumulators/pull/54
* Wed Aug 2 2023 Tom Callaway <spot@fedoraproject.org> - 1.81.0-7
- add symlink for b2 files
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.81.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jul 11 2023 František Zatloukal <fzatlouk@redhat.com> - 1.81.0-5
- Rebuilt for ICU 73.2
* Thu Jul 06 2023 Jonathan Wakely <jwakely@fedoraproject.org> - 1.81.0-4
- Update License for SPDX migration
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 1.81.0-3
- Rebuilt for Python 3.12
* Fri May 05 2023 Nianqing Yao <imbearchild@outlook.com> - 1.81.0-3
- Fix build for riscv64
See https://github.com/fedora-riscv/boost/tree/f38-rv64
* Wed Mar 15 2023 Jonathan Wakely <jwakely@fedoraproject.org> - 1.81.0-2
- Change spec file to use autospec for applying patches
* Wed Mar 15 2023 Jonathan Wakely <jwakely@fedoraproject.org> - 1.81.0-1
- Add patch for Boost.Phoenix bugs (#2178210)
* Mon Feb 20 2023 Thomas Rodgers <trodgers@redhat.com> - 1.81.0-0
- Rebase to 1.81.0
See https://fedoraproject.org/wiki/Changes/F38Boost181
- Drop patches:
deleted: boost-1.58.0-pool.patch
deleted: boost-1.58.0-pool-test_linking.patch
deleted: boost-1.78.0-build-optflags.patch
deleted: boost-1.73-locale-empty-vector.patch
deleted: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch
deleted: boost-1.76.0-ptr_cont-xml.patch
deleted: boost-1.78.0-fix-b2-staging.patch
deleted: boost-1.76.0-enum_type_object-type-python-3.11.patch
- New Boost.URL runtime component
- boost_build directory is now b2 in upstream, rename to boost_build on install
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.78.0-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sat Dec 31 2022 Pete Walter <pwalter@fedoraproject.org> - 1.78.0-10
- Rebuild for ICU 72
* Mon Aug 01 2022 Frantisek Zatloukal <fzatlouk@redhat.com> - 1.78.0-9
- Rebuilt for ICU 71.1
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.78.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jul 14 2022 Jonathan Wakely <jwakely@redhat.com> - 1.78.0-7
* Thu Jul 14 2022 Jonathan Wakely <jwakely@redhat.com> - 1.76.0-12
- Add patch to fix Asio includes (#2106441)
- Add patch to fix filesystem::copy_file EXDEV handling (#2106878)
- Add boost-json to umbrella package
* Fri Jun 24 2022 Jonathan Wakely <jwakely@redhat.com> - 1.78.0-6
- Restore Provides for boost-python3-devel (#2100748)
* Wed Jun 22 2022 Laurent Rineau <laurent.rineau@cgal.org> - 1.78.0-5
- Fix the CMake config file for openmpi and mpich
* Tue Jun 21 2022 Jonathan Wakely <jwakely@redhat.com> - 1.78.0-4
- Remove old Obsoletes tags
* Tue Jun 14 2022 Python Maint <python-maint@redhat.com> - 1.78.0-3
- Rebuilt for Python 3.11
* Tue Jun 14 2022 Laurent Rineau <laurent.rineau@cgal.org> - 1.78.0-2
- Re-add the CMake config file provided by Boost
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 1.78.0-1
- Rebuilt for Python 3.11
* Fri Apr 29 2022 Thomas Rodgers <trodgers@redhat.com> - 1.78.0-0
- Rebase to 1.78.0
See https://fedoraproject.org/wiki/Changes/F37Boost178
- Drop patches:
deleted: boost-1.75.0-build-optflags.patch
deleted: boost-1.75.0-no-rpath.patch
deleted: boost-1.76.0-b2-build-flags.patch
deleted: boost-1.76.0-fix-include-inside-boost-namespace.patch
deleted: boost-1.76.0-fix-duplicate-typedef-in-mp.patch
- Fix silent dropping of some libraries
See https://github.com/bfgroup/b2/pull/113
* Wed Apr 27 2022 Thomas Rodgers <trodgers@redhat.com> - 1.76.0-13
- Add missing boost-1.76.0-enum_type_object-type-python-3.11.patch file
* Tue Apr 26 2022 Thomas Rodgers <trodgers@redhat.com> - 1.76.0-12
- Merged https://src.fedoraproject.org/rpms/boost/pull-request/13 (#204336)
* Tue Apr 26 2022 Thomas Rodgers <trodgers@redhat.com> - 1.76.0-11
- Add BuildRequires: libzstd-devel to fix (#2042336)
@ -2576,7 +2349,7 @@ fi
- Drop obsolete Obsoletes: boost-python and boost-doc <= 1.30.2
* Tue Jan 12 2010 Benjamin Kosnik <bkoz@redhat.com> - 1.41.0-1
- Don't package generated debug libs, even with
- Don't package generated debug libs, even with
(-DCMAKE_BUILD_TYPE=RelWithDebInfo | Release).
- Update and include boost-cmake-soname.patch.
- Uncomment ctest.

21
libboost_thread.so Normal file
View file

@ -0,0 +1,21 @@
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

View file

@ -1,5 +1,6 @@
summary: CI Gating Plan
discover:
how: fmf
directory: tests
execute:
how: tmt
how: beakerlib

View file

@ -1 +1 @@
SHA512 (boost_1_90_0.tar.bz2) = 1c81b60f63367d7249f277f0a569c181926dcf5a725e30433dd336205f1782880489dd00df6a1a74fd107765d3ca2cd49f806788cabb7d5700a8a55927a9a199
SHA512 (boost_1_76_0.tar.bz2) = 5d68bed98c57e03b4cb2420d9b856e5f0669561a6142a4b0c9c8a58dc5b6b28e16ccbb16ac559c3a3198c45769a246bf996b96cb7b6a019dd15f05c2270e9429

View file

@ -54,26 +54,17 @@ rlJournalStart
rlPhaseStartSetup "build boost"
rlRun "rpm -D \"_topdir $TmpDir\" -U *.src.rpm"
rlRun "dnf builddep -y $TmpDir/SPECS/*.spec"
rlRun "sed -i -e 's/^%prep/%prep\n%dump/' $TmpDir/SPECS/*.spec"
rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER"
rlRun "rlFileSubmit $TmpDir/rpmbuild.log"
rlRun "toplev_dirname=`awk '/toplev_dirname/{print $3; exit}' $TmpDir/rpmbuild.log`"
cd $TmpDir/BUILD/$toplev_dirname
if [ $? -ne 0 ]; then
# handle rpm 4.20 build directory difference
# https://github.com/rpm-software-management/rpm/issues/3147
rlRun "cd $TmpDir/BUILD/*-build/$toplev_dirname"
fi
# now we know the top-level build dir, keep it for later
rlRun "BuildDir=$(pwd)"
rlRun "cd $TmpDir/BUILD/boost*"
rlRun "su -c './bootstrap.sh &>$TmpDir/bootstrap.log' $BUILD_USER"
rlRun "rlFileSubmit $TmpDir/bootstrap.log"
rlPhaseEnd
rlPhaseStartTest "run testsuite"
while read test_path; do
if [ -f $BuildDir/libs/$test_path/test/Jamfile* ]; then
rlRun "cd $BuildDir/libs/$test_path/test"
if [ -f $TmpDir/BUILD/boost*/libs/$test_path/test/Jamfile* ]; then
rlRun "cd $TmpDir/BUILD/boost*/libs/$test_path/test"
rlRun "su -c '/usr/bin/b2 -d1 --build-dir=$TmpDir/test-build &>>$TmpDir/testsuite.log' $BUILD_USER"
rm -fr $TmpDir/test-build
else