"Unable to find a guest_base to satisfy all guest address mapping requirements" running certain x86_64 binaries on aarch64 host
Host environment
- Operating system: Fedora 39 & Fedora 40
- OS/kernel version:
- Architecture: aarch64
- QEMU flavor: qemu-x86_64
- QEMU version: qemu-8.1.3-1.fc39, qemu-8.2.0-0.3.rc2.fc40
- QEMU command line:
./qemu-x86_64-static-8.1.3 podman_hello_world.alpine
Emulated/Virtualized environment
- Operating system: linux-user
- Architecture: x86_64
Description of problem
Copying from:
https://bugzilla.redhat.com/show_bug.cgi?id=2256916
With qemu-x86_64-static from qemu-8.1.3-1.fc39, I can no longer run on the m1 the x86_64 binary created by https://github.com/containers/PodmanHello
If I try with qemu-x86_64-static from qemu-7.2.7-1.fc38 then this works.
If I build the binary manually on a fc39 x86 system with gcc -O2 -static -o podman_hello_world podman_hello_world.c, then I can also run it successfully with qemu-8.1.3-1.fc39.
It's only the static binary built inside the alpine container which cannot be run on the M1.
Misc tests I ran:
$ ./qemu-x86_64-static-8.1.3 podman_hello_world.alpine
qemu-x86_64-static-8.1.3: /var/roothome/podman_hello_world.alpine: Unable to find a guest_base to satisfy all guest address mapping requirements
0000000000000000-0000000000000fff
0000000000400000-00000000004047ef
$ ./qemu-x86_64-static-7.2.7 podman_hello_world.alpine
!... Hello Podman World ...!
[...]
$ ./qemu-x86_64-static-8.1.3 podman_hello_world.fc39
!... Hello Podman World ...!
[...]
The issue is still present with qemu-8.2.0-0.3.rc2.fc40
I also could not reproduce on x86_64 machines. I just tried it on fc39 installed on non-Apple aarch64 hardware, and I'm seeing the same issue:
# rpm -qf /usr/bin/qemu-x86_64-static
qemu-user-static-x86-8.1.3-1.fc39.aarch64
# qemu-x86_64-static ./podman_hello_world.alpine
qemu-x86_64-static: /root/podman_hello_world.alpine: Unable to find a guest_base to satisfy all guest address mapping requirements
0000000000000000-0000000000000fff
0000000000400000-00000000004047ef