summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Hutchings <ben@decadent.org.uk>2021-12-30 02:44:38 +0100
committerBen Hutchings <ben@decadent.org.uk>2021-12-30 02:44:38 +0100
commit4291afb8281b5f7d94c2834e64c4028f32bb9615 (patch)
treeafa3090341e9a8fb8da6db046ba9d32bf2cce9b3
parentabcf17131c8718af383e61259103d821c30134a0 (diff)
downloadklibc-maint-4291afb8281b5f7d94c2834e64c4028f32bb9615.tar.gz
Add summary of test status
-rw-r--r--status.md52
1 files changed, 52 insertions, 0 deletions
diff --git a/status.md b/status.md
new file mode 100644
index 0000000..bb8f0ff
--- /dev/null
+++ b/status.md
@@ -0,0 +1,52 @@
+# Test status
+
+## Test cases
+
+test-many-klibcs implements:
+
+1. Build for each architecture (with a cross-compiler where needed)
+2. Run various programs (using qemu-user where needed) in static and
+ shared configurations:
+ a. Many self-test programs (through system shell)
+ b. "sh -c exit"
+ c. "sh -c '.../bin/true; exit'"
+
+## Test failures
+
+### 2.0.10
+
+* arm64:
+ * 2c: Fails with SIGSEGV in static build with LLVM, but only on QEMU
+* riscv64:
+ * 2a:sigint: Fails when built with Clang, but only on QEMU
+* s390x:
+ * 2a:environ, 2a:opentest, 2a:setjmptest: Produce wrong output when built
+ with Clang, but only on QEMU
+ * 2a:malloctest, 2a:malloctest2, 2c: Appear to loop forever when built
+ with Clang, but only on QEMU
+ * 2a:sscanf: Exits with error when built with Clang, but only on QEMU
+
+### Known bugs elsewhere
+
+QEMU 3.1 had a bug in handling of struct timveval on sparc64, and a
+bug in the ELF loader. Additionally, it has a lot of bugs in signal
+handling on alpha and sparc. All of those are fixed in my local
+build, qemu-user-static_3.1+dfsg-2.1_amd64.deb.
+
+QEMU 6.1 fixes those plus the s390x failures, but also has regressions
+for armhf, hppa, and riscv64.
+
+Clang 13 has a bug that affects i386, -mregparm, and optimisation of
+printf() to puts(). The call to puts() passes arguments using the
+usual stack-based calling convention. This is now worked-around
+by disabling CONFIG_REGPARM.
+
+LLD 13 has a bug affecting mips and mips64 that puts trap instructions
+(sigrie) instead of nops in branch delay slots. Patching these back
+to nops made the tests pass. I have only seen this in klibc.so, not
+in any executables.
+
+LLD 13 seems to have a bug in PowerPC global register initialisation
+affecting most tests on ppc64.
+
+LLD 13 is missing required features for riscv64 and sparc64.