Skip to content
  • Peter Smith's avatar
    [ELF] Define _GLOBAL_OFFSET_TABLE_ symbol relative to .got · 113a59e7
    Peter Smith authored
    On many architectures gcc and clang will recognize _GLOBAL_OFFSET_TABLE_ - .
    and produce a relocation that can be processed without needing to know the
    value of _GLOBAL_OFFSET_TABLE_. This is not always the case; for example ARM
    gcc produces R_ARM_BASE_PREL but clang produces the more general
    R_ARM_REL32 to _GLOBAL_OFFSET_TABLE_. To evaluate this relocation
    correctly _GLOBAL_OFFSET_TABLE_ must be defined to be the either the base of
    the GOT or end of the GOT dependent on architecture..
    
    If/when llvm-mc is changed to recognize _GLOBAL_OFFSET_TABLE_ - . this
    change will not be necessary for new objects. However there may still be
    old objects and versions of clang.
    
    Differential Revision: https://reviews.llvm.org/D34355
    
    llvm-svn: 306282
    113a59e7
Loading