Skip to content
  • Ben Gamari's avatar
    Linker: ARM: Refactor relocation handling · d159a51b
    Ben Gamari authored
    This refactors handling of R_ARM_CALL, R_ARM_JUMP24, R_ARM_MOVW_NC, and
    R_ARM_MOVT relocations to follow the LLVM LLD implementation. The "ELF
    for ARM"  specification is (like most documents of this type, sadly) a
    bit vague in some areas, so it seems safest to follow the behavior of a
    trusted implementation like LLD, which is remarkable in its clarity..
    
    Moreover, we now throw a proper error message when a jump to a symbol
    extra is out of range. This is great improvement over the previous
    behavior, which ended in a segfault.
    
    See #11340.
    
    Differential Revision: https://phabricator.haskell.org/D1728
    d159a51b