diff options
author | Ryan Prichard <rprichard@google.com> | 2019-07-30 17:30:08 -0700 |
---|---|---|
committer | Ryan Prichard <rprichard@google.com> | 2019-07-30 20:55:54 -0700 |
commit | 30feb645f959d3e898292f4016c58e7ae5dec958 (patch) | |
tree | 2483c36caa9596ea02fc9587783ebee1c00f5e68 /linker/linker.cpp | |
parent | 6d601458de0b6485743bc23732f200d91b999537 (diff) |
Enable traditional TLS accesses on arm64
Handle generic DTPMOD/DTPREL relocations on arm64. Expose __tls_get_addr.
Bug: http://b/123385182
Test: manual -- compile code using arm64 gcc -mtls-dialect=trad
Change-Id: I99d2faae35d1ebffc1be8de50b4a1f5e21b14348
Diffstat (limited to 'linker/linker.cpp')
-rw-r--r-- | linker/linker.cpp | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/linker/linker.cpp b/linker/linker.cpp index e39da81f6..df7dd4020 100644 --- a/linker/linker.cpp +++ b/linker/linker.cpp @@ -3162,10 +3162,6 @@ bool soinfo::relocate(const VersionTracker& version_tracker, ElfRelIteratorT&& r *reinterpret_cast<ElfW(Addr)*>(reloc) = tpoff; } break; - -#if !defined(__aarch64__) - // Omit support for DTPMOD/DTPREL on arm64, at least until - // http://b/123385182 is fixed. arm64 uses TLSDESC instead. case R_GENERIC_TLS_DTPMOD: count_relocation(kRelocRelative); MARK(rel->r_offset); @@ -3190,7 +3186,6 @@ bool soinfo::relocate(const VersionTracker& version_tracker, ElfRelIteratorT&& r reinterpret_cast<void*>(sym_addr + addend), sym_name); *reinterpret_cast<ElfW(Addr)*>(reloc) = sym_addr + addend; break; -#endif // !defined(__aarch64__) #if defined(__aarch64__) // Bionic currently only implements TLSDESC for arm64. This implementation should work with |