From b54d208aea688bef8b5a91242e029c6f46f1d077 Mon Sep 17 00:00:00 2001 From: Valentin Volkl Date: Fri, 17 Mar 2023 11:42:43 +0100 Subject: [PATCH] boost: add patch for 1.81.0 (#35964) --- .../packages/boost/boost_phoenix_1.81.0.patch | 32 +++++++++++++++++++ .../repos/builtin/packages/boost/package.py | 3 ++ 2 files changed, 35 insertions(+) create mode 100644 var/spack/repos/builtin/packages/boost/boost_phoenix_1.81.0.patch diff --git a/var/spack/repos/builtin/packages/boost/boost_phoenix_1.81.0.patch b/var/spack/repos/builtin/packages/boost/boost_phoenix_1.81.0.patch new file mode 100644 index 0000000000..f629b77661 --- /dev/null +++ b/var/spack/repos/builtin/packages/boost/boost_phoenix_1.81.0.patch @@ -0,0 +1,32 @@ +From cc9bc2387fe19d6cb130460defe52ee8ecefe968 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= + +Date: Tue, 29 Nov 2022 07:34:17 +0700 +Subject: [PATCH] stl/tuple: change uarg##N to internal linkage + +8b6a9c2 (std::tuple support (Resolving #103) (#104), 2021-03-11) put +uarg##N in all translation units, which includes +boost/phoenix/stl/tuple.hpp or boost/phoenix/stl.hpp, with external +linkage. Thus, we'll run into below error: + +> multiple definition of `boost::phoenix::placeholders::uarg1' + +Change it to internal linkage. +--- + include/boost/phoenix/stl/tuple.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/boost/phoenix/stl/tuple.hpp b/include/boost/phoenix/stl/tuple.hpp +index a83014ace9f78977c05a5ff145195c4fb8ebd76c..d04ad16e33a9d4cdfff2b4309cdfdfd8130d972a 100644 +--- a/include/boost/phoenix/stl/tuple.hpp ++++ b/include/boost/phoenix/stl/tuple.hpp +@@ -110,7 +110,7 @@ namespace boost { namespace phoenix { + namespace placeholders { + #define BOOST_PP_LOCAL_LIMITS (1, BOOST_PHOENIX_ARG_LIMIT) + #define BOOST_PP_LOCAL_MACRO(N) \ +- auto uarg##N = \ ++ const auto uarg##N = \ + boost::phoenix::get_<(N)-1>(boost::phoenix::placeholders::arg1); + #include BOOST_PP_LOCAL_ITERATE() + } + diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py index 49b56302f3..51d814dc16 100644 --- a/var/spack/repos/builtin/packages/boost/package.py +++ b/var/spack/repos/builtin/packages/boost/package.py @@ -396,6 +396,9 @@ def libs(self): # https://www.intel.com/content/www/us/en/developer/articles/technical/building-boost-with-oneapi.html patch("intel-oneapi-linux-jam.patch", when="@1.76: %oneapi") + # https://github.com/boostorg/phoenix/issues/111 + patch("boost_phoenix_1.81.0.patch", level=2, when="@1.81.0") + def patch(self): # Disable SSSE3 and AVX2 when using the NVIDIA compiler if self.spec.satisfies("%nvhpc"):