Walter Bright wrote:
retard wrote:
I thought the DMD's approach required sources for each module and GCC supported LTO even when only object / library files were provided.

DMD does require the sources, or at least the sources you'd like to have inlined. GCC requires all the sources used to be compiled with a special switch:

"When using multiple steps, it is strongly recommended to use exactly the same optimization and machine-dependent options in all commands, because conflicting options during compilation and link-time may lead to strange errors."

https://lwn.net/Articles/387122/

So the best way to build release version(assuming two-phase build) should be:

1. Synchronize DMD compilation switches with DMD link switches(-release -O -inline).
2. Pass all the project sources in one DMD cmd line, compile.
3. Link produced object file with other libs.

Am I correct?
Does single-phase(compile-link in one command line) give optimization gain with the DMD?


--
Alex Makhotin,
the founder of BITPROX,
http://bitprox.com

Reply via email to