summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/pixman/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/pixman/package.py')
-rw-r--r--var/spack/repos/builtin/packages/pixman/package.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/pixman/package.py b/var/spack/repos/builtin/packages/pixman/package.py
index 7107148688..7714120049 100644
--- a/var/spack/repos/builtin/packages/pixman/package.py
+++ b/var/spack/repos/builtin/packages/pixman/package.py
@@ -47,6 +47,25 @@ class Pixman(AutotoolsPackage):
# Patch is obtained from above link.
patch('clang.patch', when='%clang@9.1.0-apple:')
+ @run_before('build')
+ def patch_config_h_for_intel(self):
+ config_h = join_path(self.stage.source_path, 'config.h')
+
+ # Intel disguises itself as GNU, but doesn't implement
+ # the same builtin functions. This causes in this case
+ # a positive detection of GCC vector extensions, which
+ # is bound to fail at compile time because Intel has no
+ # __builtin_shuffle. See also:
+ #
+ # https://software.intel.com/en-us/forums/intel-c-compiler/topic/758013
+ #
+ if '%intel' in self.spec:
+ filter_file(
+ '#define HAVE_GCC_VECTOR_EXTENSIONS /\*\*/',
+ '/* #undef HAVE_GCC_VECTOR_EXTENSIONS */',
+ config_h
+ )
+
def configure_args(self):
args = [
'--enable-libpng',