| Message ID | 20260324232734.2081279-1-mark.yang@lge.com |
|---|---|
| State | New |
| Headers | show |
| Series | llvm: add binutils-plugin PACKAGECONFIG for LLVMgold.so | expand |
This patch is an update to following patches. https://lists.openembedded.org/g/openembedded-core/topic/117252728 [PATCH] llvm: enable LLVMgold.so build by adding binutils dependency https://lists.openembedded.org/g/openembedded-core/topic/patch_v2_llvm_enable/117274480 [PATCH v2] llvm: enable LLVMgold.so build by adding binutils dependency When build component using clang that utilize lto, and when the LLD linker connot be used (Use bfd), the LLVMgold.so plugin is required in the native sysroot. LLVMgold.so plugin is generated when binutils-plugin is enabled. libLTO.so.21.1 is generated on the target even if it is not enabled. The reason they were bundled in to the same package is to distribute them via the nativesdk package. As Deepesh suggested, I mae it possible to enable this via the binutils-plugin rather than having it always built into LLVM. The name "binutils-plugin" was inspired by gentoo's name convention. https://packages.gentoo.org/useflags/binutils-plugin
diff --git a/meta/recipes-devtools/clang/llvm_git.bb b/meta/recipes-devtools/clang/llvm_git.bb index 96ea383731..e12ac11853 100644 --- a/meta/recipes-devtools/clang/llvm_git.bb +++ b/meta/recipes-devtools/clang/llvm_git.bb @@ -79,6 +79,7 @@ PACKAGECONFIG[opt-viewer] = "-DLLVM_TOOL_OPT_VIEWER_BUILD=ON,-DLLVM_TOOL_OPT_VIE python3-pyyaml python3-pygments," PACKAGECONFIG[lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," PACKAGECONFIG[thin-lto] = "-DLLVM_ENABLE_LTO=Thin -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," +PACKAGECONFIG[binutils-plugin] = "-DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," # LLVM debug symbols are very large (several gigabytes), reduce the debug level # so they're just hundreds of megabytes. @@ -126,6 +127,10 @@ llvm_sysroot_preprocess() { install -m 0755 ${S}/llvm/tools/llvm-config/llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/ } +PACKAGES =+ "llvm-linker-tools" + +FILES:llvm-linker-tools = "${libdir}/LLVMgold* ${libdir}/libLTO.so.*" + FILES:${PN}-dev += "${libdir}/llvm-config" BBCLASSEXTEND = "native nativesdk"