summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/package.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py
index 9d5427347d..af045b2674 100644
--- a/var/spack/repos/builtin/packages/py-numpy/package.py
+++ b/var/spack/repos/builtin/packages/py-numpy/package.py
@@ -5,6 +5,7 @@
from spack import *
import platform
+import subprocess
class PyNumpy(PythonPackage):
@@ -95,6 +96,28 @@ class PyNumpy(PythonPackage):
# -std=c99 at least required, old versions of GCC default to -std=c90
if self.spec.satisfies('%gcc@:5.1') and name == 'cflags':
flags.append(self.compiler.c99_flag)
+ # Check gcc version in use by intel compiler
+ # This will essentially check the system gcc compiler unless a gcc
+ # module is already loaded.
+ if self.spec.satisfies('%intel') and name == 'cflags':
+ p1 = subprocess.Popen(
+ [self.compiler.cc, '-v'],
+ stderr=subprocess.PIPE
+ )
+ p2 = subprocess.Popen(
+ ['grep', 'compatibility'],
+ stdin=p1.stderr,
+ stdout=subprocess.PIPE
+ )
+ p1.stderr.close()
+ out, err = p2.communicate()
+ gcc_version = Version(out.split()[5].decode('utf-8'))
+ if gcc_version < Version('4.8'):
+ raise InstallError('The GCC version that the Intel compiler '
+ 'uses must be >= 4.8. The GCC in use is '
+ '{0}'.format(gcc_version))
+ if gcc_version <= Version('5.1'):
+ flags.append(self.compiler.c99_flag)
return (flags, None, None)
@run_before('build')