summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Brunini <vebruni@sandia.gov>2024-02-13 11:23:13 -0800
committerGitHub <noreply@github.com>2024-02-13 12:23:13 -0700
commite4c871489a8c7cd85c713f461d37cf1624eef16a (patch)
tree609656ccef4e1f0dd461725e51ef873eb518c15b
parentc048101d90eb07036917f37512e58a32be43da7b (diff)
downloadspack-e4c871489a8c7cd85c713f461d37cf1624eef16a.tar.gz
spack-e4c871489a8c7cd85c713f461d37cf1624eef16a.tar.bz2
spack-e4c871489a8c7cd85c713f461d37cf1624eef16a.tar.xz
spack-e4c871489a8c7cd85c713f461d37cf1624eef16a.zip
boost: Add patch to workaround mpl compiler error with gcc 8.3 and c++17. (#39144)
Works around this issue: https://github.com/boostorg/mpl/issues/44 Co-authored-by: psakievich <psakiev@sandia.gov>
-rw-r--r--var/spack/repos/builtin/packages/boost/boost_gcc83_cpp17_fix.patch61
-rw-r--r--var/spack/repos/builtin/packages/boost/package.py3
2 files changed, 64 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/boost/boost_gcc83_cpp17_fix.patch b/var/spack/repos/builtin/packages/boost/boost_gcc83_cpp17_fix.patch
new file mode 100644
index 0000000000..8a328796ae
--- /dev/null
+++ b/var/spack/repos/builtin/packages/boost/boost_gcc83_cpp17_fix.patch
@@ -0,0 +1,61 @@
+--- a/boost/mpl/quote.hpp 2022-09-29 11:47:28.395587000 -0600
++++ b/boost/mpl/quote.hpp 2022-09-29 11:47:35.363536000 -0600
+@@ -119,7 +119,7 @@
+ #define i_ BOOST_PP_FRAME_ITERATION(1)
+
+ template<
+- template< BOOST_MPL_PP_PARAMS(i_, typename P) > class F
++ template< BOOST_MPL_PP_PARAMS(i_, typename T) > class F
+ , typename Tag = void_
+ >
+ struct BOOST_PP_CAT(quote,i_)
+
+--- a/boost/mpl/aux_/preprocessed/gcc/quote.hpp 2022-09-29 12:39:47.776457000 -0600
++++ b/boost/mpl/aux_/preprocessed/gcc/quote.hpp 2022-09-29 12:40:15.807044000 -0600
+@@ -24,7 +24,7 @@
+ };
+
+ template<
+- template< typename P1 > class F
++ template< typename T1 > class F
+ , typename Tag = void_
+ >
+ struct quote1
+@@ -41,7 +41,7 @@
+ };
+
+ template<
+- template< typename P1, typename P2 > class F
++ template< typename T1, typename T2 > class F
+ , typename Tag = void_
+ >
+ struct quote2
+@@ -58,7 +58,7 @@
+ };
+
+ template<
+- template< typename P1, typename P2, typename P3 > class F
++ template< typename T1, typename T2, typename T3 > class F
+ , typename Tag = void_
+ >
+ struct quote3
+@@ -75,7 +75,7 @@
+ };
+
+ template<
+- template< typename P1, typename P2, typename P3, typename P4 > class F
++ template< typename T1, typename T2, typename T3, typename T4 > class F
+ , typename Tag = void_
+ >
+ struct quote4
+@@ -96,8 +96,8 @@
+
+ template<
+ template<
+- typename P1, typename P2, typename P3, typename P4
+- , typename P5
++ typename T1, typename T2, typename T3, typename T4
++ , typename T5
+ >
+ class F
+ , typename Tag = void_
diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py
index 0824029d41..55b9934b3f 100644
--- a/var/spack/repos/builtin/packages/boost/package.py
+++ b/var/spack/repos/builtin/packages/boost/package.py
@@ -314,6 +314,9 @@ class Boost(Package):
# Patch to workaround compiler bug
patch("nvhpc-find_address.patch", when="@1.75.0:1.76%nvhpc")
+ # Patch to workaround gcc-8.3 compiler issue https://github.com/boostorg/mpl/issues/44
+ patch("boost_gcc83_cpp17_fix.patch", when="@1.69:%gcc@8.3")
+
# Fix for version comparison on newer Clang on darwin
# See: https://github.com/boostorg/build/issues/440
# See: https://github.com/macports/macports-ports/pull/6726