From: Julian Brown Date: Thu, 22 Oct 2009 19:22:35 +0000 (+0000) Subject: Fix locating GOT for Thumb-2 PIE binaries. X-Git-Tag: upstream/2.30~10627^2~593 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b5c2620bee9fb698c642fa609ee03d6a87ac1552;p=external%2Fglibc.git Fix locating GOT for Thumb-2 PIE binaries. * sysdeps/arm/elf/start.S (_start): Avoid dependency on PC pipeline offset. --- diff --git a/ChangeLog.arm b/ChangeLog.arm index 4fcce61..643a071 100644 --- a/ChangeLog.arm +++ b/ChangeLog.arm @@ -1,3 +1,8 @@ +2009-10-22 Julian Brown + + * sysdeps/arm/elf/start.S (_start): Avoid dependency on PC pipeline + offset. + 2009-10-03 Joseph Myers * sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Define F_SETOWN_EX and diff --git a/sysdeps/arm/elf/start.S b/sysdeps/arm/elf/start.S index 0cf4339..d21102e 100644 --- a/sysdeps/arm/elf/start.S +++ b/sysdeps/arm/elf/start.S @@ -87,8 +87,8 @@ _start: #ifdef SHARED ldr sl, .L_GOT -.L_GOT_OFF: - add sl, pc, sl + adr a4, .L_GOT + add sl, sl, a4 ldr ip, .L_GOT+4 /* __libc_csu_fini */ ldr ip, [sl, ip] @@ -125,7 +125,7 @@ _start: #ifdef SHARED .L_GOT: - .word _GLOBAL_OFFSET_TABLE_-(.L_GOT_OFF+8) + .word _GLOBAL_OFFSET_TABLE_ - .L_GOT .word __libc_csu_fini(GOT) .word __libc_csu_init(GOT) .word main(GOT)