From f79354c3121ab7b747920b5f4ca416e9ba3e8732 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Fri, 15 Nov 2024 08:09:20 +0100 Subject: [PATCH] Fix setting SPACK_TARGET_ARGS for concrete specs --- lib/spack/spack/build_systems/compiler.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/spack/spack/build_systems/compiler.py b/lib/spack/spack/build_systems/compiler.py index 39b509561c5..ac0ee1e80ac 100644 --- a/lib/spack/spack/build_systems/compiler.py +++ b/lib/spack/spack/build_systems/compiler.py @@ -219,8 +219,7 @@ def setup_dependent_build_environment(self, env, dependent_spec): env.set("SPACK_LINKER_ARG", self.linker_arg) - detector = spack.compilers.libraries.CompilerPropertyDetector(self.spec) - paths = detector.implicit_rpaths() + paths = _implicit_rpaths(pkg=self) if paths: env.set("SPACK_COMPILER_IMPLICIT_RPATHS", ":".join(paths)) @@ -233,7 +232,7 @@ def setup_dependent_build_environment(self, env, dependent_spec): env.set("SPACK_DTAGS_TO_ADD", self.enable_new_dtags) spec = self.spec - uarch = spec.architecture.target + uarch = dependent_spec.architecture.target version_number, _ = archspec.cpu.version_components(spec.version.dotted_numeric_string) try: isa_arg = uarch.optimization_flags(spec.name, version_number) @@ -276,6 +275,12 @@ def setup_dependent_build_environment(self, env, dependent_spec): env.set_path("SPACK_ENV_PATH", env_paths) +def _implicit_rpaths(pkg: spack.package_base.PackageBase) -> List[str]: + detector = spack.compilers.libraries.CompilerPropertyDetector(pkg.spec) + paths = detector.implicit_rpaths() + return paths + + @memoized def _compiler_output( compiler_path: Path, *, version_argument: str, ignore_errors: Tuple[int, ...] = ()