Compare commits

...

76 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
openeuler-ci-bot
056ebd32d7
!93 License compliance rectification
From: @lauk001 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2022-06-08 06:43:16 +00:00
lauk
f62334130e License compliance rectification 2022-06-07 16:11:52 +08:00
openeuler-ci-bot
77ff096f78
!92 enable %check
From: @sdlzx 
Reviewed-by: @juyin, @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2022-05-30 03:31:28 +00:00
sdlzx
311efb0abd
enable %check 2022-05-27 09:15:43 +00:00
openeuler-ci-bot
558f985194
!87 Update to 1.79
From: @sdlzx 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2022-04-18 01:25:24 +00:00
Liu Zixian
63a89127af Update to 1.79.0 2022-04-16 23:55:46 +08:00
openeuler-ci-bot
8ab4fe722e
!84 fix security issue
From: @sdlzx 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2022-03-21 02:50:10 +00:00
Liu Zixian
70c2a6f02c filesystem: backport upstream security patches 2022-03-20 01:09:00 +08:00
openeuler-ci-bot
882b9eaa42
!81 fix boost-example
From: @sdlzx 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2022-03-02 09:28:59 +00:00
sdlzx
b23355954b
fix boost-example 2022-03-02 09:09:56 +00:00
openeuler-ci-bot
4d319ba332
!80 [sync] PR-78: Fix build warnings
From: @openeuler-sync-bot 
Reviewed-by: @liqingqing_1229 
Signed-off-by: @liqingqing_1229
2022-02-17 03:08:18 +00:00
Liu Zixian
d2ce0849c0 fix build warnings
(cherry picked from commit 7f77186e70)
2022-02-17 10:20:03 +08:00
openeuler-ci-bot
be910a9082
!74 simplify %build
Merge pull request !74 from sdlzx/master
2022-01-30 01:34:16 +00:00
Liu Zixian
397010b3ac simplify %build 2022-01-30 00:17:16 +08:00
openeuler-ci-bot
0ecd5e495a
!73 [sync] PR-71: fix boost-build known issue
Merge pull request !73 from openeuler-sync-bot/sync-pr71-openEuler-22.03-LTS-Next-to-master
2022-01-29 01:02:49 +00:00
Liu Zixian
a5508c0d5d fix build known issue
(cherry picked from commit 0fd9080c13)
2022-01-28 17:28:15 +08:00
openeuler-ci-bot
57c7f97839
!69 [sync] PR-67: Refactor boost-help
Merge pull request !69 from openeuler-sync-bot/sync-pr67-openEuler-22.03-LTS-Next-to-master
2022-01-27 00:47:55 +00:00
Liu Zixian
f9fa8bee1e Refactor boost-help
Merge HTML documents and code examples into boost-help.
Also simplify install scripts.

Signed-off-by: Liu Zixian <liuzixian4@huawei.com>
(cherry picked from commit dca39bd27b)
2022-01-26 23:00:35 +08:00
openeuler-ci-bot
9980260d15
!68 [sync] PR-65: Don't package internal build tools
Merge pull request !68 from openeuler-sync-bot/sync-pr65-openEuler-22.03-LTS-Next-to-master
2022-01-25 09:06:48 +00:00
sdlzx
143e4339fc Don't package internal build tools
(cherry picked from commit 136c300aa7)
2022-01-24 20:36:49 +08:00
openeuler-ci-bot
592e82c856
!66 [sync] PR-64: Remove unused mpi script
Merge pull request !66 from openeuler-sync-bot/sync-pr64-openEuler-22.03-LTS-Next-to-master
2022-01-24 03:33:53 +00:00
sdlzx
59f3e1a8c2 Remove unused mpi script
(cherry picked from commit d4c1af34e5)
2022-01-22 00:03:33 +08:00
openeuler-ci-bot
2091d3484b !63 [sync] PR-62: Update sub-package spec for libraries
Merge pull request !63 from openeuler-sync-bot/sync-pr62-openEuler-22.03-LTS-Next-to-master
2021-12-27 00:44:23 +00:00
sdlzx
80c893fd44 Update package info
(cherry picked from commit a69b55ad86)
2021-12-27 08:43:19 +08:00
openeuler-ci-bot
36ed8a7d22 !61 [sync] PR-60: extract common b2 configs into b2_config and utilize --no-cmake-config
Merge pull request !61 from openeuler-sync-bot/sync-pr60-openEuler-22.03-LTS-Next-to-master
2021-12-22 08:59:36 +00:00
sdlzx
a4e325ad1a extract common b2 configs into b2_config
(cherry picked from commit e3e238a9e2)
2021-12-22 16:58:32 +08:00
openeuler-ci-bot
c78c7d6df8 !59 [sync] PR-58: simplify spec
Merge pull request !59 from openeuler-sync-bot/sync-pr58-openEuler-22.03-LTS-Next-to-master
2021-12-15 01:08:09 +00:00
sdlzx
5a73e77234 simplify spec
(cherry picked from commit b4400d6fa5)
2021-12-15 09:07:18 +08:00
openeuler-ci-bot
947b4a914a !55 [sync] PR-54: Update to 1.78.0
Merge pull request !55 from openeuler-sync-bot/sync-pr54-openEuler-22.03-LTS-Next-to-master
2021-12-13 01:04:25 +00:00
sdlzx
7602004a45 Update to 1.78.0
(cherry picked from commit b33da7ec11)
2021-12-13 09:02:20 +08:00
openeuler-ci-bot
ea1d727a50 !41 Remove dependencies on header-only libraries
From: @sdlzx
Reviewed-by: @liqingqing_1229
Signed-off-by: @liqingqing_1229
2021-10-08 01:19:09 +00:00
sdlzx
3c2c4bff8e Remove dependencies on header-only libraries 2021-10-06 09:40:07 +08:00
openeuler-ci-bot
61a7253e25 !40 Remove boost.thread linking script and clean up dependencies
From: @sdlzx
Reviewed-by: @liqingqing_1229
Signed-off-by: @liqingqing_1229
2021-09-27 11:06:49 +00:00
sdlzx
27c6502f39 Remove boost.thread linking script which is fixed in upstream PR266 2021-09-26 22:41:52 +08:00
openeuler-ci-bot
8238f0a4e9 !39 Correct License
From: @sdlzx
Reviewed-by: @liqingqing_1229
Signed-off-by: @liqingqing_1229
2021-09-22 07:55:57 +00:00
sdlzx
07e8fed948 Correct License
license name should be the same as https://gitee.com/openeuler/openeuler-jenkins/blob/master/src/ac/acl/package_license/config/Licenses.yaml
2021-09-22 07:08:47 +00:00
openeuler-ci-bot
45229ddd0d !38 Update to 1.77
From: @sdlzx
Reviewed-by: 
Signed-off-by:
2021-09-22 06:34:32 +00:00
sdlzx
3e70aae998 update to 1.77 2021-09-17 00:03:53 +08:00
16 changed files with 879 additions and 1213 deletions

144
bjam
View File

@ -1,144 +0,0 @@
.TH "b2" 1 "Sat Nov 19 2011" "Doxygen" \" -*- nroff -*-
.ad l
.nh
.SH NAME
b2 \- Command-line utility to build Boost-related C++ projects with Boost\&.Build
.SH "SYNOPSIS"
.PP
\fBb2\fP \fC[-a] [-dx] [-fx] [-jx] [-lx] [-n] [-ox] [-px] [-q] [-sx=y] [-tx] [-v] [--x]\fP
.PP
\fIb2\fP accepts the following options:
.PP
\fB-a\fP
.br
Build all targets, even if they are current
.PP
\fB-dx\fP
.br
Set the debug level to x (0-9)
.PP
\fB-fx\fP
.br
Read x instead of Jambase
.PP
\fB-jx\fP
.br
Run up to x shell commands concurrently
.PP
\fB-lx\fP
.br
Limit actions to x number of seconds after which they are stopped
.PP
\fB-n\fP
.br
Don't actually execute the updating actions
.PP
\fB-ox\fP
.br
Write the updating actions to file x
.PP
\fB-px\fP
.br
x=0, pipes action stdout and stderr merged into action output
.PP
\fB-q\fP
.br
Quit quickly as soon as a target fails
.PP
\fB-sx=y\fP
.br
Set variable x=y, overriding environment
.PP
\fB-tx\fP
.br
Rebuild x, even if it is up-to-date
.PP
\fB-v\fP
.br
Print the version of b2 and exit
.PP
\fB--x\fP
.br
Option is ignored
.SH "DESCRIPTION"
.PP
This section provides the information necessary to create your own projects using \fIBoost\&.Build\fP The information provided here is relatively high-level, and Chapter 6, Reference as well as the on-line help system must be used to obtain low-level documentation (see --help)
.PP
\fIBoost\&.Build\fP actually consists of two parts - \fIBoost\&.Jam\fP, a build engine with its own interpreted language, and \fIBoost\&.Build\fP itself, implemented in \fIBoost\&.Jam's\fP language\&. The chain of events when you type b2 on the command line is as follows:
.IP "\(bu" 2
\fIBoost\&.Jam\fP tries to find \fIBoost\&.Build\fP and loads the top-level module\&. The exact process is described in the section called “Initialization”
.PP
.PP
.IP "\(bu" 2
The top-level module loads user-defined configuration files, \fIuser-config\&.jam\fP and \fIsite-config\&.jam\fP, which define available toolsets
.PP
.PP
.IP "\(bu" 2
The \fIJamfile\fP in the current directory is read That in turn might cause reading of further Jamfiles\&. As a result, a tree of projects is created, with targets inside projects
.PP
.PP
.IP "\(bu" 2
Finally, using the build request specified on the command line, \fIBoost\&.Build\fP decides which targets should be built and how\&. That information is passed back to \fIBoost\&.Jam\fP, which takes care of actually running the scheduled build action commands
.PP
.PP
So, to be able to successfully use \fIBoost\&.Build\fP, you need to know only four things:
.IP "\(bu" 2
How to configure \fIBoost\&.Build\fP (http://www.boost.org/boost-build2/doc/html/bbv2/overview/configuration.html)
.IP "\(bu" 2
How to declare targets in Jamfiles (http://www.boost.org/boost-build2/doc/html/bbv2/overview/targets.html)
.IP "\(bu" 2
How the build process works (http://www.boost.org/boost-build2/doc/html/bbv2/overview/build_process.html)
.PP
.PP
Some Basics about the \fIBoost\&.Jam\fP language\&. See the section called “Boost\&.Jam Language” (http://www.boost.org/boost-build2/doc/html/bbv2/overview/jam_language.html)
.SH "CONCEPTS"
.PP
\fIBoost\&.Build\fP has a few unique concepts that are introduced in this section\&. The best way to explain the concepts is by comparison with more classical build tools
.PP
When using any flavour of make, you directly specify targets and commands that are used to create them from other target\&. The below example creates a\&.o from a\&.c using a hardcoded compiler invocation command
.PP
a\&.o: a\&.c
.br
g++ -o a\&.o -g a\&.c
.PP
This is rather low-level description mechanism and it is hard to adjust commands, options, and sets of created targets depending on the used compiler and operating system\&.
.PP
To improve portability, most modern build system provide a set of higher-level functions that can be used in build description files\&. Consider this example:
.PP
add_program ('a', 'a\&.c')
.br
.PP
This is a function call that creates targets necessary to create executable file from source file a\&.c\&. Depending on configured properties, different commands line may be used\&. However, \fIadd_program\fP is higher-level, but rather thin level All targets are created immediately when build description is parsed, which makes it impossible to perform multi-variant builds\&. Often, change in any build property requires complete reconfiguration of the build tree
.PP
In order to support true multivariant builds, Boost\&.Build introduces the concept of metatarget—object that is created when build description is parsed and can be later called with specific build properties to generate actual targets
.PP
Consider an example:
.PP
exe a : a\&.cpp ;
.br
.PP
When this declaration is parsed, \fIBoost\&.Build\fP creates a metatarget, but does not yet decides what files must be created, or what commands must be used\&. After all build files are parsed, Boost\&.Build considers properties requested on the command line\&. Supposed you have invoked \fIBoost\&.Build\fP with:
.PP
\fIb2\fP toolset=gcc toolset=msvc
.br
.PP
In that case, the metatarget will be called twice, once with toolset=gcc and once with toolset=msvc\&. Both invocations will produce concrete targets, that will have different extensions and use different command lines\&. Another key concept is build property\&. Build property is a variable that affects the build process\&. It can be specified on the command line, and is passed when calling a metatarget
.PP
While all build tools have a similar mechanism, \fIBoost\&.Build\fP differs by requiring that all build properties are declared in advance, and providing a large set of properties with portable semantics
.PP
The final concept is property propagation\&. Boost\&.Build does not require that every metatarget is called with the same properties\&. Instead, the 'top-level' metatargets are called with the properties specified on the command line Each metatarget can elect to augment or override some properties (in particular, using the requirements mechanism, see the section called “Requirements”: http://www.boost.org/boost-build2/doc/html/bbv2/overview/targets.html#bbv2.overview.targets.requirements) Then, the dependency metatargets are called with modified properties and produce concrete targets that are then used in build process Of course, dependency metatargets maybe in turn modify build properties and have dependencies of their own\&.
.PP
For more in-depth treatment of the requirements and concepts, you may refer to SYRCoSE 2009 Boost\&.Build article (http://syrcose.ispras.ru/2009/files/04_paper.pdf)\&.
.SH "SEE ALSO"
.PP
\fBboost-libraries\fP(3)
.SH "SUPPORT"
.PP
Please report any bugs to https://svn.boost.org/trac/boost/
.SH "COPYRIGHT"
.PP
Boost Software License - Version 1\&.0 - August 17th, 2003
.PP
See the LICENSE_1_0\&.txt file for more information on that license, or directly on Internet:
.br
http://www.boost.org/LICENSE_1_0.txt

View File

@ -1,33 +0,0 @@
diff -up boost_1_58_0/libs/pool/test/Jamfile.v2\~ boost_1_58_0/libs/pool/test/Jamfile.v2
--- boost_1_57_0/libs/pool/test/Jamfile.v2~ 2015-07-17 11:36:16.362519826 +0100
+++ boost_1_57_0/libs/pool/test/Jamfile.v2 2015-07-17 11:37:38.858847388 +0100
@@ -22,18 +22,18 @@ import os ;
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 ]
;
--
2.19.1

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

View File

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

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

1481
boost.spec

File diff suppressed because it is too large Load Diff

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

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

View File

@ -1,33 +0,0 @@
From 91107fe78a290a7d25a042fec09ea89f14f480d9 Mon Sep 17 00:00:00 2001
From: xuhuijie <xuhuijie2@huawei.com>
Date: Wed, 16 Jun 2021 15:47:22 +0800
Subject: [PATCH] regex: fix dead loop in parse_repea
There is a bug in parse_repeat(), after deal with comment the
contin value will be always true. So we enter a dead loop. To deal with this,
we assign contin to false each time we enter the loop.
Testcase: boost::regex(std::string("1?+(?#)1"))
Signed-off-by: Xu Huijie <xuhuijie2@huawei.com>
---
boost/regex/v4/basic_regex_parser.hpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/boost/regex/v4/basic_regex_parser.hpp b/boost/regex/v4/basic_regex_parser.hpp
index 6c7065f05..de22f7000 100644
--- a/boost/regex/v4/basic_regex_parser.hpp
+++ b/boost/regex/v4/basic_regex_parser.hpp
@@ -1080,9 +1080,10 @@ bool basic_regex_parser<charT, traits>::parse_repeat(std::size_t low, std::size_
// Check for illegal following quantifier, we have to do this here, because
// the extra states we insert below circumvents our usual error checking :-(
//
- bool contin = false;
+ bool contin;
do
{
+ contin = false;
if ((this->flags() & (regbase::main_option_type | regbase::mod_x | regbase::no_perl_ex)) == regbase::mod_x)
{
// whitespace skip:
--
2.23.0