"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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information