Package: qemu-user-static Version: 1:7.2+dfsg-7+deb12u2 Followup-For: Bug #1053101
I forgot to note that Michael's observation that building qemu-user-static without --disable-pie might reveal a conflict between the emulator and target linking: # file /usr/bin/ls /usr/bin/ls: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=6cc2da196ef5482b32870624563242ff38023843, for GNU/Linux 3.7.0, stripped # file /usr/bin/aarch64-linux-gnu-g++-13 /usr/bin/aarch64-linux-gnu-g++-13: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=30e11cf9cf6aec0c01374a11a36b1687195905cb, for GNU/Linux 3.7.0, stripped # objdump -f /usr/bin/ls /usr/bin/ls: file format elf64-littleaarch64 architecture: aarch64, flags 0x00000150: HAS_SYMS, DYNAMIC, D_PAGED start address 0x0000000000005cc0 # objdump -f /usr/bin/aarch64-linux-gnu-g++-13 /usr/bin/aarch64-linux-gnu-g++-13: file format elf64-littleaarch64 architecture: aarch64, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x000000000042e3c0 So `ls` is a "pie executable" and does not have "EXEC_P" where g++ is just "executable" and has "EXEC_P". The interpreter has: # file /lib/aarch64-linux-gnu/ld-linux-aarch64.so.1 /lib/aarch64-linux-gnu/ld-linux-aarch64.so.1: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=65beabffba8dc9cab560b4338b8b0d568d21c964, stripped # objdump -f /lib/aarch64-linux-gnu/ld-linux-aarch64.so.1 /lib/aarch64-linux-gnu/ld-linux-aarch64.so.1: file format elf64-littleaarch64 architecture: aarch64, flags 0x00000150: HAS_SYMS, DYNAMIC, D_PAGED start address 0x000000000001a1c0