On Monday, 26 September 2016 at 23:32:05 UTC, Walter Bright wrote:
Linking C libraries and object code into D programs has always worked easily in D. The other way around, not so well.

[snip]

How much of an issue is this with D? Is it something we need to address?

We've been toying with this in setting up LDC's build such that it works on different platforms. Wait, "toying" implies "fun". It was anything but. At first, we used the D compiler to do the final linking, but it resulted in troubles when special linker flags are needed. We've now moved to using the system linker separately to do the linking.
https://github.com/ldc-developers/ldc/pull/1594

For this, we use `-v` to figure out what the system linker is and what linker flags are passed by the D compiler (link with phobos, druntime, etc.). But it needs "parsing" of `-v` output, quite annoying. See https://github.com/ldc-developers/ldc/blob/master/cmake/Modules/ExtractDMDSystemLinker.cmake

The idea to add a cmdline flag `-ldflags` that would just output the linking flags, did not get a response.
https://forum.dlang.org/post/[email protected]
I think it will save people a lot of time and frustration. (possible improvements can be made such that the output of `-ldflags` also includes extra link flags when special compiler flags are passed, such as `-fprofile-instr-generate`.)

-Johan

Reply via email to