DMD release compiler flags when building with LDC
Jonathan Marler
johnnymarler at gmail.com
Thu Oct 24 14:03:32 UTC 2019
On Wednesday, 23 October 2019 at 11:24:32 UTC, kinke wrote:
> 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.
build.d is meant to replace the Makefiles. It just takes a long
time to get PRs through and they need to be small. So to make the
change incremental I've been removing logic from the Makefiles
and forwarding the targets to call build.d instead. We've
recently made some good progress and we just started getting help
from MoonlightSentinel so hopefully well get it all moved over
soon.
That being said, having the Makefiles around doesn't really
bother me. Maybe we'll leave them so people can still use make to
build dmd. So long as all the logic is removed and all it does is
forward to build.d.
More information about the Digitalmars-d
mailing list