On Thu, 2023-07-13 at 22:27 +0000, Thorsten Glaser wrote: > retitle 1040981 klibc-utils: segfault executing armhf binaries under qemu-user > thanks > > venkata.p...@toshiba-tsip.com dixit: > > > Follow below steps to reproduce this issue > > ``` > > $ sudo debootstrap --arch=arm bookworm arm-bookworm-rootfs/ > > http://deb.debian.org/debian/ > > $ sudo chroot arm-bookworm/ apt-update && apt install -y klibc-utils > > $ sudo chroot arm-bookworm/ /usr/lib/klibc/bin/fstype --help > > qemu: uncaught target signal 11 (Segmentation fault) - core dumped > > Segmentation fault > > ``` > > Same when just copying klibc-m13AniKHUCMUNN8mXSUhIi8CUSA.so out > of libklibc_2.0.12-1_armhf.deb into /lib/ and extracting fstype > from klibc-utils_2.0.12-1_armhf.deb… however it works both on a > real-metal ARM box (amdahl.d.o) and a statically(!) linked mksh > against klibc :/ > > My guess here is that it’s, as usual, the fault of qemu-user, > which has multiple outstanding emulation bugs, some of which > affecting klibc-built binaries especially, though this, since > a statically linked mksh works, is probably an issue with how > qemu-user handles .interp *shrug* [...]
I use QEMU to test klibc changes on as many architectures as possible. For a long time I used QEMU 3.1 with some cherry-picked bug fixes. All the GNU-built binaries would run successfully on that, but Clang- built binaries for some architectures did not. Switching klibc to the time64 kernel API forced me to update to QEMU 7.2. This introduced regressions for shared-library executables for armhf and riscv64. There is some more detail on this at <https://git.kernel.org/pub/scm/linux/kernel/git/bwh/klibc-maint.git/plain/status.md> Ben. -- Ben Hutchings Hoare's Law of Large Problems: Inside every large problem is a small problem struggling to get out.
signature.asc
Description: This is a digitally signed message part