On Mo, 11.01.21 15:34, Michael Biebl (mbiebl@xxxxxxxxx) wrote: > Hi, > > we've been using LTO in the Debian build for as long as I can > remember, but I begin to question whether that is a good idea. > On Debian sid (gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU > Binutils for Debian) 2.35.1), > an LTO build almost takes twice as long as a no-LTO build. > I also debdiffed the produced binary and LTO seems to produce bigger > binaries as well. LTO is about optimization for speed primarily. That it can strip unneeded stuff is just an additional nice effect. LTO used to be absolutely important to us, since we linked a lot of the common code statically into all our binaries, and with LTO's help we stripped the bits unnecessary for the specific binary out of it. we don't build things like that anymore though. we now have a big private shared library instead that all our tools link against. The shared lib carries basically everything, and you can't strip much out of it, or out of the binaries easily... So, LTO is typically a good idea to optimize stuff where the granularity of .c modules is "finegrained" (i.e. where the functions-per-c-file-ratio is small), since otherwise the compiler would never get the chance to inline a function or so. But it's not really that essential anymore for us, for building remotely reasonably-sized binaries. Note that other distros will soon go for LTO for everything: https://fedoraproject.org/wiki/LTOByDefault (I think Suse is even further ahead on this) So, it's up to you where you want to take things, but I sense the future is "yes to LTO" and not "no to LTO". Lennart -- Lennart Poettering, Berlin _______________________________________________ systemd-devel mailing list systemd-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/systemd-devel