boost: add patch for 1.81.0 (#35964)

This commit is contained in:
Valentin Volkl 2023-03-17 11:42:43 +01:00 committed by GitHub
parent 612aa744f6
commit b54d208aea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 0 deletions

View file

@ -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?=
<congdanhqx@gmail.com>
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()
}

View file

@ -396,6 +396,9 @@ def libs(self):
# https://www.intel.com/content/www/us/en/developer/articles/technical/building-boost-with-oneapi.html # 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") 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): def patch(self):
# Disable SSSE3 and AVX2 when using the NVIDIA compiler # Disable SSSE3 and AVX2 when using the NVIDIA compiler
if self.spec.satisfies("%nvhpc"): if self.spec.satisfies("%nvhpc"):