diff --git a/boost-1.66.0-numpy3.patch b/boost-1.66.0-numpy3.patch new file mode 100644 index 0000000..27add8c --- /dev/null +++ b/boost-1.66.0-numpy3.patch @@ -0,0 +1,29 @@ +From 0fce0e589353d772ceda4d493b147138406b22fd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Moritz=20Wanzenb=C3=B6ck?= +Date: Wed, 11 Jul 2018 11:57:46 +0200 +Subject: [PATCH] Add missing return statement in numpy import + +This adds a missing return statement in the python3 specific +import logic of boost.python.numpy. + +For python3 wrap_import_array() needs to return a pointer value. +The import_array() macro only returns NULL in case of error. The +missing return statement is UB, so the compiler can assume it does +not happen. This means the compiler can assume the error branch +is always taken, so import_array must always fail. +--- + src/numpy/numpy.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/numpy/numpy.cpp b/src/numpy/numpy.cpp +index 8e259bc75..3ae2295e3 100644 +--- a/libs/python/src/numpy/numpy.cpp ++++ b/libs/python/src/numpy/numpy.cpp +@@ -19,6 +19,7 @@ static void wrap_import_array() + static void * wrap_import_array() + { + import_array(); ++ return NULL; + } + #endif + diff --git a/boost.spec b/boost.spec index 300de28..ea94c92 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 7%{?dist} +Release: 8%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -142,6 +142,10 @@ Patch84: boost-1.66.0-spirit-abs-overflow.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1585515 Patch85: boost-1.66.0-compute.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1596468 +# https://github.com/boostorg/python/pull/218 +Patch87: boost-1.66.0-numpy3.patch + %bcond_with tests %bcond_with docs_generated @@ -721,6 +725,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch83 -p1 %patch84 -p1 %patch85 -p2 +%patch87 -p1 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1397,6 +1402,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Wed Jul 18 2018 Jonathan Wakely - 1.66.0-8 +- Patch numpy for Python 3 (#1596468) + * Tue Jun 05 2018 Jonathan Wakely - 1.66.0-7 - Add patch for Boost.Compute (#1585515)