summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2025-06-09 21:26:00 -0700
committerKhem Raj <raj.khem@gmail.com>2025-07-06 22:08:11 -0700
commite90aaa3dae2a180897fe175ef14c8cf734b2a365 (patch)
tree7fea633ab04356f6150c30006ce53e1749e0aeeb
parent521fcaf2c3fdeddb2ef76837cae5da926068864a (diff)
downloadmeta-clang-e90aaa3dae2a180897fe175ef14c8cf734b2a365.tar.gz
clang-legacy: Adjust for oe-core changes
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--classes/clang-legacy.bbclass41
1 files changed, 14 insertions, 27 deletions
diff --git a/classes/clang-legacy.bbclass b/classes/clang-legacy.bbclass
index 3c4baf2..5f9d211 100644
--- a/classes/clang-legacy.bbclass
+++ b/classes/clang-legacy.bbclass
@@ -2,21 +2,11 @@
2CCACHE_COMPILERCHECK:toolchain-clang ?= "%compiler% -v" 2CCACHE_COMPILERCHECK:toolchain-clang ?= "%compiler% -v"
3HOST_CC_ARCH:prepend:toolchain-clang:class-target = "-target ${HOST_SYS} " 3HOST_CC_ARCH:prepend:toolchain-clang:class-target = "-target ${HOST_SYS} "
4HOST_CC_ARCH:prepend:toolchain-clang:class-nativesdk = "-target ${HOST_SYS} " 4HOST_CC_ARCH:prepend:toolchain-clang:class-nativesdk = "-target ${HOST_SYS} "
5CC:toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" 5LD:toolchain-clang:class-target = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', '${HOST_PREFIX}ld.lld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', '${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', d)}"
6CXX:toolchain-clang = "${CCACHE}${HOST_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" 6LD:toolchain-clang:class-nativesdk = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', '${HOST_PREFIX}ld.lld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', '${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', d)}"
7CPP:toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} -E" 7
8CCLD:toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" 8LTO:toolchain-clang:class-target = "${@bb.utils.contains('DISTRO_FEATURES', 'thin-lto', '-flto=thin', '-flto -fuse-ld=lld', d)}"
9RANLIB:toolchain-clang = "${HOST_PREFIX}llvm-ranlib" 9LTO:toolchain-clang:class-nativesdk = "${@bb.utils.contains('DISTRO_FEATURES', 'thin-lto', '-flto=thin', '-flto -fuse-ld=lld', d)}"
10AR:toolchain-clang = "${HOST_PREFIX}llvm-ar"
11NM:toolchain-clang = "${HOST_PREFIX}llvm-nm"
12OBJDUMP:toolchain-clang = "${HOST_PREFIX}llvm-objdump"
13OBJCOPY:toolchain-clang = "${HOST_PREFIX}llvm-objcopy"
14STRIP:toolchain-clang = "${HOST_PREFIX}llvm-strip"
15STRINGS:toolchain-clang = "${HOST_PREFIX}llvm-strings"
16READELF:toolchain-clang = "${HOST_PREFIX}llvm-readelf"
17LD:toolchain-clang = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', '${HOST_PREFIX}ld.lld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', '${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', d)}"
18
19LTO:toolchain-clang = "${@bb.utils.contains('DISTRO_FEATURES', 'thin-lto', '-flto=thin', '-flto -fuse-ld=lld', d)}"
20 10
21COMPILER_RT ??= "" 11COMPILER_RT ??= ""
22COMPILER_RT:class-native = "-rtlib=libgcc ${UNWINDLIB}" 12COMPILER_RT:class-native = "-rtlib=libgcc ${UNWINDLIB}"
@@ -34,10 +24,6 @@ LIBCPLUSPLUS:armv5 = "-stdlib=libstdc++"
34CXXFLAGS:append:toolchain-clang = " ${LIBCPLUSPLUS}" 24CXXFLAGS:append:toolchain-clang = " ${LIBCPLUSPLUS}"
35LDFLAGS:append:toolchain-clang = " ${COMPILER_RT} ${LIBCPLUSPLUS}" 25LDFLAGS:append:toolchain-clang = " ${COMPILER_RT} ${LIBCPLUSPLUS}"
36 26
37TUNE_CCARGS:remove:toolchain-clang = "-meb"
38TUNE_CCARGS:remove:toolchain-clang = "-mel"
39TUNE_CCARGS:append:toolchain-clang = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", " -mbig-endian", " -mlittle-endian", d)}"
40
41# Clang does not yet support big.LITTLE performance tunes, so use the LITTLE for tunes 27# Clang does not yet support big.LITTLE performance tunes, so use the LITTLE for tunes
42TUNE_CCARGS:remove:toolchain-clang = "\ 28TUNE_CCARGS:remove:toolchain-clang = "\
43 -mcpu=cortex-a57.cortex-a53${TUNE_CCARGS_MARCH_OPTS} \ 29 -mcpu=cortex-a57.cortex-a53${TUNE_CCARGS_MARCH_OPTS} \
@@ -79,7 +65,8 @@ LDFLAGS:toolchain-clang:class-nativesdk = "${BUILDSDK_LDFLAGS} \
79 -Wl,-rpath,${libdir}/.. " 65 -Wl,-rpath,${libdir}/.. "
80 66
81# Enable lld globally except for ppc32 where it causes random segfaults in Qemu usermode 67# Enable lld globally except for ppc32 where it causes random segfaults in Qemu usermode
82LDFLAGS:append:toolchain-clang = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -fuse-ld=lld', '', d)}" 68LDFLAGS:append:toolchain-clang:class-target = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -fuse-ld=lld', '', d)}"
69LDFLAGS:append:toolchain-clang:class-nativesdk = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -fuse-ld=lld', '', d)}"
83LDFLAGS:remove:toolchain-clang:powerpc = "-fuse-ld=lld" 70LDFLAGS:remove:toolchain-clang:powerpc = "-fuse-ld=lld"
84 71
85# Remove gcc specific -fcanon-prefix-map option, added in gcc-13+ 72# Remove gcc specific -fcanon-prefix-map option, added in gcc-13+
@@ -95,15 +82,15 @@ TC_CXX_RUNTIME ??= "gnu"
95TC_CXX_RUNTIME:armeb = "gnu" 82TC_CXX_RUNTIME:armeb = "gnu"
96TC_CXX_RUNTIME:armv5 = "gnu" 83TC_CXX_RUNTIME:armv5 = "gnu"
97 84
98TOOLCHAIN:class-native = "gcc" 85#TOOLCHAIN:class-native = "gcc"
99TOOLCHAIN:class-nativesdk = "gcc" 86#TOOLCHAIN:class-nativesdk = "gcc"
100TOOLCHAIN:class-cross-canadian = "gcc" 87#TOOLCHAIN:class-cross-canadian = "gcc"
101TOOLCHAIN:class-crosssdk = "gcc" 88#TOOLCHAIN:class-crosssdk = "gcc"
102TOOLCHAIN:class-cross = "gcc" 89#TOOLCHAIN:class-cross = "gcc"
103 90
104OVERRIDES =. "${@['', 'toolchain-${TOOLCHAIN}:']['${TOOLCHAIN}' != '']}" 91#OVERRIDES =. "${@['', 'toolchain-${TOOLCHAIN}:']['${TOOLCHAIN}' != '']}"
105OVERRIDES =. "${@['', 'runtime-${TC_CXX_RUNTIME}:']['${TC_CXX_RUNTIME}' != '']}" 92OVERRIDES =. "${@['', 'runtime-${TC_CXX_RUNTIME}:']['${TC_CXX_RUNTIME}' != '']}"
106OVERRIDES[vardepsexclude] += "TOOLCHAIN TC_CXX_RUNTIME" 93OVERRIDES[vardepsexclude] += "TC_CXX_RUNTIME"
107 94
108YOCTO_ALTERNATE_EXE_PATH:toolchain-clang:class-target = "${STAGING_BINDIR}/llvm-config" 95YOCTO_ALTERNATE_EXE_PATH:toolchain-clang:class-target = "${STAGING_BINDIR}/llvm-config"
109YOCTO_ALTERNATE_LIBDIR:toolchain-clang:class-target = "/${BASELIB}" 96YOCTO_ALTERNATE_LIBDIR:toolchain-clang:class-target = "/${BASELIB}"