rjw | 1f88458 | 2022-01-06 17:20:42 +0800 | [diff] [blame] | 1 | # Add the necessary override |
| 2 | CC_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" |
| 3 | CXX_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" |
| 4 | CPP_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} -E" |
| 5 | CCLD_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" |
| 6 | CLANG_TIDY_EXE_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang-tidy ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" |
| 7 | RANLIB_toolchain-clang = "${HOST_PREFIX}llvm-ranlib" |
| 8 | AR_toolchain-clang = "${HOST_PREFIX}llvm-ar" |
| 9 | NM_toolchain-clang = "${HOST_PREFIX}llvm-nm" |
| 10 | |
| 11 | COMPILER_RT ??= "--rtlib=compiler-rt" |
| 12 | LIBCPLUSPLUS ??= "--stdlib=libc++" |
| 13 | |
| 14 | COMPILER_RT_toolchain-gcc = "" |
| 15 | LIBCPLUSPLUS_toolchain-gcc = "" |
| 16 | |
| 17 | TARGET_CXXFLAGS_append_toolchain-clang = " ${LIBCPLUSPLUS}" |
| 18 | TUNE_CCARGS_append_toolchain-clang = " ${COMPILER_RT} ${LIBCPLUSPLUS}" |
| 19 | |
| 20 | THUMB_TUNE_CCARGS_remove_toolchain-clang = "-mthumb-interwork" |
| 21 | TUNE_CCARGS_remove_toolchain-clang = "-meb" |
| 22 | TUNE_CCARGS_remove_toolchain-clang = "-mel" |
| 23 | TUNE_CCARGS_append_toolchain-clang = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", " -mbig-endian", " -mlittle-endian", d)}" |
| 24 | |
| 25 | TUNE_CCARGS_remove_toolchain-clang_powerpc = "-mhard-float" |
| 26 | TUNE_CCARGS_remove_toolchain-clang_powerpc = "-mno-spe" |
| 27 | |
| 28 | TUNE_CCARGS_append_toolchain-clang = " -Wno-error=unused-command-line-argument -Qunused-arguments" |
| 29 | |
| 30 | LDFLAGS_append_toolchain-clang_class-nativesdk_x86-64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-x86-64.so.2" |
| 31 | LDFLAGS_append_toolchain-clang_class-nativesdk_x86 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux.so.2" |
| 32 | LDFLAGS_append_toolchain-clang_class-nativesdk_aarch64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-aarch64.so.1" |
| 33 | |
| 34 | LDFLAGS_toolchain-clang_class-nativesdk = "${BUILDSDK_LDFLAGS} \ |
| 35 | -Wl,-rpath-link,${STAGING_LIBDIR}/.. \ |
| 36 | -Wl,-rpath,${libdir}/.. " |
| 37 | |
| 38 | # Enable lld globally" |
| 39 | LDFLAGS_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 |
| 42 | TOOLCHAIN ??= "gcc" |
| 43 | |
| 44 | TOOLCHAIN_class-native = "gcc" |
| 45 | TOOLCHAIN_class-nativesdk = "gcc" |
| 46 | TOOLCHAIN_class-cross-canadian = "gcc" |
| 47 | TOOLCHAIN_class-crosssdk = "gcc" |
| 48 | TOOLCHAIN_class-cross = "gcc" |
| 49 | |
| 50 | OVERRIDES =. "${@['', 'toolchain-${TOOLCHAIN}:']['${TOOLCHAIN}' != '']}" |
| 51 | OVERRIDES[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 | |
| 56 | def 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 | |
| 62 | BASEDEPENDS_remove_toolchain-clang_class-target = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}compilerlibs" |
| 63 | BASEDEPENDS_append_toolchain-clang_class-target = "${@clang_dep_prepend(d)}" |
| 64 | |
| 65 | PREFERRED_PROVIDER_libunwind = "libunwind" |
| 66 | PREFERRED_PROVIDER_libunwind_mipsarch = "libunwind" |