diff --git a/var/spack/repos/builtin/packages/icu4c/package.py b/var/spack/repos/builtin/packages/icu4c/package.py index 175315ad1b2..f94fd66ebed 100644 --- a/var/spack/repos/builtin/packages/icu4c/package.py +++ b/var/spack/repos/builtin/packages/icu4c/package.py @@ -76,6 +76,10 @@ def flag_handler(self, name, flags): flags.append(getattr(self.compiler, f"cxx{self.spec.variants['cxxstd'].value}_flag")) return (None, flags, None) + @property + def libs(self): + return find_libraries("libicu*", root=self.prefix, recursive=True) + class AutotoolsBuilder(spack.build_systems.autotools.AutotoolsBuilder): diff --git a/var/spack/repos/builtin/packages/r/package.py b/var/spack/repos/builtin/packages/r/package.py index cfd88312f44..b9004bf3119 100644 --- a/var/spack/repos/builtin/packages/r/package.py +++ b/var/spack/repos/builtin/packages/r/package.py @@ -232,6 +232,20 @@ def configure_args(self): @run_after("install") def copy_makeconf(self): + # Ensure full library flags are included in Makeconf + for _lib, _pkg in [ + ("lzma", "xz"), + ("bz2", "bzip2"), + ("z", "zlib-api"), + ("tirpc", "libtirpc"), + ("icuuc", "icu4c"), + ]: + filter_file( + f"-l{_lib}", + f"-L{self.spec[_pkg].libs.directories[0]} -l{_lib}", + join_path(self.etcdir, "Makeconf"), + ) + # Make a copy of Makeconf because it will be needed to properly build R # dependencies in Spack. src_makeconf = join_path(self.etcdir, "Makeconf")