[PATCH] D81410: [ELF][AArch64] Correct relocation codes for R_<CLS>_PLT32
Peter Smith via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 8 10:30:04 PDT 2020
psmith created this revision.
psmith added reviewers: pcc, jakehehrlich, leonardchan, mcgrathr, stuij.
Herald added subscribers: danielkiss, rupprecht, MaskRay, kristof.beyls, emaste.
Herald added a reviewer: espindola.
Herald added a reviewer: jhenderson.
Herald added a project: LLVM.
The relocation codes for R_<CLS>_PLT32 are incorrectly in the dynamic relocation range that starts at 1024 for AArch64 and 180 for AArch64_32. Correct these codes so that they start at the next available static relocation code. The R_<CLS>_PLT32 description is currently in unpublished draft so this change corrects LLVM to match the values that will appear in the next release of ELF for the 64-bit Arm Architecture document.
https://reviews.llvm.org/D81410
Files:
llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def
llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-aarch64.test
Index: llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-aarch64.test
===================================================================
--- llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-aarch64.test
+++ llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-aarch64.test
@@ -118,6 +118,7 @@
# CHECK: Type: R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC (571)
# CHECK: Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12 (572)
# CHECK: Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC (573)
+# CHECK: Type: R_AARCH64_PLT32 (574)
# CHECK: Type: R_AARCH64_COPY (1024)
# CHECK: Type: R_AARCH64_GLOB_DAT (1025)
# CHECK: Type: R_AARCH64_JUMP_SLOT (1026)
@@ -127,7 +128,6 @@
# CHECK: Type: R_AARCH64_TLS_TPREL64 (1030)
# CHECK: Type: R_AARCH64_TLSDESC (1031)
# CHECK: Type: R_AARCH64_IRELATIVE (1032)
-# CHECK: Type: R_AARCH64_PLT32 (1033)
--- !ELF
FileHeader:
@@ -259,6 +259,7 @@
- Type: R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC
- Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12
- Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC
+ - Type: R_AARCH64_PLT32
- Type: R_AARCH64_COPY
- Type: R_AARCH64_GLOB_DAT
- Type: R_AARCH64_JUMP_SLOT
@@ -268,4 +269,3 @@
- Type: R_AARCH64_TLS_TPREL64
- Type: R_AARCH64_TLSDESC
- Type: R_AARCH64_IRELATIVE
- - Type: R_AARCH64_PLT32
Index: llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def
===================================================================
--- llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def
+++ llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def
@@ -120,6 +120,8 @@
ELF_RELOC(R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC, 0x23b)
ELF_RELOC(R_AARCH64_TLSLD_LDST128_DTPREL_LO12, 0x23c)
ELF_RELOC(R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC, 0x23d)
+ELF_RELOC(R_AARCH64_PLT32, 0x23e)
+// Dynamic relocations start
ELF_RELOC(R_AARCH64_COPY, 0x400)
ELF_RELOC(R_AARCH64_GLOB_DAT, 0x401)
ELF_RELOC(R_AARCH64_JUMP_SLOT, 0x402)
@@ -132,7 +134,6 @@
ELF_RELOC(R_AARCH64_TLS_TPREL64, 0x406)
ELF_RELOC(R_AARCH64_TLSDESC, 0x407)
ELF_RELOC(R_AARCH64_IRELATIVE, 0x408)
-ELF_RELOC(R_AARCH64_PLT32, 0x409)
// ELF_RELOC(R_AARCH64_P32_NONE, 0)
ELF_RELOC(R_AARCH64_P32_ABS32, 0x001)
@@ -211,6 +212,8 @@
ELF_RELOC(R_AARCH64_P32_TLSDESC_LD32_LO12, 0x07d)
ELF_RELOC(R_AARCH64_P32_TLSDESC_ADD_LO12, 0x07e)
ELF_RELOC(R_AARCH64_P32_TLSDESC_CALL, 0x07f)
+ELF_RELOC(R_AARCH64_P32_PLT32, 0x080)
+// Dynamic relocations start
ELF_RELOC(R_AARCH64_P32_COPY, 0x0b4)
ELF_RELOC(R_AARCH64_P32_GLOB_DAT, 0x0b5)
ELF_RELOC(R_AARCH64_P32_JUMP_SLOT, 0x0b6)
@@ -220,4 +223,3 @@
ELF_RELOC(R_AARCH64_P32_TLS_TPREL, 0x0ba)
ELF_RELOC(R_AARCH64_P32_TLSDESC, 0x0bb)
ELF_RELOC(R_AARCH64_P32_IRELATIVE, 0x0bc)
-ELF_RELOC(R_AARCH64_P32_PLT32, 0x0bd)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D81410.269274.patch
Type: text/x-patch
Size: 3154 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200608/bad0e42f/attachment.bin>
More information about the llvm-commits
mailing list