HomePhabricator

[ELF][AArch64] Fix adrp to undefined weak reference.

Description

[ELF][AArch64] Fix adrp to undefined weak reference.

In the ABI for the 64-bit Arm architecture the section on weak references
states:
During linking, the symbol value of an undefined weak reference is:

  • Zero if the relocation type is absolute
  • The address of the place if the relocation type is pc-relative.

The relocations associated with an ADRP are relative so we should resolve
the undefined weak reference to the place instead of 0. This matches GNU
ld.bfd behaviour.

fixes pr34928

Differential Revision: https://reviews.llvm.org/D55599

Details

Committed
psmithDec 13 2018, 3:13 AM
Differential Revision
D55599: [LLD][ELF][AArch64] Fix ADRP relocations to undefined weak reference.
Branches
Unknown
Tags
Unknown