From 177b7f111a68ef179b36a33aefa9dab627878585 Mon Sep 17 00:00:00 2001 From: Denis Davydov Date: Thu, 11 Apr 2019 21:33:59 +0200 Subject: intel: optionally take gcc executable from cflags (#11136) --- lib/spack/spack/build_systems/intel.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/spack/spack/build_systems/intel.py b/lib/spack/spack/build_systems/intel.py index 7882d55f87..152e5eec16 100644 --- a/lib/spack/spack/build_systems/intel.py +++ b/lib/spack/spack/build_systems/intel.py @@ -682,6 +682,19 @@ class IntelPackage(PackageBase): debug_print(omp_libs) return omp_libs + @property + def _gcc_executable(self): + '''Return GCC executable''' + # Match the available gcc, as it's done in tbbvars.sh. + gcc_name = 'gcc' + # but first check if -gcc-name is specified in cflags + for flag in self.spec.compiler_flags['cflags']: + if flag.startswith('-gcc-name='): + gcc_name = flag.split('-gcc-name=')[1] + break + debug_print(gcc_name) + return Executable(gcc_name) + @property def tbb_libs(self): '''Supply LibraryList for linking TBB''' @@ -693,7 +706,7 @@ class IntelPackage(PackageBase): # option: "icpc -tbb" # TODO: clang(?) - gcc = Executable('gcc') # must be gcc, not self.compiler.cc + gcc = self._gcc_executable # must be gcc, not self.compiler.cc cxx_lib_path = gcc( '--print-file-name', 'libstdc++.%s' % dso_suffix, output=str) @@ -704,8 +717,7 @@ class IntelPackage(PackageBase): @property def _tbb_abi(self): '''Select the ABI needed for linking TBB''' - # Match the available gcc, as it's done in tbbvars.sh. - gcc = Executable('gcc') + gcc = self._gcc_executable matches = re.search(r'(gcc|LLVM).* ([0-9]+\.[0-9]+\.[0-9]+).*', gcc('--version', output=str), re.I | re.M) abi = '' -- cgit v1.2.3-60-g2f50