mpark-variant: ICC Patch (#22727)
* Add patch for Intel C++ compiler - On some machines (in particular MacOSX Catalina), the icpc in some way utilizes the preprocessor of the associated "developer tools" used by icpc. This leads to, in some cases, a preprocessor claiming support for __tuple_element_packs, even though icpc (as of version 21.1) can't actually parse such code. Just use the MPARK_TUPLE_ELEMENT_PACK impl with __icc until icpc supports it, to avoid issues with developer tools that are untested. - The same patch has been PRed against mpark-variant
This commit is contained in:
parent
2ae7e25501
commit
9c139bf7a2
2 changed files with 36 additions and 0 deletions
33
var/spack/repos/builtin/packages/mpark-variant/icpc.patch
Normal file
33
var/spack/repos/builtin/packages/mpark-variant/icpc.patch
Normal file
|
@ -0,0 +1,33 @@
|
|||
From 2d933fe544bd5841e9016ab7e8066521ebe33f30 Mon Sep 17 00:00:00 2001
|
||||
From: sbolding <sbolding@lanl.gov>
|
||||
Date: Mon, 29 Mar 2021 19:13:28 -0600
|
||||
Subject: [PATCH] Apply patch for icpc
|
||||
|
||||
icpc in some way utilizes the preprocessor of the associated "developer
|
||||
tools" used by the compiler. This leads to, in some cases, a
|
||||
preprocessor claiming support for `__tuple_element_packs`, even though
|
||||
icpc (as of version 21.1) can't actually parse such code. Just use the
|
||||
MPARK_TUPLE_ELEMENT_PACK impl with __icc until icpc supports it.
|
||||
|
||||
Fixes #77
|
||||
---
|
||||
include/mpark/config.hpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/mpark/config.hpp b/include/mpark/config.hpp
|
||||
index f85ffb55c..128fa9235 100644
|
||||
--- a/include/mpark/config.hpp
|
||||
+++ b/include/mpark/config.hpp
|
||||
@@ -50,7 +50,7 @@
|
||||
#define MPARK_BUILTIN_UNREACHABLE
|
||||
#endif
|
||||
|
||||
-#if __has_builtin(__type_pack_element)
|
||||
+#if __has_builtin(__type_pack_element) && !(defined(__ICC))
|
||||
#define MPARK_TYPE_PACK_ELEMENT
|
||||
#endif
|
||||
|
||||
--
|
||||
2.24.3 (Apple Git-128)
|
||||
|
||||
|
|
@ -19,7 +19,10 @@ class MparkVariant(CMakePackage):
|
|||
|
||||
# Ref.: https://github.com/mpark/variant/pull/73
|
||||
patch('nvcc.patch', when='@:1.4.0')
|
||||
# Ref.: https://github.com/mpark/variant/issues/60
|
||||
patch('version.patch', when='@1.4.0')
|
||||
# Ref.: https://github.com/mpark/variant/pull/78
|
||||
patch('icpc.patch', when='@:1.4.0')
|
||||
|
||||
cxx11_msg = 'MPark.Variant needs a C++11-capable compiler. ' \
|
||||
'See https://github.com/mpark/variant#requirements'
|
||||
|
|
Loading…
Reference in a new issue