aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2020-03-18 11:11:06 -0700
committerJussi Pakkanen <jpakkane@gmail.com>2020-03-19 19:04:43 +0200
commite1060f577270528ca548a47aa3d77016e191d8ad (patch)
treebb5170bf13ef6874b0a97b848b6a000eb648f2fc /mesonbuild
parent32b4bfaa74b628cb02c6fa2f776caeb1b8211fc5 (diff)
downloadmeson-e1060f577270528ca548a47aa3d77016e191d8ad.zip
meson-e1060f577270528ca548a47aa3d77016e191d8ad.tar.gz
meson-e1060f577270528ca548a47aa3d77016e191d8ad.tar.bz2
compilers: Link D runtime/libphobs dynamically on !Windows
Fixes: #6786
Diffstat (limited to 'mesonbuild')
-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']