From b2b91a1f00bb31bb1f794a3debe83a7352b4f48e Mon Sep 17 00:00:00 2001
From: "Kelly (KT) Thompson" <KineticTheory@users.noreply.github.com>
Date: Thu, 28 Mar 2019 16:20:28 -0600
Subject: [PATCH] Random123 - provide a patch to fix compiles with IBM XL
 (#11028)

* Newer versions of IBM XL no longer define `__xlC__`, but define `__ibmxl__`
  instead.  This one-line patch fixes this problem in Random123.
* This patch was also provided to the Random123 maintiners
  (Random123@DEShawResearch.com). I don't expect a new release from them for a
  while, so I believe that this patch is the correct path forward (for now).
---
 .../repos/builtin/packages/random123/ibmxl.patch      | 11 +++++++++++
 var/spack/repos/builtin/packages/random123/package.py |  2 ++
 2 files changed, 13 insertions(+)
 create mode 100644 var/spack/repos/builtin/packages/random123/ibmxl.patch

diff --git a/var/spack/repos/builtin/packages/random123/ibmxl.patch b/var/spack/repos/builtin/packages/random123/ibmxl.patch
new file mode 100644
index 0000000000..b074e06e27
--- /dev/null
+++ b/var/spack/repos/builtin/packages/random123/ibmxl.patch
@@ -0,0 +1,11 @@
+--- a/include/Random123/features/compilerfeatures.h
++++ b/include/Random123/features/compilerfeatures.h
+@@ -199,7 +199,7 @@ added to each of the *features.h files, AND to examples/ut_features.cpp.
+ #include "nvccfeatures.h"
+ #elif defined(__ICC)
+ #include "iccfeatures.h"
+-#elif defined(__xlC__)
++#elif defined(__xlC__) || defined(__ibmxl__)
+ #include "xlcfeatures.h"
+ #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+ #include "sunprofeatures.h"
diff --git a/var/spack/repos/builtin/packages/random123/package.py b/var/spack/repos/builtin/packages/random123/package.py
index cf774edf2c..a71a119249 100644
--- a/var/spack/repos/builtin/packages/random123/package.py
+++ b/var/spack/repos/builtin/packages/random123/package.py
@@ -17,6 +17,8 @@ class Random123(Package):
 
     version('1.09', '67ae45ff94b12acea590a6aa04ed1123')
 
+    patch('ibmxl.patch', when='@1.09')
+
     def install(self, spec, prefix):
         # Random123 doesn't have a build system.
         # We have to do our own install here.
-- 
GitLab