Skip to content
  1. Jun 20, 2016
  2. Jun 19, 2016
    • Simon Atanasyan's avatar
      [ELF][MIPS] Support GOT entries for non-preemptible symbols with different addends · 4132511c
      Simon Atanasyan authored
      There are two motivations for this patch. The first one is a preparation
      for support MIPS TLS relocations. It might sound like a joke but for GOT
      entries related to TLS relocations MIPS ABI uses almost regular approach
      with creation of dynamic relocations for each GOT enty etc. But we need
      to separate these 'regular' TLS related entries from MIPS specific local
      and global parts of GOT. ABI declare simple solution - all TLS related
      entries allocated at the end of GOT after local/global parts. The second
      motivation it to support GOT relocations for non-preemptible symbols
      with addends. If we have more than one GOT relocations against symbol S
      with different addends we need to create GOT entries for each unique
      Symbol/Addend pairs.
      
      So we store all MIPS GOT entries in separate containers. For non-preemptible
      symbols we have to maintain two data structures. The first one is MipsLocal
      vector. Each entry corresponds to the GOT entry from the 'local' part
      of the GOT contains the symbol's address plus addend. The second one
      is MipsLocalMap. It is a map from Symbol/Addend pair to the GOT index.
      
      Differential Revision: http://reviews.llvm.org/D21297
      
      llvm-svn: 273127
      4132511c
  3. Jun 17, 2016
  4. Jun 10, 2016
  5. Jun 09, 2016
  6. Jun 08, 2016
  7. Jun 05, 2016
  8. Jun 04, 2016
  9. Jun 02, 2016
    • Rafael Espindola's avatar
      Start adding tlsdesc support for aarch64. · e37d13b9
      Rafael Espindola authored
      This is mostly extracted from http://reviews.llvm.org/D18960.
      
      The general idea for tlsdesc is that the two GD got entries are used
      for a function pointer and its argument. The dynamic linker sets
      both. In the non-dlopen case the dynamic linker sets the function to
      the identity and the argument to the offset in the tls block.
      
      All that the static linker has to do in the non-dlopen case is
      relocate the code to point to the got entries and create a dynamic
      relocation.
      
      The dlopen case is more complicated, but can be implemented in another patch.
      
      llvm-svn: 271569
      e37d13b9
  10. Jun 01, 2016
  11. May 28, 2016
  12. May 26, 2016
  13. May 25, 2016
  14. May 24, 2016
Loading