From e3ca5e66765d06eca9ec40fed215bd82c4bdd49c Mon Sep 17 00:00:00 2001
From: Orion Poplawski <orion@cora.nwra.com>
Date: Wed, 8 Jun 2016 16:23:04 -0600
Subject: [PATCH] Add patch to compile pcre with Intel 16.0.3 compiler

---
 var/spack/repos/builtin/packages/pcre/intel.patch | 12 ++++++++++++
 var/spack/repos/builtin/packages/pcre/package.py  |  2 ++
 2 files changed, 14 insertions(+)
 create mode 100644 var/spack/repos/builtin/packages/pcre/intel.patch

diff --git a/var/spack/repos/builtin/packages/pcre/intel.patch b/var/spack/repos/builtin/packages/pcre/intel.patch
new file mode 100644
index 0000000000..f160f55e1b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pcre/intel.patch
@@ -0,0 +1,12 @@
+diff -up pcre-8.38/pcrecpp.cc.intel pcre-8.38/pcrecpp.cc
+--- pcre-8.38/pcrecpp.cc.intel	2014-09-15 07:48:59.000000000 -0600
++++ pcre-8.38/pcrecpp.cc	2016-06-08 16:16:56.702721214 -0600
+@@ -66,7 +66,7 @@ Arg RE::no_arg((void*)NULL);
+ // inclusive test if we ever needed it.  (Note that not only the
+ // __attribute__ syntax, but also __USER_LABEL_PREFIX__, are
+ // gnu-specific.)
+-#if defined(__GNUC__) && __GNUC__ >= 3 && defined(__ELF__)
++#if defined(__GNUC__) && __GNUC__ >= 3 && defined(__ELF__) && !defined(__INTEL_COMPILER)
+ # define ULP_AS_STRING(x)            ULP_AS_STRING_INTERNAL(x)
+ # define ULP_AS_STRING_INTERNAL(x)   #x
+ # define USER_LABEL_PREFIX_STR       ULP_AS_STRING(__USER_LABEL_PREFIX__)
diff --git a/var/spack/repos/builtin/packages/pcre/package.py b/var/spack/repos/builtin/packages/pcre/package.py
index 7a9f3b911d..b75a50736a 100644
--- a/var/spack/repos/builtin/packages/pcre/package.py
+++ b/var/spack/repos/builtin/packages/pcre/package.py
@@ -34,6 +34,8 @@ class Pcre(Package):
     version('8.36', 'b767bc9af0c20bc9c1fe403b0d41ad97')
     version('8.38', '00aabbfe56d5a48b270f999b508c5ad2')
 
+    patch("intel.patch")
+
     def install(self, spec, prefix):
         configure("--prefix=%s" % prefix)
         make()
-- 
GitLab