Message ID | 1412076098-4832-1-git-send-email-will.newton@linaro.org |
---|---|
State | Accepted |
Headers | show |
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 >
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 --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. */