[PATCH] D15494: [ELF] - implemented @indntpoff (x86) relocation and its optimization.

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 14 07:32:24 PST 2015


grimar created this revision.
grimar added reviewers: ruiu, rafael.
grimar added subscribers: grimar, llvm-commits.

@indntpoff is similar to @gotntpoff, but for use in position dependent code. While @gotntpoff resolves to GOT slot address relative to the
start of the GOT in the movl or addl instructions, @indntpoff resolves to the
absolute GOT slot address. ("ELF Handling For Thread-Local Storage", Ulrich Drepper).

Since this relocation resolves to the absolute GOT slot address it requires R_386_RELATIVE relocation for each place of using when linking shared library. Had to add Target::relocNeedsDynRelative() method that checks if a relocation requires R_386_RELATIVE relocation to be emited either.


http://reviews.llvm.org/D15494

Files:
  ELF/InputSection.cpp
  ELF/OutputSections.cpp
  ELF/Target.cpp
  ELF/Target.h
  ELF/Writer.cpp
  test/ELF/Inputs/tls-opt-iele-i686-nopic.s
  test/ELF/tls-opt-iele-i686-nopic.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15494.42717.patch
Type: text/x-patch
Size: 19136 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151214/926bdb29/attachment.bin>


More information about the llvm-commits mailing list