HomePhabricator

[ELF][AArch64] Add R_AARCH64_PLT_PAGE_PC to isRelExpr

Description

[ELF][AArch64] Add R_AARCH64_PLT_PAGE_PC to isRelExpr

As a follow on to D56666 (r351186) there is a case when taking the address
of an ifunc when linking -pie that can generate a spurious can't create
dynamic relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol in readonly
segment. Specifically the case is where the ifunc is in the same
translation unit as the address taker, so given -fpie the compiler knows
the ifunc is defined in the executable so it can use a non-got-generating
relocation.

The error message is due to R_AARCH64_PLT_PAGE_PC not being added to
isRelExpr, its non PLT equivalent R_AARCH64_PAGE_PC is already in
isRelExpr.

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

Details

Committed
psmithJan 16 2019, 5:24 AM
Differential Revision
D56724: [LLD][ELF][AArch64] Add R_AARCH64_PLT_PAGE_PC to isRelExpr
Branches
Unknown
Tags
Unknown