I don't know how odd we are, but for me there's good reason not to default to LTO for release builds:
- I started seeing LTO in a slightly different light when I built python on our ARMv7 platform. With LTO the build time is 2+ hours, without LTO it's roughly 15 minutes. (These differences are on the scale "I'll just go ahead and do it" vs "I need to reschedule my day").
- While the majority of builds are debug builds, we do plenty of release builds that are fed into our test environment. Only if no problems are found do we actually release the code.
I guess we should probably start making a distinction between
release builds, where
prodtest is for "production test environment", and release could be using LTO.
I think Alice is right -- but perhaps it's not clear why that is a good reason without knowing how much slower build times gets as the scale of the project grows. It scales really badly (.. for good reasons..).
With that said: If you want all your release builds to run LTO by default can't you configure that in
$HOME/.cargo/config? Something like:
lto = on
(Unsure if that's the section/option name).