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>
This commit is contained in:
Khem Raj
2020-11-08 16:02:10 -08:00
committed by Richard Purdie
parent d20e270ecc
commit 352446a2ee

View File

@@ -18,6 +18,13 @@ LTO_pn-libcap = ""
LTO_pn-libproxy = ""
LTO_pn-libbsd = ""
# 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
#
@@ -29,9 +36,9 @@ LTO_pn-libbsd = ""
# -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 "
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"
SELECTED_OPTIMIZATION[vardeps] += "LTO LTOEXTRA"