[OE-core] [PATCH 8/8] staging.bbclass: extend_recipe_sysroot: fix multilib manifest

Robert Yang liezhi.yang at windriver.com
Tue Mar 13 03:24:50 UTC 2018


Fixed:
MACHINE = "qemux86-64"
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"

$ bitbake <image> -cpopulate_sdk_ext
[snip]
Exception: subprocess.CalledProcessError: Command 'sed -e [snip]'
[snip]

Subprocess output:
[snip]
sed: can't read /path/to/work/qemux86_64-wrs-linux/wrlinux-image-glibc-small/1.0-r1/recipe-sysroot/usr/lib/perl/5.24.1/ExtUtils/Liblist/Kid.pm: No such file or directory
[snip]

It was failed because "/usr/lib" is in qemux86_64-wrsmllib32-linux/, not in
qemux86_64-wrs-linux. The code has considered mutitlib, but seems not
completed, the multilib "variant" was not in fixme, so it wasn't handled
correctly, this patch fixes the problem.

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

diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
index c45ada4..1c2028c 100644
--- a/meta/classes/staging.bbclass
+++ b/meta/classes/staging.bbclass
@@ -492,11 +492,21 @@ python extend_recipe_sysroot() {
         if c.endswith("-native") or "-cross-" in c or "-crosssdk" in c:
             native = True
 
+        multilib = False
+        if setscenedeps[dep][2].startswith("virtual:multilib"):
+            variant = setscenedeps[dep][2].split(":")[2]
+            if variant not in fixme:
+                fixme[variant] = []
+            multilib = True
+
         if manifest:
             newmanifest = collections.OrderedDict()
             if native:
                 fm = fixme['native']
                 targetdir = recipesysrootnative
+            elif multilib:
+                fm = fixme[variant]
+                targetdir = destsysroot
             else:
                 fm = fixme['']
                 targetdir = destsysroot
-- 
2.7.4




More information about the Openembedded-core mailing list