| Summary: | QEMU doesnot support e6500 emulation for gobject-introspection | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Otavio Salvador <otavio> |
| Component: | core | Assignee: | Otavio Salvador <otavio> |
| Status: | RESOLVED WONTFIX | QA Contact: | |
| Severity: | major | ||
| Priority: | Medium | CC: | akuster808, meta.mr.watcher, meta.watcher, otavio, raj.khem, randy.macleod, richard.purdie, zhenhua.luo |
| Version: | 2.2 | ||
| Target Milestone: | Future | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |
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... |
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