fix automatic mixing of clang with gfortran 6.3.0 on macOS (#3427)
* fix automatic mixing of clang with gfortran 6.3.0 on macOS * automatically mix any gfortran with any clang on macOS * adjust the unit test
This commit is contained in:
parent
8c3edfd36f
commit
560d28ac7f
2 changed files with 5 additions and 14 deletions
|
@ -164,19 +164,10 @@ def _find_full_path(self, path):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def fc_version(cls, fc):
|
def fc_version(cls, fc):
|
||||||
version = get_compiler_version(
|
# We could map from gcc/gfortran version to clang version, but on macOS
|
||||||
fc, '-dumpversion',
|
# we normally mix any version of gfortran with any version of clang.
|
||||||
# older gfortran versions don't have simple dumpversion output.
|
|
||||||
r'(?:GNU Fortran \(GCC\))?(\d+\.\d+(?:\.\d+)?)')
|
|
||||||
# This is horribly ad hoc, we need to map from gcc/gfortran version
|
|
||||||
# to clang version, but there could be multiple clang
|
|
||||||
# versions that work for a single gcc/gfortran version
|
|
||||||
if sys.platform == 'darwin':
|
if sys.platform == 'darwin':
|
||||||
clangversionfromgcc = {'6.2.0': '8.0.0-apple'}
|
return cls.default_version('clang')
|
||||||
else:
|
|
||||||
clangversionfromgcc = {}
|
|
||||||
if version in clangversionfromgcc:
|
|
||||||
return clangversionfromgcc[version]
|
|
||||||
else:
|
else:
|
||||||
return 'unknown'
|
return 'unknown'
|
||||||
|
|
||||||
|
|
|
@ -90,5 +90,5 @@ def test_compiler_add(self, mock_compiler_dir):
|
||||||
new_compilers = set(spack.compilers.all_compiler_specs())
|
new_compilers = set(spack.compilers.all_compiler_specs())
|
||||||
new_compiler = new_compilers - old_compilers
|
new_compiler = new_compilers - old_compilers
|
||||||
assert new_compiler
|
assert new_compiler
|
||||||
c = new_compiler.pop()
|
assert sum(1 for c in new_compiler if
|
||||||
assert c.version == Version(test_version)
|
c.version == Version(test_version)) > 0
|
||||||
|
|
Loading…
Reference in a new issue