When building gobject-introspection QEMU aborts with invalid instruction. qemu: uncaught target signal 4 (Illegal instruction) - core dumped Illegal instruction (core dumped) If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the recipe should help. (typically like this: GIR_EXTRA_LIBS_PATH="${B}/something/.libs" ) Command '['/home/otavio/src/yocto/build/tmp/work/ppce6500-oel-linux/gobject-introspection/1.48.0-r0/build/g-ir-scanner-qemuwrapper', '/home/otavio/src/yocto/build/tmp/work/ppce6500-oel-linux/gobject-introspection/1.48.0-r0/build/tmp-introspectrk62h5p1/GLib-2.0', '--introspect-dump=/home/otavio/src/yocto/build/tmp/work/ppce6500-oel-linux/gobject-introspection/1.48.0-r0/build/tmp-introspectrk62h5p1/functions.txt,/home/otavio/src/yocto/build/tmp/work/ppce6500-oel-linux/gobject-introspection/1.48.0-r0/build/tmp-introspectrk62h5p1/dump.xml']' returned non-zero exit status 1 Makefile:3518: recipe for target 'GLib-2.0.gir' failed
My knowledge of PPC is incredibly limited, can you handle this? You probably need to set QEMU_EXTRAOPTIONS, ideally in the BSP. See qemu.bbclass and meta-intel for examples.
Talking with Otavio, this has the e5500 64 bit processor so its probably using the wrong system qemu and the wrong cpu option as far as I can tell.
I played with it a little and got it using the right params however it still fails badly. | /home/otavio/src/yocto/build/tmp/work/ppce6500-oel-linux/gobject-introspection/1.48.0-r0/build/tmp-introspectyx4v7knq/GLib-2.0: Invalid ELF image for this architecture | If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the recipe should help. | (typically like this: GIR_EXTRA_LIBS_PATH="${B}/something/.libs" ) | Command '['/home/otavio/src/yocto/build/tmp/work/ppce6500-oel-linux/gobject-introspection/1.48.0-r0/build/g-ir-scanner-qemuwrapper', '/home/otavio/src/yocto/build/tmp/work/ppce6500-oel-linux/gobject-introspection/1.48.0-r0/build/tmp-introspectyx4v7knq/GLib-2.0', '--introspect-dump=/home/otavio/src/yocto/build/tmp/work/ppce6500-oel-linux/gobject-introspection/1.48.0-r0/build/tmp-introspectyx4v7knq/functions.txt,/home/otavio/src/yocto/build/tmp/work/ppce6500-oel-linux/gobject-introspection/1.48.0-r0/build/tmp-introspectyx4v7knq/dump.xml']' returned non-zero exit status 1 | Makefile:3518: recipe for target 'GLib-2.0.gir' failed | make[2]: *** [GLib-2.0.gir] Error 1
"Invalid ELF image for this architecture" I'm guessing that is from qemu, so can you verify that the binaries are the right type. Maybe there's a bug in qemu's ELF parser?
I found that the e5500 is provided by the QEMU PPC64 emulation and it turns to need to use the 32bit ABI for calling (using the qemu-ppc64abi32). However, even doing so, it fails: | qemu: uncaught target signal 4 (Illegal instruction) - core dumped | Illegal instruction (core dumped) So my guess is that the generated code is indeed invalid.
Is this being seen on current Master (3.2) ?
Won't fix, so long ppc...