From: mark.yang Date: Thu, 22 Jan 2026 05:51:43 +0000 (+0900) Subject: lto.inc: add clang specific LTO configuration X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=253da2e6fc0aa01cbd1b249cfcca35d9fe7740ba;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git lto.inc: add clang specific LTO configuration This commit adds support for Clang-specific LTO options. 1. -fuse-linker-plugin is not supported by Clang. 2. -ffat-lto-objects is used to ensure that object files (.o) are generated as ELF even when LTO is applied. During the dwarfsrcfiles process, if LTO is used with the Clang toolchain, static library object files are skipped if they are LLVM bitcode instead of ELF. Therefore, it is recommended to add this to LTOEXTRA if necessary. 3. Adding 'thin-lto' to DISTRO_FEATURES enables -flto=thin. Signed-off-by: mark.yang Signed-off-by: Antonin Godard Signed-off-by: Richard Purdie --- diff --git a/meta/conf/distro/include/lto.inc b/meta/conf/distro/include/lto.inc index b8193725a1..227f0c5c2a 100644 --- a/meta/conf/distro/include/lto.inc +++ b/meta/conf/distro/include/lto.inc @@ -45,6 +45,8 @@ LTOEXTRA ?= "" # code from .a files to linker LTO ?= "-flto -ffat-lto-objects -fuse-linker-plugin ${LTOEXTRA}" +LTO:toolchain-clang = "${@bb.utils.contains('DISTRO_FEATURES', 'thin-lto', '-flto=thin ${LTOEXTRA}', '-flto ${LTOEXTRA}', d)}" + SELECTED_OPTIMIZATION:append = "${@bb.utils.contains('DISTRO_FEATURES', 'lto', ' ${LTO}', '', d)}" TARGET_LDFLAGS:append:class-target = "${@bb.utils.contains('DISTRO_FEATURES', 'lto', ' ${LTO}', '', d)}"