diff options
author | David Seifert <soap@gentoo.org> | 2022-07-06 21:18:08 +0200 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek@centricular.com> | 2022-08-08 19:10:00 +0530 |
commit | 738030ee84d6536865a24e7da66989a6a936e4cb (patch) | |
tree | 23ae261cfb5e3cc53884aff7f70aedbd9fcece41 | |
parent | 9c6dab2cfd310ef2d840a2a7a479ce6b9e563b1d (diff) | |
download | meson-738030ee84d6536865a24e7da66989a6a936e4cb.zip meson-738030ee84d6536865a24e7da66989a6a936e4cb.tar.gz meson-738030ee84d6536865a24e7da66989a6a936e4cb.tar.bz2 |
cuda: don't inject `-lstdc++` when linking
Fixes: #10570
-rw-r--r-- | mesonbuild/build.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index c987840..11bd21e 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -1585,6 +1585,15 @@ You probably should put it in link_with instead.''') # Languages used by dependencies dep_langs = self.get_langs_used_by_deps() + + # This set contains all the languages a linker can link natively + # without extra flags. For instance, nvcc (cuda) can link C++ + # without injecting -lc++/-lstdc++, see + # https://github.com/mesonbuild/meson/issues/10570 + MASK_LANGS = frozenset([ + # (language, linker) + ('cpp', 'cuda'), + ]) # Pick a compiler based on the language priority-order for l in clink_langs: if l in self.compilers or l in dep_langs: @@ -1597,7 +1606,7 @@ You probably should put it in link_with instead.''') 'a project language.') stdlib_args: T.List[str] = [] for dl in itertools.chain(self.compilers, dep_langs): - if dl != linker.language: + if dl != linker.language and (dl, linker.language) not in MASK_LANGS: stdlib_args += all_compilers[dl].language_stdlib_only_link_flags(self.environment) # Type of var 'linker' is Compiler. # Pretty hard to fix because the return value is passed everywhere |