summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Newton <will.newton@linaro.org>2014-09-30 12:17:32 +0100
committerWill Newton <will.newton@linaro.org>2014-10-08 10:07:45 +0100
commit23664eacafac0548546d243bbc49bf5ab268a9c4 (patch)
tree7a3c5f36f69a654b4c07a57993ebe480d0bbb497
parent3ba37e6c302904cb38b9572faa9b9c1bb176d782 (diff)
downloadbinutils-gdb-23664eacafac0548546d243bbc49bf5ab268a9c4.tar.gz
include/elf/aarch64.h: Add reloc numbers from ABI release 1.0
Add the relocation numbers defined in ABI release 1.0 but missing from the current header. This will allow tools like objdump to dump objects that use these relocations. include/elf/ChangeLog: 2014-10-08 Will Newton <will.newton@linaro.org> * aarch64.h: Sync up relocations with ABI release 1.0.
-rw-r--r--include/elf/ChangeLog4
-rw-r--r--include/elf/aarch64.h82
2 files changed, 86 insertions, 0 deletions
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
index dd9bd9b5d1a..7e92493b18f 100644
--- a/include/elf/ChangeLog
+++ b/include/elf/ChangeLog
@@ -1,3 +1,7 @@
+2014-10-08 Will Newton <will.newton@linaro.org>
+
+ * aarch64.h: Sync up relocations with ABI release 1.0.
+
2014-09-16 Kuan-Lin Chen <kuanlinchentw@gmail.com>
* nds32.h: Declare new relocations.
diff --git a/include/elf/aarch64.h b/include/elf/aarch64.h
index e2b71de1f4e..1842b0be53b 100644
--- a/include/elf/aarch64.h
+++ b/include/elf/aarch64.h
@@ -269,20 +269,87 @@ RELOC_NUMBER (R_AARCH64_LDST32_ABS_LO12_NC, 285)
/* LD/ST64: (S+A) & 0xff8 */
RELOC_NUMBER (R_AARCH64_LDST64_ABS_LO12_NC, 286)
+/* Group relocations to create a 16, 32, 48, or 64 bit PC-relative
+ offset inline. */
+
+RELOC_NUMBER (R_AARCH64_MOVW_PREL_G0, 287)
+RELOC_NUMBER (R_AARCH64_MOVW_PREL_G0_NC, 288)
+RELOC_NUMBER (R_AARCH64_MOVW_PREL_G1, 289)
+RELOC_NUMBER (R_AARCH64_MOVW_PREL_G1_NC, 290)
+RELOC_NUMBER (R_AARCH64_MOVW_PREL_G2, 291)
+RELOC_NUMBER (R_AARCH64_MOVW_PREL_G2_NC, 292)
+RELOC_NUMBER (R_AARCH64_MOVW_PREL_G3, 293)
+
/* LD/ST128: (S+A) & 0xff0 */
RELOC_NUMBER (R_AARCH64_LDST128_ABS_LO12_NC, 299)
+/* Group relocations to create a 16, 32, 48, or 64 bit GOT-relative
+ offset inline. */
+
+RELOC_NUMBER (R_AARCH64_MOVW_GOTOFF_G0, 300)
+RELOC_NUMBER (R_AARCH64_MOVW_GOTOFF_G0_NC, 301)
+RELOC_NUMBER (R_AARCH64_MOVW_GOTOFF_G1, 302)
+RELOC_NUMBER (R_AARCH64_MOVW_GOTOFF_G1_NC, 303)
+RELOC_NUMBER (R_AARCH64_MOVW_GOTOFF_G2, 304)
+RELOC_NUMBER (R_AARCH64_MOVW_GOTOFF_G2_NC, 305)
+RELOC_NUMBER (R_AARCH64_MOVW_GOTOFF_G3, 306)
+
+/* GOT-relative data relocations. */
+
+RELOC_NUMBER (R_AARCH64_GOTREL64, 307)
+RELOC_NUMBER (R_AARCH64_GOTREL32, 308)
+
+/* GOT-relative instruction relocations. */
+
RELOC_NUMBER (R_AARCH64_GOT_LD_PREL19, 309)
+RELOC_NUMBER (R_AARCH64_LD64_GOTOFF_LO15, 310)
RELOC_NUMBER (R_AARCH64_ADR_GOT_PAGE, 311)
RELOC_NUMBER (R_AARCH64_LD64_GOT_LO12_NC, 312)
+RELOC_NUMBER (R_AARCH64_LD64_GOTPAGE_LO15, 313)
+/* General Dynamic TLS relocations. */
+
+RELOC_NUMBER (R_AARCH64_TLSGD_ADR_PREL21, 512)
RELOC_NUMBER (R_AARCH64_TLSGD_ADR_PAGE21, 513)
RELOC_NUMBER (R_AARCH64_TLSGD_ADD_LO12_NC, 514)
+RELOC_NUMBER (R_AARCH64_TLSGD_MOVW_G1, 515)
+RELOC_NUMBER (R_AARCH64_TLSGD_MOVW_G0_NC, 516)
+
+/* Local Dynamic TLS relocations. */
+
+RELOC_NUMBER (R_AARCH64_TLSLD_ADR_PREL21, 517)
+RELOC_NUMBER (R_AARCH64_TLSLD_ADR_PAGE21, 518)
+RELOC_NUMBER (R_AARCH64_TLSLD_ADD_LO12_NC, 519)
+RELOC_NUMBER (R_AARCH64_TLSLD_MOVW_G1, 520)
+RELOC_NUMBER (R_AARCH64_TLSLD_MOVW_G0_NC, 521)
+RELOC_NUMBER (R_AARCH64_TLSLD_LD_PREL19, 522)
+RELOC_NUMBER (R_AARCH64_TLSLD_MOVW_DTPREL_G2, 523)
+RELOC_NUMBER (R_AARCH64_TLSLD_MOVW_DTPREL_G1, 524)
+RELOC_NUMBER (R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC, 525)
+RELOC_NUMBER (R_AARCH64_TLSLD_MOVW_DTPREL_G0, 526)
+RELOC_NUMBER (R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC, 527)
+RELOC_NUMBER (R_AARCH64_TLSLD_ADD_DTPREL_HI12, 528)
+RELOC_NUMBER (R_AARCH64_TLSLD_ADD_DTPREL_LO12, 529)
+RELOC_NUMBER (R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC, 530)
+RELOC_NUMBER (R_AARCH64_TLSLD_LDST8_DTPREL_LO12, 531)
+RELOC_NUMBER (R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC, 532)
+RELOC_NUMBER (R_AARCH64_TLSLD_LDST16_DTPREL_LO12, 533)
+RELOC_NUMBER (R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC, 534)
+RELOC_NUMBER (R_AARCH64_TLSLD_LDST32_DTPREL_LO12, 535)
+RELOC_NUMBER (R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC, 536)
+RELOC_NUMBER (R_AARCH64_TLSLD_LDST64_DTPREL_LO12, 537)
+RELOC_NUMBER (R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC, 538)
+
+/* Initial Exec TLS relocations. */
+
RELOC_NUMBER (R_AARCH64_TLSIE_MOVW_GOTTPREL_G1, 539)
RELOC_NUMBER (R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC, 540)
RELOC_NUMBER (R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21, 541)
RELOC_NUMBER (R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC, 542)
RELOC_NUMBER (R_AARCH64_TLSIE_LD_GOTTPREL_PREL19, 543)
+
+/* Local Exec TLS relocations. */
+
RELOC_NUMBER (R_AARCH64_TLSLE_MOVW_TPREL_G2, 544)
RELOC_NUMBER (R_AARCH64_TLSLE_MOVW_TPREL_G1, 545)
RELOC_NUMBER (R_AARCH64_TLSLE_MOVW_TPREL_G1_NC, 546)
@@ -291,6 +358,16 @@ RELOC_NUMBER (R_AARCH64_TLSLE_MOVW_TPREL_G0_NC, 548)
RELOC_NUMBER (R_AARCH64_TLSLE_ADD_TPREL_HI12, 549)
RELOC_NUMBER (R_AARCH64_TLSLE_ADD_TPREL_LO12, 550)
RELOC_NUMBER (R_AARCH64_TLSLE_ADD_TPREL_LO12_NC, 551)
+RELOC_NUMBER (R_AARCH64_TLSLE_LDST8_TPREL_LO12, 552)
+RELOC_NUMBER (R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC, 553)
+RELOC_NUMBER (R_AARCH64_TLSLE_LDST16_TPREL_LO12, 554)
+RELOC_NUMBER (R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC, 555)
+RELOC_NUMBER (R_AARCH64_TLSLE_LDST32_TPREL_LO12, 556)
+RELOC_NUMBER (R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC, 557)
+RELOC_NUMBER (R_AARCH64_TLSLE_LDST64_TPREL_LO12, 558)
+RELOC_NUMBER (R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC, 559)
+
+/* TLS descriptor relocations. */
RELOC_NUMBER (R_AARCH64_TLSDESC_LD_PREL19, 560)
RELOC_NUMBER (R_AARCH64_TLSDESC_ADR_PREL21, 561)
@@ -303,6 +380,11 @@ RELOC_NUMBER (R_AARCH64_TLSDESC_LDR, 567)
RELOC_NUMBER (R_AARCH64_TLSDESC_ADD, 568)
RELOC_NUMBER (R_AARCH64_TLSDESC_CALL, 569)
+RELOC_NUMBER (R_AARCH64_TLSLE_LDST128_TPREL_LO12, 570)
+RELOC_NUMBER (R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC, 571)
+RELOC_NUMBER (R_AARCH64_TLSLD_LDST128_DTPREL_LO12, 572)
+RELOC_NUMBER (R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC, 573)
+
/* Dynamic relocations */
/* Copy symbol at runtime. */