On 12/30/20 3:48 PM, Ian McInerney wrote:
On Wed, Dec 30, 2020 at 7:54 PM Ben Cotton <bcotton(a)redhat.com
<mailto:bcotton@redhat.com>> wrote:
https://fedoraproject.org/wiki/Changes/LTOBuildImprovements
<
https://fedoraproject.org/wiki/Changes/LTOBuildImprovements>
== Summary ==
Currently all packages that are not opted out of LTO include
-ffat-lto-objects in their build flags. This proposal would remove
-ffat-lto-objects from the default LTO flags and only use it for
packages that actually need it.
== Owner ==
* Name: [[User:law | Jeff Law]]
* Email: law(a)redhat.com <mailto:law@redhat.com>
== Detailed Description ==
-ffat-lto-objects was added to the default LTO flags to ensure that
any installed .o/.a files included actual compiled code rather than
just LTO bytecodes (which are stripped after the install phase).
However, that is wasteful from a compile-time standpoint as few
packages actually install any .o/.a files.
This proposal would remove -ffat-lto-objects from the default LTO
flags and packages that actually need the option would have to opt-in
via an RPM macro in their .spec file. This should significantly
improve build times for most packages in Fedora.
Does this mean that packages that are explicitly shipping a static
library to the end user need to enable this macro to allow the
installed static library to be usable by an end-user's compiler? If
this is the case, then the packaging guidelines should be updated to
reflect this.
Yes and the change request reflects that an update to the packaging
guidelines is necessary.
Jeff