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

50 lines
1.5 KiB
PHP

# 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-libaio = ""
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 = ""
LTO:pn-perf = ""
# webkit is not linking properly with LTO, disable until next time
LTO:pn-webkitgtk = ""
LTO:pn-xserver-xorg = ""
# Custom LTO flags
# disable partitioning/streaming algorithm since its uses ASM
# constructs not compatible with lto
LTOEXTRA:pn-alsa-lib = "-flto-partition=none"
LTOEXTRA ?= ""
# Override it for additional or different options if needed e.g.
# with clang thin-lto might be better for compile speed
#
# ffat-lto-objects
# object files that contain both the intermediate
# language and the object code. This makes them
# usable for both LTO linking and normal linking
#
# -fuse-linker-plugin
# ensures that libraries participate in LTO by supplying intermediate
# code from .a files to linker
LTO ?= "-flto -ffat-lto-objects -fuse-linker-plugin ${LTOEXTRA}"
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 LTOEXTRA"