Compare commits

...

38 Commits

Author SHA1 Message Date
97f663b2f1 try fix dep issue 2025-02-10 01:42:24 +08:00
7ab099b038 try fix build issues 2025-02-09 22:58:55 +08:00
628d6d01ff try fix build issues 2025-02-09 21:01:27 +08:00
75b1b31899 try fix build issue 2025-02-09 19:01:57 +08:00
4e4d0bf4c9 try fix build issues 2025-02-09 17:28:42 +08:00
325fb30677 try fix build issues 2025-02-09 15:53:05 +08:00
1f884eab07 try fix build issues 2025-02-09 11:18:41 +08:00
09e37527f3 try fix build issues 2025-02-09 00:09:44 +08:00
77c516cc82 try fix build issues 2025-02-08 22:17:45 +08:00
5a748d0e5c try to fix build issues 2025-02-08 21:15:44 +08:00
43777c8c09 fix cmake invalid path err 2025-02-08 19:13:46 +08:00
bd10b67d19 add test_exec_monitor to boost-test 2025-02-08 13:29:49 +08:00
e14e032cab enable cmake config and dynamic linking 2025-02-08 13:27:58 +08:00
openeuler-ci-bot
b98d772597
!131 No libquadmath-devel libquadmath-static on RISC-V64
From: @yinist 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2024-05-07 00:51:12 +00:00
Yinsist
d6d0cd080d gcc does not currently support RISC-V's libquadmath 2024-04-28 12:58:19 +00:00
openeuler-ci-bot
dcf73bd889
!128 Fix Support specify CC
From: @shafeipaozi 
Reviewed-by: @luofeng14, @liyunfei33, @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2024-03-28 03:40:44 +00:00
jammyjellyfish
ae9cfff951 Support specify CC
Signed-off-by: shafeipaozi <sunbo.oerv@isrc.iscas.ac.cn>
2024-03-25 11:54:06 +08:00
openeuler-ci-bot
d1a0697992
!126 No libquadmath-devel libquadmath-static on loongarch64
From: @zhangwenlong01 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2024-03-07 14:45:16 +00:00
Wenlong Zhang
d2bd4bf112 No libquadmath-devel libquadmath-static on loongarch64 2024-03-07 06:51:45 +00:00
openeuler-ci-bot
9669d89ea9
!125 boost update to 1.83.0
From: @chenhaixaing 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2024-02-06 12:14:55 +00:00
chenhaixiang
709fb6eab8 update to 1.83.0 2024-01-26 09:41:51 +08:00
openeuler-ci-bot
f52746cf82
!124 Init support for ppc64le
From: @jiahua-yu 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2023-12-07 03:53:26 +00:00
jiahua.yu
9702ed2cbc Init support for ppc64le 2023-12-01 15:36:24 +08:00
openeuler-ci-bot
6708c7defd
!122 Avoid boost::phoenix::placeholders::uarg1..10 ODR violations
From: @darssin 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2023-09-19 01:14:38 +00:00
Darssin
a106f38f05 Avoid boost::phoenix::placeholders::uarg1..10 ODR violations
form https://github.com/boostorg/phoenix/pull/116
2023-09-18 20:02:32 +08:00
openeuler-ci-bot
f7a2fdf0b6
!112 Update to 1.81.0
From: @sdlzx 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2023-02-10 08:17:37 +00:00
Liu Yuntao
91e1d35a18 Update to 1.81.1 2023-02-10 15:18:23 +08:00
openeuler-ci-bot
70cc0c2535
!104 fix statechart test
From: @sdlzx 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2022-12-09 02:48:55 +00:00
Liu Zixian
862e32b82a fix statechart test 2022-12-08 21:11:18 +08:00
openeuler-ci-bot
f4abb68c29
!103 skip gcc value init check
From: @sdlzx 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2022-12-02 10:55:11 +00:00
Liu Zixian
73e2ba2859 skip gcc value init check 2022-12-02 16:25:06 +08:00
openeuler-ci-bot
86c2ce4ce7
!101 修复multiprecision子包依赖
From: @sdlzx 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2022-12-02 02:40:37 +00:00
Liu Zixian
926fb61aa3 fix multiprecision dependency 2022-11-28 11:13:05 +08:00
openeuler-ci-bot
89bbd67d04
!100 回合outcome子库测试用例补丁
From: @sdlzx 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2022-11-26 10:30:31 +00:00
Liu Zixian
565bcbca70 Backport outcome bugfix 2022-11-26 10:45:48 +08:00
openeuler-ci-bot
cb9eb41e80
!94 升级到1.80.0
From: @sdlzx 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2022-08-26 00:42:29 +00:00
Liu Zixian
a164b1004d remove optional devel package 2022-08-25 10:24:27 +08:00
Liu Zixian
c9ece7451c Update to 1.80.0
1. removed merged patches
2. improve boost-help build process

Signed-off-by: Liu Zixian <liuzixian4@huawei.com>
2022-08-24 15:22:28 +08:00
14 changed files with 701 additions and 677 deletions

View File

@ -1,355 +0,0 @@
From aebac1401f9ddabb84c222481301d25beea1988d Mon Sep 17 00:00:00 2001
From: Andrey Semashev <andrey.semashev@gmail.com>
Date: Mon, 14 Jan 2019 21:08:25 +0300
Subject: [PATCH 1/2] Remove linking with Boost.System.
Since Boost.System is header-only now, no need to link with the library.
---
build/Jamfile.v2 | 3 ---
1 file changed, 3 deletions(-)
diff --git a/libs/locale/build/Jamfile.v2 b/libs/locale/build/Jamfile.v2
index 578e722e..43ab0014 100644
--- a/libs/locale/build/Jamfile.v2
+++ b/libs/locale/build/Jamfile.v2
@@ -382,9 +382,6 @@ rule configure-full ( properties * : flags-only )
result += <source>util/gregorian.cpp ;
}
- result += <library>../../system/build//boost_system ;
-
-
if "$(flags-only)" = "flags"
{
return $(flags-result) ;
From b01aab1d28c9b32d107ae39c76c9af988420d476 Mon Sep 17 00:00:00 2001
From: Andrey Semashev <andrey.semashev@gmail.com>
Date: Mon, 14 Jan 2019 21:10:38 +0300
Subject: [PATCH 2/2] Trim trailing spaces.
---
build/Jamfile.v2 | 119 +++++++++++++++++++++++------------------------
1 file changed, 59 insertions(+), 60 deletions(-)
diff --git a/libs/locale/build/Jamfile.v2 b/libs/locale/build/Jamfile.v2
index 43ab0014..97dd68c7 100644
--- a/libs/locale/build/Jamfile.v2
+++ b/libs/locale/build/Jamfile.v2
@@ -1,6 +1,6 @@
# copyright John Maddock 2003, Artyom Beilis 2010
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or copy at
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt.
@@ -32,11 +32,11 @@ explicit has_iconv ;
ICONV_PATH = [ modules.peek : ICONV_PATH ] ;
-lib iconv
- :
+lib iconv
+ :
: <search>$(ICONV_PATH)/lib <link>shared <runtime-link>shared
:
- : <include>$(ICONV_PATH)/include
+ : <include>$(ICONV_PATH)/include
;
explicit iconv ;
@@ -45,8 +45,8 @@ obj has_iconv_libc_ext : ../build/has_iconv.cpp iconv ;
exe has_external_iconv : has_iconv_libc_ext iconv ;
explicit has_external_iconv ;
-exe accepts_shared_option : ../build/option.cpp
- : <cxxflags>-shared-libstdc++
+exe accepts_shared_option : ../build/option.cpp
+ : <cxxflags>-shared-libstdc++
<cxxflags>-shared-libgcc
<linkflags>-shared-libstdc++
<linkflags>-shared-libgcc
@@ -71,8 +71,8 @@ if $(ICU_LINK)
else
{
searched-lib icuuc : : <name>icuuc
- <search>$(ICU_PATH)/lib
- <link>shared
+ <search>$(ICU_PATH)/lib
+ <link>shared
<runtime-link>shared ;
searched-lib icuuc : : <toolset>msvc
@@ -120,9 +120,9 @@ else
explicit icuuc icudt icuin ;
- ICU_OPTS = <include>$(ICU_PATH)/include
- <library>icuuc/<link>shared/<runtime-link>shared
- <library>icudt/<link>shared/<runtime-link>shared
+ ICU_OPTS = <include>$(ICU_PATH)/include
+ <library>icuuc/<link>shared/<runtime-link>shared
+ <library>icudt/<link>shared/<runtime-link>shared
<library>icuin/<link>shared/<runtime-link>shared
<dll-path>$(ICU_PATH)/bin
<runtime-link>shared ;
@@ -130,8 +130,8 @@ else
searched-lib icuuc_64 : : <name>icuuc
- <search>$(ICU_PATH)/lib64
- <link>shared
+ <search>$(ICU_PATH)/lib64
+ <link>shared
<runtime-link>shared ;
searched-lib icuuc_64 : : <toolset>msvc
@@ -179,14 +179,14 @@ else
explicit icuuc_64 icudt_64 icuin_64 ;
- ICU64_OPTS = <include>$(ICU_PATH)/include
- <library>icuuc_64/<link>shared/<runtime-link>shared
- <library>icudt_64/<link>shared/<runtime-link>shared
+ ICU64_OPTS = <include>$(ICU_PATH)/include
+ <library>icuuc_64/<link>shared/<runtime-link>shared
+ <library>icudt_64/<link>shared/<runtime-link>shared
<library>icuin_64/<link>shared/<runtime-link>shared
<dll-path>$(ICU_PATH)/bin64
<runtime-link>shared ;
-
-
+
+
}
obj has_icu_obj : ../build/has_icu_test.cpp : $(ICU_OPTS) ;
@@ -206,11 +206,11 @@ rule configure-full ( properties * : flags-only )
local result ;
local flags-result ;
-
+
local found-iconv ;
-
+
if <boost.locale.iconv>on in $(properties)
- || ! <boost.locale.iconv> in $(properties:G)
+ || ! <boost.locale.iconv> in $(properties:G)
&& ! <target-os>solaris in $(properties)
{
# See if iconv is bundled with standard library.
@@ -218,7 +218,7 @@ rule configure-full ( properties * : flags-only )
{
found-iconv = true ;
}
- else
+ else
{
if [ configure.builds has_external_iconv : $(properties) : "iconv (separate)" ]
{
@@ -226,8 +226,8 @@ rule configure-full ( properties * : flags-only )
result += <library>iconv ;
}
}
- }
- if $(found-iconv)
+ }
+ if $(found-iconv)
{
flags-result += <define>BOOST_LOCALE_WITH_ICONV=1 ;
}
@@ -249,7 +249,7 @@ rule configure-full ( properties * : flags-only )
if $(found-icu)
{
- ICU_SOURCES =
+ ICU_SOURCES =
boundary
codecvt
collator
@@ -260,20 +260,20 @@ rule configure-full ( properties * : flags-only )
numeric
time_zone
;
-
- result += <source>icu/$(ICU_SOURCES).cpp
- <library>../../thread/build//boost_thread
+
+ result += <source>icu/$(ICU_SOURCES).cpp
+ <library>../../thread/build//boost_thread
;
}
}
-
- if ! $(found-iconv) && ! $(found-icu) && ! <target-os>windows in $(properties) && ! <target-os>cygwin in $(properties)
+
+ if ! $(found-iconv) && ! $(found-icu) && ! <target-os>windows in $(properties) && ! <target-os>cygwin in $(properties)
{
ECHO "- Boost.Locale needs either iconv or ICU library to be built." ;
result += <build>no ;
}
-
+
if ! <boost.locale.std> in $(properties:G)
{
if <toolset>sun in $(properties)
@@ -283,9 +283,9 @@ rule configure-full ( properties * : flags-only )
else
{
properties += <boost.locale.std>on ;
- }
+ }
}
-
+
if <boost.locale.std>off in $(properties)
{
flags-result += <define>BOOST_LOCALE_NO_STD_BACKEND=1 ;
@@ -301,38 +301,38 @@ rule configure-full ( properties * : flags-only )
;
result += <source>std/$(STD_SOURCES).cpp ;
}
-
+
if ! <boost.locale.winapi> in $(properties:G)
{
- if <target-os>windows in $(properties)
+ if <target-os>windows in $(properties)
|| <target-os>cygwin in $(properties)
{
properties += <boost.locale.winapi>on ;
- }
+ }
else
{
properties += <boost.locale.winapi>off ;
- }
+ }
}
- if <target-os>windows in $(properties)
- && <toolset>gcc in $(properties)
+ if <target-os>windows in $(properties)
+ && <toolset>gcc in $(properties)
&& <link>shared in $(properties)
&& [ configure.builds accepts_shared_option : $(properties) : "g++ -shared-* supported" ]
{
- flags-result += <cxxflags>-shared-libstdc++
+ flags-result += <cxxflags>-shared-libstdc++
<cxxflags>-shared-libgcc
<linkflags>-shared-libstdc++
<linkflags>-shared-libgcc
;
}
-
+
if <boost.locale.winapi>off in $(properties)
{
flags-result += <define>BOOST_LOCALE_NO_WINAPI_BACKEND=1 ;
}
else
{
- WINAPI_SOURCES =
+ WINAPI_SOURCES =
collate
converter
numeric
@@ -340,34 +340,34 @@ rule configure-full ( properties * : flags-only )
;
result += <source>win32/$(WINAPI_SOURCES).cpp ;
}
-
+
if ( ! <boost.locale.winapi>off in $(properties) || ! <boost.locale.std>off in $(properties) )
&& ( <target-os>windows in $(properties) || <target-os>cygwin in $(properties) )
{
result += <source>win32/lcid.cpp ;
}
-
+
if ! <boost.locale.posix> in $(properties:G)
{
- if <target-os>linux in $(properties)
- || <target-os>darwin in $(properties)
+ if <target-os>linux in $(properties)
+ || <target-os>darwin in $(properties)
|| ( <target-os>freebsd in $(properties) && [ configure.builds has_xlocale : $(properties) : "xlocale supported" ] )
{
properties += <boost.locale.posix>on ;
}
else
{
- properties += <boost.locale.posix>off ;
- }
+ properties += <boost.locale.posix>off ;
+ }
}
-
+
if <boost.locale.posix>off in $(properties)
{
- flags-result += <define>BOOST_LOCALE_NO_POSIX_BACKEND=1 ;
+ flags-result += <define>BOOST_LOCALE_NO_POSIX_BACKEND=1 ;
}
else
{
- POSIX_SOURCES =
+ POSIX_SOURCES =
collate
converter
numeric
@@ -381,12 +381,13 @@ rule configure-full ( properties * : flags-only )
{
result += <source>util/gregorian.cpp ;
}
-
- if "$(flags-only)" = "flags"
+
+ if "$(flags-only)" = "flags"
{
return $(flags-result) ;
}
- else {
+ else
+ {
result += $(flags-result) ;
return $(result) ;
}
@@ -396,7 +397,6 @@ rule configure ( properties * )
{
local result = [ configure-full $(properties) : "all" ] ;
return $(result) ;
-
}
rule configure-flags ( properties * )
@@ -404,15 +404,14 @@ rule configure-flags ( properties * )
local result ;
result = [ configure-full $(properties) : "flags" ] ;
return $(result) ;
-
}
alias build_options : : : : <conditional>@configure ;
alias build_flags : : : : <conditional>@configure-flags ;
-lib boost_locale
- :
+lib boost_locale
+ :
encoding/codepage.cpp
shared/date_time.cpp
shared/format.cpp
@@ -425,7 +424,7 @@ lib boost_locale
util/codecvt_converter.cpp
util/default_locale.cpp
util/info.cpp
- util/locale_data.cpp
+ util/locale_data.cpp
:
# Don't link explicitly, not required
<define>BOOST_THREAD_NO_LIB=1

View File

@ -1,33 +0,0 @@
From 1ff0ead837b32b9415dc840dfef6549e8754b98d Mon Sep 17 00:00:00 2001
From: Alexander Grund <Flamefire@users.noreply.github.com>
Date: Fri, 10 Dec 2021 17:53:01 +0100
Subject: [PATCH] Fix access to first element of empty vector
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.
Fix is to never have an empty vector as ICU sort keys include the NULL
terminator, hence we need at least `length + 1` bytes which means the
vector has at least 1 element: The NULL terminator
---
src/icu/collator.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libs/locale/src/icu/collator.cpp b/libs/locale/src/icu/collator.cpp
index 7f1ea6ae..79668aa6 100644
--- a/libs/locale/src/icu/collator.cpp
+++ b/libs/locale/src/icu/collator.cpp
@@ -91,9 +91,9 @@ namespace boost {
{
icu::UnicodeString str=cvt_.icu(b,e);
std::vector<uint8_t> tmp;
- tmp.resize(str.length());
+ tmp.resize(str.length() + 1u);
icu::Collator *collate = get_collator(level);
- int len = collate->getSortKey(str,&tmp[0],tmp.size());
+ const int len = collate->getSortKey(str,&tmp[0],tmp.size());
if(len > int(tmp.size())) {
tmp.resize(len);
collate->getSortKey(str,&tmp[0],tmp.size());

View File

@ -1,179 +0,0 @@
From acb849a8a16499907c554a3c00da201486388459 Mon Sep 17 00:00:00 2001
From: Orgad Shaneh <orgads@gmail.com>
Date: Thu, 4 Nov 2021 03:39:23 +0200
Subject: [PATCH] fix integer overflows in pool::ordered_malloc (#42)
Fixes trac #6701 (https://svn.boost.org/trac10/ticket/6701).
Originally-by: Jonathan Wakely <jwakely.boost@kayari.org>
---
boost/pool/pool.hpp | 31 ++++++++++++++++++++++---------
libs/pool/test/Jamfile.v2 | 1 +
libs/pool/test/suppressions.txt | 7 +++++++
libs/pool/test/test_bug_6701.cpp | 27 +++++++++++++++++++++++++++
4 files changed, 57 insertions(+), 9 deletions(-)
create mode 100644 libs/pool/test/suppressions.txt
create mode 100644 libs/pool/test/test_bug_6701.cpp
diff --git a/boost/pool/pool.hpp b/boost/pool/pool.hpp
index c47b11faf..12728a7ae 100644
--- a/boost/pool/pool.hpp
+++ b/boost/pool/pool.hpp
@@ -26,6 +26,8 @@
#include <boost/pool/poolfwd.hpp>
+// std::numeric_limits
+#include <boost/limits.hpp>
// boost::integer::static_lcm
#include <boost/integer/common_factor_ct.hpp>
// boost::simple_segregated_storage
@@ -355,6 +357,12 @@ class pool: protected simple_segregated_storage < typename UserAllocator::size_t
return s;
}
+ size_type max_chunks() const
+ { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool.
+ 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.
//! (Provided and used for the sake of code readability :)
@@ -375,6 +383,8 @@ class pool: protected simple_segregated_storage < typename UserAllocator::size_t
//! 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.
+ set_next_size(nnext_size);
+ set_max_size(nmax_size);
}
~pool()
@@ -398,8 +408,8 @@ class pool: protected simple_segregated_storage < typename UserAllocator::size_t
}
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;
+ BOOST_USING_STD_MIN();
+ next_size = start_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks());
}
size_type get_max_size() const
{ //! \returns max_size.
@@ -407,7 +417,8 @@ class pool: protected simple_segregated_storage < typename UserAllocator::size_t
}
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
{ //! \returns the requested size passed into the constructor.
@@ -708,9 +719,9 @@ void * pool<UserAllocator>::malloc_need_resize()
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,
store().add_block(node.begin(), node.element_size(), partition_size);
@@ -748,9 +759,9 @@ void * pool<UserAllocator>::ordered_malloc_need_resize()
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,
// (we can use "add_block" here because we know that
@@ -792,6 +803,8 @@ void * pool<UserAllocator>::ordered_malloc(const size_type n)
{ //! Gets address of a chunk n, allocating new memory if not already available.
//! \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();
const size_type total_req_size = n * requested_size;
@@ -840,9 +853,9 @@ void * pool<UserAllocator>::ordered_malloc(const size_type n)
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,
// handle border case.
diff --git a/libs/pool/test/Jamfile.v2 b/libs/pool/test/Jamfile.v2
index 9e96abcbd..133879a93 100644
--- a/libs/pool/test/Jamfile.v2
+++ b/libs/pool/test/Jamfile.v2
@@ -34,6 +34,7 @@ test-suite pool :
<toolset>pathscale:<cxxflags>-Wno-long-long ]
[ run test_bug_2696.cpp ]
[ run test_bug_5526.cpp ]
+ [ run test_bug_6701.cpp ]
[ run test_threading.cpp : : : <threading>multi <library>/boost/thread//boost_thread ]
[ compile test_poisoned_macros.cpp ]
;
diff --git a/libs/pool/test/suppressions.txt b/libs/pool/test/suppressions.txt
new file mode 100644
index 000000000..e30fb813c
--- /dev/null
+++ b/libs/pool/test/suppressions.txt
@@ -0,0 +1,7 @@
+{
+ no_fishy_value
+ Memcheck:FishyValue
+ __builtin_vec_new(size)
+ fun:_ZnamRKSt9nothrow_t
+ ...
+}
diff --git a/libs/pool/test/test_bug_6701.cpp b/libs/pool/test/test_bug_6701.cpp
new file mode 100644
index 000000000..e484d3c7e
--- /dev/null
+++ b/libs/pool/test/test_bug_6701.cpp
@@ -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;
+}
--
2.33.1

View File

@ -1,24 +0,0 @@
From 1dc6d74f2d673b7b82dd02ff8cdaf04b60fb5ff8 Mon Sep 17 00:00:00 2001
From: Denis Arnaud <denis.arnaud_github@m4x.org>
Date: Sun, 15 Aug 2021 17:05:31 +0200
Subject: [PATCH] Update call_method.hpp
Was missing from https://github.com/boostorg/python/pull/320
I've tested it on one of my projects with (that patch on) Boost.Python/Boost 1.76.0 and it works well. Without that patch, there is a deprecation error.
---
boost/python/call_method.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/boost/python/call_method.hpp b/boost/python/call_method.hpp
index 424077eab4..2f360791d7 100644
--- a/boost/python/call_method.hpp
+++ b/boost/python/call_method.hpp
@@ -59,7 +59,7 @@ call_method(PyObject* self, char const* name
)
{
PyObject* const result =
- PyEval_CallMethod(
+ PyObject_CallMethod(
self
, const_cast<char*>(name)
, const_cast<char*>("(" BOOST_PP_REPEAT_1ST(N, BOOST_PYTHON_FIXED, "O") ")")

View File

@ -1,62 +0,0 @@
From 07d7c3b2e0f8c6b269ba167117cd3e549df2f342 Mon Sep 17 00:00:00 2001
From: Vinnie Falco <vinnie.falco@gmail.com>
Date: Wed, 13 Apr 2022 05:49:05 -0700
Subject: [PATCH] array::erase relocates correctly
fix #692
---
boost/json/impl/array.ipp | 5 ++++-
libs/json/test/array.cpp | 16 ++++++++++++++++
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/boost/json/impl/array.ipp b/boost/json/impl/array.ipp
index 4d067fb5..a2c7fd6d 100644
--- a/boost/json/impl/array.ipp
+++ b/boost/json/impl/array.ipp
@@ -491,8 +491,11 @@ erase(
auto const p = &(*t_)[0] +
(pos - &(*t_)[0]);
destroy(p, p + 1);
- relocate(p, p + 1, 1);
--t_->size;
+ if(t_->size > 0)
+ relocate(p, p + 1,
+ t_->size - (p -
+ &(*t_)[0]));
return p;
}
diff --git a/libs/json/test/array.cpp b/libs/json/test/array.cpp
index 1cc87566..4516cc78 100644
--- a/libs/json/test/array.cpp
+++ b/libs/json/test/array.cpp
@@ -1269,6 +1269,21 @@ class array_test
array{nullptr, "a", "b"}));
}
+ void
+ testIssue692()
+ {
+ array a;
+ object obj;
+ obj["test1"] = "hello";
+ a.push_back(obj);
+ a.push_back(obj);
+ a.push_back(obj);
+ a.push_back(obj);
+ a.push_back(obj);
+ while(a.size())
+ a.erase(a.begin());
+ }
+
void
run()
{
@@ -1283,6 +1298,7 @@ class array_test
testExceptions();
testEquality();
testHash();
+ testIssue692();
}
};

View File

@ -0,0 +1,25 @@
From f58f3df2bf54fd820bd2c043e5000a7c90144804 Mon Sep 17 00:00:00 2001
From: Liu Zixian <liuzixian4@huawei.com>
Date: Thu, 15 Dec 2022 21:31:43 -0500
Subject: [PATCH] Don't run performance test in CI
---
libs/graph/test/Jamfile.v2 | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/libs/graph/test/Jamfile.v2 b/libs/graph/test/Jamfile.v2
index a0c15ca7b..c882916a7 100644
--- a/libs/graph/test/Jamfile.v2
+++ b/libs/graph/test/Jamfile.v2
@@ -47,7 +47,10 @@ alias graph_test_regular :
[ run undirected_dfs.cpp ]
[ compile dfs_cc.cpp ]
[ compile dijkstra_cc.cpp ]
- [ run dijkstra_heap_performance.cpp /boost/timer//boost_timer : 10000 ]
+
+ # Performance benchmark
+ #[ run dijkstra_heap_performance.cpp /boost/timer//boost_timer : 10000 ]
+
[ run dijkstra_no_color_map_compare.cpp : 10000 ]
[ run disjoint_set_test.cpp ]
[ run dominator_tree_test.cpp ]

View File

@ -0,0 +1,27 @@
From 50973dc10ea16931245ea61a00b2ce9041acc5ba Mon Sep 17 00:00:00 2001
From: Stephan Bergmann <sbergman@redhat.com>
Date: Wed, 4 Jan 2023 17:33:31 +0100
Subject: [PATCH] Avoid boost::phoenix::placeholders::uarg1..10 ODR violations
Those variables, defined in an include file, had external linkage, causing ODR
violations. Make them const to implicitly give them internal linkage.
---
boost/phoenix/stl/tuple.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/boost/phoenix/stl/tuple.hpp b/boost/phoenix/stl/tuple.hpp
index a83014a..7f61a40 100644
--- a/boost/phoenix/stl/tuple.hpp
+++ b/boost/phoenix/stl/tuple.hpp
@@ -110,7 +110,7 @@ namespace boost { namespace phoenix {
namespace placeholders {
#define BOOST_PP_LOCAL_LIMITS (1, BOOST_PHOENIX_ARG_LIMIT)
#define BOOST_PP_LOCAL_MACRO(N) \
- auto uarg##N = \
+ auto const uarg##N = \
boost::phoenix::get_<(N)-1>(boost::phoenix::placeholders::arg1);
#include BOOST_PP_LOCAL_ITERATE()
}
--
2.27.0

View File

@ -0,0 +1,30 @@
From 4239d93dad32a11e4c3829050f8070d456266133 Mon Sep 17 00:00:00 2001
From: jzmaddock <john@johnmaddock.co.uk>
Date: Wed, 1 Jun 2022 19:35:36 +0100
Subject: [PATCH] Update multiprecision_float_test.cpp to not overflow type
double. Previously the max value for uint1024_t could just squeeze into a
double because truncation occurred during the conversion, now that cpp_int
performs correctly rounded conversions, overflow occurs, and the computation
fails. Changed the problem distribution to use a multiprecision weight type,
rather than double.
---
libs/random/test/multiprecision_float_test.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/random/test/multiprecision_float_test.cpp b/libs/random/test/multiprecision_float_test.cpp
index bc2a936..2b53483 100644
--- a/libs/random/test/multiprecision_float_test.cpp
+++ b/libs/random/test/multiprecision_float_test.cpp
@@ -77,7 +77,7 @@ typedef boost::mpl::list <
boost::random::lognormal_distribution<big_float>,
boost::random::normal_distribution<big_float>,
#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
- boost::random::piecewise_constant_distribution<big_float>,
+ boost::random::piecewise_constant_distribution<big_float, big_float>,
boost::random::piecewise_linear_distribution<big_float>,
#endif
boost::random::student_t_distribution<big_float>,
--
2.33.0

View File

@ -0,0 +1,34 @@
From 7561690135c67ecf88c2133bad7680ebd2665c36 Mon Sep 17 00:00:00 2001
From: jzmaddock <john@johnmaddock.co.uk>
Date: Wed, 1 Jun 2022 19:32:55 +0100
Subject: [PATCH] Update multiprecision_int_test.cpp to not accidentality
overflow type double. Multiprecision now performs correct rounding when
converting to double - previously the max value for uint1024_t would just fit
in a double if it was truncated. But now that it's correctly rounded it
overflows and breaks the calculation.
---
libs/random/test/multiprecision_int_test.cpp | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/libs/random/test/multiprecision_int_test.cpp b/libs/random/test/multiprecision_int_test.cpp
index 41ec229..a861cca 100644
--- a/libs/random/test/multiprecision_int_test.cpp
+++ b/libs/random/test/multiprecision_int_test.cpp
@@ -215,8 +215,11 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(discrete_distributions, distribution_type, other_d
distribution_type d2;
ss >> d2;
BOOST_CHECK(d == d2);
-
- boost::random::independent_bits_engine<boost::random::mt19937, std::numeric_limits<boost::multiprecision::uint1024_t>::digits, boost::multiprecision::uint1024_t > big_random;
+ //
+ // The number of digits in the independent_bits_engine must be low enough that we don't overflow
+ // when converting to a double (see other_distributions declared above).
+ //
+ boost::random::independent_bits_engine<boost::random::mt19937, std::numeric_limits<boost::multiprecision::uint1024_t>::digits - 2, boost::multiprecision::uint1024_t > big_random;
for(unsigned i = 0; i < 200; ++i)
{
result_type r = d(big_random);
--
2.33.0

View File

@ -0,0 +1,37 @@
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/libs/random/test/multiprecision_float_test.cpp b/libs/random/test/multiprecision_float_test.cpp
index 904c59d..bc2a936 100644
--- a/libs/random/test/multiprecision_float_test.cpp
+++ b/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/libs/random/test/multiprecision_int_test.cpp b/libs/random/test/multiprecision_int_test.cpp
index 577e52a..41ec229 100644
--- a/libs/random/test/multiprecision_int_test.cpp
+++ b/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 <
--
2.33.0

View File

@ -0,0 +1,31 @@
Index: boost_1_80_0/tools/boost_install/boost-install.jam
===================================================================
--- boost_1_80_0.orig/tools/boost_install/boost-install.jam
+++ boost_1_80_0/tools/boost_install/boost-install.jam
@@ -753,25 +753,6 @@ rule generate-cmake-config- ( target : s
"get_filename_component(_BOOST_CMAKEDIR \"${CMAKE_CURRENT_LIST_DIR}/../\" REALPATH)"
: true ;
- if [ path.is-rooted $(cmakedir) ]
- {
- local cmakedir-native = [ path-native-fwd $(cmakedir) ] ;
-
- print.text
-
- ""
- "# If the computed and the original directories are symlink-equivalent, use original"
- "if(EXISTS \"$(cmakedir-native)\")"
- " get_filename_component(_BOOST_CMAKEDIR_ORIGINAL \"$(cmakedir-native)\" REALPATH)"
- " if(_BOOST_CMAKEDIR STREQUAL _BOOST_CMAKEDIR_ORIGINAL)"
- " set(_BOOST_CMAKEDIR \"$(cmakedir-native)\")"
- " endif()"
- " unset(_BOOST_CMAKEDIR_ORIGINAL)"
- "endif()"
- ""
- : true ;
- }
-
get-dir "_BOOST_INCLUDEDIR" : $(includedir) ;
if $(library-type) = INTERFACE

View File

@ -1,8 +1,8 @@
%global version_enc 1_79_0
%global version_enc 1_83_0
Name: boost
Version: 1.79.0
Release: 3
Version: 1.83.0
Release: 4
Summary: The free peer-reviewed portable C++ source libraries
License: BSL-1.0
URL: http://www.boost.org
@ -10,18 +10,16 @@ Source0: https://boostorg.jfrog.io/ui/native/main/release/%{version}/sour
# These following patches have been merged into boost develop branch
# Remove them at the next release
# https://github.com/boostorg/pool/pull/42
Patch0: boost-1.78-pool-fix-integer-overflows-in-pool-ordered_malloc.patch
# https://github.com/boostorg/locale/pull/72
Patch1: boost-1.78-locale-Fix-access-to-first-element-of-empty-vector.patch
# https://github.com/boostorg/locale/pull/38
Patch2: boost-1.77-locale-remove-linking-with-boost-system.patch
# These patches have not been merged yet.
# https://github.com/boostorg/python/pull/373
Patch9000: boost-1.78-python-Update-call_method-hpp.patch
# https://github.com/boostorg/json/pull/693
Patch9001: boost-1.79-json-array-erase-relocate.patch
# https://github.com/boostorg/graph/pull/318
Patch1: boost-1.81-graph-Dont-run-performance-test-in-CI.patch
# https://github.com/boostorg/random/pull/83
Patch2: boost-1.81-random-Update-multiprecision_float_test.cpp-to-not-overflow.patch
Patch3: boost-1.81-random-Update-multiprecision_int_test.cpp-to-not-accidental.patch
Patch4: boost-1.81-random-test-Add-missing-includes.patch
# https://github.com/boostorg/phoenix/pull/116
Patch5: boost-1.81-phoenix-Update-avoid-placeholders-uarg1.10-ODR-violates.patch
Patch6: dynamic_linking.patch
Patch7: boost-remove-cmakedir.patch
Requires: %{name}-atomic%{?_isa} = %{version}-%{release}
Requires: %{name}-chrono%{?_isa} = %{version}-%{release}
Requires: %{name}-container%{?_isa} = %{version}-%{release}
@ -49,6 +47,7 @@ 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}
BuildRequires: gcc-c++
@ -58,8 +57,10 @@ BuildRequires: python3-devel python3-unversioned-command
BuildRequires: openssl-devel
# optional libraries for iostreams
BuildRequires: bzip2-devel libzstd-devel xz-devel zlib-devel
%ifnarch loongarch64 riscv64
# optional library for multiprecision
BuildRequires: libquadmath-devel
BuildRequires: libquadmath-devel libquadmath-static
%endif
# optional library for python3
BuildRequires: python3-numpy
# optional library for regex
@ -242,23 +243,230 @@ Requires: boost-chrono%{?_isa} = %{version}-%{release}
%description type_erasure
Runtime polymorphism based on concepts.
%package url
Summary: Run-time component for boost url.
%description url
A library for parsing, modifying, and printing URLs using only C++11.
%package wave
Summary: Run-time component for boost wave.
Requires: boost-chrono%{?_isa} = %{version}-%{release}
Requires: boost-filesystem%{?_isa} = %{version}-%{release}
Requires: boost-thread%{?_isa} = %{version}-%{release}
%package test-devel
Summary: Development headers for Boost.test
%description test-devel
Development header files and libraries for Boost.test
%package stacktrace-devel
Summary: Development headers for Boost.stacktrace
%description stacktrace-devel
Development header files and libraries for Boost.stacktrace
%package serialization-devel
Summary: Development headers for Boost.serialization
%description serialization-devel
Development header files and libraries for Boost.serialization
%package python3-devel
Summary: Development headers for Boost.python3
%description python3-devel
Development header files and libraries for Boost.python3
%package math-devel
Summary: Development headers for Boost.math
%description math-devel
Development header files and libraries for Boost.math
%package log-devel
Summary: Development headers for Boost.log
%description log-devel
Development header files and libraries for Boost.log
%package wave-devel
Summary: Development headers for Boost.wave
%description wave-devel
Development header files and libraries for Boost.wave
%package url-devel
Summary: Development headers for Boost.url
%description url-devel
Development header files and libraries for Boost.url
%package type_erasure-devel
Summary: Development headers for Boost.type_erasure
%description type_erasure-devel
Development header files and libraries for Boost.type_erasure
%package timer-devel
Summary: Development headers for Boost.timer
%description timer-devel
Development header files and libraries for Boost.timer
%package thread-devel
Summary: Development headers for Boost.thread
%description thread-devel
Development header files and libraries for Boost.thread
%package system-devel
Summary: Development headers for Boost.system
%description system-devel
Development header files and libraries for Boost.system
%package regex-devel
Summary: Development headers for Boost.regex
%description regex-devel
Development header files and libraries for Boost.regex
%package random-devel
Summary: Development headers for Boost.random
%description random-devel
Development header files and libraries for Boost.random
%package program-options-devel
Summary: Development headers for Boost.program-options
%description program-options-devel
Development header files and libraries for Boost.program-options
%package nowide-devel
Summary: Development headers for Boost.nowide
%description nowide-devel
Development header files and libraries for Boost.nowide
%package locale-devel
Summary: Development headers for Boost.locale
%description locale-devel
Development header files and libraries for Boost.locale
%package json-devel
Summary: Development headers for Boost.json
%description json-devel
Development header files and libraries for Boost.json
%package iostreams-devel
Summary: Development headers for Boost.iostreams
%description iostreams-devel
Development header files and libraries for Boost.iostreams
%package graph-devel
Summary: Development headers for Boost.graph
%description graph-devel
Development header files and libraries for Boost.graph
%package filesystem-devel
Summary: Development headers for Boost.filesystem
%description filesystem-devel
Development header files and libraries for Boost.filesystem
%package fiber-devel
Summary: Development headers for Boost.fiber
%description fiber-devel
Development header files and libraries for Boost.fiber
%package date-time-devel
Summary: Development headers for Boost.date-time
%description date-time-devel
Development header files and libraries for Boost.date-time
%package coroutine-devel
Summary: Development headers for Boost.coroutine
%description coroutine-devel
Development header files and libraries for Boost.coroutine
%package contract-devel
Summary: Development headers for Boost.contract
%description contract-devel
Development header files and libraries for Boost.contract
%package context-devel
Summary: Development headers for Boost.context
%description context-devel
Development header files and libraries for Boost.context
%package container-devel
Summary: Development headers for Boost.container
%description container-devel
Development header files and libraries for Boost.container
%package chrono-devel
Summary: Development headers for Boost.chrono
%description chrono-devel
Development header files and libraries for Boost.chrono
%package atomic-devel
Summary: Development headers for Boost.atomic
%description atomic-devel
Development header files and libraries for Boost.atomic
%description wave
An implementation of the mandated C99/C++ preprocessor functionality.
%package devel
Summary: The Boost C++ headers, shared and static development libraries
Requires: boost%{?_isa} = %{version}-%{release}
Requires: libicu-devel%{?_isa}
Requires: libquadmath-devel%{?_isa}
Provides: boost-static
Obsoletes: boost-static < %{version}
Requires: %{name}-test-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-stacktrace-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-serialization-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-python3-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-math-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-log-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-wave-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-url-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-type_erasure-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-timer-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-thread-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-system-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-regex-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-random-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-program-options-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-nowide-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-locale-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-json-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-iostreams-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-graph-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-filesystem-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-fiber-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-date-time-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-coroutine-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-contract-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-context-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-container-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-chrono-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-atomic-devel%{?_isa} = %{version}-%{release}
%description devel
Headers shared object symbolic links for the Boost C++ libraries and static
Boost C++ libraries distributed with boost.
@ -277,13 +485,19 @@ as that on the Boost web page (http://www.boost.org/doc/libs/%{version_enc}).
%autosetup -p1 -n %{name}_%{version_enc}
%build
./bootstrap.sh
%define opt_build -d+2 -q %{?_smp_mflags} --no-cmake-config
./bootstrap.sh --with-toolset=%{__cc}
# cmake config is enabled
%define opt_build -d+2 -q %{?_smp_mflags}
%define opt_feature release debug-symbols=on pch=off
%define opt_libs --without-mpi --without-graph_parallel
%define b2_options %{opt_build} %{opt_feature} %{opt_libs}
%define boost_macros BOOST_NO_AUTO_PTR
./b2 %{b2_options} cxxflags="$RPM_OPT_FLAGS" define=%{boost_macros}
%define boost_macros define=BOOST_NO_AUTO_PTR define=BOOST_STATECHART_USE_NATIVE_RTTI
./b2 %{b2_options} cxxflags="$RPM_OPT_FLAGS" %{boost_macros}
# Remove exception library, but only if the symbols are not
# actually used. For now, the only symbol that is linked is
# should never be used as it's only available on Windows. So,
# verify that here.
%check
(cd status
@ -297,9 +511,14 @@ as that on the Boost web page (http://www.boost.org/doc/libs/%{version_enc}).
install
mkdir boost-doc boost-example
find libs doc more -regex '.*\.\(html?\|css\|png\|gif\)' -exec cp {} boost-doc --parents \;
cp index.html boost.png rst.css boost.css boost-doc
cp -r index.html boost.png rst.css boost.css doc more boost-doc
find libs -name doc -exec cp {} boost-doc --parents -r \;
find libs -name example -exec cp {} boost-example --parents -r \;
rm %{buildroot}/%{_libdir}/libboost_exception.a
# not used or duplicated in boost-extra flavour
rm -r %{buildroot}/%{_libdir}/cmake/boost_exception-*
%files
%license LICENSE_1_0.txt
@ -365,10 +584,14 @@ find libs -name example -exec cp {} boost-example --parents -r \;
%license LICENSE_1_0.txt
%{_libdir}/libboost_math_c99.so.%{version}
%{_libdir}/libboost_math_c99f.so.%{version}
%ifnarch ppc64le
%{_libdir}/libboost_math_c99l.so.%{version}
%endif
%{_libdir}/libboost_math_tr1.so.%{version}
%{_libdir}/libboost_math_tr1f.so.%{version}
%ifnarch ppc64le
%{_libdir}/libboost_math_tr1l.so.%{version}
%endif
%files nowide
%license LICENSE_1_0.txt
@ -410,6 +633,7 @@ find libs -name example -exec cp {} boost-example --parents -r \;
%license LICENSE_1_0.txt
%{_libdir}/libboost_prg_exec_monitor.so.%{version}
%{_libdir}/libboost_unit_test_framework.so.%{version}
%{_libdir}/libboost_test_exec_monitor.so.%{version}
%files thread
%license LICENSE_1_0.txt
@ -423,6 +647,10 @@ find libs -name example -exec cp {} boost-example --parents -r \;
%license LICENSE_1_0.txt
%{_libdir}/libboost_type_erasure.so.%{version}
%files url
%license LICENSE_1_0.txt
%{_libdir}/libboost_url.so.%{version}
%files wave
%license LICENSE_1_0.txt
%{_libdir}/libboost_wave.so.%{version}
@ -433,11 +661,263 @@ find libs -name example -exec cp {} boost-example --parents -r \;
%files devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/Boost-%{version}
%{_libdir}/cmake/Boost-%{version}/*
%{_libdir}/cmake/*.cmake
# I think it's necessary to include Headers into this package
%dir %{_libdir}/cmake/boost_headers-%{version}
%{_libdir}/cmake/boost_headers-%{version}/*
%{_includedir}/%{name}
%{_libdir}/*.so
%{_libdir}/*.a
%files test-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_prg_exec_monitor-%{version}
%dir %{_libdir}/cmake/boost_test_exec_monitor-%{version}
%dir %{_libdir}/cmake/boost_unit_test_framework-%{version}
%{_libdir}/cmake/boost_prg_exec_monitor-%{version}/*
%{_libdir}/cmake/boost_test_exec_monitor-%{version}/*
%{_libdir}/cmake/boost_unit_test_framework-%{version}/*
%{_libdir}/libboost_prg_exec_monitor.so.%{version}
%{_libdir}/libboost_unit_test_framework.so.%{version}
%{_libdir}/libboost_test_exec_monitor.so.%{version}
%files stacktrace-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_stacktrace_addr2line-%{version}
%dir %{_libdir}/cmake/boost_stacktrace_basic-%{version}
%dir %{_libdir}/cmake/boost_stacktrace_noop-%{version}
%{_libdir}/cmake/boost_stacktrace_addr2line-%{version}/*
%{_libdir}/cmake/boost_stacktrace_basic-%{version}/*
%{_libdir}/cmake/boost_stacktrace_noop-%{version}/*
%{_libdir}/libboost_stacktrace_addr2line.so.%{version}
%{_libdir}/libboost_stacktrace_basic.so.%{version}
%{_libdir}/libboost_stacktrace_noop.so.%{version}
%files serialization-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_serialization-%{version}
%dir %{_libdir}/cmake/boost_wserialization-%{version}
%{_libdir}/cmake/boost_serialization-%{version}/*
%{_libdir}/cmake/boost_wserialization-%{version}/*
%{_libdir}/libboost_serialization.so.%{version}
%{_libdir}/libboost_wserialization.so.%{version}
%files python3-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_python-%{version}
%dir %{_libdir}/cmake/boost_numpy-%{version}
%{_libdir}/cmake/boost_python-%{version}/*
%{_libdir}/cmake/boost_numpy-%{version}/*
%{_libdir}/libboost_python%{python3_version_nodots}.so.%{version}
%{_libdir}/libboost_numpy%{python3_version_nodots}.so.%{version}
%files math-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_math_c99-%{version}
%dir %{_libdir}/cmake/boost_math_tr1-%{version}
%{_libdir}/cmake/boost_math_c99-%{version}/*
%{_libdir}/cmake/boost_math_c99f-%{version}/*
%{_libdir}/cmake/boost_math_c99l-%{version}/*
%{_libdir}/cmake/boost_math_tr1-%{version}/*
%{_libdir}/cmake/boost_math_tr1l-%{version}/*
%{_libdir}/cmake/boost_math_tr1f-%{version}/*
%{_libdir}/libboost_math_c99.so.%{version}
%{_libdir}/libboost_math_c99f.so.%{version}
%ifnarch ppc64le
%{_libdir}/libboost_math_c99l.so.%{version}
%endif
%{_libdir}/libboost_math_tr1.so.%{version}
%{_libdir}/libboost_math_tr1f.so.%{version}
%ifnarch ppc64le
%{_libdir}/libboost_math_tr1l.so.%{version}
%endif
%files log-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_log-%{version}
%dir %{_libdir}/cmake/boost_log_setup-%{version}
%{_libdir}/cmake/boost_log-%{version}/*
%{_libdir}/cmake/boost_log_setup-%{version}/*
%{_libdir}/libboost_log.so.%{version}
%{_libdir}/libboost_log_setup.so.%{version}
%files wave-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_wave-%{version}
%{_libdir}/cmake/boost_wave-%{version}/*
%{_libdir}/libboost_wave.so.%{version}
%files url-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_url-%{version}
%{_libdir}/cmake/boost_url-%{version}/*
%{_libdir}/libboost_url.so.%{version}
%files type_erasure-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_type_erasure-%{version}
%{_libdir}/cmake/boost_type_erasure-%{version}/*
%{_libdir}/libboost_type_erasure.so.%{version}
%files timer-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_timer-%{version}
%{_libdir}/cmake/boost_timer-%{version}/*
%{_libdir}/libboost_timer.so.%{version}
%files thread-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_thread-%{version}
%{_libdir}/cmake/boost_thread-%{version}/*
%{_libdir}/libboost_thread.so.%{version}
%files system-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_system-%{version}
%{_libdir}/cmake/boost_system-%{version}/*
%{_libdir}/libboost_system.so.%{version}
%files regex-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_regex-%{version}
%{_libdir}/cmake/boost_regex-%{version}/*
%{_libdir}/libboost_regex.so.%{version}
%files random-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_random-%{version}
%{_libdir}/cmake/boost_random-%{version}/*
%{_libdir}/libboost_random.so.%{version}
%files program-options-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_program_options-%{version}
%{_libdir}/cmake/boost_program_options-%{version}/*
%{_libdir}/libboost_program_options.so.%{version}
%files nowide-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_nowide-%{version}
%{_libdir}/cmake/boost_nowide-%{version}/*
%{_libdir}/libboost_nowide.so.%{version}
%files locale-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_locale-%{version}
%{_libdir}/cmake/boost_locale-%{version}/*
%{_libdir}/libboost_locale.so.%{version}
%files json-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_json-%{version}
%{_libdir}/cmake/boost_json-%{version}/*
%{_libdir}/libboost_json.so.%{version}
%files iostreams-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_iostreams-%{version}
%{_libdir}/cmake/boost_iostreams-%{version}/*
%{_libdir}/libboost_iostreams.so.%{version}
%files graph-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_graph-%{version}
%{_libdir}/cmake/boost_graph-%{version}/*
%{_libdir}/libboost_graph.so.%{version}
%files filesystem-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_filesystem-%{version}
%{_libdir}/cmake/boost_filesystem-%{version}/*
%{_libdir}/libboost_filesystem.so.%{version}
%files fiber-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_fiber-%{version}
%{_libdir}/cmake/boost_fiber-%{version}/*
%{_libdir}/libboost_fiber.so.%{version}
%files date-time-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_date_time-%{version}
%{_libdir}/cmake/boost_date_time-%{version}/*
%{_libdir}/libboost_date_time.so.%{version}
%files coroutine-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_coroutine-%{version}
%{_libdir}/cmake/boost_coroutine-%{version}/*
%{_libdir}/libboost_coroutine.so.%{version}
%files contract-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_contract-%{version}
%{_libdir}/cmake/boost_contract-%{version}/*
%{_libdir}/libboost_contract.so.%{version}
%files context-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_context-%{version}
%{_libdir}/cmake/boost_context-%{version}/*
%{_libdir}/libboost_context.so.%{version}
%files container-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_container-%{version}
%{_libdir}/cmake/boost_container-%{version}/*
%{_libdir}/libboost_container.so.%{version}
%files chrono-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_chrono-%{version}
%{_libdir}/cmake/boost_chrono-%{version}/*
%{_libdir}/libboost_chrono.so.%{version}
%files atomic-devel
%license LICENSE_1_0.txt
%dir %{_libdir}/cmake/boost_atomic-%{version}
%{_libdir}/cmake/boost_atomic-%{version}/*
%{_libdir}/libboost_atomic.so.%{version}
%changelog
* Sun Apr 28 2024 yinsist <jianhui.oerv@isrc.iscas.ac.cn> - 1.83.0-4
- Disable libquadmath dependency for RISC-V as gcc does not currently support RISC-V's libquadmath
* Thu Mar 14 2024 jammyjellyfish <jammyjellyfish255@outlook.com> - 1.83.0-3
- Support specify CC
* Sat Mar 2 2024 Wenlong Zhang <zhangwenlong@loongson.cn> - 1.83.0-2
- No libquadmath-devel libquadmath-static on loongarch64
* Thu Jan 25 2024 chenhaixiang <chenhaixiang3@huawei.com> - 1.83.0-1
- Update to 1.83.0
* Mon Nov 27 2023 jiahua.yu <jiahua.yu@shingroup.cn> - 1.81.0-3
- Init support for ppc64le
* Mon Sep 04 2023 Darssin <2020303249@mail.nwpu.edu.cn> - 1.81.0-2
- Avoid boost::phoenix::placeholders::uarg1..10 ODR violations
* Mon Dec 19 2022 Liu Zixian <liuzixian4@huawei.com> - 1.81.0-1
- Update to 1.81.0
* Thu Dec 08 2022 Liu Zixian <liuzixian4@huawei.com> - 1.80.0-5
- statechart: avoid undefined behavior
* Fri Dec 02 2022 Liu Zixian <liuzixian4@huawei.com> - 1.80.0-4
- Skip gcc value init check
* Sat Nov 26 2022 Liu Zixian <liuzixian4@huawei.com> - 1.80.0-3
- Fix libquadmath dependency
* Sat Nov 26 2022 Liu Zixian <liuzixian4@huawei.com> - 1.80.0-2
- Backport outcome regression test bugfix
* Wed Aug 24 2022 Liu Zixian <liuzixian4@huawei.com> - 1.80.0-1
- update to 1.80.0
* Tue Jun 07 2022 liukuo <liukuo@kylinos.cn> - 1.79.0-3
- License compliance rectification

13
dynamic_linking.patch Normal file
View File

@ -0,0 +1,13 @@
Index: boost_1_80_0/libs/test/build/Jamfile.v2
===================================================================
--- boost_1_80_0.orig/libs/test/build/Jamfile.v2
+++ boost_1_80_0/libs/test/build/Jamfile.v2
@@ -95,7 +95,7 @@ lib boost_test_exec_monitor
: # sources
$(TEST_EXEC_MON_SOURCES).cpp
: # requirements
- <link>static
+ # <link>static
: # default build
: # usage-requirements
<link>shared:<define>BOOST_TEST_DYN_LINK=1