[PATCH] [lld] [ELF/AArch64] Fix TLS initial executable relocation

Adhemerval Zanella adhemerval.zanella at linaro.org
Wed Jun 3 09:57:37 PDT 2015


Hi ruiu, shankar.easwaran,

This patch fixes the TLS initial executable for AArch64.  Current
implementation have two issues: 1. do not generate dynamic
R_AARCH64_TLS_TPREL64 relocation for the external module symbols,
and 2. do not export the TLS initial executable symbol in dynamic
symbol table.

The fix follows the MIPS strategy to add a arch-specific AArch64GOTSection
class to keep track of TLS symbols required to be place in dynamic
symbol table. It also overrides the buildDynamicSymbolTable for
ExecutableWrite class for AArch64 to add the symbols.

It also adds some refactoring on AArch64RelocationPass.cpp based on ARM
backend.

http://reviews.llvm.org/D10219

Files:
  lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.cpp
  lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.h
  lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.cpp
  lib/ReaderWriter/ELF/AArch64/AArch64RelocationPass.cpp
  lib/ReaderWriter/ELF/AArch64/AArch64SectionChunks.cpp
  lib/ReaderWriter/ELF/AArch64/AArch64SectionChunks.h
  lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.cpp
  lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.h
  lib/ReaderWriter/ELF/AArch64/CMakeLists.txt
  test/elf/AArch64/Inputs/initial-exec-tls-1.yaml
  test/elf/AArch64/initial-exec-tls-0.test

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D10219.27048.patch
Type: text/x-patch
Size: 24913 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150603/58783ac3/attachment.bin>


More information about the llvm-commits mailing list