Commit Graph

9 Commits

Author SHA1 Message Date
Tony Battersby
a7762efa03 lto.inc: disable LTO for grub
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>
2021-08-05 17:48:29 +01:00
Richard Purdie
bb6ddc3691 Convert to new override syntax
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>
2021-08-02 15:44:10 +01:00
Khem Raj
f35343550a lto.inc: Disable LTO for webkit
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>
2020-11-13 14:32:00 +00:00
Khem Raj
d3598e429b lto.inc: Disable LTO for perf
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>
2020-11-11 10:08:12 +00:00
Khem Raj
d0b24abaf2 lto.inc: Disable LTO for xserver-xorg
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>
2020-11-11 10:08:11 +00:00
Khem Raj
7eb6bb8490 libaio: Disable LTO
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>
2020-11-11 10:08:11 +00:00
Khem Raj
352446a2ee lto: Introduce LTOEXTRA variable
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>
2020-11-11 10:08:11 +00:00
Khem Raj
d20e270ecc lto.inc: Add -ffat-lto-objects and -fuse-linker-plugin
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>
2020-11-11 10:08:11 +00:00
Khem Raj
9df7ab8089 lto: Add global LTO distro policy file
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>
2020-11-11 10:08:11 +00:00