diff options
-rw-r--r-- | var/spack/repos/builtin/packages/py-numpy/package.py | 23 |
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') |