From 081e4c463b8673f52346af51052ae3d763d28efb Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Mon, 7 Apr 2025 15:39:13 +0200 Subject: [PATCH] compilers: add `.stdcxx_libs` to the compiler adaptor (#49873) This property is used by a few recipes, including `cp2k` under certain configurations Signed-off-by: Massimiliano Culpo --- lib/spack/spack/compilers/adaptor.py | 4 ++++ var/spack/repos/builtin/packages/aocc/package.py | 1 + var/spack/repos/builtin/packages/gcc/package.py | 2 +- var/spack/repos/builtin/packages/grackle/package.py | 2 ++ 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/spack/spack/compilers/adaptor.py b/lib/spack/spack/compilers/adaptor.py index ad9a929d342..e925e876012 100644 --- a/lib/spack/spack/compilers/adaptor.py +++ b/lib/spack/spack/compilers/adaptor.py @@ -190,6 +190,10 @@ def f77(self): self._lang_exists_or_raise("f77", lang=Languages.FORTRAN) return self.compilers[Languages.FORTRAN].package.fortran + @property + def stdcxx_libs(self): + return self._maybe_return_attribute("stdcxx_libs", lang=Languages.CXX) + class DeprecatedCompiler(lang.DeprecatedProperty): def __init__(self) -> None: diff --git a/var/spack/repos/builtin/packages/aocc/package.py b/var/spack/repos/builtin/packages/aocc/package.py index de11a97842e..64e533f4fc6 100644 --- a/var/spack/repos/builtin/packages/aocc/package.py +++ b/var/spack/repos/builtin/packages/aocc/package.py @@ -138,6 +138,7 @@ def cfg_files(self): } implicit_rpath_libs = ["libclang"] + stdcxx_libs = ("-lstdc++",) def _standard_flag(self, *, language: str, standard: str) -> str: flags = { diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py index 7150857bbf5..5e910e89e9e 100644 --- a/var/spack/repos/builtin/packages/gcc/package.py +++ b/var/spack/repos/builtin/packages/gcc/package.py @@ -618,7 +618,7 @@ def supported_languages(self): opt_flags = ["-O", "-O0", "-O1", "-O2", "-O3", "-Os", "-Ofast", "-Og"] implicit_rpath_libs = ["libgcc", "libgfortran"] - stdcxx_libs = "-lstdc++" + stdcxx_libs = ("-lstdc++",) def _standard_flag(self, *, language, standard): flags = { diff --git a/var/spack/repos/builtin/packages/grackle/package.py b/var/spack/repos/builtin/packages/grackle/package.py index 6dd2c670402..b3690d6380e 100644 --- a/var/spack/repos/builtin/packages/grackle/package.py +++ b/var/spack/repos/builtin/packages/grackle/package.py @@ -28,6 +28,8 @@ class Grackle(Package): depends_on("libtool", when="@2.2:") depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") depends_on("tcsh", type="build") depends_on("mpi")