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>
This commit is contained in:
Khem Raj
2020-11-08 16:02:07 -08:00
committed by Richard Purdie
parent f075071761
commit 9df7ab8089

View File

@@ -0,0 +1,28 @@
# To enable LTO, add following in local.conf
# require conf/distro/include/lto.inc
# DISTRO_FEATURES_append = " lto"
#
# Disable LTO for following packages
LTO_pn-glibc = ""
LTO_pn-gcc-runtime = ""
LTO_pn-libgcc-initial = ""
LTO_pn-libgcc = ""
LTO_pn-libpam = ""
LTO_pn-elfutils = ""
LTO_pn-perl = ""
LTO_pn-busybox = ""
LTO_pn-libxcrypt = ""
LTO_pn-curl = ""
LTO_pn-libcap = ""
LTO_pn-libproxy = ""
LTO_pn-libbsd = ""
# Override it for additional or different options if needed e.g.
# with clang thin-lto might be better for compile speed
LTO ?= "-flto"
SELECTED_OPTIMIZATION_append = "${@bb.utils.contains('DISTRO_FEATURES', 'lto', ' ${LTO}', '', d)}"
TARGET_LDFLAGS_append_class-target = "${@bb.utils.contains('DISTRO_FEATURES', 'lto', ' ${LTO}', '', d)}"
SELECTED_OPTIMIZATION[vardeps] += "LTO"