October 23, 2019
On Wednesday, 23 October 2019 at 11:29:11 UTC, Daniel Kozak wrote:
> Not exactly, build.d has been use only for some part of dmd, so this is reason why I have opened https://bugs.archlinux.org/task/63569. There has been mismatch (some code has been compiled witl LTO and some was not ). It is possible right now build.d is used for everything so it could work.

It looked like it was all compiled with build.d, but I only glanced over it. Mixing bitcode and machine code objects should be fine; archiving a mix into static libraries too, but that requires archiving with LDC (`-lib`).
October 24, 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.
1 2
Next ›   Last »