Compare commits

..

94 commits

Author SHA1 Message Date
Yaakov Selkowitz
50fc2b0fda Add dependencies on new subpackages to metapackage
boost-devel Requires: boost, which itself needs to Requires all
library subpackages so that the libboost_*.so symlinks are resolved,
and packages can safely link to them.
2026-01-14 20:16:20 -05:00
Jonathan Wakely
4a0779ec8c Fix libboost_system.so linker script to avoid ldcondig warning 2026-01-13 15:59:13 +00:00
Jonathan Wakely
5379719078 Add patch for boost/range/detail/any_iterator_interface.hpp 2026-01-12 12:22:41 +00:00
Jonathan Wakely
ec7383f6bd 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
2026-01-10 22:49:17 +00:00
Python Maint
403199971d Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 12:09:30 +02:00
Python Maint
4a984a6238 Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 12:40:18 +02:00
František Zatloukal
2f2bd5aba3 Rebuilt for icu 77.1 2025-08-05 19:09:43 +02:00
Fedora Release Engineering
bb27bd2d27 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 17:49:38 +00:00
Python Maint
9784bfcbb7 Rebuilt for Python 3.14 2025-06-03 12:29:48 +02:00
Wolfgang Stöggl
bd0476d632 Fix no member named ‘that’ error
- Add boost-1.83-fix-no-member-named_that_error.patch
- Fixes FTBS of Poedit (#2341086)
2025-01-26 07:44:25 +01:00
Fedora Release Engineering
7e04e7d896 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 12:45:41 +00:00
Sandro
3cc264041a
Backport patches for NumPy 2.x
Fix build error since upgrade to NumPy 2.x.
2024-12-25 09:40:28 +01:00
Pete Walter
0d18786666 Rebuild for ICU 76 2024-12-06 12:34:24 +00:00
Adam Williamson
a893d9ada9 Handle RPM 4.20 build directory change
RPM 4.20 adds another level to the build directory path, see
https://github.com/rpm-software-management/rpm/issues/3147 .
This tries to handle it.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-08-01 09:36:55 -07:00
Fedora Release Engineering
750fb0618c Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-17 18:30:44 +00:00
Python Maint
8a9a6c5073 Rebuilt for Python 3.13 2024-06-08 08:07:49 +02:00
Jonathan Wakely
74cf822853 Add missing Requires for rpminspect errors 2024-06-06 17:03:33 +01:00
U2FsdGVkX1
531b5cfda3 Backport patch to fix RISC-V functions missing 2024-06-06 19:04:31 +08:00
Kefu Chai
e13a584ab7 Add patch for addressing a Boost.Math bug
This change addresses the issue of
https://github.com/boostorg/math/issues/1132

the patch addresses the issue where float_next() and float_prior() return
a domain error instead +INF or -INF. this issue is a regression in
Boost 1.79.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-05-25 12:58:19 +08:00
Kefu Chai
dce3f3406f Add patch for addressing a Boost.Multiprecision bug
This change addresses the issue of
https://github.com/boostorg/multiprecision/issues/553,
the fix prevents an application from crash due to an exception
thrown in a function marked `noexcept`, when converting a `cpp_int`
to a float, if the value of this `cpp_int` cannot be represented with
a float. this issue is a regression in Boost 1.79, see more details
at https://github.com/boostorg/multiprecision/pull/618

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-05-05 10:30:54 +08:00
Pete Walter
932a39a687 Rebuild for ICU 74 2024-01-31 19:14:40 +00:00
Fedora Release Engineering
fe1d35be50 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-23 00:41:49 +00:00
Fedora Release Engineering
73e87aacff Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 14:36:38 +00:00
Patrick Palka
177b2b775d Rebase to 1.83.0
See https://fedoraproject.org/wiki/Changes/F40Boost183

Follow-up build fixes to dependent packages include:

  https://src.fedoraproject.org/fork/ppalka/rpms/aqsis/commits/rawhide
  https://src.fedoraproject.org/fork/ppalka/rpms/auryn/commits/rawhide
  https://src.fedoraproject.org/fork/ppalka/rpms/Field3D/commits/rawhide
  https://src.fedoraproject.org/fork/ppalka/rpms/python-graph-tool/commits/rawhide
  https://src.fedoraproject.org/fork/ppalka/rpms/scantailor/commits/rawhide
2023-12-06 14:24:37 -05:00
Yaakov Selkowitz
2dfe9ef974 Disable openmpi on RHEL 10+
RHEL 10 follows Fedora 40 and therefore also dropped the i686 build of
openmpi.
2023-12-05 17:54:28 -05:00
Orion Poplawski
56ec04471d Rework conditional 2023-10-29 12:44:09 -06:00
Orion Poplawski
d121d46377 Rebuild for openmpi 5.0.0, drops support for i686 2023-10-29 12:09:30 -06:00
Jonathan Wakely
bab1cef729 Remove dropped patches
These were dropped from the spec file but not removed from git.
2023-09-12 13:07:32 +01:00
Michal Kolar
a9ff19d2d3 tests/boost-testsuite-sanity: adapt to rpm package > 4.18.91, use the proper rpm macro value to determine the required path 2023-09-07 11:54:15 +00:00
Michal Kolar
bffabb9a28 Revert "tests/boost-testsuite-sanity: adapt to rpm package > 4.18.91"
This reverts commit 10a5ee96ff.
2023-09-07 11:44:26 +00:00
Michal Kolar
10a5ee96ff tests/boost-testsuite-sanity: adapt to rpm package > 4.18.91 2023-09-04 21:36:31 +00:00
Tom Callaway
39785c3bbd apply upstream fixes for failing random tests 2023-08-29 16:21:15 -04:00
Kefu Chai
33b1e83abc Add patch for Boost.Accumulators bug
This change silences the warning when compiling Boost.accumulators
with GCC 13. as some projects using Boost.Accumulators are compiled
with -Werror. Without this change, these project would have to disable
-Wuninitialized warning or silence it temporarily when including
the offending headers. Neither of these two solution is ideal from
a developer's perspective. so let's apply the patch when packaging
Boost. The patch was included by Boost 1.83.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2023-08-20 01:12:37 +08:00
Tom Callaway
74826991aa add symlink for b2 files 2023-08-02 12:53:55 -04:00
Fedora Release Engineering
fd721ad7d3 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 14:50:10 +00:00
František Zatloukal
61dda027eb Rebuilt for ICU 73.2 2023-07-11 16:21:59 +02:00
Jonathan Wakely
a4fcef0016 Update License for SPDX migration 2023-07-06 00:05:50 +01:00
Python Maint
7d7a237052 Rebuilt for Python 3.12 2023-06-13 22:13:55 +02:00
Nianqing Yao
393e648a01 Fix build for riscv64
See https://github.com/fedora-riscv/boost/tree/f38-rv64.
2023-05-05 21:07:19 +08:00
Jonathan Wakely
6b80e21fd9 Change spec file to use autospec for applying patches
Also renumber the patches from 0-7 since any historical significance of
the numbers is already gone from the spec file.
2023-03-15 18:22:28 +00:00
Jonathan Wakely
131ff2b1a6 Fix test plan by removing obsolete beakerlib setting 2023-03-15 12:02:09 +00:00
Jonathan Wakely
1116a4d288 Add patch for Boost.Phoenix bugs (#2178210) 2023-03-15 09:38:57 +00:00
Jonathan Wakely
a496150aec Fix typo in %changelog 2023-03-15 09:36:13 +00:00
Thomas W Rodgers
3420df7244 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, renamte to boost_build on install
2023-02-20 09:27:47 -08:00
Fedora Release Engineering
571ebc8df1 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-18 23:05:04 +00:00
Pete Walter
8576ab076f Rebuild for ICU 72 2022-12-31 02:19:50 +00:00
Jonathan Wakely
1c4335a6e0 Use xargs --no-run-if-empty to avoid error
Recent Boost releases seem to have no executable headers,
so the find command returns no results.
2022-12-14 17:47:59 +00:00
František Zatloukal
e938c8d9b3 Rebuilt for ICU 71.1 2022-08-01 15:02:21 +02:00
Fedora Release Engineering
bea3cff9ae Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-20 22:11:12 +00:00
Jonathan Wakely
af99b52501 Add boost-json to umbrella package 2022-07-14 13:35:31 +01:00
Jonathan Wakely
6585f3fb6e Restore Provides for boost-python3-devel (#2100748)
This doesn't restore the Provides: boost-nowide-devel as that is only
used in one package, which is already changing. The Provides: boost-jam
isn't needed either.
2022-06-24 10:41:42 +01:00
Laurent Rineau
2888982c28 Fix the CMake config file for openmpi and mpich 2022-06-23 11:42:32 +01:00
Jonathan Wakely
b96dcf38c8 Remove old Obsoletes tags 2022-06-21 21:20:41 +01:00
Python Maint
12bd4872ac Rebuilt for Python 3.11 2022-06-14 17:28:28 +02:00
Laurent Rineau
19a004c283 Re-add CMake file
Fixes rhbz#1898979
2022-06-14 14:32:18 +01:00
Python Maint
36115b3780 Rebuilt for Python 3.11 2022-06-13 18:55:42 +02:00
Thomas Rodgers
5827653083 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
2022-05-03 07:42:29 -07:00
Jonathan Wakely
9c645e2838 Tidy up %changelog 2022-04-27 18:13:43 +01:00
Thomas W Rodgers
efa25cfd81 And this time with the boost-1.76.0-enum_type_object-type-python-3.11.patch 2022-04-27 07:45:37 -07:00
Thomas W Rodgers
83163cb5f7 Merged https://src.fedoraproject.org/rpms/boost/pull-request/13 (#204336)
Miro Hrončok <mhroncok@redhat.com> Fix enum_type_object type on Python 3.11
  See https://github.com/boostorg/python/pull/385#event-6498973175
Fix previous changelog copy-pasta
2022-04-27 07:39:23 -07:00
Thomas W Rodgers
3bd0a83d52 Add BuildRequires: libstd-devel to fix (#2042336) 2022-04-26 20:53:21 -07:00
Jonathan Wakely
3c2829edfe Add patch to fix XML validation errors in ptr_container docs 2022-03-31 13:12:21 +01:00
Thomas Rodgers
9eaf760933 Add patch to fix narrowing conversions on ppc64le
https://github.com/boostorg/interval/issues/29
2022-02-02 18:36:49 -08:00
Thomas Rodgers
5eaac698fe Merge #11 Fix FTBFS and the Boost Multiprecision compilation error on pcc64le 2022-02-03 01:37:36 +00:00
Jonathan Wakely
bc37ceb79d Add rpmlintrc file to suppress errors in Zuul checks 2022-02-03 00:17:30 +00:00
Laurent Rineau
0e92f1aa2e Restore math_c99l and math_tr1l on ppc64le 2022-02-01 16:44:57 +01:00
Laurent Rineau
6502666126 Fix https://github.com/boostorg/multiprecision/issues/419
The PR https://github.com/boostorg/multiprecision/pull/421 fixes the
issue, and is planned for Boost version 1.79.0.
2022-02-01 16:03:04 +01:00
Fedora Release Engineering
6edfd32617 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-19 22:31:40 +00:00
Jonathan Wakely
bba3a6c2a0 Add patch to fix CI failure 2021-09-01 17:59:26 +01:00
Jonathan Wakely
214bbadaf6 Make boost-python3 depend on specific 3.X version (#1896713) 2021-09-01 14:13:43 +01:00
Jonathan Wakely
3824fb1903 Remove double % in Source0 tag 2021-09-01 13:38:22 +01:00
Jonathan Wakely
0fc8825319 Add whitespace between changelog entries 2021-09-01 13:23:48 +01:00
Michal Kolar
6a7ecd767d drop unwanted scratch build rule for gating 2021-08-17 16:31:18 +00:00
Thomas Rodgers
65b36067d5 Third attempt at making the long double c99 and tr1 math libs conditional
on ppc64le
2021-08-05 18:41:56 -07:00
Thomas Rodgers
03817f73cb Second attempt at making the long double c99 and tr1 math libs conditional
on ppc64le
2021-08-05 14:48:33 -07:00
Thomas Rodgers
ee1a4870ab Boost.Math does not support 'long double' of ppc64le
See https://github.com/boostorg/math/pull/524
2021-08-05 13:49:56 -07:00
Thomas Rodgers
dd07b4b21f Rebase to 1.75.0
See https://fedoraproject.org/wiki/Changes/F35Boost176
Drop patches:
    deleted: boost-1.73-python3.10.patch
    deleted: boost-1.73.0-b2-build-flags.patch
    deleted: boost-1.75.0-boost-build-fix.patch
Fix include inside boost namespace in boost/math/tools/mp.hpp
  See https://github.com/boostorg/math/pull/670
Fix duplicate typedef in boost/math/tools/mp.hpp
  See https://github.com/boostorg/math/pull/671
2021-08-04 13:35:00 -07:00
Fedora Release Engineering
7fd53e5641 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-21 18:48:13 +00:00
Fedora Release Engineering
237974a0ce - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-21 13:51:03 +00:00
Python Maint
582a02c7ab Rebuilt for Python 3.10 2021-06-04 12:11:52 +02:00
Pete Walter
b796f2d0eb Rebuild for ICU 69 2021-05-20 00:53:58 +01:00
Pete Walter
5f7b377f41 Rebuild for ICU 69 2021-05-19 16:44:05 +01:00
Thomas Rodgers
3eea468474 Patch for https://bugzilla.redhat.com/show_bug.cgi\?id\=1958382 2021-05-10 10:40:07 -07:00
Michal Kolar
67e502ea95 init FMF CI gating 2021-04-12 12:12:48 +00:00
Jonathan Wakely
8bed92113e Rebuilt for removed libstdc++ symbol (#1937698) 2021-03-31 14:38:15 +01:00
Jonathan Wakely
aa5af673c5 Revert previous commit and un-bump %release
The original patch to use nullptr was fine, because it's in a .cpp file
which is built using a recent standard dialect, so nullptr is defined.
2021-03-03 12:14:40 +00:00
Jonathan Wakely
394a768911 Adjust Boost.Locale patch to use NULL instead of nullptr 2021-03-03 12:06:46 +00:00
Thomas Rodgers
325ac22f96 Patch Boost.build for https://bugzilla.redhat.com/show_bug.cgi\?id\=1923740 2021-02-02 21:18:56 -08:00
Fedora Release Engineering
cb5a05db6c - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 01:19:25 +00:00
Thomas Rodgers
5c328ce476 Rebase to 1.75.0 2021-01-18 07:06:59 -08:00
Tomas Hrnciar
ddd384021b Patch Boost.Python for Python 3.10 - replace _Py_fopen() with fopen() (#1912903) 2021-01-08 14:14:59 +01:00
Timm Bäder
64d97f19ff spec: Don't hardcode gcc
Use %set_build_flags to get the proper values for $CFLAGS, $CC, etc. and
%{toolchain} to get the toolchain identifier
2020-12-02 16:12:37 +01:00
Jonathan Wakely
8158d2d41c Patch Boost.Locale to not access empty vector (#1899888) 2020-11-20 10:34:57 +00:00
Jonathan Wakely
820bf32137 Patch Boost.Python for Python 3.10 changes (#1896382) 2020-11-14 00:27:17 +00:00
32 changed files with 935 additions and 2587 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

View file

@ -1,22 +0,0 @@
diff --git a/libs/units/example/autoprefixes.cpp b/libs/units/example/autoprefixes.cpp
index 8b2bc43..d04f2fe 100644
--- a/libs/units/example/autoprefixes.cpp
+++ b/libs/units/example/autoprefixes.cpp
@@ -67,7 +67,7 @@ struct thing_base_unit : boost::units::base_unit<thing_base_unit, boost::units::
struct euro_base_unit : boost::units::base_unit<euro_base_unit, boost::units::dimensionless_type, 5>
{
static constexpr const char* name() { return("EUR"); }
- static constexpr const char* symbol() { return("€"); }
+ static constexpr const char* symbol() { return("€"); }
};
int main()
@@ -140,7 +140,7 @@ int main()
quantity<euro_base_unit::unit_type> ce = 2048. * euro_base_unit::unit_type();
cout << name_format << engineering_prefix << ce << endl; // 2.048 kiloEUR
- cout << symbol_format << engineering_prefix << ce << endl; // 2.048 k€
+ cout << symbol_format << engineering_prefix << ce << endl; // 2.048 kâ¬
return 0;

View file

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

View file

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

@ -1,20 +0,0 @@
--- boost_1_66_0/tools/build/src/tools/gcc.jam~ 2018-01-19 13:23:45.361330881 +0000
+++ boost_1_66_0/tools/build/src/tools/gcc.jam 2018-01-19 13:23:45.362330880 +0000
@@ -1191,7 +1191,7 @@ rule link ( targets * : sources * : prop
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)
}
rule link.dll ( targets * : sources * : properties * )
@@ -1204,7 +1204,7 @@ rule link.dll ( targets * : sources * :
# Differs from 'link' above only by -shared.
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

@ -1,28 +0,0 @@
--- boost_1_69_0/boost/format/alt_sstream_impl.hpp~ 2020-03-30 15:20:18.565658757 +0100
+++ boost_1_69_0/boost/format/alt_sstream_impl.hpp 2020-03-30 15:20:33.768636162 +0100
@@ -40,8 +40,11 @@
#ifdef _RWSTD_NO_CLASS_PARTIAL_SPEC
void *vd_ptr = alloc_.allocate(sz, is_allocated_? eback() : 0);
Ch *new_ptr = static_cast<Ch *>(vd_ptr);
-#else
+#elif defined BOOST_NO_CXX11_ALLOCATOR
Ch *new_ptr = alloc_.allocate(sz, is_allocated_? eback() : 0);
+#else
+ Ch *new_ptr = std::allocator_traits<compat_allocator_type>::allocate(alloc_,
+ sz, is_allocated_? eback() : 0);
#endif
// if this didnt throw, we're safe, update the buffer
dealloc();
@@ -257,8 +260,11 @@
#ifdef _RWSTD_NO_CLASS_PARTIAL_SPEC
void *vdptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0);
newptr = static_cast<Ch *>(vdptr);
-#else
+#elif defined BOOST_NO_CXX11_ALLOCATOR
newptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0);
+#else
+ newptr = std::allocator_traits<compat_allocator_type>::allocate(alloc_,
+ new_size, is_allocated_? oldptr : 0);
#endif
}

View file

@ -1,27 +0,0 @@
From db6b98c72783351e0acd3c558691323a7a103ba9 Mon Sep 17 00:00:00 2001
From: Raffi Enficiaud <raffi.enficiaud@mines-paris.org>
Date: Sat, 9 May 2020 10:42:38 +0200
Subject: [PATCH] Fixing cast issue when logging wchar_t
---
include/boost/test/impl/test_tools.ipp | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/include/boost/test/impl/test_tools.ipp b/include/boost/test/impl/test_tools.ipp
index 025cd1a92a..bbee21fbbc 100644
--- a/include/boost/test/impl/test_tools.ipp
+++ b/include/boost/test/impl/test_tools.ipp
@@ -124,7 +124,12 @@ print_log_value<char const*>::operator()( std::ostream& ostr, char const* t )
void
print_log_value<wchar_t const*>::operator()( std::ostream& ostr, wchar_t const* t )
{
- ostr << ( t ? reinterpret_cast<const void*>(t) : "null string" );
+ if(t) {
+ ostr << static_cast<const void*>(t);
+ }
+ else {
+ ostr << "null w-string";
+ }
}
//____________________________________________________________________________//

View file

@ -1,23 +0,0 @@
From aafbceccc76dccb75963dd4f596fd1f10ee34b03 Mon Sep 17 00:00:00 2001
From: Jonathan Wakely <boost@kayari.org>
Date: Fri, 5 Jun 2020 19:29:27 +0100
Subject: [PATCH] Make index::detail::rtree::visitors::insert base class public
Fixes #721
---
include/boost/geometry/index/detail/rtree/visitors/insert.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/boost/geometry/index/detail/rtree/visitors/insert.hpp b/include/boost/geometry/index/detail/rtree/visitors/insert.hpp
index 2d324cb7f4..5709a930cc 100644
--- a/boost/geometry/index/detail/rtree/visitors/insert.hpp
+++ b/boost/geometry/index/detail/rtree/visitors/insert.hpp
@@ -265,7 +265,7 @@ struct insert_traverse_data
// Default insert visitor
template <typename Element, typename MembersHolder>
class insert
- : MembersHolder::visitor
+ : public MembersHolder::visitor
{
protected:
typedef typename MembersHolder::box_type box_type;

View file

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

@ -1,534 +0,0 @@
From 28a73eac54fbc7cfebfd3b2231ee607284233a00 Mon Sep 17 00:00:00 2001
From: Florian Weik <fweik@icp.uni-stuttgart.de>
Date: Wed, 10 Jun 2020 10:18:21 +0200
Subject: [PATCH 1/4] fixed ub access to first element of empty vectors
---
include/boost/mpi/collectives/all_reduce.hpp | 2 +-
include/boost/mpi/collectives/all_to_all.hpp | 12 ++++++------
include/boost/mpi/collectives/gatherv.hpp | 8 ++++----
include/boost/mpi/collectives/reduce.hpp | 4 ++--
include/boost/mpi/collectives/scatter.hpp | 2 +-
include/boost/mpi/collectives/scatterv.hpp | 4 ++--
.../mpi/detail/binary_buffer_iprimitive.hpp | 4 ++--
.../mpi/detail/binary_buffer_oprimitive.hpp | 2 +-
.../mpi/detail/mpi_datatype_primitive.hpp | 2 +-
include/boost/mpi/detail/packed_iprimitive.hpp | 4 ++--
include/boost/mpi/detail/packed_oprimitive.hpp | 4 ++--
include/boost/mpi/detail/request_handlers.hpp | 4 ++--
include/boost/mpi/graph_communicator.hpp | 4 ++--
include/boost/mpi/group.hpp | 9 +++++----
include/boost/mpi/nonblocking.hpp | 18 +++++++++---------
src/cartesian_communicator.cpp | 3 ++-
16 files changed, 44 insertions(+), 42 deletions(-)
diff --git a/include/boost/mpi/collectives/all_reduce.hpp b/include/boost/mpi/collectives/all_reduce.hpp
index e6ce93c8..302430ff 100644
--- a/boost/mpi/collectives/all_reduce.hpp
+++ b/boost/mpi/collectives/all_reduce.hpp
@@ -77,7 +77,7 @@ namespace detail {
// implementation in this case.
// it's not clear how/if we can avoid the copy.
std::vector<T> tmp_in( out_values, out_values + n);
- reduce(comm, &(tmp_in[0]), n, out_values, op, 0);
+ reduce(comm, detail::c_data(tmp_in), n, out_values, op, 0);
} else {
reduce(comm, in_values, n, out_values, op, 0);
}
diff --git a/include/boost/mpi/collectives/all_to_all.hpp b/include/boost/mpi/collectives/all_to_all.hpp
index 4f20be73..a0af5ff3 100644
--- a/boost/mpi/collectives/all_to_all.hpp
+++ b/boost/mpi/collectives/all_to_all.hpp
@@ -91,10 +91,10 @@ namespace detail {
// Transmit the actual data
BOOST_MPI_CHECK_RESULT(MPI_Alltoallv,
- (&outgoing[0], &send_sizes[0],
- &send_disps[0], MPI_PACKED,
- &incoming[0], &recv_sizes[0],
- &recv_disps[0], MPI_PACKED,
+ (detail::c_data(outgoing), detail::c_data(send_sizes),
+ detail::c_data(send_disps), MPI_PACKED,
+ detail::c_data(incoming), detail::c_data(recv_sizes),
+ detail::c_data(recv_disps), MPI_PACKED,
comm));
// Deserialize data from the iarchive
@@ -126,7 +126,7 @@ all_to_all(const communicator& comm, const std::vector<T>& in_values,
{
BOOST_ASSERT((int)in_values.size() == comm.size());
out_values.resize(comm.size());
- ::boost::mpi::all_to_all(comm, &in_values[0], &out_values[0]);
+ ::boost::mpi::all_to_all(comm, detail::c_data(in_values), detail::c_data(out_values));
}
template<typename T>
@@ -143,7 +143,7 @@ all_to_all(const communicator& comm, const std::vector<T>& in_values, int n,
{
BOOST_ASSERT((int)in_values.size() == comm.size() * n);
out_values.resize(comm.size() * n);
- ::boost::mpi::all_to_all(comm, &in_values[0], n, &out_values[0]);
+ ::boost::mpi::all_to_all(comm, detail::c_data(in_values), n, detail::c_data(out_values));
}
} } // end namespace boost::mpi
diff --git a/include/boost/mpi/collectives/gatherv.hpp b/include/boost/mpi/collectives/gatherv.hpp
index 6b8d706f..5fae9942 100644
--- a/boost/mpi/collectives/gatherv.hpp
+++ b/boost/mpi/collectives/gatherv.hpp
@@ -87,7 +87,7 @@ gatherv(const communicator& comm, const T* in_values, int in_size,
{
if (comm.rank() == root)
detail::gatherv_impl(comm, in_values, in_size,
- out_values, &sizes[0], &displs[0],
+ out_values, detail::c_data(sizes), detail::c_data(displs),
root, is_mpi_datatype<T>());
else
detail::gatherv_impl(comm, in_values, in_size, root, is_mpi_datatype<T>());
@@ -99,7 +99,7 @@ gatherv(const communicator& comm, const std::vector<T>& in_values,
T* out_values, const std::vector<int>& sizes, const std::vector<int>& displs,
int root)
{
- ::boost::mpi::gatherv(comm, &in_values[0], in_values.size(), out_values, sizes, displs, root);
+ ::boost::mpi::gatherv(comm, detail::c_data(in_values), in_values.size(), out_values, sizes, displs, root);
}
template<typename T>
@@ -113,7 +113,7 @@ template<typename T>
void gatherv(const communicator& comm, const std::vector<T>& in_values, int root)
{
BOOST_ASSERT(comm.rank() != root);
- detail::gatherv_impl(comm, &in_values[0], in_values.size(), root, is_mpi_datatype<T>());
+ detail::gatherv_impl(comm, detail::c_data(in_values), in_values.size(), root, is_mpi_datatype<T>());
}
///////////////////////
@@ -139,7 +139,7 @@ void
gatherv(const communicator& comm, const std::vector<T>& in_values,
T* out_values, const std::vector<int>& sizes, int root)
{
- ::boost::mpi::gatherv(comm, &in_values[0], in_values.size(), out_values, sizes, root);
+ ::boost::mpi::gatherv(comm, detail::c_data(in_values), in_values.size(), out_values, sizes, root);
}
} } // end namespace boost::mpi
diff --git a/include/boost/mpi/collectives/reduce.hpp b/include/boost/mpi/collectives/reduce.hpp
index 3248e324..76a28212 100644
--- a/boost/mpi/collectives/reduce.hpp
+++ b/boost/mpi/collectives/reduce.hpp
@@ -335,7 +335,7 @@ void
reduce(const communicator & comm, std::vector<T> const & in_values, Op op,
int root)
{
- reduce(comm, &in_values.front(), in_values.size(), op, root);
+ reduce(comm, detail::c_data(in_values), in_values.size(), op, root);
}
template<typename T, typename Op>
@@ -344,7 +344,7 @@ reduce(const communicator & comm, std::vector<T> const & in_values,
std::vector<T> & out_values, Op op, int root)
{
if (root == comm.rank()) out_values.resize(in_values.size());
- reduce(comm, &in_values.front(), in_values.size(), &out_values.front(), op,
+ reduce(comm, detail::c_data(in_values), in_values.size(), detail::c_data(out_values), op,
root);
}
diff --git a/include/boost/mpi/collectives/scatter.hpp b/include/boost/mpi/collectives/scatter.hpp
index ae3adcbc..f967060a 100644
--- a/boost/mpi/collectives/scatter.hpp
+++ b/boost/mpi/collectives/scatter.hpp
@@ -188,7 +188,7 @@ void
scatter(const communicator& comm, const std::vector<T>& in_values,
T* out_values, int n, int root)
{
- ::boost::mpi::scatter(comm, &in_values[0], out_values, n, root);
+ ::boost::mpi::scatter(comm, detail::c_data(in_values), out_values, n, root);
}
template<typename T>
diff --git a/include/boost/mpi/collectives/scatterv.hpp b/include/boost/mpi/collectives/scatterv.hpp
index f53f704b..7f2fd129 100644
--- a/boost/mpi/collectives/scatterv.hpp
+++ b/boost/mpi/collectives/scatterv.hpp
@@ -142,7 +142,7 @@ void
scatterv(const communicator& comm, const std::vector<T>& in_values,
const std::vector<int>& sizes, T* out_values, int root)
{
- ::boost::mpi::scatterv(comm, &in_values[0], sizes, out_values, root);
+ ::boost::mpi::scatterv(comm, detail::c_data(in_values), sizes, out_values, root);
}
template<typename T>
@@ -159,7 +159,7 @@ void
scatterv(const communicator& comm, const std::vector<T>& in_values,
T* out_values, int out_size, int root)
{
- ::boost::mpi::scatterv(comm, &in_values[0], out_values, out_size, root);
+ ::boost::mpi::scatterv(comm, detail::c_data(in_values), out_values, out_size, root);
}
} } // end namespace boost::mpi
diff --git a/include/boost/mpi/detail/binary_buffer_iprimitive.hpp b/include/boost/mpi/detail/binary_buffer_iprimitive.hpp
index 388cd44c..087d8529 100644
--- a/boost/mpi/detail/binary_buffer_iprimitive.hpp
+++ b/boost/mpi/detail/binary_buffer_iprimitive.hpp
@@ -41,12 +41,12 @@ class BOOST_MPI_DECL binary_buffer_iprimitive
void* address ()
{
- return &buffer_.front();
+ return detail::c_data(buffer_);
}
void const* address () const
{
- return &buffer_.front();
+ return detail::c_data(buffer_);
}
const std::size_t& size() const
diff --git a/include/boost/mpi/detail/binary_buffer_oprimitive.hpp b/include/boost/mpi/detail/binary_buffer_oprimitive.hpp
index 313097b7..fa0645d7 100644
--- a/boost/mpi/detail/binary_buffer_oprimitive.hpp
+++ b/boost/mpi/detail/binary_buffer_oprimitive.hpp
@@ -40,7 +40,7 @@ class BOOST_MPI_DECL binary_buffer_oprimitive
void const * address() const
{
- return &buffer_.front();
+ return detail::c_data(buffer_);
}
const std::size_t& size() const
diff --git a/include/boost/mpi/detail/mpi_datatype_primitive.hpp b/include/boost/mpi/detail/mpi_datatype_primitive.hpp
index fc05d786..5b3cdf54 100644
--- a/boost/mpi/detail/mpi_datatype_primitive.hpp
+++ b/boost/mpi/detail/mpi_datatype_primitive.hpp
@@ -133,7 +133,7 @@ class mpi_datatype_primitive
template <class T>
static T* get_data(std::vector<T>& v)
{
- return v.empty() ? 0 : &(v[0]);
+ return detail::c_data(v);
}
std::vector<MPI_Aint> addresses;
diff --git a/include/boost/mpi/detail/packed_iprimitive.hpp b/include/boost/mpi/detail/packed_iprimitive.hpp
index 85a4010f..e402a20a 100644
--- a/boost/mpi/detail/packed_iprimitive.hpp
+++ b/boost/mpi/detail/packed_iprimitive.hpp
@@ -39,12 +39,12 @@ class BOOST_MPI_DECL packed_iprimitive
void* address ()
{
- return &buffer_[0];
+ return detail::c_data(buffer_);
}
void const* address () const
{
- return &buffer_[0];
+ return detail::c_data(buffer_);
}
const std::size_t& size() const
diff --git a/include/boost/mpi/detail/packed_oprimitive.hpp b/include/boost/mpi/detail/packed_oprimitive.hpp
index 4ca8e072..c9ce44dc 100644
--- a/boost/mpi/detail/packed_oprimitive.hpp
+++ b/boost/mpi/detail/packed_oprimitive.hpp
@@ -38,7 +38,7 @@ class BOOST_MPI_DECL packed_oprimitive
void const * address() const
{
- return &buffer_[0];
+ return detail::c_data(buffer_);
}
const std::size_t& size() const
@@ -114,7 +114,7 @@ class BOOST_MPI_DECL packed_oprimitive
static buffer_type::value_type* get_data(buffer_type& b)
{
- return b.empty() ? 0 : &(b[0]);
+ return detail::c_data(b);
}
buffer_type& buffer_;
diff --git a/include/boost/mpi/detail/request_handlers.hpp b/include/boost/mpi/detail/request_handlers.hpp
index 50a22ec3..8283918b 100644
--- a/boost/mpi/detail/request_handlers.hpp
+++ b/boost/mpi/detail/request_handlers.hpp
@@ -456,7 +456,7 @@ class request::legacy_dynamic_primitive_array_handler
// Resize our buffer and get ready to receive its data
this->extra::m_values.resize(this->extra::m_count);
BOOST_MPI_CHECK_RESULT(MPI_Irecv,
- (&(this->extra::m_values[0]), this->extra::m_values.size(), get_mpi_datatype<T>(),
+ (detail::c_data(this->extra::m_values), this->extra::m_values.size(), get_mpi_datatype<T>(),
stat.source(), stat.tag(),
MPI_Comm(m_comm), m_requests + 1));
}
@@ -478,7 +478,7 @@ class request::legacy_dynamic_primitive_array_handler
// Resize our buffer and get ready to receive its data
this->extra::m_values.resize(this->extra::m_count);
BOOST_MPI_CHECK_RESULT(MPI_Irecv,
- (&(this->extra::m_values[0]), this->extra::m_values.size(), get_mpi_datatype<T>(),
+ (detail::c_data(this->extra::m_values), this->extra::m_values.size(), get_mpi_datatype<T>(),
stat.source(), stat.tag(),
MPI_Comm(m_comm), m_requests + 1));
} else
diff --git a/include/boost/mpi/graph_communicator.hpp b/include/boost/mpi/graph_communicator.hpp
index d49703eb..5bd1cf28 100644
--- a/boost/mpi/graph_communicator.hpp
+++ b/boost/mpi/graph_communicator.hpp
@@ -235,8 +235,8 @@ graph_communicator::setup_graph(const communicator& comm, const Graph& graph,
BOOST_MPI_CHECK_RESULT(MPI_Graph_create,
((MPI_Comm)comm,
nvertices,
- &indices[0],
- edges.empty()? (int*)0 : &edges[0],
+ detail::c_data(indices),
+ detail::c_data(edges),
reorder,
&newcomm));
this->comm_ptr.reset(new MPI_Comm(newcomm), comm_free());
diff --git a/include/boost/mpi/group.hpp b/include/boost/mpi/group.hpp
index 103b35a1..7be24df1 100644
--- a/boost/mpi/group.hpp
+++ b/boost/mpi/group.hpp
@@ -16,6 +16,7 @@
#define BOOST_MPI_GROUP_HPP
#include <boost/mpi/exception.hpp>
+#include <boost/mpi/detail/antiques.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/optional.hpp>
#include <vector>
@@ -272,9 +273,9 @@ group::translate_ranks(InputIterator first, InputIterator last,
BOOST_MPI_CHECK_RESULT(MPI_Group_translate_ranks,
((MPI_Group)*this,
in_array.size(),
- &in_array[0],
+ detail::c_data(in_array),
(MPI_Group)to_group,
- &out_array[0]));
+ detail::c_data(out_array)));
for (std::vector<int>::size_type i = 0, n = out_array.size(); i < n; ++i)
*out++ = out_array[i];
@@ -300,7 +301,7 @@ group group::include(InputIterator first, InputIterator last)
std::vector<int> ranks(first, last);
MPI_Group result;
BOOST_MPI_CHECK_RESULT(MPI_Group_incl,
- ((MPI_Group)*this, ranks.size(), &ranks[0], &result));
+ ((MPI_Group)*this, ranks.size(), detail::c_data(ranks), &result));
return group(result, /*adopt=*/true);
}
@@ -322,7 +323,7 @@ group group::exclude(InputIterator first, InputIterator last)
std::vector<int> ranks(first, last);
MPI_Group result;
BOOST_MPI_CHECK_RESULT(MPI_Group_excl,
- ((MPI_Group)*this, ranks.size(), &ranks[0], &result));
+ ((MPI_Group)*this, ranks.size(), detail::c_data(ranks), &result));
return group(result, /*adopt=*/true);
}
diff --git a/include/boost/mpi/nonblocking.hpp b/include/boost/mpi/nonblocking.hpp
index fe944be8..5ffd00f7 100644
--- a/boost/mpi/nonblocking.hpp
+++ b/boost/mpi/nonblocking.hpp
@@ -91,7 +91,7 @@ wait_any(ForwardIterator first, ForwardIterator last)
int index;
status stat;
BOOST_MPI_CHECK_RESULT(MPI_Waitany,
- (n, &requests[0], &index, &stat.m_status));
+ (n, detail::c_data(requests), &index, &stat.m_status));
// We don't have a notion of empty requests or status objects,
// so this is an error.
@@ -222,8 +222,8 @@ wait_all(ForwardIterator first, ForwardIterator last, OutputIterator out)
// Let MPI wait until all of these operations completes.
std::vector<MPI_Status> stats(num_outstanding_requests);
BOOST_MPI_CHECK_RESULT(MPI_Waitall,
- (num_outstanding_requests, &requests[0],
- &stats[0]));
+ (num_outstanding_requests, detail::c_data(requests),
+ detail::c_data(stats)));
for (std::vector<MPI_Status>::iterator i = stats.begin();
i != stats.end(); ++i, ++out) {
@@ -289,7 +289,7 @@ wait_all(ForwardIterator first, ForwardIterator last)
// Let MPI wait until all of these operations completes.
BOOST_MPI_CHECK_RESULT(MPI_Waitall,
- (num_outstanding_requests, &requests[0],
+ (num_outstanding_requests, detail::c_data(requests),
MPI_STATUSES_IGNORE));
// Signal completion
@@ -346,7 +346,7 @@ test_all(ForwardIterator first, ForwardIterator last, OutputIterator out)
int flag = 0;
int n = requests.size();
std::vector<MPI_Status> stats(n);
- BOOST_MPI_CHECK_RESULT(MPI_Testall, (n, &requests[0], &flag, &stats[0]));
+ BOOST_MPI_CHECK_RESULT(MPI_Testall, (n, detail::c_data(requests), &flag, detail::c_data(stats)));
if (flag) {
for (int i = 0; i < n; ++i, ++out) {
status stat;
@@ -379,7 +379,7 @@ test_all(ForwardIterator first, ForwardIterator last)
int flag = 0;
int n = requests.size();
BOOST_MPI_CHECK_RESULT(MPI_Testall,
- (n, &requests[0], &flag, MPI_STATUSES_IGNORE));
+ (n, detail::c_data(requests), &flag, MPI_STATUSES_IGNORE));
return flag != 0;
}
@@ -483,8 +483,8 @@ wait_some(BidirectionalIterator first, BidirectionalIterator last,
// Let MPI wait until some of these operations complete.
int num_completed;
BOOST_MPI_CHECK_RESULT(MPI_Waitsome,
- (n, &requests[0], &num_completed, &indices[0],
- &stats[0]));
+ (n, detail::c_data(requests), &num_completed, detail::c_data(indices),
+ detail::c_data(stats)));
// Translate the index-based result of MPI_Waitsome into a
// partitioning on the requests.
@@ -591,7 +591,7 @@ wait_some(BidirectionalIterator first, BidirectionalIterator last)
// Let MPI wait until some of these operations complete.
int num_completed;
BOOST_MPI_CHECK_RESULT(MPI_Waitsome,
- (n, &requests[0], &num_completed, &indices[0],
+ (n, detail::c_data(requests), &num_completed, detail::c_data(indices),
MPI_STATUSES_IGNORE));
// Translate the index-based result of MPI_Waitsome into a
diff --git a/src/cartesian_communicator.cpp b/src/cartesian_communicator.cpp
index a46f0bc2..3b15eb0d 100644
--- a/libs/mpi/src/cartesian_communicator.cpp
+++ b/libs/mpi/src/cartesian_communicator.cpp
@@ -10,12 +10,13 @@
#include <cassert>
#include <boost/mpi/cartesian_communicator.hpp>
+#include <boost/mpi/detail/antiques.hpp>
namespace boost { namespace mpi {
namespace {
template <typename T, typename A>
- T* c_data(std::vector<T,A>& v) { return &(v[0]); }
+ T* c_data(std::vector<T,A>& v) { return c_data(v); }
}
std::ostream&
From 5a8e9efe89ba00e32713fd777a82bc8f30a0900d Mon Sep 17 00:00:00 2001
From: Florian Weik <fweik@icp.uni-stuttgart.de>
Date: Wed, 10 Jun 2020 11:04:23 +0200
Subject: [PATCH 2/4] added test with empty vector
---
test/block_nonblock_test.cpp | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/test/block_nonblock_test.cpp b/test/block_nonblock_test.cpp
index 3088b655..2ec02256 100644
--- a/libs/mpi/test/block_nonblock_test.cpp
+++ b/libs/mpi/test/block_nonblock_test.cpp
@@ -82,7 +82,12 @@ BOOST_AUTO_TEST_CASE(non_blocking)
fmt << "S" << i;
strings[i] = fmt.str();
}
-
+
+ std::vector<int> empty;
+
+ BOOST_CHECK(test(world, empty, false, true));
+ BOOST_CHECK(test(world, empty, false, false));
+
BOOST_CHECK(test(world, integers, true, true));
BOOST_CHECK(test(world, integers, true, false));
BOOST_CHECK(test(world, strings, true, true));
From 5e8edd184cb0d5af842392eb58dd797a23241615 Mon Sep 17 00:00:00 2001
From: Florian Weik <fweik@icp.uni-stuttgart.de>
Date: Thu, 11 Jun 2020 14:59:45 +0200
Subject: [PATCH 4/4] fixed cartesian communicator
---
src/cartesian_communicator.cpp | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/src/cartesian_communicator.cpp b/src/cartesian_communicator.cpp
index 3b15eb0d..946d41fd 100644
--- a/libs/mpi/src/cartesian_communicator.cpp
+++ b/libs/mpi/src/cartesian_communicator.cpp
@@ -14,11 +14,6 @@
namespace boost { namespace mpi {
-namespace {
- template <typename T, typename A>
- T* c_data(std::vector<T,A>& v) { return c_data(v); }
-}
-
std::ostream&
operator<<(std::ostream& out, cartesian_dimension const& d) {
out << '(' << d.size << ',';
@@ -64,7 +59,7 @@ cartesian_communicator::cartesian_communicator(const communicator& comm,
MPI_Comm newcomm;
BOOST_MPI_CHECK_RESULT(MPI_Cart_create,
((MPI_Comm)comm, dims.size(),
- c_data(dims), c_data(periodic),
+ detail::c_data(dims), detail::c_data(periodic),
int(reorder), &newcomm));
if(newcomm != MPI_COMM_NULL) {
comm_ptr.reset(new MPI_Comm(newcomm), comm_free());
@@ -86,7 +81,7 @@ cartesian_communicator::cartesian_communicator(const cartesian_communicator& com
MPI_Comm newcomm;
BOOST_MPI_CHECK_RESULT(MPI_Cart_sub,
- ((MPI_Comm)comm, c_data(bitset), &newcomm));
+ ((MPI_Comm)comm, detail::c_data(bitset), &newcomm));
if(newcomm != MPI_COMM_NULL) {
comm_ptr.reset(new MPI_Comm(newcomm), comm_free());
}
@@ -105,7 +100,7 @@ cartesian_communicator::rank(const std::vector<int>& coords ) const {
int r = -1;
assert(int(coords.size()) == ndims());
BOOST_MPI_CHECK_RESULT(MPI_Cart_rank,
- (MPI_Comm(*this), c_data(const_cast<std::vector<int>&>(coords)),
+ (MPI_Comm(*this), detail::c_data(const_cast<std::vector<int>&>(coords)),
&r));
return r;
}
@@ -123,7 +118,7 @@ std::vector<int>
cartesian_communicator::coordinates(int rk) const {
std::vector<int> cbuf(ndims());
BOOST_MPI_CHECK_RESULT(MPI_Cart_coords,
- (MPI_Comm(*this), rk, cbuf.size(), c_data(cbuf) ));
+ (MPI_Comm(*this), rk, cbuf.size(), detail::c_data(cbuf) ));
return cbuf;
}
@@ -136,7 +131,7 @@ cartesian_communicator::topology( cartesian_topology& topo,
std::vector<int> cdims(ndims);
std::vector<int> cperiods(ndims);
BOOST_MPI_CHECK_RESULT(MPI_Cart_get,
- (MPI_Comm(*this), ndims, c_data(cdims), c_data(cperiods), c_data(coords)));
+ (MPI_Comm(*this), ndims, detail::c_data(cdims), detail::c_data(cperiods), detail::c_data(coords)));
cartesian_topology res(cdims.begin(), cperiods.begin(), ndims);
topo.swap(res);
}
@@ -173,7 +168,7 @@ cartesian_dimensions(int sz, std::vector<int>& dims) {
int leftover = sz % min;
BOOST_MPI_CHECK_RESULT(MPI_Dims_create,
- (sz-leftover, dims.size(), c_data(dims)));
+ (sz-leftover, dims.size(), detail::c_data(dims)));
return dims;
}

View file

@ -1,11 +0,0 @@
--- boost_1_73_0/tools/build/src/engine/build.sh~ 2020-04-25 17:09:03.159419899 +0100
+++ boost_1_73_0/tools/build/src/engine/build.sh 2020-04-25 17:11:35.085907844 +0100
@@ -233,7 +233,7 @@
*)
B2_CXX="${CXX} -x c++ -std=c++11"
- B2_CXXFLAGS_RELEASE="-O2 -s"
+ B2_CXXFLAGS_RELEASE="${RPM_OPT_FLAGS} ${RPM_LD_FLAGS}"
B2_CXXFLAGS_DEBUG="-O0 -g"
esac
;;

File diff suppressed because it is too large Load diff

View file

@ -1,55 +0,0 @@
--- boost_1_73_0/tools/build/src/tools/gcc.jam~ 2020-03-31 21:50:30.687635266 +0100
+++ boost_1_73_0/tools/build/src/tools/gcc.jam 2020-03-31 21:50:32.943632779 +0100
@@ -571,7 +571,7 @@
actions compile.c++ bind PCH_FILE
{
- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)"
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)"
}
actions compile.c bind PCH_FILE
@@ -581,7 +581,7 @@
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)" "$(>:W)" -E >"$(<:W)"
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" "$(>:W)" -E >"$(<:W)"
}
actions compile.c.preprocess bind PCH_FILE
@@ -704,20 +704,20 @@
###
# 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 ;

View file

@ -1,24 +0,0 @@
From 9f414ea58264fe0a62172a06f4653adc7556c164 Mon Sep 17 00:00:00 2001
From: "Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)"
<spamtrap@nedprod.com>
Date: Mon, 27 Apr 2020 12:00:22 +0100
Subject: [PATCH] Fix https://github.com/ned14/outcome/issues/223 where in
debug builds, cloning a status_code_ptr causes a segfault.
---
include/status_code_ptr.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/status_code_ptr.hpp b/include/status_code_ptr.hpp
index 0f5efa1..bd5c278 100644
--- boost_1_73_0/boost/outcome/experimental/status-code/status_code_ptr.hpp
+++ boost_1_73_0/boost/outcome/experimental/status-code/status_code_ptr.hpp
@@ -97,7 +97,7 @@ namespace detail
#endif
virtual void _do_erased_copy(status_code<void> &dst, const status_code<void> &src, size_t /*unused*/) const override // NOLINT
{
- assert(dst.domain() == *this);
+ // Note that dst will not have its domain set
assert(src.domain() == *this);
auto &d = static_cast<_mycode &>(dst); // NOLINT
const auto &_s = static_cast<const _mycode &>(src); // NOLINT

View file

@ -0,0 +1,32 @@
From 0039878782516ea3313608f99f0d50e846151bc2 Mon Sep 17 00:00:00 2001
From: Jonathan Wakely <jwakely@fedoraproject.org>
Date: Mon, 31 Jan 2022 11:37:29 +0000
Subject: [PATCH] Fix narrowing conversions for ppc
These constants are too large for `long long` so are unsigned,
and then cannot be narrowed to the signed type.
Fixes #29
---
.../numeric/interval/detail/ppc_rounding_control.hpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
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
@@ -28,10 +28,10 @@ typedef union {
double dmode;
} rounding_mode_struct;
-static const rounding_mode_struct mode_upward = { 0xFFF8000000000002LL };
-static const rounding_mode_struct mode_downward = { 0xFFF8000000000003LL };
-static const rounding_mode_struct mode_to_nearest = { 0xFFF8000000000000LL };
-static const rounding_mode_struct mode_toward_zero = { 0xFFF8000000000001LL };
+static const rounding_mode_struct mode_upward = { (::boost::long_long_type)0xFFF8000000000002LL };
+static const rounding_mode_struct mode_downward = { (::boost::long_long_type)0xFFF8000000000003LL };
+static const rounding_mode_struct mode_to_nearest = { (::boost::long_long_type)0xFFF8000000000000LL };
+static const rounding_mode_struct mode_toward_zero = { (::boost::long_long_type)0xFFF8000000000001LL };
struct ppc_rounding_control
{

View file

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

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

42
boost-1.90-system.patch Normal file
View 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
;

View 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

22
boost-1.90.0-range.patch Normal file
View file

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

@ -1,19 +0,0 @@
*** tools/build/CMake/BoostCore.cmake.orig 2010-01-12 20:01:46.006547352 -0800
--- tools/build/CMake/BoostCore.cmake 2010-01-12 20:02:54.222546929 -0800
*************** macro(boost_library_variant LIBNAME)
*** 755,761 ****
if (BUILD_SOVERSIONED)
set_target_properties(${VARIANT_LIBNAME}
PROPERTIES
! SOVERSION "${BOOST_VERSION}"
)
endif()
endif ()
--- 755,761 ----
if (BUILD_SOVERSIONED)
set_target_properties(${VARIANT_LIBNAME}
PROPERTIES
! SOVERSION "_FEDORA_SONAME"
)
endif()
endif ()

24
boost.rpmlintrc Normal file
View file

@ -0,0 +1,24 @@
# The meta-package doesn't contain any files, this is intended.
addFilter("boost.x86_64: E: no-binary")
# All docs are in a separate boost-doc package
addFilter("boost.*: W: no-documentation")
addFilter("boost.*: W: description-shorter-than-summary")
# Upstream don't provide one
addFilter("boost-doctools.x86_64: W: no-manual-page-for-binary quickbook")
# Ignore these
addFilter("boost.*: W: spelling-error %description -l en_US foundational ")
addFilter("boost.*: W: spelling-error %description -l en_US invariants ")
addFilter("boost.*: W: spelling-error %description -l en_US postconditions ")
addFilter("boost.*: W: spelling-error %description -l en_US userland ")
addFilter("boost.*: W: spelling-error Summary(en_US) numpy ")
# The example code is useless without the headers
addFilter("boost-examples.x86_64: E: devel-dependency boost-devel")
# These libs are statically linked
addFilter("boost-date-time.x86_64: E: shared-lib-without-dependency-information /usr/lib64/libboost_date_time.so.*")
addFilter("boost-system.x86_64: E: shared-lib-without-dependency-information /usr/lib64/libboost_system.so.*")
addFilter("boost-stacktrace.x86_64: E: shared-lib-without-dependency-information /usr/lib64/libboost_stacktrace_noop.so.*")

File diff suppressed because it is too large Load diff

19
gating.yaml Normal file
View file

@ -0,0 +1,19 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
--- !Policy
product_versions:
- rhel-8
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1-gating.functional}
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1-gating.functional}

View file

@ -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

5
plans/ci.fmf Normal file
View file

@ -0,0 +1,5 @@
summary: CI Gating Plan
discover:
how: fmf
execute:
how: tmt

View file

@ -1 +1 @@
SHA512 (boost_1_73_0.tar.bz2) = 86c296511c0766145097625a62bf099c3d155284d250ad6e528e788bc90b2945838498dfe473c6c6c78d1694b6fba8e19f7dee0d064a043841e6231603fff668
SHA512 (boost_1_90_0.tar.bz2) = 1c81b60f63367d7249f277f0a569c181926dcf5a725e30433dd336205f1782880489dd00df6a1a74fd107765d3ca2cd49f806788cabb7d5700a8a55927a9a199

View file

@ -0,0 +1,63 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /tools/boost/Sanity/boost-testsuite-sanity
# Description: boost testing by upstream testsuite
# Author: Michal Kolar <mkolar@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2021 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/tools/boost/Sanity/boost-testsuite-sanity
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE tests
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Michal Kolar <mkolar@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: boost testing by upstream testsuite" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 1h" >> $(METADATA)
@echo "RunFor: boost" >> $(METADATA)
@echo "Requires: boost dnf-utils rpm-build boost-b2" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2+" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5 -RHEL6 -RHEL7 -RHEL8" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /tools/boost/Sanity/boost-testsuite-sanity
Description: boost testing by upstream testsuite
Author: Michal Kolar <mkolar@redhat.com>

View file

@ -0,0 +1,16 @@
summary: boost testing by upstream testsuite
description: ''
contact:
- Michal Kolar <mkolar@redhat.com>
component:
- boost
test: ./runtest.sh
framework: beakerlib
recommend:
- boost
- dnf-utils
- rpm-build
- boost-b2
duration: 1h
extra-summary: /tools/boost/Sanity/boost-testsuite-sanity
extra-task: /tools/boost/Sanity/boost-testsuite-sanity

View file

@ -0,0 +1,99 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/boost/Sanity/boost-testsuite-sanity
# Description: boost testing by upstream testsuite
# Author: Michal Kolar <mkolar@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2021 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
BUILD_USER=${BUILD_USER:-bstbld}
TESTS_COUNT_MIN=${TESTS_COUNT_MIN:-100}
PACKAGE="boost"
REQUIRES="$PACKAGE rpm-build boost-b2"
if rlIsFedora; then
REQUIRES="$REQUIRES dnf-utils"
else
REQUIRES="$REQUIRES yum-utils"
fi
rlJournalStart
rlPhaseStartSetup
rlShowRunningKernel
rlAssertRpm --all
rlRun "TmpDir=`mktemp -d /home/boost.XXXXXXXXXX`" # work in /home due to high demands on disk space
rlRun "cp tests $TmpDir"
rlRun "pushd $TmpDir"
rlFetchSrcForInstalled $PACKAGE
rlRun "useradd -M -N $BUILD_USER" 0,9
[ "$?" == "0" ] && rlRun "del=yes"
rlRun "chown -R $BUILD_USER:users $TmpDir"
rlPhaseEnd
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 "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"
rlRun "su -c '/usr/bin/b2 -d1 --build-dir=$TmpDir/test-build &>>$TmpDir/testsuite.log' $BUILD_USER"
rm -fr $TmpDir/test-build
else
rlLogInfo "$test_path/Jamfile* not found, skipping"
fi
done <$TmpDir/tests
rlRun "rlFileSubmit $TmpDir/testsuite.log"
rlPhaseEnd
rlPhaseStartTest "evaluate results"
rlRun "cd $TmpDir"
rlRun "grep -E '\.\.\.failed .+$TmpDir/test-build' testsuite.log" 1 "There should be no failure"
rlRun "tests_count=\$(grep -E '\*\*passed\*\*.+$TmpDir/test-build' testsuite.log | wc -l)"
[ "$tests_count" -ge "$TESTS_COUNT_MIN" ] && rlLogInfo "Test counter: $tests_count" || rlFail "Test counter $tests_count should be greater than or equal to $TESTS_COUNT_MIN"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir"
[ "$del" == "yes" ] && rlRun "userdel $BUILD_USER"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -0,0 +1,5 @@
integer
random
rational
regex
timer