[Bug other/60465] Compiling glibc-2.17,2.18 with gcc-4.8.2 and binutils-2.23.2,2.24 results in segfaults in _start / elf_get_dynamic_info
slyfox at inbox dot ru
gcc-bugzilla@gcc.gnu.org
Mon Dec 28 22:09:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60465
--- Comment #36 from Sergei Trofimovich <slyfox at inbox dot ru> ---
Tested the patch on top of gcc-5.3.0 / glibc-2.22-r1.
Relocation in rtld.os is R_IA64_GPREL64I and is just an immediate offset in
ld.so:
# objdump -r -d elf/rtld.os | grep -C4 rtld_local+0x38
97c0: 11 00 00 00 01 00 [MIB] nop.m 0x0
97c6: 00 00 00 02 80 03 nop.i 0x0
97cc: 10 01 00 43 (p07) br.cond.dpnt.few 98d0
<_dl_start+0x210>;;
97d0: 04 90 00 4d 00 21 [MLX] adds r18=64,r38
97d1: GPREL64I _rtld_local+0x3800003e0
97d6: 00 00 00 00 00 40 movl r26=0x0
97dc: 03 00 00 60
97e0: 05 b0 40 4d 02 21 [MLX] adds r22=336,r38
97e1: GPREL64I _rtld_local+0x37ffffb80
# objdump -r -d elf/ld.so | grep -C8 '_dl_start+0x210'
b200: 11 00 00 00 01 00 [MIB] nop.m 0x0
b206: 00 00 00 02 80 03 nop.i 0x0
b20c: 10 01 00 43 (p07) br.cond.dpnt.few b310
<_dl_start+0x210>;;
b210: 04 90 00 4d 00 21 [MLX] adds r18=64,r38
b216: 80 03 00 00 00 40 movl r26=0x380029110
b21c: 03 41 88 64
b220: 05 b0 40 4d 02 21 [MLX] adds r22=336,r38
b226: 80 03 00 00 00 00 movl r24=0x3800288b0;;
Sent for review as:
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg02193.html
More information about the Gcc-bugs
mailing list