diff options
author | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2017-10-20 17:53:44 +0100 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2017-11-03 14:49:20 +0000 |
commit | 94d2f0af157d8c02e688a315039f8044aedbcc89 (patch) | |
tree | 660bf3307bf917599cb7b4757c03239606fef27e /sysdeps/arm/dl-tlsdesc.S | |
parent | 28e1ddf340e205cd8e1eff58e92957318c6e9966 (diff) | |
download | glibc-94d2f0af157d8c02e688a315039f8044aedbcc89.tar.gz glibc-94d2f0af157d8c02e688a315039f8044aedbcc89.tar.xz glibc-94d2f0af157d8c02e688a315039f8044aedbcc89.zip |
arm: Remove lazy tlsdesc initialization related code
Lazy tlsdesc initialization is no longer used in the dynamic linker so all related code can be removed. * sysdeps/arm/dl-machine.h (elf_machine_runtime_setup): Remove DT_TLSDESC_GOT initialization. * sysdeps/arm/dl-tlsdesc.S (_dl_tlsdesc_lazy_resolver): Remove. (_dl_tlsdesc_resolve_hold): Likewise. * sysdeps/aarch64/dl-tlsdesc.h (_dl_tlsdesc_lazy_resolver): Remove. (_dl_tlsdesc_resolve_hold): Likewise. * sysdeps/aarch64/tlsdesc.c (_dl_tlsdesc_lazy_resolver_fixup): Remove. (_dl_tlsdesc_resolve_hold_fixup): Likewise.
Diffstat (limited to 'sysdeps/arm/dl-tlsdesc.S')
-rw-r--r-- | sysdeps/arm/dl-tlsdesc.S | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/sysdeps/arm/dl-tlsdesc.S b/sysdeps/arm/dl-tlsdesc.S index e7bed02188..99d4b8327f 100644 --- a/sysdeps/arm/dl-tlsdesc.S +++ b/sysdeps/arm/dl-tlsdesc.S @@ -132,87 +132,3 @@ _dl_tlsdesc_dynamic: cfi_endproc .size _dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic #endif /* SHARED */ - -/* lazy resolved for tls descriptors. */ - .hidden _dl_tlsdesc_lazy_resolver - .global _dl_tlsdesc_lazy_resolver - .type _dl_tlsdesc_lazy_resolver,#function - cfi_startproc - eabi_fnstart - .align 2 -_dl_tlsdesc_lazy_resolver: - /* r0 points at the tlsdesc, - r1 points at the GOT - r2 was pushed by the trampoline and used as a temp, - we need to pop it here. - We push the remaining call-clobbered registers here, and also - R1 -- to keep the stack correctly aligned. */ - /* Tell the unwinder that r2 has already been pushed. */ - eabi_save ({r2}) - cfi_adjust_cfa_offset (4) - cfi_rel_offset (r2, 0) - eabi_save ({r0,r1,r3,ip,lr}) - push {r0, r1, r3, ip, lr} - cfi_adjust_cfa_offset (20) - cfi_rel_offset (r0, 0) - cfi_rel_offset (r1, 4) - cfi_rel_offset (r3, 8) - cfi_rel_offset (ip, 12) - cfi_rel_offset (lr, 16) - bl _dl_tlsdesc_lazy_resolver_fixup - pop {r0, r1, r3, ip, lr} - cfi_adjust_cfa_offset (-20) - cfi_restore (lr) - cfi_restore (ip) - cfi_restore (r3) - cfi_restore (r1) - cfi_restore (r0) - pop {r2} - cfi_adjust_cfa_offset (-4) - cfi_restore (r2) - ldr r1, [r0, #4] - BX (r1) - eabi_fnend - cfi_endproc - .size _dl_tlsdesc_lazy_resolver, .-_dl_tlsdesc_lazy_resolver - -/* Holder for lazy tls descriptors being resolve in another thread. - - Our calling convention is to clobber r0, r1 and the processor - flags. All others that are modified must be saved */ - .hidden _dl_tlsdesc_resolve_hold - .global _dl_tlsdesc_resolve_hold - .type _dl_tlsdesc_resolve_hold,#function - cfi_startproc - eabi_fnstart - .align 2 -_dl_tlsdesc_resolve_hold: - /* r0 is saved so its original value can be used after the call and - r1 is saved only to keep the stack aligned. (r0 points to the tls - descriptor, it is passed to _dl_tlsdesc_resolve_hold_fixup which - is a void function that may clobber r0, later r0 is used to load - the new resolver.) */ - eabi_save ({r0,r1,r2,r3,ip,lr}) - push {r0, r1, r2, r3, ip, lr} - cfi_adjust_cfa_offset (24) - cfi_rel_offset (r0, 0) - cfi_rel_offset (r1, 4) - cfi_rel_offset (r2, 8) - cfi_rel_offset (r3, 12) - cfi_rel_offset (ip, 16) - cfi_rel_offset (lr, 20) - adr r1, _dl_tlsdesc_resolve_hold - bl _dl_tlsdesc_resolve_hold_fixup - pop {r0, r1, r2, r3, ip, lr} - cfi_adjust_cfa_offset (-24) - cfi_restore (lr) - cfi_restore (ip) - cfi_restore (r3) - cfi_restore (r2) - cfi_restore (r1) - cfi_restore (r0) - ldr r1, [r0, #4] - BX (r1) - eabi_fnend - cfi_endproc - .size _dl_tlsdesc_resolve_hold, .-_dl_tlsdesc_resolve_hold |