From 869df95b61ba44a7ad6bc57da8a31e459eec5059 Mon Sep 17 00:00:00 2001 From: Ming Liu Date: Sat, 13 May 2023 18:16:53 +0200 Subject: clang.bbclass: create lld symbolic link in sysroot when ld-is-lld is set Create a symbolic link lld -> ld in recipe sysroot to choose the default linker lld when ld-is-lld is set in DISTRO_FEATURES. othereise, we can get linking issues when '-fuse-ld=lld' is in LDFLAGS but the actual ld is not lld. Signed-off-by: Ming Liu --- classes/clang.bbclass | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'classes') diff --git a/classes/clang.bbclass b/classes/clang.bbclass index 817face..23f67ce 100644 --- a/classes/clang.bbclass +++ b/classes/clang.bbclass @@ -136,6 +136,16 @@ set( CMAKE_CLANG_TIDY ${HOST_PREFIX}clang-tidy ) EOF sed -i 's/ -mmusl / /g' ${WORKDIR}/toolchain.cmake } + +RECIPESYSROOTFUNCS = "" +RECIPESYSROOTFUNCS:toolchain-clang = "recipe_sysroot_check_ld_is_lld" + +recipe_sysroot_check_ld_is_lld () { + if "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', 'true', 'false', d)}"; then + ln -srf ${RECIPE_SYSROOT_NATIVE}${bindir}/${TARGET_SYS}/${TARGET_PREFIX}ld.lld ${RECIPE_SYSROOT_NATIVE}${bindir}/${TARGET_SYS}/${TARGET_PREFIX}ld + fi +} +do_prepare_recipe_sysroot[postfuncs] += "${RECIPESYSROOTFUNCS}" # # dump recipes which still use gcc #python __anonymous() { -- cgit v1.2.3-54-g00ecf