From e1060f577270528ca548a47aa3d77016e191d8ad Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Wed, 18 Mar 2020 11:11:06 -0700 Subject: compilers: Link D runtime/libphobs dynamically on !Windows Fixes: #6786 --- mesonbuild/compilers/compilers.py | 2 +- mesonbuild/compilers/d.py | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) (limited to 'mesonbuild/compilers') diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index e13256e..a0d752c 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -842,7 +842,7 @@ class Compiler: """ return self.linker.get_accepts_rsp() - def get_linker_always_args(self): + def get_linker_always_args(self) -> T.List[str]: return self.linker.get_always_args() def get_linker_lib_prefix(self): diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py index eb3a0f3..a86f254 100644 --- a/mesonbuild/compilers/d.py +++ b/mesonbuild/compilers/d.py @@ -678,6 +678,12 @@ class GnuDCompiler(GnuCompiler, DCompiler): def get_allow_undefined_link_args(self) -> T.List[str]: return self.linker.get_allow_undefined_args() + def get_linker_always_args(self) -> T.List[str]: + args = super().get_linker_always_args() + if self.info.is_windows(): + return args + return args + ['-shared-libphobos'] + class LLVMDCompiler(DmdLikeCompilerMixin, DCompiler): @@ -721,6 +727,12 @@ class LLVMDCompiler(DmdLikeCompilerMixin, DCompiler): def use_linker_args(cls, linker: str) -> T.List[str]: return ['-linker={}'.format(linker)] + def get_linker_always_args(self) -> T.List[str]: + args = super().get_linker_always_args() + if self.info.is_windows(): + return args + return args + ['-link-defaultlib-shared'] + class DmdDCompiler(DmdLikeCompilerMixin, DCompiler): @@ -785,3 +797,9 @@ class DmdDCompiler(DmdLikeCompilerMixin, DCompiler): def can_linker_accept_rsp(self) -> bool: return False + + def get_linker_always_args(self) -> T.List[str]: + args = super().get_linker_always_args() + if self.info.is_windows(): + return args + return args + ['-defaultlib=phobos2', '-debuglib=phobos2'] -- cgit v1.1