On Thursday, 21 December 2017 at 18:40:54 UTC, Andrei Alexandrescu wrote:
I heard ldc already uses its embedded variant for linking programs (on Widows? Posix? 32bit? 64bit?).

Currently only for Windows-MSVC targets (both 32 and 64 bits) and only when specifying the `-link-internally` switch. The host platform doesn't matter, i.e., it works for cross-linking from any Posix system too, even on ARM etc. ['Embedded variant' => we're linking in the static LLD libs and so share the common LLVM code in a single executable.]

Can we distribute it as an alternative to optlink?

Now that it's capable of outputting debuginfo .pdb's too (since v5.0, at least on Windows hosts), it should basically be fine.

There's one catch though, and that's the rather big size of the executable (26 MB for the v5.0.1 32-bit executable when linked against the static MS runtime with VS 2017, with enabled LLVM backends for x86[_64], ARM, AArch64 and Nvidia PTX). That's due to LLD being a cross-linker by default, capable of outputting Windows, ELF and Mach-O binaries, and because of included codegen capabilities (for Link-Time Optimization), i.e., stuff that DMD doesn't need. Unfortunately, those features cannot be simply opted-out via CMake.

Reply via email to