summary refs log tree commit diff stats
path: root/results/scraper/launchpad-without-comments/1416988
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-06-30 12:24:58 +0000
committerChristian Krinitsin <mail@krinitsin.com>2025-06-30 12:27:06 +0000
commit33606b41d35115f887ea688b1a16f2ff85bf2fe4 (patch)
tree406b2c7b19a087ba437c68f3dbf0b589fa1d6150 /results/scraper/launchpad-without-comments/1416988
parentadedf8771bc4de3113041ca21bd4d0d1c0014b6a (diff)
downloademulator-bug-study-33606b41d35115f887ea688b1a16f2ff85bf2fe4.tar.gz
emulator-bug-study-33606b41d35115f887ea688b1a16f2ff85bf2fe4.zip
add launchpad bug reports without comments
Diffstat (limited to 'results/scraper/launchpad-without-comments/1416988')
-rw-r--r--results/scraper/launchpad-without-comments/141698832
1 files changed, 32 insertions, 0 deletions
diff --git a/results/scraper/launchpad-without-comments/1416988 b/results/scraper/launchpad-without-comments/1416988
new file mode 100644
index 00000000..593a449a
--- /dev/null
+++ b/results/scraper/launchpad-without-comments/1416988
@@ -0,0 +1,32 @@
+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.
\ No newline at end of file