Remove BasicLinkerIsCompilerMixin from LDC and DMD
These compilers invoke external linkers and have the appropriate .linker property set. Therefore, BasicLinkerIsCompilerMixin appears to be misplaced. It used to work by chance, because BasicLinkerIsCompilerMixin failed to override the get_allow_undefined_link_args method. The D compilers do not provide their own get_allow_undefined_link_args, because they expect to inherit it from Compiler, which simply delegates it to the linker. Now that BasicLinkerIsCompilerMixin correctly overrides that method with a stub, it broke compilers that relied on the buggy behavior.
This commit is contained in:
parent
dd162dccaa
commit
5e3eff9d72
|
@ -635,7 +635,7 @@ class GnuDCompiler(DCompiler, GnuCompiler):
|
|||
return parameter_list
|
||||
|
||||
|
||||
class LLVMDCompiler(DmdLikeCompilerMixin, LinkerEnvVarsMixin, BasicLinkerIsCompilerMixin, DCompiler):
|
||||
class LLVMDCompiler(DmdLikeCompilerMixin, LinkerEnvVarsMixin, DCompiler):
|
||||
|
||||
def __init__(self, exelist, version, for_machine: MachineChoice,
|
||||
info: 'MachineInfo', arch, **kwargs):
|
||||
|
@ -674,7 +674,7 @@ class LLVMDCompiler(DmdLikeCompilerMixin, LinkerEnvVarsMixin, BasicLinkerIsCompi
|
|||
return ldc_optimization_args[optimization_level]
|
||||
|
||||
|
||||
class DmdDCompiler(DmdLikeCompilerMixin, LinkerEnvVarsMixin, BasicLinkerIsCompilerMixin, DCompiler):
|
||||
class DmdDCompiler(DmdLikeCompilerMixin, LinkerEnvVarsMixin, DCompiler):
|
||||
|
||||
def __init__(self, exelist, version, for_machine: MachineChoice,
|
||||
info: 'MachineInfo', arch, **kwargs):
|
||||
|
|
Loading…
Reference in New Issue