diff --git a/lib/spack/spack/solver/asp.py b/lib/spack/spack/solver/asp.py index 3fb88a274dd..871df481fd6 100644 --- a/lib/spack/spack/solver/asp.py +++ b/lib/spack/spack/solver/asp.py @@ -28,7 +28,6 @@ import spack.binary_distribution import spack.compilers.config import spack.compilers.flags -import spack.concretize import spack.config import spack.deptypes as dt import spack.environment as ev @@ -2766,13 +2765,13 @@ def define_runtime_constraints(self): "libc", when=f"%{compiler.name}@{compiler.versions}", type="link", - description="Add libc", + description=f"Add libc when using {compiler}", ) recorder("*").depends_on( str(current_libc), when=f"%{compiler.name}@{compiler.versions}", type="link", - description="Add libc", + description=f"Libc is {current_libc} when using {compiler}", ) recorder.consume_facts() diff --git a/lib/spack/spack/solver/concretize.lp b/lib/spack/spack/solver/concretize.lp index 18188da0d37..270cf043f17 100644 --- a/lib/spack/spack/solver/concretize.lp +++ b/lib/spack/spack/solver/concretize.lp @@ -1364,12 +1364,16 @@ node_target_compatible(PackageNode, Target) #defined target_satisfies/2. compiler(Compiler) :- compiler_supports_target(Compiler, _, _). -% can't use targets on node if the compiler for the node doesn't support them -error(100, "{0} compiler '{2}@{3}' incompatible with 'target={1}'", Package, Target, Compiler, Version) +% Can't use targets on node if the compiler for the node doesn't support them +language("c"). +language("cxx"). +language("fortran"). + +error(10, "{0} compiler '{2}@{3}' incompatible with 'target={1}'", Package, Target, Compiler, Version) :- attr("node_target", node(X, Package), Target), - attr("depends_on", node(X, Package), node(Y, Compiler), "build"), + attr("virtual_on_edge", node(X, Package), node(Y, Compiler), Language), attr("version", node(Y, Compiler), Version), - compiler(Compiler), + compiler(Compiler), language(Language), not compiler_supports_target(Compiler, Version, Target), build(node(X, Package)).