diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-06-16 16:59:00 +0000 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-06-16 16:59:33 +0000 |
| commit | 9aba81d8eb048db908c94a3c40c25a5fde0caee6 (patch) | |
| tree | b765e7fb5e9a3c2143c68b0414e0055adb70e785 /results/classifier/118/peripherals/1878501 | |
| parent | b89a938452613061c0f1f23e710281cf5c83cb29 (diff) | |
| download | qemu-analysis-9aba81d8eb048db908c94a3c40c25a5fde0caee6.tar.gz qemu-analysis-9aba81d8eb048db908c94a3c40c25a5fde0caee6.zip | |
add 18th iteration of classifier
Diffstat (limited to 'results/classifier/118/peripherals/1878501')
| -rw-r--r-- | results/classifier/118/peripherals/1878501 | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/results/classifier/118/peripherals/1878501 b/results/classifier/118/peripherals/1878501 new file mode 100644 index 000000000..bfba13de2 --- /dev/null +++ b/results/classifier/118/peripherals/1878501 @@ -0,0 +1,108 @@ +architecture: 0.935 +peripherals: 0.926 +graphic: 0.924 +i386: 0.913 +user-level: 0.910 +mistranslation: 0.899 +risc-v: 0.885 +device: 0.869 +ppc: 0.858 +files: 0.857 +hypervisor: 0.846 +permissions: 0.834 +x86: 0.830 +kernel: 0.826 +PID: 0.822 +performance: 0.821 +arm: 0.811 +assembly: 0.804 +vnc: 0.801 +debug: 0.800 +semantic: 0.786 +socket: 0.778 +TCG: 0.767 +network: 0.754 +register: 0.713 +virtual: 0.660 +VMM: 0.629 +KVM: 0.619 +boot: 0.541 + +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 + +Richard, + +this problem seems related to the work you already done on vsyscalls: + + b26491b4d4f8 ("linux-user/i386: Emulate x86_64 vsyscalls") + +I don't know if we should support AT_SYSINFO or consider this as a bug of the target libc. + +We do not define AT_SYSINFO because we do not implement the vdso. +All we have so far is the vsyscall page, which is not the same thing. + +I've had patches for the vdso for a number of years; perhaps it's +time to update and re-send that... + +The QEMU project is currently moving its bug tracking to another system. +For this we need to know which bugs are still valid and which could be +closed already. Thus we are setting the bug state to "Incomplete" now. + +If the bug has already been fixed in the latest upstream version of QEMU, +then please close this ticket as "Fix released". + +If it is not fixed yet and you think that this bug report here is still +valid, then you have two options: + +1) If you already have an account on gitlab.com, please open a new ticket +for this problem in our new tracker here: + + https://gitlab.com/qemu-project/qemu/-/issues + +and then close this ticket here on Launchpad (or let it expire auto- +matically after 60 days). Please mention the URL of this bug ticket on +Launchpad in the new ticket on GitLab. + +2) If you don't have an account on gitlab.com and don't intend to get +one, but still would like to keep this ticket opened, then please switch +the state back to "New" or "Confirmed" within the next 60 days (other- +wise it will get closed as "Expired"). We will then eventually migrate +the ticket automatically to the new system (but you won't be the reporter +of the bug in the new system and thus you won't get notified on changes +anymore). + +Thank you and sorry for the inconvenience. + + +[Expired for QEMU because there has been no activity for 60 days.] + |