From eacdfef38f79cf1e4bcc01b20436d7a7bd0d92ae Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Fri, 28 Feb 2025 18:33:02 +0100 Subject: [PATCH] Account for language on flag propagation Signed-off-by: Massimiliano Culpo --- lib/spack/spack/solver/concretize.lp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/spack/spack/solver/concretize.lp b/lib/spack/spack/solver/concretize.lp index c8a5bb8b284..c71ac14943f 100644 --- a/lib/spack/spack/solver/concretize.lp +++ b/lib/spack/spack/solver/concretize.lp @@ -1258,7 +1258,9 @@ error(100, "Cannot propagate the variant '{0}' from the package: {1} because pac % 1. The same flag type is not set on this node % 2. This node has the same compilers as the propagation source -node_compiler(node(X, Package), node(Y, Compiler)) :- +node_compiler(node(X, Package), node(Y, Compiler)) :- node_compiler(node(X, Package), node(Y, Compiler), Language). + +node_compiler(node(X, Package), node(Y, Compiler), Language) :- attr("virtual_on_edge", node(X, Package), node(Y, Compiler), Language), compiler(Compiler), language(Language). @@ -1266,7 +1268,7 @@ propagated_flag(node(PackageID, Package), node_flag(FlagType, Flag, FlagGroup, S propagate(node(PackageID, Package), node_flag(FlagType, Flag, FlagGroup, Source), _), not attr("node_flag_set", node(PackageID, Package), node_flag(FlagType, _, _, "literal")), % Same compilers as propagation source - node_compiler(node(PackageID, Package), CompilerNode) : node_compiler(SourceNode, CompilerNode); + node_compiler(node(PackageID, Package), CompilerNode, Language) : node_compiler(SourceNode, CompilerNode, Language); attr("propagate", SourceNode, node_flag(FlagType, Flag, FlagGroup, Source), _), node(PackageID, Package) != SourceNode, not runtime(Package).