Compare commits

...

9 Commits
master ... f27

Author SHA1 Message Date
Jonathan Wakely d62152daf2 Add patch for CUDA version macro changes (#1530828) 2018-04-18 20:30:36 +01:00
Jonathan Wakely 9b9c9106a8 Add patch for Boost.Regex integer overflow (#1564252) 2018-04-18 19:03:38 +01:00
Jonathan Wakely 204b6db7df Move Requires: boost-container out of conditional block. 2018-02-28 17:36:39 +00:00
Jonathan Wakely d2ac0b0af1 Ensure boost metapackage installs boost-container 2018-02-27 20:04:42 +00:00
Jonathan Wakely 5e1708f1ef Patch to fix #1516837
Also fix NVR of previous changelog entry.
2017-12-07 14:42:55 +00:00
Jonathan Wakely 80270d1c8d Fix spelling in boost-wave summary 2017-09-25 16:08:24 +01:00
Jonathan Wakely a3a5acdf75 Fix some rpmlint issues
- Remove Requires for libquadmath (explicit-lib-dependency)
- Remove executable bits on header files (spurious-executable-perm)
- Adjust boost.wave %%description (spelling-error)
2017-09-25 15:41:27 +01:00
Jonathan Wakely 4ff7689c27 Patch to fix #1485641 2017-09-12 18:21:16 +01:00
Jonathan Wakely 77bf9c3e21 Fix descriptions 2017-09-06 17:09:41 +01:00
5 changed files with 242 additions and 19 deletions

View File

@ -0,0 +1,86 @@
From 17a4997aaa05ce92237c73c82e6d8fb475a0abaf Mon Sep 17 00:00:00 2001
From: jzmaddock <john@johnmaddock.co.uk>
Date: Fri, 11 Aug 2017 19:38:00 +0100
Subject: [PATCH 1/2] Update for CUDA version macro changes.
---
include/boost/config/compiler/nvcc.hpp | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/include/boost/config/compiler/nvcc.hpp b/include/boost/config/compiler/nvcc.hpp
index 43039b5c2..907eade96 100644
--- a/include/boost/config/compiler/nvcc.hpp
+++ b/include/boost/config/compiler/nvcc.hpp
@@ -11,6 +11,15 @@
# define BOOST_COMPILER "NVIDIA CUDA C++ Compiler"
#endif
+#if defined(__CUDACC_VER_MAJOR__) && defined(__CUDACC_VER_MINOR__) && defined(__CUDACC_VER_BUILD__)
+# define BOOST_CUDA_VERSION __CUDACC_VER_MAJOR__ * 10000 + __CUDACC_VER_MINOR__ * 100 + __CUDACC_VER_BUILD__
+#elif defined(__CUDACC_VER__)
+ define BOOST_CUDA_VERSION __CUDACC_VER__
+#else
+// We don't really know what the CUDA version is, but it's definitely before 7.5:
+# define BOOST_CUDA_VERSION 70000
+#endif
+
// NVIDIA Specific support
// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
#define BOOST_GPU_ENABLED __host__ __device__
@@ -19,11 +28,11 @@
// https://svn.boost.org/trac/boost/ticket/11897
// This is fixed in 7.5. As the following version macro was introduced in 7.5 an existance
// check is enough to detect versions < 7.5
-#if !defined(__CUDACC_VER__) || (__CUDACC_VER__ < 70500)
+#if BOOST_CUDA_VERSION < 70500
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
// The same bug is back again in 8.0:
-#if (__CUDACC_VER__ > 80000) && (__CUDACC_VER__ < 80100)
+#if (BOOST_CUDA_VERSION > 80000) && (BOOST_CUDA_VERSION < 80100)
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
// Most recent CUDA (8.0) has no constexpr support in msvc mode:
From 593389dc4b4dae14e6d38bb1c81b7bf70ec21f26 Mon Sep 17 00:00:00 2001
From: jzmaddock <john@johnmaddock.co.uk>
Date: Fri, 18 Aug 2017 18:13:38 +0100
Subject: [PATCH 2/2] Update nvcc.hpp
---
include/boost/config/compiler/nvcc.hpp | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/include/boost/config/compiler/nvcc.hpp b/include/boost/config/compiler/nvcc.hpp
index 907eade96..f21b9b54f 100644
--- a/include/boost/config/compiler/nvcc.hpp
+++ b/include/boost/config/compiler/nvcc.hpp
@@ -12,12 +12,10 @@
#endif
#if defined(__CUDACC_VER_MAJOR__) && defined(__CUDACC_VER_MINOR__) && defined(__CUDACC_VER_BUILD__)
-# define BOOST_CUDA_VERSION __CUDACC_VER_MAJOR__ * 10000 + __CUDACC_VER_MINOR__ * 100 + __CUDACC_VER_BUILD__
-#elif defined(__CUDACC_VER__)
- define BOOST_CUDA_VERSION __CUDACC_VER__
+# define BOOST_CUDA_VERSION __CUDACC_VER_MAJOR__ * 1000000 + __CUDACC_VER_MINOR__ * 10000 + __CUDACC_VER_BUILD__
#else
// We don't really know what the CUDA version is, but it's definitely before 7.5:
-# define BOOST_CUDA_VERSION 70000
+# define BOOST_CUDA_VERSION 7000000
#endif
// NVIDIA Specific support
@@ -28,11 +26,11 @@
// https://svn.boost.org/trac/boost/ticket/11897
// This is fixed in 7.5. As the following version macro was introduced in 7.5 an existance
// check is enough to detect versions < 7.5
-#if BOOST_CUDA_VERSION < 70500
+#if BOOST_CUDA_VERSION < 7050000
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
// The same bug is back again in 8.0:
-#if (BOOST_CUDA_VERSION > 80000) && (BOOST_CUDA_VERSION < 80100)
+#if (BOOST_CUDA_VERSION > 8000000) && (BOOST_CUDA_VERSION < 8010000)
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif
// Most recent CUDA (8.0) has no constexpr support in msvc mode:

View File

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

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

@ -0,0 +1,26 @@
From bc9b25b5d3c3784543158510c6087d41739ab64a Mon Sep 17 00:00:00 2001
From: jzmaddock <john@johnmaddock.co.uk>
Date: Mon, 31 Jul 2017 19:18:10 +0100
Subject: [PATCH] Fix potential overflow in max_state_count calculation. Fixes:
https://svn.boost.org/trac10/ticket/13036.
---
include/boost/regex/v4/perl_matcher_common.hpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/include/boost/regex/v4/perl_matcher_common.hpp b/include/boost/regex/v4/perl_matcher_common.hpp
index 7974e7483..f08e9d434 100644
--- a/include/boost/regex/v4/perl_matcher_common.hpp
+++ b/include/boost/regex/v4/perl_matcher_common.hpp
@@ -113,6 +113,11 @@ void perl_matcher<BidiIterator, Allocator, traits>::estimate_max_state_count(std
std::ptrdiff_t states = re.size();
if(states == 0)
states = 1;
+ if ((std::numeric_limits<std::ptrdiff_t>::max)() / states < states)
+ {
+ max_state_count = (std::min)((std::ptrdiff_t)BOOST_REGEX_MAX_STATE_COUNT, (std::numeric_limits<std::ptrdiff_t>::max)() - 2);
+ return;
+ }
states *= states;
if((std::numeric_limits<std::ptrdiff_t>::max)() / dist < states)
{

View File

@ -35,7 +35,7 @@ Name: boost
Summary: The free peer-reviewed portable C++ source libraries
Version: 1.64.0
%global version_enc 1_64_0
Release: 0.6%{?dist}
Release: 6%{?dist}
License: Boost and MIT and Python
%global toplev_dirname %{name}_%{version_enc}
@ -50,12 +50,15 @@ Source2: libboost_thread.so
# equal to the Boost version (e.g., 1.41.0).
%global sonamever %{version}
# boost is an "umbrella" package that pulls in all other boost
# boost is an "umbrella" package that pulls in all boost shared library
# components, except for MPI and Python 3 sub-packages. Those are
# special in that they are rarely necessary, 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
# (doc, doctools, examples, jam, static).
Requires: boost-atomic%{?_isa} = %{version}-%{release}
Requires: boost-chrono%{?_isa} = %{version}-%{release}
Requires: boost-container%{?_isa} = %{version}-%{release}
%if %{with context}
Requires: boost-context%{?_isa} = %{version}-%{release}
Requires: boost-coroutine%{?_isa} = %{version}-%{release}
@ -140,6 +143,22 @@ Patch84: boost-1.64.0-mpi-get_data.patch
# 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
# https://bugzilla.redhat.com/show_bug.cgi?id=1564252
# https://svn.boost.org/trac10/ticket/13036
Patch90: boost-1.64.0-regex-overflow.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1530828
# https://github.com/boostorg/config/pull/175
Patch91: boost-1.64.0-config-cuda-version.patch
%bcond_with tests
%bcond_with docs_generated
@ -180,7 +199,7 @@ Group: System Environment/Libraries
%description container
Boost.Container library implements several well-known containers,
including STL containers. The aim of the library is to offers advanced
including STL containers. The aim of the library is to offer advanced
features not present in standard containers or to offer the latest
standard draft features for compilers that comply with C++03.
@ -244,7 +263,7 @@ Requires: boost-regex%{?_isa} = %{version}-%{release}
%description graph
Run-time support for the BGL graph library. BGL interface and graph
components are generic, in the same sense as the the Standard Template
components are generic, in the same sense as the Standard Template
Library (STL).
%package iostreams
@ -253,7 +272,7 @@ Group: System Environment/Libraries
%description iostreams
Run-time support for Boost.IOStreams, a framework for defining streams,
Run-time support for Boost.Iostreams, a framework for defining streams,
stream buffers and i/o filters.
%package locale
@ -281,9 +300,6 @@ tools along with public interfaces for extending the library.
%package math
Summary: Math functions for boost TR1 library
Group: System Environment/Libraries
%if %{with quadmath}
Requires: libquadmath%{?_isa}
%endif
%description math
@ -302,7 +318,7 @@ The Boost Python Library is a framework for interfacing Python and
C++. It allows you to quickly and seamlessly expose C++ classes,
functions and objects to Python, and vice versa, using no special
tools -- just your C++ compiler. This package contains run-time
support for the NumPy extension of the Boost Python Library.
support for the NumPy extension of the Boost Python Library for Python 2.
%if %{with python3}
@ -342,7 +358,7 @@ The Boost Python Library is a framework for interfacing Python and
C++. It allows you to quickly and seamlessly expose C++ classes,
functions and objects to Python, and vice versa, using no special
tools -- just your C++ compiler. This package contains run-time
support for Boost Python Library.
support for the Boost Python Library compiled for Python 2.
%if %{with python3}
@ -356,7 +372,7 @@ The Boost Python Library is a framework for interfacing Python and
C++. It allows you to quickly and seamlessly expose C++ classes,
functions and objects to Python, and vice versa, using no special
tools -- just your C++ compiler. This package contains run-time
support for Boost Python Library compiled for Python 3.
support for the Boost Python Library compiled for Python 3.
%package python3-devel
Summary: Shared object symbolic links for Boost.Python 3
@ -457,7 +473,7 @@ The Boost.TypeErasure library provides runtime polymorphism in C++
that is more flexible than that provided by the core language.
%package wave
Summary: Run-time component of boost C99/C++ pre-processing library
Summary: Run-time component of boost C99/C++ preprocessing library
Group: System Environment/Libraries
Requires: boost-chrono%{?_isa} = %{version}-%{release}
Requires: boost-date-time%{?_isa} = %{version}-%{release}
@ -469,7 +485,7 @@ Requires: boost-thread%{?_isa} = %{version}-%{release}
Run-time support for the Boost.Wave library, a Standards conforming,
and highly configurable implementation of the mandated C99/C++
pre-processor functionality.
preprocessor functionality.
%package devel
Summary: The Boost C++ headers and shared development libraries
@ -517,7 +533,7 @@ Obsoletes: odeint-doc < 2.2-5
%description doc
This package contains the documentation in the HTML format of the Boost C++
libraries. The documentation provides the same content as that on the Boost
web page (http://www.boost.org/doc/libs/1_40_0).
web page (http://www.boost.org/doc/libs/%{version_enc}).
%package examples
Summary: Source examples for the Boost C++ libraries
@ -567,7 +583,7 @@ Requires: python2-openmpi%{?_isa}
%description openmpi-python
Python support for Boost.MPI-OpenMPI, a library providing a clean C++
Python 2 support for Boost.MPI-OpenMPI, a library providing a clean C++
API over the OpenMPI implementation of MPI.
%if %{with python3}
@ -609,7 +625,7 @@ Requires: boost-serialization%{?_isa} = %{version}-%{release}
%description graph-openmpi
Run-time support for the Parallel BGL graph library. The interface and
graph components are generic, in the same sense as the the Standard
graph components are generic, in the same sense as the Standard
Template Library (STL). This libraries in this package use OpenMPI
back-end to do the parallel work.
@ -658,7 +674,7 @@ Requires: python2-mpich%{?_isa}
%description mpich-python
Python support for Boost.MPI-MPICH, a library providing a clean C++
Python 2 support for Boost.MPI-MPICH, a library providing a clean C++
API over the MPICH implementation of MPI.
%if %{with python3}
@ -702,7 +718,7 @@ Obsoletes: boost-graph-mpich2 < 1.53.0-9
%description graph-mpich
Run-time support for the Parallel BGL graph library. The interface and
graph components are generic, in the same sense as the the Standard
graph components are generic, in the same sense as the Standard
Template Library (STL). This libraries in this package use MPICH
back-end to do the parallel work.
@ -739,10 +755,11 @@ Group: Development/Tools
%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
a number of significant features and is now developed independently
a number of significant features and is now developed independently.
%prep
%setup -q -n %{toplev_dirname}
find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x
%patch4 -p1
%patch5 -p1
@ -757,6 +774,10 @@ a number of significant features and is now developed independently
%patch83 -p1
%patch84 -p2
%patch85 -p2
%patch86 -p2
%patch87 -p2
%patch90 -p2
%patch91 -p2
# At least python2_version needs to be a macro so that it's visible in
# %%install as well.
@ -1546,6 +1567,31 @@ fi
%{_mandir}/man1/bjam.1*
%changelog
* Wed Apr 18 2018 Jonathan Wakely <jwakely@redhat.com> - 1.64.0-6
- Add patch for Boost.Regex integer overflow (#1564252)
- Add patch for CUDA version macro changes (#1530828)
* Wed Feb 28 2018 Jonathan Wakely <jwakely@redhat.com> - 1.64.0-5
- Move Requires: boost-container out of conditional block.
* Tue Feb 27 2018 Jonathan Wakely <jwakely@redhat.com> - 1.64.0-5
- Ensure boost metapackage installs boost-container.
* Thu Dec 07 2017 Jonathan Wakely <jwakely@redhat.com> - 1.64.0-4
- Patch to fix #1516837
* Mon Sep 25 2017 Jonathan Wakely <jwakely@redhat.com> - 1.64.0-3
- Fix some rpmlint issues
- Remove Requires for libquadmath (explicit-lib-dependency)
- Remove executable bits on header files (spurious-executable-perm)
- Adjust boost.wave %%description (spelling-error)
* Tue Sep 12 2017 Jonathan Wakely <jwakely@redhat.com> - 1.64.0-2
- Patch to fix #1485641
* Wed Sep 06 2017 Jonathan Wakely <jwakely@redhat.com> - 1.64.0-1
- Fix descriptions
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.64.0-0.6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild