bugfix: external detection for compilers with os but not target (#44156)
avoid calling `spec.target` when None. When an external compiler package has an `os` set but no `target` set, Spack currently falls into a codepath that calls `spec.target` (which itself calls `spec.architecture.target.Microarchitecture`) when `spec.architecture.target` is None, throwing an error. e.g. ``` packages: gcc: externals: - spec: gcc@12.3.1 os=rhel7 prefix: /usr ``` --------- Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
This commit is contained in:
parent
2605aeb072
commit
e7c86259bd
1 changed files with 3 additions and 3 deletions
|
@ -220,10 +220,10 @@ def _compiler_config_from_external(config):
|
||||||
operating_system = host_platform.operating_system("default_os")
|
operating_system = host_platform.operating_system("default_os")
|
||||||
target = host_platform.target("default_target").microarchitecture
|
target = host_platform.target("default_target").microarchitecture
|
||||||
else:
|
else:
|
||||||
target = spec.target
|
target = spec.architecture.target
|
||||||
if not target:
|
if not target:
|
||||||
host_platform = spack.platforms.host()
|
target = spack.platforms.host().target("default_target")
|
||||||
target = host_platform.target("default_target").microarchitecture
|
target = target.microarchitecture
|
||||||
|
|
||||||
operating_system = spec.os
|
operating_system = spec.os
|
||||||
if not operating_system:
|
if not operating_system:
|
||||||
|
|
Loading…
Reference in a new issue