diff options
Diffstat (limited to '')
| -rw-r--r-- | results/classifier/gemma3:12b/kernel/1878 | 30 | ||||
| -rw-r--r-- | results/classifier/gemma3:12b/kernel/1878413 | 16 | ||||
| -rw-r--r-- | results/classifier/gemma3:12b/kernel/1878501 | 32 | ||||
| -rw-r--r-- | results/classifier/gemma3:12b/kernel/1878628 | 9 |
4 files changed, 87 insertions, 0 deletions
diff --git a/results/classifier/gemma3:12b/kernel/1878 b/results/classifier/gemma3:12b/kernel/1878 new file mode 100644 index 000000000..eefe1adb4 --- /dev/null +++ b/results/classifier/gemma3:12b/kernel/1878 @@ -0,0 +1,30 @@ + +QEMU doesn't implement ARMv4/v5 legacy SCTLR.U==0 load-and-rotate unaligned access handling +Description of problem: +**ldr r7, \[r0, r1\]** works differently on real device and QEMU. Probably all **ldr Rd, \[Rs\]** commands works wrongly in QEMU with Raspberry Pi emulation. +Steps to reproduce: +1. Launch the attached software **kernel_qemu.img** in QEMU. +2. Launch the attached software **kerenel.img** on real Raspberry Pi 1B+. +3. Look at the r7. It contains different data. +Additional information: +**kernel_qemu.img** and **kerenel.img** are the same program. It just compiled with different origins - 0x8000 for real device and 0x10000 for QEMU. But code inside the program works at the same addresses. + +r0 = 0x183a4 + +r1 = 0x817 + +**\[r0, r1\]** points to byte 0x42 in memory with such data: + +**0x80 0x15 0x22 \[0x42\] 0x03 0x21 0x87** + +After **ldr r7, \[r0, r1\]** execution real device puts to r7: **0x22158042** + +After **ldr r7, \[r0, r1\]** execution QEMU puts to r7: **0x87210342** + +QEMU: + + + +Real Raspberry Pi 1B+:  + +[kernel_qemu.img](/uploads/ae6a7490660569d5fe56adc9f4dde85d/kernel_qemu.img) [kernel.img](/uploads/48c94a66370c1fe8720fe89603c45c7b/kernel.img) diff --git a/results/classifier/gemma3:12b/kernel/1878413 b/results/classifier/gemma3:12b/kernel/1878413 new file mode 100644 index 000000000..18f372821 --- /dev/null +++ b/results/classifier/gemma3:12b/kernel/1878413 @@ -0,0 +1,16 @@ + +/proc/sys/fs/binfmt_misc/ empty even though binfmt_misc is loaded + +_apksigner_ uses binfmt to execute via _jarwrapper_, since it is a JAR. We have a test suite that relies on _apksigner_ working. It was running fine in Ubuntu/bionic. Since it was pegged to LTS, it got upgraded to Ubuntu/focal and it stopped working. This is likely because /proc/sys/fs/binfmt_misc/ is totally empty. The "binfmt_misc" kernel module shows as loaded: + +$ grep binfmt /proc/modules +binfmt_misc 20480 1 - Live 0xffffffffc0452000 + +This relies on binfmt support in gitlab.com's CI runner setup, based on Docker. binfmt works in containers there, for example on Ubuntu/bionic: +https://gitlab.com/fdroid/fdroidserver/-/jobs/516857857 + +Something in Ubuntu/focal broke this when running focal in the container on the same Docker host runners: +https://gitlab.com/fdroid/fdroidserver/-/jobs/547148092 + +Debian's ci.debian.net lxc runners also have a similar problem, it might be related: +https://salsa.debian.org/ci-team/debian-ci-config/-/issues/1 \ No newline at end of file diff --git a/results/classifier/gemma3:12b/kernel/1878501 b/results/classifier/gemma3:12b/kernel/1878501 new file mode 100644 index 000000000..c73fecc54 --- /dev/null +++ b/results/classifier/gemma3:12b/kernel/1878501 @@ -0,0 +1,32 @@ + +qemu-i386 does not define AT_SYSINFO + +qemu-i386 does not define the AT_SYSINFO auxval when running i386 Linux binaries. + +On most libcs, this is properly handled, but this is mandatory for the i686 Bionic (Android) libc or it will segfault. + +This is due to a blind assumption that getauxval(AT_SYSINFO) will return a valid function pointer: + +The code varies from version to version, but it looks like this: + +void *__libc_sysinfo; +// mangled as _Z19__libc_init_sysinfov +void __libc_init_sysinfo() { + bool dummy; + // __bionic_getauxval = getauxval + __libc_sysinfo = reinterpret_cast<void *>(__bionic_getauxval(AT_SYSINFO, dummy)); +} + +A simple way to reproduce is to compile a basic C program against the NDK: + +int main(void) { return 0; } + +$ i686-linux-android-clang -static empty.c -o empty +$ qemu-i386 -cpu max ./empty +qemu: uncaught target signal 11 (Segmentation fault) - core dumped +Segmentation fault + +The place where it segfaults is misleading: It will, at least on the current NDK, crash on __set_thread_area, this is due to it calling a function pointer to __libc_sysinfo returned by __kernel_syscall. + +QEMU 4.1.1 (aarch64) +Pixel 2 XL via Termux \ No newline at end of file diff --git a/results/classifier/gemma3:12b/kernel/1878628 b/results/classifier/gemma3:12b/kernel/1878628 new file mode 100644 index 000000000..36a72aea5 --- /dev/null +++ b/results/classifier/gemma3:12b/kernel/1878628 @@ -0,0 +1,9 @@ + +linux-user/mmap build failure using Clang 10 + +When building with Clang 10 on Fedora 32, we get: + + CC linux-user/mmap.o + linux-user/mmap.c:720:49: error: result of comparison 'unsigned long' > 18446744073709551615 is always false [-Werror,-Wtautological-type-limit-compare] + if ((unsigned long)host_addr + new_size > (abi_ulong)-1) { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~ \ No newline at end of file |