Rebase to 1.66.0

- Drop patches:
  boost-1.63.0-dual-python-build-v2.patch
  boost-1.64.0-mpi-get_data.patch
  boost-1.64.0-serialization-make_array.patch
  boost-1.64.0-icl-ttp-matching.patch
  boost-1.64.0-icl-undefined-shift.patch
This commit is contained in:
Jonathan Wakely 2018-01-23 15:33:35 +00:00
parent 1885d22687
commit 747d6e8fe2
9 changed files with 80 additions and 280 deletions

View File

@ -1,37 +0,0 @@
From 32178e147a976419b9ac846d3c40c3ab4d1e0ff6 Mon Sep 17 00:00:00 2001
From: Mathias Gaunard <mathias@gaunard.com>
Date: Thu, 4 May 2017 17:18:22 +0100
Subject: [PATCH] Compatibility with GCC 7.1
The libstdc++ shipped with GCC 7.1 uses a unary class template for std::string.
type_to_string needs to be adapted to deal with this properly.
---
include/boost/icl/type_traits/type_to_string.hpp | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/include/boost/icl/type_traits/type_to_string.hpp b/include/boost/icl/type_traits/type_to_string.hpp
index 80c473a..994711b 100644
--- a/include/boost/icl/type_traits/type_to_string.hpp
+++ b/include/boost/icl/type_traits/type_to_string.hpp
@@ -43,7 +43,6 @@ namespace boost{ namespace icl
template<>inline std::string type_to_string<float>::apply() { return "flt"; }
template<>inline std::string type_to_string<double>::apply() { return "dbl"; }
- template<>inline std::string type_to_string<std::string>::apply() { return "string"; }
//-------------------------------------------------------------------------
template<template<class> class Templ>
@@ -78,6 +77,13 @@ namespace boost{ namespace icl
}
};
+ // ---------------------------------------------------------------------------
+ template<>
+ struct type_to_string<std::string>
+ {
+ static std::string apply() { return "string"; }
+ };
+
}} // namespace boost icl
#endif

View File

@ -1,28 +0,0 @@
From 9687dea689e58cd1f67440fa529cb5c9692e9858 Mon Sep 17 00:00:00 2001
From: Avi Kivity <avi@scylladb.com>
Date: Sun, 2 Jul 2017 12:56:35 +0300
Subject: [PATCH] Fix undefined behavior in interval_bounds::reverse_right()
The ~ operator converts _bits from unsigned char to int, and makes it
negative to boot. Shifting left a negative number is undefined behavior.
Cast it back to unsigned char to prevent undefined behavior.
---
include/boost/icl/interval_bounds.hpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/boost/icl/interval_bounds.hpp b/include/boost/icl/interval_bounds.hpp
index edf16d0..f917cb6 100644
--- a/include/boost/icl/interval_bounds.hpp
+++ b/include/boost/icl/interval_bounds.hpp
@@ -41,8 +41,8 @@ class interval_bounds
interval_bounds all ()const { return interval_bounds(_bits & _all ); }
interval_bounds left ()const { return interval_bounds(_bits & _left ); }
interval_bounds right()const { return interval_bounds(_bits & _right); }
- interval_bounds reverse_left ()const { return interval_bounds((~_bits>>1) & _right); }
- interval_bounds reverse_right()const { return interval_bounds((~_bits<<1) & _left ); }
+ interval_bounds reverse_left ()const { return interval_bounds((bound_type(~_bits)>>1) & _right); }
+ interval_bounds reverse_right()const { return interval_bounds((bound_type(~_bits)<<1) & _left ); }
bound_type bits()const{ return _bits; }

View File

@ -1,119 +0,0 @@
From babaa35f51d8b009eba762bc50a5290906b4b0ca Mon Sep 17 00:00:00 2001
From: Jonathan Wakely <jwakely@redhat.com>
Date: Thu, 26 Jan 2017 20:15:19 +0000
Subject: [PATCH] Replace boost::serialization::detail::get_data function.
---
include/boost/mpi/detail/mpi_datatype_primitive.hpp | 19 ++++++++++++-------
include/boost/mpi/detail/packed_iprimitive.hpp | 8 ++++++--
include/boost/mpi/detail/packed_oprimitive.hpp | 8 ++++++--
3 files changed, 24 insertions(+), 11 deletions(-)
diff --git a/include/boost/mpi/detail/mpi_datatype_primitive.hpp b/include/boost/mpi/detail/mpi_datatype_primitive.hpp
index c230055..b95fc38 100644
--- a/include/boost/mpi/detail/mpi_datatype_primitive.hpp
+++ b/include/boost/mpi/detail/mpi_datatype_primitive.hpp
@@ -25,7 +25,6 @@ namespace std{
#include <boost/assert.hpp>
#include <boost/mpl/placeholders.hpp>
#include <boost/serialization/array.hpp>
-#include <boost/serialization/detail/get_data.hpp>
#include <stdexcept>
#include <iostream>
#include <vector>
@@ -80,18 +79,18 @@ class mpi_datatype_primitive
BOOST_MPI_CHECK_RESULT(MPI_Type_create_struct,
(
addresses.size(),
- boost::serialization::detail::get_data(lengths),
- boost::serialization::detail::get_data(addresses),
- boost::serialization::detail::get_data(types),
+ get_data(lengths),
+ get_data(addresses),
+ get_data(types),
&datatype_
));
#else
BOOST_MPI_CHECK_RESULT(MPI_Type_struct,
(
addresses.size(),
- boost::serialization::detail::get_data(lengths),
- boost::serialization::detail::get_data(addresses),
- boost::serialization::detail::get_data(types),
+ get_data(lengths),
+ get_data(addresses),
+ get_data(types),
&datatype_
));
#endif
@@ -129,6 +128,12 @@ class mpi_datatype_primitive
lengths.push_back(l);
}
+ template <class T>
+ static T* get_data(std::vector<T>& v)
+ {
+ return v.empty() ? 0 : &(v[0]);
+ }
+
std::vector<MPI_Aint> addresses;
std::vector<MPI_Datatype> types;
std::vector<int> lengths;
diff --git a/include/boost/mpi/detail/packed_iprimitive.hpp b/include/boost/mpi/detail/packed_iprimitive.hpp
index 7080cbf..227dc8e 100644
--- a/include/boost/mpi/detail/packed_iprimitive.hpp
+++ b/include/boost/mpi/detail/packed_iprimitive.hpp
@@ -16,7 +16,6 @@
#include <boost/mpi/exception.hpp>
#include <boost/assert.hpp>
#include <boost/serialization/array.hpp>
-#include <boost/serialization/detail/get_data.hpp>
#include <vector>
#include <boost/mpi/allocator.hpp>
@@ -104,7 +103,12 @@ class BOOST_MPI_DECL packed_iprimitive
void load_impl(void * p, MPI_Datatype t, int l)
{
BOOST_MPI_CHECK_RESULT(MPI_Unpack,
- (const_cast<char*>(boost::serialization::detail::get_data(buffer_)), buffer_.size(), &position, p, l, t, comm));
+ (get_data(buffer_), buffer_.size(), &position, p, l, t, comm));
+ }
+
+ static buffer_type::value_type* get_data(buffer_type& b)
+ {
+ return b.empty() ? 0 : &(b[0]);
}
buffer_type & buffer_;
diff --git a/include/boost/mpi/detail/packed_oprimitive.hpp b/include/boost/mpi/detail/packed_oprimitive.hpp
index fbcde9a..3c81a70 100644
--- a/include/boost/mpi/detail/packed_oprimitive.hpp
+++ b/include/boost/mpi/detail/packed_oprimitive.hpp
@@ -15,7 +15,6 @@
#include <boost/mpi/datatype.hpp>
#include <boost/mpi/exception.hpp>
-#include <boost/serialization/detail/get_data.hpp>
#include <boost/serialization/array.hpp>
#include <boost/assert.hpp>
#include <vector>
@@ -103,13 +102,18 @@ class BOOST_MPI_DECL packed_oprimitive
// pack the data into the buffer
BOOST_MPI_CHECK_RESULT(MPI_Pack,
- (const_cast<void*>(p), l, t, boost::serialization::detail::get_data(buffer_), buffer_.size(), &position, comm));
+ (const_cast<void*>(p), l, t, get_data(buffer_), buffer_.size(), &position, comm));
// reduce the buffer size if needed
BOOST_ASSERT(std::size_t(position) <= buffer_.size());
if (std::size_t(position) < buffer_.size())
buffer_.resize(position);
}
+ static buffer_type::value_type* get_data(buffer_type& b)
+ {
+ return b.empty() ? 0 : &(b[0]);
+ }
+
buffer_type& buffer_;
mutable std::size_t size_;
MPI_Comm comm;

View File

@ -1,23 +0,0 @@
From 1d86261581230e2dc5d617a9b16287d326f3e229 Mon Sep 17 00:00:00 2001
From: Robert Ramey <ramey@rrsd.com>
Date: Wed, 1 Feb 2017 16:43:59 -0800
Subject: [PATCH] correct error which appeared when compiling non c++ compliant
code for arrays
---
include/boost/serialization/array.hpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/boost/serialization/array.hpp b/include/boost/serialization/array.hpp
index 61708b307..612d1a619 100644
--- a/include/boost/serialization/array.hpp
+++ b/include/boost/serialization/array.hpp
@@ -23,6 +23,8 @@ namespace std{
} // namespace std
#endif
+#include <boost/serialization/array_wrapper.hpp>
+
#ifndef BOOST_NO_CXX11_HDR_ARRAY
#include <array>

View File

@ -1,8 +1,8 @@
--- boost_1_58_0/tools/build/src/tools/gcc.jam~ 2015-07-17 15:14:57.381636224 +0100
+++ boost_1_58_0/tools/build/src/tools/gcc.jam 2015-07-27 17:35:29.122264048 +0100
--- boost_1_66_0/tools/build/src/tools/gcc.jam~ 2018-01-19 13:09:56.041685502 +0000
+++ boost_1_66_0/tools/build/src/tools/gcc.jam 2018-01-19 13:09:56.042685500 +0000
@@ -421,7 +421,9 @@
rule setup-address-model ( targets * : sources * : properties * )
rule set-address-model-options ( targets * : sources * : properties * )
{
- local model = [ feature.get-values address-model : $(properties) ] ;
+ # For RPM builds the address model flag is passed in %{optflags}.

View File

@ -1,33 +1,5 @@
diff -up ./tools/build/src/tools/gcc.jam~ ./tools/build/src/tools/gcc.jam
--- ./tools/build/src/tools/gcc.jam~ 2015-02-09 15:01:04.850331626 +0100
+++ ./tools/build/src/tools/gcc.jam 2015-02-09 15:44:29.122307134 +0100
@@ -366,17 +366,17 @@ generators.override gcc.compile.c++.pch
toolset.flags gcc.compile PCH_FILE <pch>on : <pch-file> ;
# Declare flags and action for compilation.
-toolset.flags gcc.compile OPTIONS <optimization>off : -O0 ;
-toolset.flags gcc.compile OPTIONS <optimization>speed : -O3 ;
-toolset.flags gcc.compile OPTIONS <optimization>space : -Os ;
+toolset.flags gcc.compile OPTIONS <optimization>off : ;
+toolset.flags gcc.compile OPTIONS <optimization>speed : ;
+toolset.flags gcc.compile OPTIONS <optimization>space : ;
-toolset.flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
-toolset.flags gcc.compile OPTIONS <inlining>on : -Wno-inline ;
-toolset.flags gcc.compile OPTIONS <inlining>full : -finline-functions -Wno-inline ;
+toolset.flags gcc.compile OPTIONS <inlining>off : ;
+toolset.flags gcc.compile OPTIONS <inlining>on : ;
+toolset.flags gcc.compile OPTIONS <inlining>full : ;
-toolset.flags gcc.compile OPTIONS <warnings>off : -w ;
-toolset.flags gcc.compile OPTIONS <warnings>on : -Wall ;
-toolset.flags gcc.compile OPTIONS <warnings>all : -Wall -pedantic ;
+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 <debug-symbols>on : -g ;
--- 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
actions compile.c++ bind PCH_FILE
@ -46,3 +18,32 @@ diff -up ./tools/build/src/tools/gcc.jam~ ./tools/build/src/tools/gcc.jam
}
actions compile.c.preprocess bind PCH_FILE
@@ -755,17 +755,17 @@ actions compile.c.pch
###
# Declare flags and action for compilation.
-toolset.flags gcc.compile OPTIONS <optimization>off : -O0 ;
-toolset.flags gcc.compile OPTIONS <optimization>speed : -O3 ;
-toolset.flags gcc.compile OPTIONS <optimization>space : -Os ;
-
-toolset.flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
-toolset.flags gcc.compile OPTIONS <inlining>on : -Wno-inline ;
-toolset.flags gcc.compile OPTIONS <inlining>full : -finline-functions -Wno-inline ;
-
-toolset.flags gcc.compile OPTIONS <warnings>off : -w ;
-toolset.flags gcc.compile OPTIONS <warnings>on : -Wall ;
-toolset.flags gcc.compile OPTIONS <warnings>all : -Wall -pedantic ;
+toolset.flags gcc.compile OPTIONS <optimization>off : ;
+toolset.flags gcc.compile OPTIONS <optimization>speed : ;
+toolset.flags gcc.compile OPTIONS <optimization>space : ;
+
+toolset.flags gcc.compile OPTIONS <inlining>off : ;
+toolset.flags gcc.compile OPTIONS <inlining>on : ;
+toolset.flags gcc.compile OPTIONS <inlining>full : ;
+
+toolset.flags gcc.compile OPTIONS <warnings>off : ;
+toolset.flags gcc.compile OPTIONS <warnings>on : ;
+toolset.flags gcc.compile OPTIONS <warnings>all : ;
toolset.flags gcc.compile OPTIONS <warnings-as-errors>on : -Werror ;
toolset.flags gcc.compile OPTIONS <debug-symbols>on : -g ;

View File

@ -1,7 +1,6 @@
diff -up tools/build/src/tools/gcc.jam.rpath tools/build/src/tools/gcc.jam
--- tools/build/src/tools/gcc.jam.rpath 2016-05-27 13:30:01.092192721 -0500
+++ tools/build/src/tools/gcc.jam 2016-05-27 13:30:46.686987585 -0500
@@ -952,7 +952,7 @@ rule link ( targets * : sources * : prop
--- boost_1_66_0/tools/build/src/tools/gcc.jam~ 2018-01-19 13:23:45.361330881 +0000
+++ boost_1_66_0/tools/build/src/tools/gcc.jam 2018-01-19 13:23:45.362330880 +0000
@@ -1191,7 +1191,7 @@ rule link ( targets * : sources * : prop
actions link bind LIBRARIES
{
@ -9,8 +8,8 @@ diff -up tools/build/src/tools/gcc.jam.rpath tools/build/src/tools/gcc.jam
+ "$(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)
}
@@ -1018,7 +1018,7 @@ rule link.dll ( targets * : sources * :
rule link.dll ( targets * : sources * : properties * )
@@ -1204,7 +1204,7 @@ rule link.dll ( targets * : sources * :
# Differs from 'link' above only by -shared.
actions link.dll bind LIBRARIES
{
@ -18,4 +17,4 @@ diff -up tools/build/src/tools/gcc.jam.rpath tools/build/src/tools/gcc.jam
+ "$(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)
}
rule setup-threading ( targets * : sources * : properties * )
###

View File

@ -49,8 +49,8 @@
extension-suffix ?= "" ;
+ abi-letters ?= "" ;
# Normalize and dissect any version number.
local major-minor ;
local cmds-to-try ;
@@ -922,7 +923,7 @@ local rule configure ( version ? : cmd-o
}
else

View File

@ -33,9 +33,9 @@
Name: boost
Summary: The free peer-reviewed portable C++ source libraries
Version: 1.64.0
%global version_enc 1_64_0
Release: 7%{?dist}
Version: 1.66.0
%global version_enc 1_66_0
Release: 0.1%{?dist}
License: Boost and MIT and Python
%global toplev_dirname %{name}_%{version_enc}
@ -119,34 +119,16 @@ Patch51: boost-1.58.0-pool-test_linking.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1102667
Patch61: boost-1.57.0-python-libpython_dep.patch
Patch62: boost-1.57.0-python-abi_letters.patch
Patch62: boost-1.66.0-python-abi_letters.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1190039
Patch65: boost-1.57.0-build-optflags.patch
Patch65: boost-1.66.0-build-optflags.patch
# Prevent gcc.jam from setting -m32 or -m64.
Patch68: boost-1.58.0-address-model.patch
Patch68: boost-1.66.0-address-model.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1318383
Patch82: boost-1.60.0-no-rpath.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1451982
Patch83: boost-1.63.0-dual-python-build-v2.patch
# https://github.com/boostorg/mpi/pull/39
Patch84: boost-1.64.0-mpi-get_data.patch
# https://svn.boost.org/trac10/ticket/12516
# https://github.com/boostorg/serialization/commit/1d86261581230e2dc5d617a9b16287d326f3e229
Patch85: boost-1.64.0-serialization-make_array.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1485641
# https://github.com/boostorg/icl/pull/9
Patch86: boost-1.64.0-icl-ttp-matching.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1516837
# https://github.com/boostorg/icl/pull/11
Patch87: boost-1.64.0-icl-undefined-shift.patch
Patch82: boost-1.66.0-no-rpath.patch
%bcond_with tests
%bcond_with docs_generated
@ -413,6 +395,14 @@ Group: System Environment/Libraries
Run-time support for managed signals & slots callback implementation.
%package stacktrace
Summary: Run-time component of boost stacktrace library
Group: System Environment/Libraries
%description stacktrace
Run-time component of the Boost stacktrace library.
%package system
Summary: Run-time component of boost system support library
Group: System Environment/Libraries
@ -764,12 +754,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x
%patch62 -p1
%patch65 -p1
%patch68 -p1
%patch82 -p0
%patch83 -p1
%patch84 -p2
%patch85 -p2
%patch86 -p2
%patch87 -p2
%patch82 -p1
# At least python2_version needs to be a macro so that it's visible in
# %%install as well.
@ -1224,6 +1209,10 @@ rm -f tmp-doc-directories
%postun signals -p /sbin/ldconfig
%post stacktrace -p /sbin/ldconfig
%postun stacktrace -p /sbin/ldconfig
%post system -p /sbin/ldconfig
%postun system -p /sbin/ldconfig
@ -1392,6 +1381,12 @@ fi
%license LICENSE_1_0.txt
%{_libdir}/libboost_signals.so.%{sonamever}
%files stacktrace
%license LICENSE_1_0.txt
%{_libdir}/libboost_stacktrace_addr2line.so.%{sonamever}
%{_libdir}/libboost_stacktrace_basic.so.%{sonamever}
%{_libdir}/libboost_stacktrace_noop.so.%{sonamever}
%files system
%license LICENSE_1_0.txt
%{_libdir}/libboost_system.so.%{sonamever}
@ -1454,6 +1449,9 @@ fi
%{_libdir}/libboost_serialization.so
%{_libdir}/libboost_wserialization.so
%{_libdir}/libboost_signals.so
%{_libdir}/libboost_stacktrace_addr2line.so
%{_libdir}/libboost_stacktrace_basic.so
%{_libdir}/libboost_stacktrace_noop.so
%{_libdir}/libboost_system.so
%{_libdir}/libboost_thread.so
%{_libdir}/libboost_timer.so
@ -1559,6 +1557,15 @@ fi
%{_mandir}/man1/bjam.1*
%changelog
* Fri Jan 19 2018 Jonathan Wakely <jwakely@redhat.com> - 1.66.0-0.1
- Rebase to 1.66.0
- Drop patches:
boost-1.63.0-dual-python-build-v2.patch
boost-1.64.0-mpi-get_data.patch
boost-1.64.0-serialization-make_array.patch
boost-1.64.0-icl-ttp-matching.patch
boost-1.64.0-icl-undefined-shift.patch
* Wed Jan 17 2018 Jonathan Wakely <jwakely@redhat.com> - 1.64.0-7
- Restore "Provides: boost-python" for boost-python2