diff options
Diffstat (limited to 'external/meta-clang/classes/clang.bbclass')
-rw-r--r-- | external/meta-clang/classes/clang.bbclass | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/external/meta-clang/classes/clang.bbclass b/external/meta-clang/classes/clang.bbclass new file mode 100644 index 00000000..4d20ff07 --- /dev/null +++ b/external/meta-clang/classes/clang.bbclass @@ -0,0 +1,52 @@ +# Add the necessary override +CC_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +CXX_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +CPP_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} -E" +CCLD_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +RANLIB_toolchain-clang = "${HOST_PREFIX}ranlib" +AR_toolchain-clang = "${HOST_PREFIX}ar" +NM_toolchain-clang = "${HOST_PREFIX}nm" + +THUMB_TUNE_CCARGS_remove_toolchain-clang = "-mthumb-interwork" +TUNE_CCARGS_remove_toolchain-clang = "-meb" +TUNE_CCARGS_remove_toolchain-clang = "-mel" +TUNE_CCARGS_append_toolchain-clang = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", " -mbig-endian", " -mlittle-endian", d)}" + +TUNE_CCARGS_remove_toolchain-clang_powerpc = "-mhard-float" +TUNE_CCARGS_remove_toolchain-clang_powerpc = "-mno-spe" + +TUNE_CCARGS_append_toolchain-clang = " --rtlib=compiler-rt -Wno-error=unused-command-line-argument -Qunused-arguments" + +TOOLCHAIN_OPTIONS_append_toolchain-clang_class-nativesdk_x86-64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-x86-64.so.2" +TOOLCHAIN_OPTIONS_append_toolchain-clang_class-nativesdk_x86 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux.so.2" + +# choose between 'gcc' 'clang' an empty '' can be used as well +TOOLCHAIN ??= "gcc" + +TOOLCHAIN_class-native = "gcc" +TOOLCHAIN_class-nativesdk = "gcc" +TOOLCHAIN_class-cross-canadian = "gcc" +TOOLCHAIN_class-crosssdk = "gcc" +TOOLCHAIN_class-cross = "gcc" + +# -fmacro-prefix-map does not exist in clang 7.x +DEBUG_PREFIX_MAP_toolchain-clang = " " + +OVERRIDES =. "${@['', 'toolchain-${TOOLCHAIN}:']['${TOOLCHAIN}' != '']}" +OVERRIDES[vardepsexclude] += "TOOLCHAIN" + +#DEPENDS_append_toolchain-clang_class-target = " clang-cross-${TARGET_ARCH} " +#DEPENDS_remove_toolchain-clang_allarch = "clang-cross-${TARGET_ARCH}" + +def clang_dep_prepend(d): + if not d.getVar('INHIBIT_DEFAULT_DEPS', False): + if not oe.utils.inherits(d, 'allarch') : + return " clang-cross-${TARGET_ARCH} compiler-rt libcxx" + return "" + +BASEDEPENDS_remove_toolchain-clang_class-target = "virtual/${TARGET_PREFIX}gcc" +BASEDEPENDS_append_toolchain-clang_class-target = "${@clang_dep_prepend(d)}" + +PREFERRED_PROVIDER_libunwind = "libunwind" +PREFERRED_PROVIDER_libunwind_mipsarch = "libunwind" +PREFERRED_PROVIDER_libunwind_toolchain-clang = "libcxx" |