Wolfgang Walther:
Peter:
I don't think we explicitly offer LTO builds as part of the make build system, so anyone trying this would do it sort of self-service, by passing additional options to configure or make.  In which case they might as well pass the -export_dynamic option along in the same way?

The challenge is that it defeats the purpose of LTO to pass this along to everything, e.g. via CFLAGS. The Makefiles set this in LDFLAGS_EX_BE only, so it only affects the backend binary. This is not at all obvious and took me quite a while to figure out why LTO silently didn't strip symbols from other binaries. It does work to explicitly set LDFLAGS_EX_BE, though.

Oh, and more importantly: LDFLAGS_EX_BE is not available on all back branches. It was only introduced in v16 in preparation for meson. So up to v15, I would have to patch src/makesfiles/Makefile.darwin to set export_dynamic.

So back-patching a change like this would certainly help to get LTO across versions seamlessly - which is what I am trying to achieve while packaging all versions in nixpkgs / NixOS.

Best,

Wolfgang


Reply via email to