Rebase to 1.73.0

Replace boost-jam and bjam with boost-b2 and b2
Add boost-nowide subpackage
This commit is contained in:
Jonathan Wakely 2020-05-28 08:44:23 +01:00
parent 66b109b6e1
commit 378d8d7e42
13 changed files with 304 additions and 331 deletions

View File

@ -1,34 +0,0 @@
From 675ea3ddf714e2594393ed935f64dce99721b7d7 Mon Sep 17 00:00:00 2001
From: Avi Kivity <avi@scylladb.com>
Date: Tue, 12 May 2020 14:29:56 +0300
Subject: [PATCH] auto_buffer: C++20 compatibility
C++20's std::allocator does not define the pointer member type,
use std::allocator_traits instead.
---
include/boost/signals2/detail/auto_buffer.hpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/boost/signals2/detail/auto_buffer.hpp b/include/boost/signals2/detail/auto_buffer.hpp
index 5ff8dd2..ed62152 100644
--- a/include/boost/signals2/detail/auto_buffer.hpp
+++ b/include/boost/signals2/detail/auto_buffer.hpp
@@ -140,11 +140,15 @@ namespace detail
typedef Allocator allocator_type;
typedef T value_type;
typedef typename Allocator::size_type size_type;
typedef typename Allocator::difference_type difference_type;
typedef T* pointer;
+#if __cplusplus <= 201703L
typedef typename Allocator::pointer allocator_pointer;
+#else
+ typedef typename std::allocator_traits<Allocator>::pointer allocator_pointer;
+#endif
typedef const T* const_pointer;
typedef T& reference;
typedef const T& const_reference;
typedef pointer iterator;
typedef const_pointer const_iterator;
--
2.26.2

144
b2.1 Normal file
View File

@ -0,0 +1,144 @@
.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,150 +0,0 @@
diff --git a/tools/build/v2/doc/bjam.1 b/tools/build/v2/doc/bjam.1
new file mode 100644
index 0000000..8a44af6
--- /dev/null
+++ b/tools/build/v2/doc/bjam.1
@@ -0,0 +1,144 @@
+.TH "bjam" 1 "Sat Nov 19 2011" "Doxygen" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+bjam \- Command-line utility to build Boost-related C++ projects with Boost\&.Build
+.SH "SYNOPSIS"
+.PP
+\fBbjam\fP \fC[-a] [-dx] [-fx] [-jx] [-lx] [-n] [-ox] [-px] [-q] [-sx=y] [-tx] [-v] [--x]\fP
+.PP
+\fIbjam\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 jam 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 bjam 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
+\fIbjam\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,26 +0,0 @@
--- boost_1_66_0/tools/build/src/engine/build.jam~ 2018-02-07 21:36:14.552201421 +0000
+++ boost_1_66_0/tools/build/src/engine/build.jam 2018-02-07 21:36:29.014173266 +0000
@@ -4,7 +4,7 @@
#~ http://www.boost.org/LICENSE_1_0.txt)
# Clean env vars of any "extra" empty values.
-for local v in ARGV CC CFLAGS LIBS
+for local v in ARGV CC CFLAGS LIBS RPM_OPT_FLAGS RPM_LD_FLAGS
{
local values ;
for local x in $($(v))
@@ -215,12 +215,12 @@
: -L$(--python-lib[1]) -l$(--python-lib[2]) ;
## GCC 2.x, 3.x, 4.x
toolset gcc gcc : "-o " : -D
- : -pedantic -fno-strict-aliasing
+ : -pedantic -fno-strict-aliasing $(RPM_OPT_FLAGS)
[ opt --release : [ opt --symbols : -g : -s ] -O3 ]
[ opt --debug : -g -O0 -fno-inline ]
[ opt --profile : -O3 -g -pg ]
-I$(--python-include) -I$(--extra-include) -Wno-long-long
- : -L$(--python-lib[1]) -l$(--python-lib[2]) ;
+ : -L$(--python-lib[1]) -l$(--python-lib[2]) $(RPM_LD_FLAGS) ;
## GCC 2.x, 3.x on CYGWIN but without cygwin1.dll
toolset gcc-nocygwin gcc : "-o " : -D
: -s -O3 -mno-cygwin

View File

@ -1,27 +0,0 @@
From dc708430bf5fd31d29da2e7e6b5fd20fe593e106 Mon Sep 17 00:00:00 2001
From: Michael Kuron <mkuron@users.noreply.github.com>
Date: Thu, 14 Feb 2019 15:55:31 +0100
Subject: [PATCH] mpi::detail::c_data needs to check for empty vectors
If the standard library is configured to do range checks (-D _GLIBCXX_ASSERTIONS), accessing the zeroth element of a vector to get its address triggers an assertion.
---
include/boost/mpi/detail/antiques.hpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/boost/mpi/detail/antiques.hpp b/include/boost/mpi/detail/antiques.hpp
index 0bd235b2..93b8efe9 100644
--- a/include/boost/mpi/detail/antiques.hpp
+++ b/include/boost/mpi/detail/antiques.hpp
@@ -19,10 +19,10 @@ namespace detail {
// serve as an incentive to get rid of this when those compilers
// are dropped.
template <typename T, typename A>
- T* c_data(std::vector<T,A>& v) { return &(v[0]); }
+ T* c_data(std::vector<T,A>& v) { if (v.empty()) return NULL; return &(v[0]); }
template <typename T, typename A>
- T const* c_data(std::vector<T,A> const& v) { return &(v[0]); }
+ T const* c_data(std::vector<T,A> const& v) { if (v.empty()) return NULL; return &(v[0]); }
// Some old MPI implementation (OpenMPI 1.6 for example) have non
// conforming API w.r.t. constness.

View File

@ -1,22 +0,0 @@
From 1be44d405e48a42a63bd8d2dae739560b486a55c Mon Sep 17 00:00:00 2001
From: Nick Thompson <nathompson7@protonmail.com>
Date: Sun, 11 Feb 2018 15:02:43 -0600
Subject: [PATCH] [ci skip] Remove deprecated header.
---
include/boost/random/detail/integer_log2.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/boost/random/detail/integer_log2.hpp b/include/boost/random/detail/integer_log2.hpp
index 248243a4b..2e49f281f 100644
--- a/include/boost/random/detail/integer_log2.hpp
+++ b/include/boost/random/detail/integer_log2.hpp
@@ -16,7 +16,7 @@
#include <boost/config.hpp>
#include <boost/limits.hpp>
-#include <boost/pending/integer_log2.hpp>
+#include <boost/integer/integer_log2.hpp>
namespace boost {
namespace random {

View File

@ -1,26 +1,3 @@
From 8ac88c62dcc809d42daf8b6bef10f7adecc46dd1 Mon Sep 17 00:00:00 2001
From: Laurent Stacul <laurent.stacul@amadeus.com>
Date: Mon, 17 Feb 2020 08:57:49 +0000
Subject: [PATCH] Fix compilation issue due to deleted
std::basic_ostream::operator<< overload
---
include/boost/test/impl/test_tools.ipp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/boost/test/impl/test_tools.ipp b/include/boost/test/impl/test_tools.ipp
index 40f24e6399..e4d61660b8 100644
--- a/include/boost/test/impl/test_tools.ipp
+++ b/include/boost/test/impl/test_tools.ipp
@@ -124,7 +124,7 @@ 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 ? t : L"null string" );
+ ostr << ( t ? reinterpret_cast<const void*>(t) : "null string" );
}
//____________________________________________________________________________//
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

View File

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

View File

@ -1,6 +1,6 @@
--- boost_1_66_0/tools/build/src/tools/gcc.jam~ 2017-12-13 23:56:50.000000000 +0000
+++ boost_1_66_0/tools/build/src/tools/gcc.jam 2018-01-19 12:48:26.264755316 +0000
@@ -603,7 +603,7 @@ rule compile.fortran ( targets * : sourc
--- 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
{
@ -9,7 +9,7 @@
}
actions compile.c bind PCH_FILE
@@ -613,7 +613,7 @@ actions compile.c bind PCH_FILE
@@ -581,7 +581,7 @@
actions compile.c++.preprocess bind PCH_FILE
{
@ -18,7 +18,7 @@
}
actions compile.c.preprocess bind PCH_FILE
@@ -755,17 +755,17 @@ actions compile.c.pch
@@ -704,20 +704,20 @@
###
# Declare flags and action for compilation.
@ -32,7 +32,10 @@
-
-toolset.flags gcc.compile OPTIONS <warnings>off : -w ;
-toolset.flags gcc.compile OPTIONS <warnings>on : -Wall ;
-toolset.flags gcc.compile OPTIONS <warnings>all : -Wall -pedantic ;
-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 : ;
@ -44,6 +47,9 @@
+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-as-errors>on : -Werror ;
+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

@ -0,0 +1,28 @@
--- boost_1_73_0/tools/boost_install/boost-install.jam~ 2020-04-24 20:21:50.330267122 +0100
+++ boost_1_73_0/tools/boost_install/boost-install.jam 2020-04-24 20:22:16.818360540 +0100
@@ -652,25 +652,6 @@
"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

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

@ -41,8 +41,8 @@
Name: boost
%global real_name boost
Summary: The free peer-reviewed portable C++ source libraries
Version: 1.69.0
Release: 22%{?dist}
Version: 1.73.0
Release: 1%{?dist}
License: Boost and MIT and Python
# Replace each . with _ in %%{version}
@ -54,9 +54,12 @@ License: Boost and MIT and Python
%global toplev_dirname %{real_name}_%{version_enc}
URL: http://www.boost.org
Source0: https://sourceforge.net/projects/%{name}/files/%{name}/%{version}/%{toplev_dirname}.tar.bz2
#Source0: https://dl.bintray.com/boostorg/master/%%{name}_%%{version_enc}-snapshot.tar.gz
Source0: https://sourceforge.net/projects/%%{name}/files/%{name}/%{version}/%{toplev_dirname}.tar.bz2
#Source0: https://dl.bintray.com/boostorg/master/%%{name}_%%{version_enc}.tar.gz
Source1: libboost_thread.so
# Add a manual page for b2, based on the online documentation:
# http://www.boost.org/boost-build2/doc/html/bbv2/overview.html
Source2: b2.1
# Since Fedora 13, the Boost libraries are delivered with sonames
# equal to the Boost version (e.g., 1.41.0).
@ -67,7 +70,7 @@ Source1: libboost_thread.so
# there are alternative implementations to choose from (Open MPI and MPICH),
# and it's not a big burden to have interested parties install them explicitly.
# The subpackages that don't install shared libraries are also not pulled in
# (build, doc, doctools, examples, jam, static).
# (b2, build, doc, doctools, examples, static).
Requires: %{name}-atomic%{?_isa} = %{version}-%{release}
Requires: %{name}-chrono%{?_isa} = %{version}-%{release}
Requires: %{name}-container%{?_isa} = %{version}-%{release}
@ -86,6 +89,7 @@ Requires: %{name}-iostreams%{?_isa} = %{version}-%{release}
Requires: %{name}-locale%{?_isa} = %{version}-%{release}
Requires: %{name}-log%{?_isa} = %{version}-%{release}
Requires: %{name}-math%{?_isa} = %{version}-%{release}
Requires: %{name}-nowide%{?_isa} = %{version}-%{release}
Requires: %{name}-program-options%{?_isa} = %{version}-%{release}
%if %{with python3}
Requires: %{name}-python3%{?_isa} = %{version}-%{release}
@ -118,14 +122,11 @@ BuildRequires: libicu-devel
%if %{with quadmath}
BuildRequires: libquadmath-devel
%endif
BuildRequires: bison
# https://svn.boost.org/trac/boost/ticket/6150
Patch4: boost-1.50.0-fix-non-utf8-files.patch
# Add a manual page for bjam, based on the on-line documentation:
# http://www.boost.org/boost-build2/doc/html/bbv2/overview.html
Patch5: boost-1.48.0-add-bjam-man-page.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=828856
# https://bugzilla.redhat.com/show_bug.cgi?id=828857
# https://svn.boost.org/trac/boost/ticket/6701
@ -135,19 +136,13 @@ Patch15: boost-1.58.0-pool.patch
Patch51: boost-1.58.0-pool-test_linking.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1190039
Patch65: boost-1.66.0-build-optflags.patch
Patch65: boost-1.73.0-build-optflags.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1318383
Patch82: boost-1.66.0-no-rpath.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1541035
Patch83: boost-1.66.0-bjam-build-flags.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1673669
Patch84: boost-1.69-random.patch
# https://github.com/boostorg/mpi/pull/81
Patch85: boost-1.69-mpi-c_data.patch
Patch83: boost-1.73.0-b2-build-flags.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1818723
Patch86: boost-1.69-format-allocator.patch
@ -155,8 +150,11 @@ Patch86: boost-1.69-format-allocator.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1832639
Patch87: boost-1.69.0-test-cxx20.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1834764
Patch88: auto_buffer-C-20-compatibility.patch
# https://lists.boost.org/Archives/boost/2020/04/248812.php
Patch88: boost-1.73.0-cmakedir.patch
# https://github.com/ned14/outcome/issues/223
Patch89: boost-1.73.0-outcome-assert.patch
%bcond_with tests
%bcond_with docs_generated
@ -304,6 +302,15 @@ Summary: Math functions for boost TR1 library
Run-time support for C99 and C++ TR1 C-style Functions from the math
portion of Boost.TR1.
%package nowide
Summary: Standard library functions with UTF-8 API on Windows
# Added for F33, remove for F35:
Obsoletes: boost-nowide <= 0.20190814
%description nowide
Run-time support for Boost.Nowide.
%if %{with python3}
%package numpy3
@ -448,6 +455,10 @@ Obsoletes: %{name}-python3-devel < 1.69.0-20
Provides: %{name}-python3-devel = %{version}-%{release}
Provides: %{name}-python3-devel%{?_isa} = %{version}-%{release}
%endif
# Added for F33, remove for F35:
Obsoletes: boost-nowide-devel <= 0.20190814
Provides: boost-nowide-devel = %{version}
Provides: boost-nowide-devel%{?_isa} = %{version}
%description devel
Headers and shared object symbolic links for the Boost C++ libraries.
@ -612,7 +623,7 @@ back-end to do the parallel work.
%package build
Summary: Cross platform build system for C++ projects
Requires: %{name}-jam
Requires: %{name}-b2
BuildArch: noarch
%description build
@ -632,12 +643,16 @@ Requires: docbook-style-xsl
Tools for working with Boost documentation in BoostBook or QuickBook format.
%package jam
%package b2
Summary: A low-level build tool
# Added for F33, remove for F35:
Obsoletes: boost-jam < 1.73.0
Provides: boost-jam = %{version}
Provides: boost-jam%{?_isa} = %{version}
%description jam
Boost.Jam (BJam) is the low-level build engine tool for Boost.Build.
Historically, Boost.Jam is based on on FTJam and on Perforce Jam but has grown
%description b2
B2 (formerly Boost.Jam) is the low-level build engine tool for Boost.Build.
Historically, B2 was based on on FTJam and on Perforce Jam but has grown
a number of significant features and is now developed independently.
%prep
@ -645,17 +660,15 @@ a number of significant features and is now developed independently.
find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x
%patch4 -p1
%patch5 -p1
%patch15 -p0
%patch51 -p1
%patch65 -p1
%patch82 -p1
%patch83 -p1
%patch84 -p2
%patch85 -p2
%patch86 -p1
%patch87 -p2
%patch88 -p2
%patch88 -p1
%patch89 -p1
%build
# Dump the versions being used into the build logs.
@ -791,12 +804,21 @@ echo ============================= install $MPI_COMPILER ==================
# Move Python module to proper location for automatic loading
mkdir -p ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost
touch ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/__init__.py
mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \
mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \
${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/
%endif
# Remove generic parts of boost that were built for dependencies.
rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}*
rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy*
# Remove cmake files (some of these are duplicates of the generic bits anyway).
rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake
# Remove the useless libboost_foo.so.1.NN and libboost_foo.so.1 symlinks.
version=%{version}
rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%.*}
rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%%%.*}
%{_openmpi_unload}
export PATH=/bin${PATH:+:}$PATH
@ -816,12 +838,21 @@ echo ============================= install $MPI_COMPILER ==================
# Move Python module to proper location for automatic loading
mkdir -p ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost
touch ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/__init__.py
mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \
mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \
${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/
%endif
# Remove generic parts of boost that were built for dependencies.
rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}*
rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy*
# Remove cmake files (some of these are duplicates of the generic bits anyway).
rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake
# Remove the useless libboost_foo.so.1.NN and libboost_foo.so.1 symlinks.
version=%{version}
rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%.*}
rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%%%.*}
%{_mpich_unload}
export PATH=/bin${PATH:+:}$PATH
@ -848,25 +879,26 @@ echo ============================= install serial ==================
rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so
install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/
# Remove cmake files until we know somebody wants them.
rm -r $RPM_BUILD_ROOT/%{_libdir}/cmake
# Remove the useless libboost_foo.so.1.NN and libboost_foo.so.1 symlinks.
version=%{version}
rm $RPM_BUILD_ROOT%{_libdir}/libboost_*.so.${version%%.*}
rm $RPM_BUILD_ROOT%{_libdir}/libboost_*.so.${version%%%%.*}
echo ============================= install Boost.Build ==================
(cd tools/build
./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install
# Fix some permissions
chmod -x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/build/alias.py
chmod -x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/kernel/boost-build.jam
chmod -x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/options/help.jam
chmod +x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py
# Fix shebang using unversioned python
sed -i '1s@^#!/usr/bin.python$@&3@' $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py
# We don't want to distribute this
rm -f $RPM_BUILD_ROOT%{_bindir}/b2
# Not a real file
rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/build/project.ann.py
# Empty file
rm $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp
rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp
# Install the manual page
%{__install} -p -m 644 v2/doc/bjam.1 -D $RPM_BUILD_ROOT%{_mandir}/man1/bjam.1
%{__install} -p -m 644 %{SOURCE2} -D $RPM_BUILD_ROOT%{_mandir}/man1/b2.1
)
echo ============================= install Boost.QuickBook ==================
@ -1036,6 +1068,10 @@ fi
%{_libdir}/libboost_math_tr1f.so.%{sonamever}
%{_libdir}/libboost_math_tr1l.so.%{sonamever}
%files nowide
%license LICENSE_1_0.txt
%{_libdir}/libboost_nowide.so.%{sonamever}
%if %{with python3}
%files numpy3
%license LICENSE_1_0.txt
@ -1133,6 +1169,7 @@ fi
%{_libdir}/libboost_math_c99.so
%{_libdir}/libboost_math_c99f.so
%{_libdir}/libboost_math_c99l.so
%{_libdir}/libboost_nowide.so
%if %{with python3}
%{_libdir}/libboost_numpy%{python3_version_nodots}.so
%endif
@ -1236,12 +1273,17 @@ fi
%{_bindir}/quickbook
%{_datadir}/boostbook/
%files jam
%files b2
%license LICENSE_1_0.txt
%{_bindir}/bjam
%{_mandir}/man1/bjam.1*
%{_bindir}/b2
%{_mandir}/man1/b2.1*
%changelog
* Thu May 28 2020 Jonathan Wakely <jwakely@redhat.com> - 1.73.0-1
- Rebase to 1.73.0
- Replace boost-jam and bjam with boost-b2 and b2
- Add boost-nowide subpackage
* Mon May 25 2020 Miro Hrončok <mhroncok@redhat.com> - 1.69.0-22
- Rebuilt for Python 3.9

View File

@ -1 +1 @@
SHA512 (boost_1_69_0.tar.bz2) = d0e9bb858c44880d56c0291afef6a1b011a62f659a2d8f58dcb6147ea0899f9157bd8db3097896618fee0116847ebeac78b6d0f0fec8a92c3469500828bbe552
SHA512 (boost_1_73_0.tar.bz2) = 86c296511c0766145097625a62bf099c3d155284d250ad6e528e788bc90b2945838498dfe473c6c6c78d1694b6fba8e19f7dee0d064a043841e6231603fff668