elf: Fix _dl_debug_vdprintf to work before self-relocation
commit434eca873f14f618d6c2279b54fb809fb56f2c50
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 6 Nov 2023 20:25:40 +0000 (6 17:25 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 21 Nov 2023 19:15:42 +0000 (21 16:15 -0300)
tree9894611373fc3fa1e0ba24d89df0b4767beefd19
parent680c597e9c363bc74d1495b08f7a0593a80f8921
elf: Fix _dl_debug_vdprintf to work before self-relocation

The strlen might trigger and invalid GOT entry if it used before
the process is self-relocated (for instance on dl-tunables if any
error occurs).

For i386, _dl_writev with PIE requires to use the old 'int $0x80'
syscall mode because the calling the TLS register (gs) is not yet
initialized.

Checked on x86_64-linux-gnu.
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
elf/dl-printf.c
stdio-common/Makefile
stdio-common/_itoa.c
sysdeps/unix/sysv/linux/i386/dl-writev.h [new file with mode: 0644]