DMD release compiler flags when building with LDC

kinke kinke at gmx.net
Wed Oct 23 11:24:32 UTC 2019


On Wednesday, 23 October 2019 at 09:49:57 UTC, Per Nordlöw wrote:
> On Tuesday, 22 October 2019 at 18:55:03 UTC, kinke wrote:
>> On Tuesday, 22 October 2019 at 14:02:28 UTC, Per Nordlöw wrote:
>>>     ENABLE_LTO=1 \
>>
>> This has exactly 0 effect on DMD itself, from DMD's 
>> src/posix.mak:
>>
>> ifdef ENABLE_LTO
>> CXXFLAGS  += -flto
>> endif
>
> So, I presume we could set
>
> ifdef ENABLE_LTO
> DFLAGS += -flto=full
> endif
>
> in the case when `HOST_DC` is either `ldmd2` or `ldc2` then, 
> right?
>
> This works for me.

My bad, I thought build.d was a replacement for the Makefile, 
instead the Makefile is based on it, so this should kick in: 
https://github.com/dlang/dmd/blob/ce7576f256d4efaff843f5e7d6ed39e8d7f32a4e/src/build.d#L781-L784

druntime is linked as machine code though, so an additional 
`-defaultlib=druntime-ldc-lto` (if available in the used LDC 
package, true for almost all official packages) would 
additionally enable LTO across DMD and druntime.


More information about the Digitalmars-d mailing list