diff --git a/lib/spack/spack/build_systems/intel.py b/lib/spack/spack/build_systems/intel.py index 7882d55f8791f085cbc49d156836a159087e6c6c..152e5eec16fc701836947bc296f05451b1e6bf69 100644 --- a/lib/spack/spack/build_systems/intel.py +++ b/lib/spack/spack/build_systems/intel.py @@ -682,6 +682,19 @@ def openmp_libs(self): 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 @@ def tbb_libs(self): # 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 @@ def tbb_libs(self): @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 = ''