Fix detection of LLVM-enabled PGI compilers (#10704)
* Fix detection of LLVM-enabled PGI compilers * Add unit tests for LLVM-enabled PGI compiler version detection
This commit is contained in:
parent
a40492172f
commit
7255d5ee3c
@ -19,6 +19,10 @@ class Pgi(spack.compiler.Compiler):
|
|||||||
# Subclasses use possible names of Fortran 90 compiler
|
# Subclasses use possible names of Fortran 90 compiler
|
||||||
fc_names = ['pgfortran', 'pgf95', 'pgf90']
|
fc_names = ['pgfortran', 'pgf95', 'pgf90']
|
||||||
|
|
||||||
|
# LLVM-enabled PGI compilers add a '-llvm' suffix:
|
||||||
|
# pgcc-llvm, pgc++llvm, pgfortran-llvm
|
||||||
|
suffixes = ['-?llvm']
|
||||||
|
|
||||||
# Named wrapper links within build_env_path
|
# Named wrapper links within build_env_path
|
||||||
link_paths = {'cc': 'pgi/pgcc',
|
link_paths = {'cc': 'pgi/pgcc',
|
||||||
'cxx': 'pgi/pgc++',
|
'cxx': 'pgi/pgc++',
|
||||||
@ -29,7 +33,7 @@ class Pgi(spack.compiler.Compiler):
|
|||||||
PrgEnv_compiler = 'pgi'
|
PrgEnv_compiler = 'pgi'
|
||||||
|
|
||||||
version_argument = '-V'
|
version_argument = '-V'
|
||||||
version_regex = r'pg[^ ]* ([0-9.]+)-[0-9]+ [^ ]+ target on '
|
version_regex = r'pg[^ ]* ([0-9.]+)-[0-9]+ (LLVM )?[^ ]+ target on '
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def openmp_flag(self):
|
def openmp_flag(self):
|
||||||
|
@ -317,7 +317,13 @@ def test_nag_version_detection(version_str, expected_version):
|
|||||||
# Output on PowerPC
|
# Output on PowerPC
|
||||||
('pgcc 17.4-0 linuxpower target on Linuxpower\n'
|
('pgcc 17.4-0 linuxpower target on Linuxpower\n'
|
||||||
'PGI Compilers and Tools\n'
|
'PGI Compilers and Tools\n'
|
||||||
'Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.\n', '17.4')
|
'Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.\n',
|
||||||
|
'17.4'),
|
||||||
|
# Output when LLVM-enabled
|
||||||
|
('pgcc-llvm 18.4-0 LLVM 64-bit target on x86-64 Linux -tp haswell\n'
|
||||||
|
'PGI Compilers and Tools\n'
|
||||||
|
'Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved.\n',
|
||||||
|
'18.4')
|
||||||
])
|
])
|
||||||
def test_pgi_version_detection(version_str, expected_version):
|
def test_pgi_version_detection(version_str, expected_version):
|
||||||
version = spack.compilers.pgi.Pgi.extract_version_from_output(version_str)
|
version = spack.compilers.pgi.Pgi.extract_version_from_output(version_str)
|
||||||
|
Loading…
Reference in New Issue
Block a user