Skip to content
  1. May 18, 2017
    • Rafael Espindola's avatar
      Alternative way to detemplate GotSection. · a6465bbb
      Rafael Espindola authored
      GetSection is a template because write calls relocate.
      
      relocate has two parts. The non alloc code really has to be a
      template, as it is looking a raw input file data.
      
      The alloc part is only a template because of getSize.
      
      This patch folds the value of getSize early, detemplates
      getRelocTargetVA and splits relocate into a templated non alloc case
      and a regular function for the alloc case. This has the nice advantage
      of making sure we collect all the information we need for relocations
      before getting to InputSection::relocateNonAlloc.
      
      Since we know got is alloc, it can just call the function directly and
      avoid the template.
      
      llvm-svn: 303355
      a6465bbb
    • Rafael Espindola's avatar
      Fix flag to start with 1 << 0. NFC. · 246c1c47
      Rafael Espindola authored
      Thanks to Andrew Ng for noticing it.
      
      llvm-svn: 303354
      246c1c47
    • Peter Smith's avatar
      [ELF] Support R_ARM_SBREL32 Relocation · d54f368e
      Peter Smith authored
      This change adds support for the R_ARM_SBREL32 relocation. The relocation
      is a base relative relocation that is produced by clang/llvm when -frwpi
      is used. The use case for the -frwpi option is position independent data
      for embedded systems that do not have a GOT. With -frwpi all data is
      accessed via an offset from a base register (usually r9), where r9 is set
      at run time to where the data has been loaded. The base of the data is
      known as the static base.
      
      The ARM ABI defines the static base as:
      B(S) is the addressing origin of the output segment defining the symbol S.
      The origin is not required to be the base address of the segment. For
      simplicity we choose to use the base address of the segment.
      
      The ARM procedure call standard only defines a read write variant using
      R_ARM_SBREL32 relocations. The read-only data is accessed via pc-relative
      offsets from the code, this is implemented in clang as -fropi.
      
      Fixes PR32924
      
      Differential Revision: https://reviews.llvm.org/D33280
      
      llvm-svn: 303337
      d54f368e
  2. May 17, 2017
  3. May 16, 2017
  4. May 15, 2017
  5. May 12, 2017
  6. May 11, 2017
  7. May 10, 2017
  8. May 09, 2017
Loading