aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/compilers/compilers.py2
-rw-r--r--mesonbuild/compilers/d.py18
2 files changed, 19 insertions, 1 deletions
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']