diff options
Diffstat (limited to 'results/scraper/launchpad-without-comments/1705118')
| -rw-r--r-- | results/scraper/launchpad-without-comments/1705118 | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/results/scraper/launchpad-without-comments/1705118 b/results/scraper/launchpad-without-comments/1705118 new file mode 100644 index 000000000..8fe2c781b --- /dev/null +++ b/results/scraper/launchpad-without-comments/1705118 @@ -0,0 +1,56 @@ +qemu user mode: rt signals not implemented for sparc guests + +The documentation +<https://qemu.weilnetz.de/doc/qemu-doc.html#Features> says that +qemu in user mode supports POSIX signal handling. + +Catching SIGSEGV according to POSIX, however, does not work on + ppc, ppc64, ppc64le, s390x, sparc64. +It does work, however, on + aarch64, alpha, arm, hppa, m68k, mips, mips64, sh4. + +How to reproduce: +The attached program runs fine (exits with code 0) on + - real hardware Linux/PowerPC64 (in 32-bit and 64-bit mode), + - real hardware Linux/PowerPC64LE, + - qemu-system-s390x emulated Linux/s390x, + - real hardware Linux/SPARC64. +$ gcc -O -Wall testsigsegv.c; ./a.out; echo $? +0 + +For ppc: +$ powerpc-linux-gnu-gcc-5 -O -Wall -static testsigsegv.c -o testsigsegv-ppc +$ ~/inst-qemu/2.9.0/bin/qemu-ppc testsigsegv-ppc +$ echo $? +3 + +For ppc64: +$ powerpc64-linux-gnu-gcc-5 -O -Wall -static testsigsegv.c -o testsigsegv-ppc64 +$ ~/inst-qemu/2.9.0/bin/qemu-ppc64 testsigsegv-ppc64 +$ echo $? +3 + +For ppc64le: +$ powerpc64le-linux-gnu-gcc-5 -O -Wall -static testsigsegv.c -o testsigsegv-ppc64le +$ ~/inst-qemu/2.9.0/bin/qemu-ppc64le testsigsegv-ppc64le +$ echo $? +3 + +For s390x: +$ s390x-linux-gnu-gcc-5 -O -Wall -static testsigsegv.c -o testsigsegv-s390x +$ ~/inst-qemu/2.9.0/bin/qemu-s390x testsigsegv-s390x +$ echo $? +3 +$ s390x-linux-gnu-gcc-5 -O -Wall -static testsigsegv.c -DAVOID_LINUX_S390X_COMPAT -o testsigsegv-s390x-a +$ ~/inst-qemu/2.9.0/bin/qemu-s390x testsigsegv-s390x-a +$ echo $? +0 +So, the test fails here because the Linux/s390x kernel omits the least +significant 12 bits of the fault address in the 'si_addr' field. But +qemu-s390x is not compatible with the Linux/s390x behaviour: it puts +the complete fault address in the 'si_addr' field. + +For sparc64: +$ sparc64-linux-gnu-gcc-5 -O -Wall -static testsigsegv.c -o testsigsegv-sparc64 +$ ~/inst-qemu/2.9.0/bin/qemu-sparc64 testsigsegv-sparc64 +Segmentation fault (core dumped) \ No newline at end of file |