With gcc 11.1, compiling grub with LTO causes an internal compiler error
(ICE), and with gcc 10.2, files under /usr/lib/grub/i386-pc/*.mod are not
binary reproducible.
[YOCTO #14490] (gcc 11.1 ICE)
[YOCTO #14481] (LTO and binary reproducibility)
(From OE-Core rev: d1fd3693411d83214f0f88b2f9d7aef12ecd6e02)
Signed-off-by: Tony Battersby <tonyb@cybernetics.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is the result of automated script conversion:
scripts/contrib/convert-overrides.py <oe-core directory>
converting the metadata to use ":" as the override character instead of "_".
(From OE-Core rev: 42344347be29f0997cc2f7636d9603b1fe1875ae)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
webkit fails to link with LTO on at this point. Some of the issues
are being worked on upstream and disabling LTO should be re-evaluated as
we update this change.
(From OE-Core rev: fb24d6504c30d3302fda42b6e6a918d674323a8f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
perf invokes kernel sources, and currently fails in multiple places for
now therefore disable LTO for perf
(From OE-Core rev: f59a2db89a245d3ef9acd094f2055fb07dd4f42b)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It ends up with undefined symbol when LTO is enabled
Fixes
test/xi2/protocol-xiquerydevice.c:345: undefined reference to `GrabButton'
(From OE-Core rev: 129ec897a25ed9ba2657f0ed44ccaf2f429ce6ac)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Libaio uses ASMs to implement symbol versioning which does not work with LTO
(From OE-Core rev: 2b59fe1076d930a685fa7f443163da70a1d168b3)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Certain packages may need additional flags to enable LTO, therefore
LTOEXTRA can be used to pass those flags
Add -flto-partition=none for alsa-lib
(From OE-Core rev: 0a5778f40f0d1a252f38151a1d4103fa7cbe7796)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This helps to improve LTO and ensure the libs can be linked with non-LTO
objects too
(From OE-Core rev: 770c69c51f87223eee7bd968fd28a5dc15a955d6)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Distros which want to enable LTO can utilize this file, it only covers
packages from OE-Core, other layers should include there own exclusion
list for recipe which dont work with LTO
Document the needed changes in local.conf.extended
(From OE-Core rev: 228b5a91516cdf9d5a1df3c721ba8e5619b188ab)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>