diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2019-12-16 10:41:13 -0800 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2020-03-06 12:11:26 -0800 |
commit | c0fd20f164609b8c3be516b5be3d70a4b9ff6f49 (patch) | |
tree | 53ca0f6439be8f4f96486bc9118a49f7a1a37087 | |
parent | 6ac40539a3fca9de099d4d2dd348423ec045ff65 (diff) | |
download | meson-c0fd20f164609b8c3be516b5be3d70a4b9ff6f49.zip meson-c0fd20f164609b8c3be516b5be3d70a4b9ff6f49.tar.gz meson-c0fd20f164609b8c3be516b5be3d70a4b9ff6f49.tar.bz2 |
compilers/d: Remove CompilerIsLInkerMixin
This was never really true of the D compilers, it made them more
complicated than necessary and was incorrect in many cases. Removing it
causes no regressions on Linux, at least in our rather limited test
cases).
-rw-r--r-- | mesonbuild/compilers/d.py | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py index b974504..99889b0 100644 --- a/mesonbuild/compilers/d.py +++ b/mesonbuild/compilers/d.py @@ -28,7 +28,6 @@ from .compilers import ( CompilerArgs, ) from .mixins.gnu import GnuCompiler -from .mixins.islinker import LinkerEnvVarsMixin, BasicLinkerIsCompilerMixin if T.TYPE_CHECKING: from ..envconfig import MachineInfo @@ -69,7 +68,7 @@ dmd_optimization_args = {'0': [], class DmdLikeCompilerMixin: - LINKER_PREFIX = '-L' + LINKER_PREFIX = '-L=' def get_output_args(self, target): return ['-of=' + target] @@ -214,7 +213,7 @@ class DmdLikeCompilerMixin: return [] def gen_import_library_args(self, implibname): - return ['-Wl,--out-implib=' + implibname] + return self.linker.import_library_args(implibname) def build_rpath_args(self, env, build_dir, from_dir, rpath_paths, build_rpath, install_rpath): if self.info.is_windows(): @@ -392,16 +391,10 @@ class DmdLikeCompilerMixin: # LDC and DMD actually do use a linker, but they proxy all of that with # their own arguments soargs = [] - for arg in Compiler.get_soname_args(self, *args, **kwargs): + for arg in super().get_soname_args(*args, **kwargs): soargs.append('-L=' + arg) return soargs - def get_allow_undefined_link_args(self) -> T.List[str]: - args = [] - for arg in self.linker.get_allow_undefined_args(): - args.append('-L=' + arg) - return args - class DCompiler(Compiler): mscrt_args = { @@ -600,7 +593,7 @@ class DCompiler(Compiler): return [] def thread_link_flags(self, env): - return ['-pthread'] + return self.linker.thread_flags(env) def name_string(self): return ' '.join(self.exelist) @@ -658,7 +651,7 @@ class GnuDCompiler(DCompiler, GnuCompiler): return self.linker.get_allow_undefined_args() -class LLVMDCompiler(DmdLikeCompilerMixin, LinkerEnvVarsMixin, BasicLinkerIsCompilerMixin, DCompiler): +class LLVMDCompiler(DmdLikeCompilerMixin, DCompiler): def __init__(self, exelist, version, for_machine: MachineChoice, info: 'MachineInfo', arch, **kwargs): @@ -687,9 +680,6 @@ class LLVMDCompiler(DmdLikeCompilerMixin, LinkerEnvVarsMixin, BasicLinkerIsCompi def get_pic_args(self): return ['-relocation-model=pic'] - def get_std_shared_lib_link_args(self): - return ['-shared'] - def get_crt_link_args(self, crt_val, buildtype): return self.get_crt_args(crt_val, buildtype) @@ -700,7 +690,7 @@ class LLVMDCompiler(DmdLikeCompilerMixin, LinkerEnvVarsMixin, BasicLinkerIsCompi return ldc_optimization_args[optimization_level] -class DmdDCompiler(DmdLikeCompilerMixin, LinkerEnvVarsMixin, BasicLinkerIsCompilerMixin, DCompiler): +class DmdDCompiler(DmdLikeCompilerMixin, DCompiler): def __init__(self, exelist, version, for_machine: MachineChoice, info: 'MachineInfo', arch, **kwargs): |