@@ -6,6 +6,7 @@
BB_DEFAULT_TASK ?= "build"
CLASSOVERRIDE ?= "class-target"
+TCOVERRIDE ?= "toolchain-gcc"
inherit patch
inherit staging
@@ -15,6 +15,7 @@ EXCLUDE_FROM_WORLD = "1"
NATIVESDKLIBC ?= "libc-glibc"
LIBCOVERRIDE = ":${NATIVESDKLIBC}"
TOOLCHAIN = ""
+TCOVERRIDE = ""
CLASSOVERRIDE = "class-cross-canadian"
STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${SDK_ARCH}${SDK_VENDOR}-${SDK_OS}:${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
@@ -11,6 +11,7 @@ inherit relocatable
EXCLUDE_FROM_WORLD = "1"
TOOLCHAIN = ""
+TCOVERRIDE = ""
CLASSOVERRIDE = "class-cross"
PACKAGES = ""
PACKAGES_DYNAMIC = ""
@@ -7,6 +7,7 @@
inherit cross
CLASSOVERRIDE = "class-crosssdk"
+TCOVERRIDE = ""
TOOLCHAIN = ""
NATIVESDKLIBC ?= "libc-glibc"
LIBCOVERRIDE = ":${NATIVESDKLIBC}"
@@ -108,6 +108,7 @@ PKG_CONFIG_SYSTEM_INCLUDE_PATH[unexport] = "1"
# we dont want libc-*libc to kick in for native recipes
LIBCOVERRIDE = ""
+TCOVERRIDE = ""
TOOLCHAIN = ""
CLASSOVERRIDE = "class-native"
MACHINEOVERRIDES = ""
@@ -13,6 +13,7 @@ STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${SDK_ARCH}${S
# libc for the SDK can be different to that of the target
NATIVESDKLIBC ?= "libc-glibc"
LIBCOVERRIDE = ":${NATIVESDKLIBC}"
+TCOVERRIDE = ""
TOOLCHAIN = ""
CLASSOVERRIDE = "class-nativesdk"
MACHINEOVERRIDES = ""
@@ -30,3 +30,5 @@ TUNE_CCARGS += "${@bb.utils.contains("DISTRO_FEATURES", "usrmerge", " --dyld-pre
LDFLAGS:append:class-nativesdk:x86-64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-x86-64.so.2"
LDFLAGS:append:class-nativesdk:aarch64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-aarch64.so.1"
+
+TCOVERRIDE = "toolchain-clang"
@@ -23,3 +23,5 @@ PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = "gcc-crosssdk-${SDK_SYS}"
PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "gcc-crosssdk-${SDK_SYS}"
PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "gcc-crosssdk-${SDK_SYS}"
PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime"
+
+TCOVERRIDE = "toolchain-gcc"
@@ -803,7 +803,7 @@ DISTRO_NAME ??= "OpenEmbedded"
# And finally '<foo>:forcevariable' overrides any standard variable, with the highest priority.
# This works for functions as well, they are really just variables.
#
-OVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:pn-${PN}:layer-${FILE_LAYERNAME}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}${LIBCOVERRIDE}:forcevariable"
+OVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:pn-${PN}:layer-${FILE_LAYERNAME}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}:${TCOVERRIDE}${LIBCOVERRIDE}:forcevariable"
FILE_LAYERNAME ??= "config"
LIBCOVERRIDE ?= ""
CLASSOVERRIDE ?= "class-target"
TCOVERRIDE is defined to toolchain-<TOOLCHAIN> and its added to OVERRIDES that a recipe can see and it can use "toolchain-gcc" or "toolchain-clang" to set specific metadata based upon global distro toolchain policy. Signed-off-by: Khem Raj <raj.khem@gmail.com> --- meta/classes-global/base.bbclass | 1 + meta/classes-recipe/cross-canadian.bbclass | 1 + meta/classes-recipe/cross.bbclass | 1 + meta/classes-recipe/crosssdk.bbclass | 1 + meta/classes-recipe/native.bbclass | 1 + meta/classes-recipe/nativesdk.bbclass | 1 + meta/classes/toolchain/clang.bbclass | 2 ++ meta/classes/toolchain/gcc.bbclass | 2 ++ meta/conf/bitbake.conf | 2 +- 9 files changed, 11 insertions(+), 1 deletion(-)