From 64bd99eda889c72a802e563e24fdc7e7882178af Mon Sep 17 00:00:00 2001 From: Shoaib Meenai Date: Thu, 15 Feb 2024 09:48:18 -0800 Subject: [PATCH] [aaelf32] Note that R_ARM_PREL31 can create veneers Since https://reviews.llvm.org/D25721, LLD has assumed this. I assume other linkers behave similarly, and LLVM's ARM backend also assumes that R_ARM_PREL31 is PLT-generating. Update the ABI to reflect that. --- aaelf32/aaelf32.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aaelf32/aaelf32.rst b/aaelf32/aaelf32.rst index 85aba1a..9531d57 100644 --- a/aaelf32/aaelf32.rst +++ b/aaelf32/aaelf32.rst @@ -2231,8 +2231,8 @@ to effect the transition to Thumb state. Conditional function call instructions A linker may use a veneer (a sequence of instructions) to implement the relocated branch if the relocation is one of R_ARM_PC24, R_ARM_CALL, -R_ARM_JUMP24, (or, in Thumb state, R_ARM_THM_CALL, R_ARM_THM_JUMP24, or -R_ARM_THM_JUMP19) and: +R_ARM_JUMP24, R_ARM_PREL31, (or, in Thumb state, R_ARM_THM_CALL, +R_ARM_THM_JUMP24, or R_ARM_THM_JUMP19) and: * The target symbol has type STT_FUNC