summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarmen Stoppels <harmenstoppels@gmail.com>2022-03-10 23:14:17 +0100
committerMassimiliano Culpo <massimiliano.culpo@gmail.com>2022-04-14 11:08:17 +0200
commite8bb341536e41ded899f8984c45bec555492d1c8 (patch)
tree35832b863cd65e388d0847a86e40187071408bb6
parent08009ffd7097d1d19ab1ca3fc3c8ee24ee4a8858 (diff)
downloadspack-e8bb341536e41ded899f8984c45bec555492d1c8.tar.gz
spack-e8bb341536e41ded899f8984c45bec555492d1c8.tar.bz2
spack-e8bb341536e41ded899f8984c45bec555492d1c8.tar.xz
spack-e8bb341536e41ded899f8984c45bec555492d1c8.zip
intel-mkl: load compiler modules when querying compiler (#29439)
-rw-r--r--lib/spack/spack/build_systems/intel.py16
-rw-r--r--lib/spack/spack/compiler.py8
2 files changed, 13 insertions, 11 deletions
diff --git a/lib/spack/spack/build_systems/intel.py b/lib/spack/spack/build_systems/intel.py
index 2c6732c19a..f84a14b7ba 100644
--- a/lib/spack/spack/build_systems/intel.py
+++ b/lib/spack/spack/build_systems/intel.py
@@ -685,9 +685,9 @@ class IntelPackage(PackageBase):
# packages.yaml), specificially to provide the 'iomp5' libs.
elif '%gcc' in self.spec:
- gcc = Executable(self.compiler.cc)
- omp_lib_path = gcc(
- '--print-file-name', 'libgomp.%s' % dso_suffix, output=str)
+ with self.compiler.compiler_environment():
+ omp_lib_path = Executable(self.compiler.cc)(
+ '--print-file-name', 'libgomp.%s' % dso_suffix, output=str)
omp_libs = LibraryList(omp_lib_path.strip())
if len(omp_libs) < 1:
@@ -728,8 +728,9 @@ class IntelPackage(PackageBase):
# TODO: clang(?)
gcc = self._gcc_executable # must be gcc, not self.compiler.cc
- cxx_lib_path = gcc(
- '--print-file-name', 'libstdc++.%s' % dso_suffix, output=str)
+ with self.compiler.compiler_environment():
+ cxx_lib_path = gcc(
+ '--print-file-name', 'libstdc++.%s' % dso_suffix, output=str)
libs = tbb_lib + LibraryList(cxx_lib_path.rstrip())
debug_print(libs)
@@ -739,8 +740,9 @@ class IntelPackage(PackageBase):
def _tbb_abi(self):
'''Select the ABI needed for linking TBB'''
gcc = self._gcc_executable
- matches = re.search(r'(gcc|LLVM).* ([0-9]+\.[0-9]+\.[0-9]+).*',
- gcc('--version', output=str), re.I | re.M)
+ with self.compiler.compiler_environment():
+ matches = re.search(r'(gcc|LLVM).* ([0-9]+\.[0-9]+\.[0-9]+).*',
+ gcc('--version', output=str), re.I | re.M)
abi = ''
if sys.platform == 'darwin':
pass
diff --git a/lib/spack/spack/compiler.py b/lib/spack/spack/compiler.py
index f137281221..1353322d59 100644
--- a/lib/spack/spack/compiler.py
+++ b/lib/spack/spack/compiler.py
@@ -325,7 +325,7 @@ class Compiler(object):
# setup environment before verifying in case we have executable names
# instead of absolute paths
- with self._compiler_environment():
+ with self.compiler_environment():
missing = [cmp for cmp in (self.cc, self.cxx, self.f77, self.fc)
if cmp and not accessible_exe(cmp)]
if missing:
@@ -407,7 +407,7 @@ class Compiler(object):
compiler_exe.add_default_arg(flag)
output = ''
- with self._compiler_environment():
+ with self.compiler_environment():
output = str(compiler_exe(
self.verbose_flag, fin, '-o', fout,
output=str, error=str)) # str for py2
@@ -523,7 +523,7 @@ class Compiler(object):
modifications) to enable the compiler to run properly on any platform.
"""
cc = spack.util.executable.Executable(self.cc)
- with self._compiler_environment():
+ with self.compiler_environment():
output = cc(self.version_argument,
output=str, error=str,
ignore_errors=tuple(self.ignore_version_errors))
@@ -597,7 +597,7 @@ class Compiler(object):
str(self.operating_system)))))
@contextlib.contextmanager
- def _compiler_environment(self):
+ def compiler_environment(self):
# store environment to replace later
backup_env = os.environ.copy()