From: Srinuvasan A <
srinuv...@siemens.com>
In the present implementation we are not able to override the SDK
toolchain from downstream layer, this is due to the SDK toolchain
selection part in anonymous python function.
Anonymous python functions always run at the end of parsing, regardless of where they are defined
even when we do override in our recipe, always wins the Anonymous Python
functions variable settings, hence we are not able to override our
downstream toolchain.
Move the SDK toolchian selection from python block, now we can able to
override from downstream layer.
meta/classes/crossvars.bbclass | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/meta/classes/crossvars.bbclass b/meta/classes/crossvars.bbclass
index 201d460..120e6d1 100644
--- a/meta/classes/crossvars.bbclass
+++ b/meta/classes/crossvars.bbclass
@@ -5,6 +5,10 @@ ISAR_CROSS_COMPILE ??= "0"
inherit compat
+SDK_TOOLCHAIN = "${@'build-essential' if d.getVar('ISAR_CROSS_COMPILE') == '0' or d.getVar('HOST_ARCH') == d.getVar('DISTRO_ARCH') or d.getVar('DISTRO_ARCH') == None else 'crossbuild-essential-${DISTRO_ARCH}'}"
+
+SDK_TOOLCHAIN:append = "${@' crossbuild-essential-${COMPAT_DISTRO_ARCH}' if isar_can_build_compat(d) else ''}"
+
python __anonymous() {
import pwd
d.setVar('SCHROOT_USER', pwd.getpwuid(os.geteuid()).pw_name)
@@ -17,19 +21,14 @@ python __anonymous() {
sbuild_dep = "sbuild-chroot-target:do_build"
buildchroot_dir = d.getVar('BUILDCHROOT_TARGET_DIR', False)
buildchroot_dep = "buildchroot-target:do_build"
- sdk_toolchain = "build-essential"
else:
d.setVar('BUILD_HOST_ARCH', d.getVar('HOST_ARCH'))
schroot_dir = d.getVar('SCHROOT_HOST_DIR', False)
sbuild_dep = "sbuild-chroot-host:do_build"
buildchroot_dir = d.getVar('BUILDCHROOT_HOST_DIR', False)
buildchroot_dep = "buildchroot-host:do_build"
- sdk_toolchain = "crossbuild-essential-" + distro_arch
d.setVar('SCHROOT_DIR', schroot_dir)
d.setVar('SCHROOT_DEP', sbuild_dep)
d.setVar('BUILDCHROOT_DIR', buildchroot_dir)
d.setVar('BUILDCHROOT_DEP', buildchroot_dep)
- if isar_can_build_compat(d):
- sdk_toolchain += " crossbuild-essential-" + d.getVar('COMPAT_DISTRO_ARCH')
- d.setVar('SDK_TOOLCHAIN', sdk_toolchain)
}
--
2.34.1