[OE-core] [PATCH 5/6] populate_sdk_base.bbclass: fix SDKTARGETSYSROOT when populate mlprefix SDK

Robert Yang liezhi.yang at windriver.com
Wed Sep 16 02:04:13 UTC 2015


Fixed when populate multlib sdk:
$ bitbake lib32-core-image-minimal -cpopulate_sdk

When extract sdk, there was a sysroots/core2-64-pokymllib32-linux, but the
SDKTARGETSYSROOT path in environment-setup-x86-pokymllib32-linux was
sysroots/core2-64-poky-linux, so it was incorrect, install sysroot to
sysroots/core2-64-poky-linux would fix the problem since:
1) We install both 32 and 64 bit toolchains
2) The meta-environment is a nativesdk recipe which doesn't have
   multilib extend, so we can't or hard to fix from meta-environment.

[YOCTO #8089]

Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
---
 meta/classes/multilib.bbclass          |    1 +
 meta/classes/populate_sdk_base.bbclass |    6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass
index 465e208..fd54b69 100644
--- a/meta/classes/multilib.bbclass
+++ b/meta/classes/multilib.bbclass
@@ -28,6 +28,7 @@ python multilib_virtclass_handler () {
         e.data.setVar("PN", variant + "-" + e.data.getVar("PN", False))
         target_vendor = e.data.getVar("TARGET_VENDOR_" + "virtclass-multilib-" + variant, False)
         if target_vendor:
+            e.data.setVar("TARGET_VENDOR_MULTILIB_ORIGINAL", e.data.getVar("TARGET_VENDOR", True))
             e.data.setVar("TARGET_VENDOR", target_vendor)
         return
 
diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
index aa7a9a5..9c5a360 100644
--- a/meta/classes/populate_sdk_base.bbclass
+++ b/meta/classes/populate_sdk_base.bbclass
@@ -28,7 +28,11 @@ SDK_DEPLOY = "${DEPLOY_DIR}/sdk"
 
 B_task-populate-sdk = "${SDK_DIR}"
 
-SDKTARGETSYSROOT = "${SDKPATH}/sysroots/${REAL_MULTIMACH_TARGET_SYS}"
+# Install toolchain to the path with TARGET_VENDOR_MULTILIB_ORIGINAL since:
+# 1) Both toolchains (32 and 64 bits) are installed
+# 2) The environment-setup-* doesn't contain mllib
+TARGET_VENDOR_MULTILIB_ORIGINAL ??= "${TARGET_VENDOR}"
+SDKTARGETSYSROOT = "${SDKPATH}/sysroots/${TUNE_PKGARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}"
 
 TOOLCHAIN_HOST_TASK ?= "nativesdk-packagegroup-sdk-host packagegroup-cross-canadian-${MACHINE}"
 TOOLCHAIN_HOST_TASK_ATTEMPTONLY ?= ""
-- 
1.7.9.5




More information about the Openembedded-core mailing list