Hi folks,

I tried to build an image with nxp4xxx (DEFAULTTUNE="ppc64e6500"), when do_rootfs tried to run intercept scripts, I got an invalid instruction error:

NOTE: Running intercept scripts:
NOTE: > Executing update_gio_module_cache intercept ...
Invalid instruction
NIP 00000000008046ac LR 0000000000000000 CTR 0000000000000000 XER 0000000000000000 CPU#0
MSR 8000000000006000 HID0 0000000000000000 HF 0000000000006000 iidx 0 didx 0
TB 00510390 2192111342502858
[snip]
qemu: uncaught target signal 4 (Illegal instruction) - core dumped
/buildarea/build-nxp/tmp/sysroots/nxp-t4xxx/usr/bin/crossscripts/qemuwrapper: line 2: 25969 Illegal instruction (core dumped) qemu-ppc64 -r 3.2.0 -cpu e500mc "$@" WARNING: The postinstall intercept hook 'update_gio_module_cache' failed (exit code: 132)! See log for details! WARNING: The postinstalls for the following packages will be postponed for first boot: libglib-2.0-0

The issue is most likely introduced by the commit:

commit 27e202f2d9114a64b67c83eb7eafeb12de5ceea7
Author: Zhenhua Luo <zhenhua....@nxp.com>
Date:   Thu Apr 14 17:26:44 2016 +0800

    meta/classes/qemu.bbclass: set -cpu of ppce5500/ppce6500 to e500mc

The e5500 and e6500 cpu types are not supported by native qemu, set the value of -cpu to e500mc. Without this change, build will fail for packages which use
    qemuwrapper in compile phase due to the following error.
    | Unable to find CPU definition

    e.g. gobject-introspection

    (From OE-Core rev: e06c5c5447350049ebd1a6245fc2dd2608b265e5)

    Signed-off-by: Zhenhua Luo <zhenhua....@nxp.com>
    Signed-off-by: Richard Purdie <richard.pur...@linuxfoundation.org>

diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
index f3d3be8..75739db 100644
--- a/meta/classes/qemu.bbclass
+++ b/meta/classes/qemu.bbclass
@@ -52,8 +52,8 @@ QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"

 QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
 QEMU_EXTRAOPTIONS_ppce500mc = " -cpu e500mc"
-QEMU_EXTRAOPTIONS_ppce5500 = " -cpu e5500"
-QEMU_EXTRAOPTIONS_ppc64e5500 = " -cpu e5500"
-QEMU_EXTRAOPTIONS_ppce6500 = " -cpu e6500"
-QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e6500"
+QEMU_EXTRAOPTIONS_ppce5500 = " -cpu e500mc"
+QEMU_EXTRAOPTIONS_ppc64e5500 = " -cpu e500mc"
+QEMU_EXTRAOPTIONS_ppce6500 = " -cpu e500mc"
+QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e500mc"
 QEMU_EXTRAOPTIONS_ppc7400 = " -cpu 7400"


For my limited knowledge, the ppc64e6500 is a 64bit cpu but e500mc is 32bit, so when qemuwrapper running command qemu-ppc64 -r 3.2.0 -cpu e500mc "$@" would cause this failure. Since the qemu native still doesn't support e6500 cpu, I just remove the line: QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e500mc", and the qemuwrapper could work.

Is it a appropriate method to solve this issue ? I'm not familiar with ppc, so don't know if this change could break something else?

Thanks,
Yi


--
_______________________________________________
meta-freescale mailing list
meta-freescale@yoctoproject.org
https://lists.yoctoproject.org/listinfo/meta-freescale

Reply via email to