blob: d6a4e9b017897b43a717d6a6419196c9e72faf89 [file] [log] [blame]
rjw1f884582022-01-06 17:20:42 +08001# Add the necessary override
2CC_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
3CXX_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
4CPP_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} -E"
5CCLD_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
6CLANG_TIDY_EXE_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang-tidy ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
7RANLIB_toolchain-clang = "${HOST_PREFIX}llvm-ranlib"
8AR_toolchain-clang = "${HOST_PREFIX}llvm-ar"
9NM_toolchain-clang = "${HOST_PREFIX}llvm-nm"
10
11COMPILER_RT ??= "--rtlib=compiler-rt"
12LIBCPLUSPLUS ??= "--stdlib=libc++"
13
14COMPILER_RT_toolchain-gcc = ""
15LIBCPLUSPLUS_toolchain-gcc = ""
16
17TARGET_CXXFLAGS_append_toolchain-clang = " ${LIBCPLUSPLUS}"
18TUNE_CCARGS_append_toolchain-clang = " ${COMPILER_RT} ${LIBCPLUSPLUS}"
19
20THUMB_TUNE_CCARGS_remove_toolchain-clang = "-mthumb-interwork"
21TUNE_CCARGS_remove_toolchain-clang = "-meb"
22TUNE_CCARGS_remove_toolchain-clang = "-mel"
23TUNE_CCARGS_append_toolchain-clang = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", " -mbig-endian", " -mlittle-endian", d)}"
24
25TUNE_CCARGS_remove_toolchain-clang_powerpc = "-mhard-float"
26TUNE_CCARGS_remove_toolchain-clang_powerpc = "-mno-spe"
27
28TUNE_CCARGS_append_toolchain-clang = " -Wno-error=unused-command-line-argument -Qunused-arguments"
29
30LDFLAGS_append_toolchain-clang_class-nativesdk_x86-64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-x86-64.so.2"
31LDFLAGS_append_toolchain-clang_class-nativesdk_x86 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux.so.2"
32LDFLAGS_append_toolchain-clang_class-nativesdk_aarch64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-aarch64.so.1"
33
34LDFLAGS_toolchain-clang_class-nativesdk = "${BUILDSDK_LDFLAGS} \
35 -Wl,-rpath-link,${STAGING_LIBDIR}/.. \
36 -Wl,-rpath,${libdir}/.. "
37
38# Enable lld globally"
39LDFLAGS_append_toolchain-clang = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -fuse-ld=lld', '', d)}"
40
41# choose between 'gcc' 'clang' an empty '' can be used as well
42TOOLCHAIN ??= "gcc"
43
44TOOLCHAIN_class-native = "gcc"
45TOOLCHAIN_class-nativesdk = "gcc"
46TOOLCHAIN_class-cross-canadian = "gcc"
47TOOLCHAIN_class-crosssdk = "gcc"
48TOOLCHAIN_class-cross = "gcc"
49
50OVERRIDES =. "${@['', 'toolchain-${TOOLCHAIN}:']['${TOOLCHAIN}' != '']}"
51OVERRIDES[vardepsexclude] += "TOOLCHAIN"
52
53#DEPENDS_append_toolchain-clang_class-target = " clang-cross-${TARGET_ARCH} "
54#DEPENDS_remove_toolchain-clang_allarch = "clang-cross-${TARGET_ARCH}"
55
56def clang_dep_prepend(d):
57 if not d.getVar('INHIBIT_DEFAULT_DEPS', False):
58 if not oe.utils.inherits(d, 'allarch') :
59 return " clang-cross-${TARGET_ARCH} compiler-rt libcxx"
60 return ""
61
62BASEDEPENDS_remove_toolchain-clang_class-target = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}compilerlibs"
63BASEDEPENDS_append_toolchain-clang_class-target = "${@clang_dep_prepend(d)}"
64
65PREFERRED_PROVIDER_libunwind = "libunwind"
66PREFERRED_PROVIDER_libunwind_mipsarch = "libunwind"