Demote a warning to debug message, if C compiler is not there (#44182)

This commit is contained in:
Massimiliano Culpo 2024-05-21 14:09:29 +02:00 committed by Harmen Stoppels
parent 579fadacd0
commit cbcfc7e10a
2 changed files with 19 additions and 0 deletions

View file

@ -314,6 +314,10 @@ def using_libc_compatibility() -> bool:
return spack.platforms.host().name == "linux" return spack.platforms.host().name == "linux"
def c_compiler_runs(compiler: spack.compiler.Compiler) -> bool:
return compiler.compiler_verbose_output is not None
def extend_flag_list(flag_list, new_flags): def extend_flag_list(flag_list, new_flags):
"""Extend a list of flags, preserving order and precedence. """Extend a list of flags, preserving order and precedence.
@ -2975,6 +2979,13 @@ class CompilerParser:
def __init__(self, configuration) -> None: def __init__(self, configuration) -> None:
self.compilers: Set[KnownCompiler] = set() self.compilers: Set[KnownCompiler] = set()
for c in all_compilers_in_config(configuration): for c in all_compilers_in_config(configuration):
if using_libc_compatibility() and not c_compiler_runs(c):
tty.debug(
f"the C compiler {c.cc} does not exist, or does not run correctly."
f" The compiler {c.spec} will not be used during concretization."
)
continue
if using_libc_compatibility() and not c.default_libc: if using_libc_compatibility() and not c.default_libc:
warnings.warn( warnings.warn(
f"cannot detect libc from {c.spec}. The compiler will not be used " f"cannot detect libc from {c.spec}. The compiler will not be used "

View file

@ -2053,3 +2053,11 @@ def _true(x):
@pytest.fixture() @pytest.fixture()
def do_not_check_runtimes_on_reuse(monkeypatch): def do_not_check_runtimes_on_reuse(monkeypatch):
monkeypatch.setattr(spack.solver.asp, "_has_runtime_dependencies", _true) monkeypatch.setattr(spack.solver.asp, "_has_runtime_dependencies", _true)
@pytest.fixture(autouse=True, scope="session")
def _c_compiler_always_exists():
fn = spack.solver.asp.c_compiler_runs
spack.solver.asp.c_compiler_runs = _true
yield
spack.solver.asp.c_compiler_runs = fn