diff mbox series

lto.inc: add clang specific LTO configuration

Message ID 20260122055143.2530158-1-mark.yang@lge.com
State New
Headers show
Series lto.inc: add clang specific LTO configuration | expand

Commit Message

mark.yang Jan. 22, 2026, 5:51 a.m. UTC
From: "mark.yang" <mark.yang@lge.com>

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 <mark.yang@lge.com>
---
 meta/conf/distro/include/lto.inc | 2 ++
 1 file changed, 2 insertions(+)
diff mbox series

Patch

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)}"