qemu 4.2.0 arm segmentation fault with gcc 9.2
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Expired
|
Undecided
|
Unassigned |
Bug Description
As discussed with f4bug yesterday on IRC here comes the bug description.
I'm building/configured qemu-4.2.0 on an x86_64 (gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516) with target-list "arm-softmmu,
Then i'm trying to cross-compile (arm gcc) an old version of googles v8 (as i need this version of the lib for binary compatibility) which uses qemu during build.
It worked with gcc 5.4.0 but not with 9.2.0. I also tried with 6.5.0, 7.4.0 and 8.3.0 but those are also causing the same segmentation fault.
The executed command wich breaks qemu is:
qemu-arm /tmp/build/
The printed error message is:
ARMv7=1 VFP3=1 VFP32DREGS=1 NEON=0 SUDIV=0 UNALIGNED_
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Calling qemu with gdb gives the following information:
Thread 1 "qemu-arm" received signal SIGSEGV, Segmentation fault.
0x0000555555d63d11 in static_
and
(gdb) bt
#0 0x0000555555d63d11 in static_
#1 0x0000555555628d58 in cpu_tb_exec (itb=<optimized out>, cpu=0x555557c33930) at
/tmp/build/
#2 cpu_loop_exec_tb (tb_exit=<synthetic pointer>, last_tb=<synthetic pointer>, tb=<optimized out>,
cpu=0x555557c3
#3 cpu_exec (cpu=cpu@
#4 0x0000555555661578 in cpu_loop (env=0x555557c3
#5 0x00005555555d6d76 in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at /tmp/build/
Calling qemu-arm with debug switch "-d in_asm,int,op_opt" shows the log in the attached file.
Thanks for any hints!
Fabian
Can you provide a repro case (attach binary/etc to the bug) so we can investigate?
Note that QEMU will produce that segfault message both for bugs in QEMU (where it unexpectedly segfaults) but also for bugs in the guest binary itself where we're correctly emulating "guest did something causing a segfault".