summary refs log tree commit diff stats
path: root/results/classifier/gemma3:27b/syscall/1895305
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/gemma3:27b/syscall/1895305')
-rw-r--r--results/classifier/gemma3:27b/syscall/189530551
1 files changed, 51 insertions, 0 deletions
diff --git a/results/classifier/gemma3:27b/syscall/1895305 b/results/classifier/gemma3:27b/syscall/1895305
new file mode 100644
index 000000000..7776d39c2
--- /dev/null
+++ b/results/classifier/gemma3:27b/syscall/1895305
@@ -0,0 +1,51 @@
+
+
+
+pthread_cancel fails with "RT33" with musl libc
+
+From my testing it seems that QEMU built against musl libc crashes on pthread_cancel cancel calls - if the binary is also built with musl libc.
+
+Minimal sample:
+
+#include <pthread.h>
+#include <stdio.h>
+#include <unistd.h>
+void* threadfunc(void* ignored) {
+	while (1) {
+		pause();
+	}
+	return NULL;
+}
+int main() {
+	pthread_t thread;
+	pthread_create(&thread, NULL, &threadfunc, NULL);
+	sleep(1);
+	pthread_cancel(thread);
+	printf("OK, alive\n");
+}
+
+In an Alpine Linux aarch64 chroot (on an x86_64 host) the binary will just output RT33 and has exit code 161.
+
+Using qemu-aarch64 on an x86_64 host results in the output (fish shell)
+  fish: “qemu-aarch64-static ./musl-stat…” terminated by signal Unknown (Unknown)
+or (bash)
+  Real-time signal 2
+
+and exit code 164.
+
+It doesn't matter whether the binary is linked dynamically or static. You can see my test results in the following table:
+
+|                      | QEMU glibc | QEMU musl |
+|----------------------|------------|-----------|
+| binary glibc dynamic | ✓          | ✓         |
+| binary glibc static  | ✓          | ✓         |
+| binary musl dynamic  | ✓          | ✗         |
+| binary musl static   | ✓          | ✗         |
+
+Both QEMU builds are v5.1.0 (glibc v2.32 / musl v1.2.1)
+
+I've uploaded all my compile and test commands (plus a script to conveniently run them all) to https://github.com/z3ntu/qemu-pthread_cancel . It also includes the built binaries if needed. The test script output can be found at https://github.com/z3ntu/qemu-pthread_cancel/blob/master/results.txt
+
+Further links:
+- https://gitlab.com/postmarketOS/pmaports/-/issues/190#note_141902075
+- https://gitlab.com/postmarketOS/pmbootstrap/-/issues/1970
\ No newline at end of file