diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 8f85e15098ed..d9e04804bd7b 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -1630,10 +1630,13 @@ def get_clink_dynamic_linker_and_stdlibs(self) -> T.Tuple['Compiler', T.List[str def get_used_stdlib_args(self, link_language: str) -> T.List[str]: all_compilers = self.environment.coredata.compilers[self.for_machine] - all_langs = set(all_compilers).union(self.get_langs_used_by_deps()) + all_langs = set(self.compilers).union(self.get_langs_used_by_deps()) stdlib_args: T.List[str] = [] for dl in all_langs: if dl != link_language and (dl, link_language) not in self._MASK_LANGS: + # We need to use all_compilers here because + # get_langs_used_by_deps could return a language from a + # subproject stdlib_args.extend(all_compilers[dl].language_stdlib_only_link_flags(self.environment)) return stdlib_args