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

Reply via email to