diff mbox

include/elf/aarch64.h: Add reloc numbers from ABI release 1.0

Message ID 1412076098-4832-1-git-send-email-will.newton@linaro.org
State Accepted
Headers show

Commit Message

Will Newton Sept. 30, 2014, 11:21 a.m. UTC
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-09-30  Will Newton  <will.newton@linaro.org>

	* aarch64.h: Sync up relocations with ABI release 1.0.
---
 include/elf/aarch64.h | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)

Comments

Will Newton Oct. 6, 2014, 9:27 a.m. UTC | #1
On 30 September 2014 12:21, Will Newton <will.newton@linaro.org> wrote:
> 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-09-30  Will Newton  <will.newton@linaro.org>
>
>         * aarch64.h: Sync up relocations with ABI release 1.0.
> ---
>  include/elf/aarch64.h | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 82 insertions(+)

Ping?

It would be nice to get this into binutils 2.25 if possible.

Thanks,

> diff --git a/include/elf/aarch64.h b/include/elf/aarch64.h
> index e2b71de..1842b0b 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.  */
> --
> 1.9.3
>
Nick Clifton Oct. 6, 2014, 4:36 p.m. UTC | #2
Hi Will,

> 2014-09-30  Will Newton  <will.newton@linaro.org>
>
> 	* aarch64.h: Sync up relocations with ABI release 1.0.

Approved - please apply.

Cheers
   Nick
diff mbox

Patch

diff --git a/include/elf/aarch64.h b/include/elf/aarch64.h
index e2b71de..1842b0b 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.  */