summary refs log tree commit diff stats
path: root/results/classifier/118/graphic/1416988
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/118/graphic/1416988')
-rw-r--r--results/classifier/118/graphic/141698865
1 files changed, 65 insertions, 0 deletions
diff --git a/results/classifier/118/graphic/1416988 b/results/classifier/118/graphic/1416988
new file mode 100644
index 00000000..dbc202c0
--- /dev/null
+++ b/results/classifier/118/graphic/1416988
@@ -0,0 +1,65 @@
+graphic: 0.895
+performance: 0.839
+architecture: 0.823
+kernel: 0.790
+semantic: 0.752
+device: 0.724
+ppc: 0.723
+debug: 0.626
+files: 0.597
+TCG: 0.596
+PID: 0.587
+network: 0.564
+vnc: 0.555
+register: 0.553
+socket: 0.542
+mistranslation: 0.505
+risc-v: 0.484
+arm: 0.463
+peripherals: 0.415
+permissions: 0.403
+VMM: 0.358
+user-level: 0.340
+assembly: 0.334
+hypervisor: 0.319
+boot: 0.298
+x86: 0.288
+i386: 0.234
+virtual: 0.189
+KVM: 0.188
+
+Wrong signal handling in qemu-aarch64.
+
+Running GCC 5.0 testsuite under qemu-aarch64, I noticed that tests connected with stack unwinding fail with:
+
+qemu: uncaught target signal 11 (Segmentation fault) - core dumped
+
+or run into infinite loop.
+
+Here is one example:
+
+$ /home/max/build/gcc-aarch64/gcc/xgcc -B/home/max/build/gcc-aarch64/gcc/ /home/max/src/toolchain/gcc/gcc/testsuite/gcc.dg/cleanup-11.c -fexceptions -fnon-call-exceptions -O2 -lm -o ./cleanup-11.exe
+
+$ qemu-aarch64 -L /home/max/install/aarch64/aarch64-linux/sys-root/ -R 0 -/cleanup-11.exe
+qemu: uncaught target signal 11 (Segmentation fault) - core dumped.
+
+Actually, this caused by ABI incompatibility between Linux Kernel (trunk) and qemu-aarch64. In fact, size of siginfo structure in Linux and target_siginfo structure in qemu-aarch64 differ:
+
+sizeof (struct target_siginfo) = 136  // QEMU
+sizeof (struct siginfo) = 128               // Linux Kernel
+
+
+This caused by wrong TARGET_SI_PAD_SIZE defined in  linux-user/syscall_defs.h:
+
+#define TARGET_SI_PAD_SIZE	((TARGET_SI_MAX_SIZE/sizeof(int)) - 3)
+
+In Kernel respective value is:
+
+#define SI_PAD_SIZE     ((SI_MAX_SIZE - __ARCH_SI_PREAMBLE_SIZE) / sizeof(int))
+.............................................
+#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))  // for Aarch64
+
+Trivial fix, changing TARGET_SI_PAD_SIZE to right value, is attached.
+
+
+