mirror of
https://git.yoctoproject.org/poky
synced 2026-05-09 17:39:31 +00:00
d20e270ecc
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>
38 lines
1.1 KiB
HTML
38 lines
1.1 KiB
HTML
# 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
|
|
#
|
|
# 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 "
|
|
|
|
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"
|