diff --git a/source/dub/compilers/dmd.d b/source/dub/compilers/dmd.d index 29a3d2c..20fd57c 100644 --- a/source/dub/compilers/dmd.d +++ b/source/dub/compilers/dmd.d @@ -333,7 +333,13 @@ if (platform.platform.canFind("linux")) args ~= "-L--no-as-needed"; // avoids linker errors due to libraries being specified in the wrong order by DMD args ~= lflagsToDFlags(settings.lflags); - args ~= settings.dflags.filter!(f => isLinkerDFlag(f)).array; + if (platform.compiler == "ldc") { + // ldmd2: support the full LDC-specific list + extra "-m32mscoff", a superset of the DMD list + import dub.compilers.ldc : LDCCompiler; + args ~= settings.dflags.filter!(f => f == "-m32mscoff" || LDCCompiler.isLinkerDFlag(f)).array; + } else { + args ~= settings.dflags.filter!(f => isLinkerDFlag(f)).array; + } auto res_file = getTempFile("dub-build", ".lnk"); std.file.write(res_file.toNativeString(), escapeArgs(args).join("\n"));