glibc/sysdeps
Florian Weimer 67aae64512 aarch64: Use explicit offsets in _dl_tlsdesc_dynamic
Commit 389d1f1b23 (“Partial ILP32
support for aarch64”) broke dynamic TLS support because a load
offset changed:

 0000000000000030 <_dl_tlsdesc_dynamic>:
   30:  a9bc7bfd        stp     x29, x30, [sp,#-64]!
   34:  910003fd        mov     x29, sp
   38:  a9020be1        stp     x1, x2, [sp,#32]
   3c:  a90313e3        stp     x3, x4, [sp,#48]
   40:  d53bd044        mrs     x4, tpidr_el0
   44:  c8dffc1f        ldar    xzr, [x0]
   48:  f9400401        ldr     x1, [x0,#8]
   4c:  f9400080        ldr     x0, [x4]
   50:  f9400823        ldr     x3, [x1,#16]
   54:  f9400002        ldr     x2, [x0]
   58:  eb02007f        cmp     x3, x2
   5c:  540001a8        b.hi    90 <_dl_tlsdesc_dynamic+0x60>
   60:  f9400022        ldr     x2, [x1]
   64:  8b021000        add     x0, x0, x2, lsl #4
   68:  f9400000        ldr     x0, [x0]
   6c:  b100041f        cmn     x0, #0x1
   70:  54000100        b.eq    90 <_dl_tlsdesc_dynamic+0x60>
-  74:  f9400421        ldr     x1, [x1,#8]
+  74:  f9400821        ldr     x1, [x1,#16]
   78:  8b010000        add     x0, x0, x1
…

This commit introduces explicit struct offsets, generated
from the C headers, fixing the regression.
2016-12-02 16:52:57 +01:00
..
aarch64 aarch64: Use explicit offsets in _dl_tlsdesc_dynamic 2016-12-02 16:52:57 +01:00
alpha Add missing hidden_def (__sigsetjmp). 2016-12-01 20:49:25 +00:00
arm Refactor FP_FAST_* into bits/fp-fast.h. 2016-11-29 01:45:00 +00:00
generic ld.so: Remove __libc_memalign 2016-11-30 16:23:58 +01:00
gnu Define wordsize.h macros everywhere 2016-11-04 09:37:44 -07:00
hppa Add missing hidden_def (__sigsetjmp). 2016-12-01 20:49:25 +00:00
i386 Remove cached PID/TID in clone 2016-11-24 19:38:51 -02:00
ia64 Refactor FP_ILOGB* out of bits/mathdef.h. 2016-12-01 02:56:55 +00:00
ieee754 Add llogb, llogbf, llogbl. 2016-12-02 01:42:49 +00:00
init_array
m68k Refactor FP_ILOGB* out of bits/mathdef.h. 2016-12-01 02:56:55 +00:00
mach Fix hurd __access_noerrno implementation. 2016-11-18 16:49:08 -02:00
microblaze Remove cached PID/TID in clone 2016-11-24 19:38:51 -02:00
mips Add missing hidden_def (__sigsetjmp). 2016-12-01 20:49:25 +00:00
nacl Add llogb, llogbf, llogbl. 2016-12-02 01:42:49 +00:00
nios2 Remove cached PID/TID in clone 2016-11-24 19:38:51 -02:00
nptl Remove cached PID/TID in clone 2016-11-24 19:38:51 -02:00
posix
powerpc powerpc: Remove stpcpy internal clash with IFUNC 2016-12-01 15:53:16 -02:00
pthread
s390 S390: Regenerate ULPs. 2016-12-02 12:52:36 +01:00
sh Add missing hidden_def (__sigsetjmp). 2016-12-01 20:49:25 +00:00
sparc Add missing hidden_def (__sigsetjmp). 2016-12-01 20:49:25 +00:00
tile Add missing hidden_def (__sigsetjmp). 2016-12-01 20:49:25 +00:00
unix Add llogb, llogbf, llogbl. 2016-12-02 01:42:49 +00:00
wordsize-32 Define wordsize.h macros everywhere 2016-11-04 09:37:44 -07:00
wordsize-64 Define wordsize.h macros everywhere 2016-11-04 09:37:44 -07:00
x86 Refactor FP_ILOGB* out of bits/mathdef.h. 2016-12-01 02:56:55 +00:00
x86_64 ld.so: Remove __libc_memalign 2016-11-30 16:23:58 +01:00