[OE-core] [PATCH 10/23] staging.bbclass: extend_recipe_sysroot(): search multilib manifest

Robert Yang liezhi.yang at windriver.com
Fri Nov 10 06:27:10 UTC 2017


Fixed:
MACHINE = "qemux86-64"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "core2-32"

$ bitbake lib32-wrlinux-image-glibc-small
WARNING: lib32-wrlinux-image-glibc-small-1.0-r1 do_rootfs: Manifest for lib32-qemuwrapper-cross not found, searched manifests:
/path/to/tmp/sstate-control/manifest-qemux86_64-lib32-qemuwrapper-cross.populate_sysroot
/path/to/tmp/sstate-control/manifest-core2-64-lib32-qemuwrapper-cross.populate_sysroot
/path/to/tmp/sstate-control/manifest-x86_64-lib32-qemuwrapper-cross.populate_sysroot
/path/to/tmp/sstate-control/manifest-allarch-lib32-qemuwrapper-cross.populate_sysroot

It was because image recipes' multilib PACKAGE_EXTRA_ARCHS are not changed by
mutlilib.bbclass, so extend_recipe_sysroot() didn't know anything about
mutlilib's PACKAGE_EXTRA_ARCHS, now fix it.

Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
---
 meta/classes/staging.bbclass | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
index 75bec84..91ae1e8 100644
--- a/meta/classes/staging.bbclass
+++ b/meta/classes/staging.bbclass
@@ -519,6 +519,15 @@ python extend_recipe_sysroot() {
         else:
             pkgarchs = ['${MACHINE_ARCH}']
             pkgarchs = pkgarchs + list(reversed(d2.getVar("PACKAGE_EXTRA_ARCHS").split()))
+            # Search multilib archs for multilib image recipe like lib32-core-image-minimal
+            mlprefix = d2.getVar('MLPREFIX')
+            if bb.data.inherits_class('image', d2) and mlprefix:
+                ml_variant = mlprefix.rstrip('-')
+                override = ":virtclass-multilib-" + ml_variant
+                localdata = bb.data.createCopy(d2)
+                overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + ml_variant
+                localdata.setVar("OVERRIDES", overrides)
+                pkgarchs = pkgarchs + list(reversed(localdata.getVar("PACKAGE_EXTRA_ARCHS").split()))
             pkgarchs.append('allarch')
             for pkgarch in pkgarchs:
                 manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-%s-%s.populate_sysroot" % (pkgarch, c))
-- 
2.7.4




More information about the Openembedded-core mailing list