Correct the relocation names for R_AARCH64_TLSDESC_LD_PREL19 and R_AARCH64_TLSDESC_ADR_PAGE21.

This commit is contained in:
Yufeng Zhang 2013-05-28 16:39:51 +00:00
parent 0a8897c77c
commit 418009c200
12 changed files with 73 additions and 31 deletions

View File

@ -1,3 +1,25 @@
2013-05-28 Yufeng Zhang <yufeng.zhang@arm.com>
* reloc.c (BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE): Rename to ...
(BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21): ... this.
(BFD_RELOC_AARCH64_TLSDESC_LD64_PREL19): Rename to ...
(BFD_RELOC_AARCH64_TLSDESC_LD_PREL19): ... this.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* elf64-aarch64.c (IS_AARCH64_TLSDESC_RELOC): Update to use
the correct names.
(elf64_aarch64_tlsdesc_howto_table): Likewise.
(elf64_aarch64_reloc_map): Likewise.
(aarch64_resolve_relocation): Likewise.
(bfd_elf_aarch64_put_addend): Likewise.
(aarch64_tls_transition_without_check): Likewise.
(aarch64_reloc_got_type): Likewise.
(elf64_aarch64_final_link_relocate): Likewise.
(elf64_aarch64_tls_relax): Likewise.
(elf64_aarch64_relocate_section): Likewise.
(elf64_aarch64_gc_sweep_hook): Likewise.
(elf64_aarch64_check_relocs): Likewise.
2013-05-26 Mark Wielaard <mjw@redhat.com>
* cache.c (BFD_CACHE_MAX_OPEN): Remove define.

View File

@ -5350,7 +5350,7 @@ of a signed or unsigned address/value. */
BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC,
/* AArch64 TLS DESC relocation. */
BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE,
BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21,
/* AArch64 TLS DESC relocation. */
BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21,
@ -5362,7 +5362,7 @@ of a signed or unsigned address/value. */
BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC,
/* AArch64 TLS DESC relocation. */
BFD_RELOC_AARCH64_TLSDESC_LD64_PREL19,
BFD_RELOC_AARCH64_TLSDESC_LD_PREL19,
/* AArch64 TLS DESC relocation. */
BFD_RELOC_AARCH64_TLSDESC_LDR,

View File

@ -40,7 +40,7 @@
For TLS descriptors the assembler will present us with code
fragments of the form:
adrp x0, :tlsdesc:foo R_AARCH64_TLSDESC_ADR_PAGE(foo)
adrp x0, :tlsdesc:foo R_AARCH64_TLSDESC_ADR_PAGE21(foo)
ldr x1, [x0, #:tlsdesc_lo12:foo] R_AARCH64_TLSDESC_LD64_LO12(foo)
add x0, x0, #:tlsdesc_lo12:foo R_AARCH64_TLSDESC_ADD_LO12(foo)
.tlsdesccall foo
@ -171,9 +171,9 @@ bfd_elf_aarch64_put_addend (bfd *abfd,
|| IS_AARCH64_TLSDESC_RELOC ((R_TYPE)))
#define IS_AARCH64_TLSDESC_RELOC(R_TYPE) \
((R_TYPE) == R_AARCH64_TLSDESC_LD64_PREL19 \
((R_TYPE) == R_AARCH64_TLSDESC_LD_PREL19 \
|| (R_TYPE) == R_AARCH64_TLSDESC_ADR_PREL21 \
|| (R_TYPE) == R_AARCH64_TLSDESC_ADR_PAGE \
|| (R_TYPE) == R_AARCH64_TLSDESC_ADR_PAGE21 \
|| (R_TYPE) == R_AARCH64_TLSDESC_ADD_LO12_NC \
|| (R_TYPE) == R_AARCH64_TLSDESC_LD64_LO12_NC \
|| (R_TYPE) == R_AARCH64_TLSDESC_OFF_G1 \
@ -1204,7 +1204,7 @@ static reloc_howto_type elf64_aarch64_tls_howto_table[] =
static reloc_howto_type elf64_aarch64_tlsdesc_howto_table[] =
{
HOWTO (R_AARCH64_TLSDESC_LD64_PREL19, /* type */
HOWTO (R_AARCH64_TLSDESC_LD_PREL19, /* type */
2, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
21, /* bitsize */
@ -1212,7 +1212,7 @@ static reloc_howto_type elf64_aarch64_tlsdesc_howto_table[] =
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
bfd_elf_generic_reloc, /* special_function */
"R_AARCH64_TLSDESC_LD64_PREL19", /* name */
"R_AARCH64_TLSDESC_LD_PREL19", /* name */
FALSE, /* partial_inplace */
0x1ffffc, /* src_mask */
0x1ffffc, /* dst_mask */
@ -1234,7 +1234,7 @@ static reloc_howto_type elf64_aarch64_tlsdesc_howto_table[] =
/* Get to the page for the GOT entry for the symbol
(G(S) - P) using an ADRP instruction. */
HOWTO (R_AARCH64_TLSDESC_ADR_PAGE, /* type */
HOWTO (R_AARCH64_TLSDESC_ADR_PAGE21, /* type */
12, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
21, /* bitsize */
@ -1242,7 +1242,7 @@ static reloc_howto_type elf64_aarch64_tlsdesc_howto_table[] =
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
bfd_elf_generic_reloc, /* special_function */
"R_AARCH64_TLSDESC_ADR_PAGE", /* name */
"R_AARCH64_TLSDESC_ADR_PAGE21", /* name */
FALSE, /* partial_inplace */
0x1fffff, /* src_mask */
0x1fffff, /* dst_mask */
@ -1471,9 +1471,9 @@ static const struct elf64_aarch64_reloc_map elf64_aarch64_reloc_map[] =
{BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12, R_AARCH64_TLSLE_ADD_TPREL_HI12},
{BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC,
R_AARCH64_TLSLE_ADD_TPREL_LO12_NC},
{BFD_RELOC_AARCH64_TLSDESC_LD64_PREL19, R_AARCH64_TLSDESC_LD64_PREL19},
{BFD_RELOC_AARCH64_TLSDESC_LD_PREL19, R_AARCH64_TLSDESC_LD_PREL19},
{BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21, R_AARCH64_TLSDESC_ADR_PREL21},
{BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE, R_AARCH64_TLSDESC_ADR_PAGE},
{BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21, R_AARCH64_TLSDESC_ADR_PAGE21},
{BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC, R_AARCH64_TLSDESC_ADD_LO12_NC},
{BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC, R_AARCH64_TLSDESC_LD64_LO12_NC},
{BFD_RELOC_AARCH64_TLSDESC_OFF_G1, R_AARCH64_TLSDESC_OFF_G1},
@ -2132,7 +2132,7 @@ aarch64_resolve_relocation (unsigned int r_type, bfd_vma place, bfd_vma value,
break;
case R_AARCH64_ADR_GOT_PAGE:
case R_AARCH64_TLSDESC_ADR_PAGE:
case R_AARCH64_TLSDESC_ADR_PAGE21:
case R_AARCH64_TLSGD_ADR_PAGE21:
case R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21:
value = PG (value + addend) - PG (place);
@ -3361,7 +3361,7 @@ bfd_elf_aarch64_put_addend (bfd *abfd,
case R_AARCH64_TLSGD_ADR_PAGE21:
case R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21:
case R_AARCH64_TLSDESC_ADR_PAGE:
case R_AARCH64_TLSDESC_ADR_PAGE21:
case R_AARCH64_ADR_GOT_PAGE:
case R_AARCH64_ADR_PREL_LO21:
case R_AARCH64_ADR_PREL_PG_HI21:
@ -3527,7 +3527,7 @@ aarch64_tls_transition_without_check (unsigned int r_type,
switch (r_type)
{
case R_AARCH64_TLSGD_ADR_PAGE21:
case R_AARCH64_TLSDESC_ADR_PAGE:
case R_AARCH64_TLSDESC_ADR_PAGE21:
return is_local
? R_AARCH64_TLSLE_MOVW_TPREL_G1 : R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21;
@ -3567,7 +3567,7 @@ aarch64_reloc_got_type (unsigned int r_type)
return GOT_TLS_GD;
case R_AARCH64_TLSDESC_ADD_LO12_NC:
case R_AARCH64_TLSDESC_ADR_PAGE:
case R_AARCH64_TLSDESC_ADR_PAGE21:
case R_AARCH64_TLSDESC_CALL:
case R_AARCH64_TLSDESC_LD64_LO12_NC:
return GOT_TLSDESC_GD;
@ -4025,7 +4025,7 @@ elf64_aarch64_final_link_relocate (reloc_howto_type *howto,
*unresolved_reloc_p = FALSE;
break;
case R_AARCH64_TLSDESC_ADR_PAGE:
case R_AARCH64_TLSDESC_ADR_PAGE21:
case R_AARCH64_TLSDESC_LD64_LO12_NC:
case R_AARCH64_TLSDESC_ADD_LO12_NC:
case R_AARCH64_TLSDESC_ADD:
@ -4079,7 +4079,7 @@ elf64_aarch64_tls_relax (struct elf64_aarch64_link_hash_table *globals,
switch (r_type)
{
case R_AARCH64_TLSGD_ADR_PAGE21:
case R_AARCH64_TLSDESC_ADR_PAGE:
case R_AARCH64_TLSDESC_ADR_PAGE21:
if (is_local)
{
/* GD->LE relaxation:
@ -4515,7 +4515,7 @@ elf64_aarch64_relocate_section (bfd *output_bfd,
case R_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
break;
case R_AARCH64_TLSDESC_ADR_PAGE:
case R_AARCH64_TLSDESC_ADR_PAGE21:
case R_AARCH64_TLSDESC_LD64_LO12_NC:
case R_AARCH64_TLSDESC_ADD_LO12_NC:
if (! symbol_tlsdesc_got_offset_mark_p (input_bfd, h, r_symndx))
@ -4903,7 +4903,7 @@ elf64_aarch64_gc_sweep_hook (bfd *abfd,
case R_AARCH64_TLSLE_MOVW_TPREL_G1_NC:
case R_AARCH64_TLSLE_MOVW_TPREL_G0:
case R_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
case R_AARCH64_TLSDESC_ADR_PAGE:
case R_AARCH64_TLSDESC_ADR_PAGE21:
case R_AARCH64_TLSDESC_ADD_LO12_NC:
case R_AARCH64_TLSDESC_LD64_LO12_NC:
if (h != NULL)
@ -5243,7 +5243,7 @@ elf64_aarch64_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_AARCH64_TLSLE_MOVW_TPREL_G1_NC:
case R_AARCH64_TLSLE_MOVW_TPREL_G0:
case R_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
case R_AARCH64_TLSDESC_ADR_PAGE:
case R_AARCH64_TLSDESC_ADR_PAGE21:
case R_AARCH64_TLSDESC_ADD_LO12_NC:
case R_AARCH64_TLSDESC_LD64_LO12_NC:
{

View File

@ -2554,11 +2554,11 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_AARCH64_TLSDESC",
"BFD_RELOC_AARCH64_TLSDESC_ADD",
"BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC",
"BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE",
"BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21",
"BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21",
"BFD_RELOC_AARCH64_TLSDESC_CALL",
"BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC",
"BFD_RELOC_AARCH64_TLSDESC_LD64_PREL19",
"BFD_RELOC_AARCH64_TLSDESC_LD_PREL19",
"BFD_RELOC_AARCH64_TLSDESC_LDR",
"BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC",
"BFD_RELOC_AARCH64_TLSDESC_OFF_G1",

View File

@ -6275,7 +6275,7 @@ ENUM
ENUMDOC
AArch64 TLS DESC relocation.
ENUM
BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE
BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21
ENUMDOC
AArch64 TLS DESC relocation.
ENUM
@ -6291,7 +6291,7 @@ ENUM
ENUMDOC
AArch64 TLS DESC relocation.
ENUM
BFD_RELOC_AARCH64_TLSDESC_LD64_PREL19
BFD_RELOC_AARCH64_TLSDESC_LD_PREL19
ENUMDOC
AArch64 TLS DESC relocation.
ENUM

View File

@ -1,3 +1,11 @@
2013-05-28 Yufeng Zhang <yufeng.zhang@arm.com>
* config/tc-aarch64.c (reloc_table): Update to use
BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21 instead of
BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE.
(md_apply_fix): Likewise.
(aarch64_force_relocation): Likewise.
2013-05-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/tc-arm.c (it_fsm_post_encode): Improve

View File

@ -2389,7 +2389,7 @@ static struct reloc_table_entry reloc_table[] = {
/* Get to the page containing GOT TLS entry for a symbol */
{"tlsdesc", 0,
BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE,
BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21,
0,
0,
0},
@ -6500,7 +6500,7 @@ md_apply_fix (fixS * fixP, valueT * valP, segT seg)
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC:
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0:
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
case BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE:
case BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21:
case BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC:
case BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC:
S_SET_THREAD_LOCAL (fixP->fx_addsy);
@ -6663,7 +6663,7 @@ aarch64_force_relocation (struct fix *fixp)
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC:
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0:
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
case BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE:
case BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21:
case BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC:
case BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC:
case BFD_RELOC_AARCH64_ADR_GOT_PAGE:

View File

@ -1,3 +1,8 @@
2013-05-28 Yufeng Zhang <yufeng.zhang@arm.com>
* gas/aarch64/tls.d: Update.
* gas/aarch64/tls.s: Update.
2013-05-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* gas/arm/armv8-a-bad.l: Update expected warning message.

View File

@ -6,7 +6,7 @@ Disassembly of section \.text:
0000000000000000 <.*>:
0: 90000000 adrp x0, 0 <var>
0: R_AARCH64_TLSDESC_ADR_PAGE var
0: R_AARCH64_TLSDESC_ADR_PAGE21 var
4: f9400001 ldr x1, \[x0\]
4: R_AARCH64_TLSDESC_LD64_LO12_NC var
8: 91000000 add x0, x0, #0x0

View File

@ -21,7 +21,7 @@
func:
// R_AARCH64_TLSDESC_ADR_PAGE var
// R_AARCH64_TLSDESC_ADR_PAGE21 var
adrp x0, :tlsdesc:var
// R_AARCH64_TLSDESC_LD64_LO12 var
ldr x1, [x0, #:tlsdesc_lo12:var]

View File

@ -1,3 +1,10 @@
2013-05-28 Yufeng Zhang <yufeng.zhang@arm.com>
* aarch64.h (R_AARCH64_TLSDESC_LD64_PREL19): Rename to ...
(R_AARCH64_TLSDESC_LD_PREL19): ... this.
(R_AARCH64_TLSDESC_ADR_PAGE): Rename to ...
(R_AARCH64_TLSDESC_ADR_PAGE21): ... this.
2013-05-22 H.J. Lu <hongjiu.lu@intel.com>
* common.h (EM_INTEL205): New.

View File

@ -178,9 +178,9 @@ RELOC_NUMBER (R_AARCH64_TLSLE_ADD_TPREL_LO12_NC, 551)
FAKE_RELOC (R_AARCH64_tls_max, 552)
FAKE_RELOC (R_AARCH64_tlsdesc_min, 560)
RELOC_NUMBER (R_AARCH64_TLSDESC_LD64_PREL19, 560)
RELOC_NUMBER (R_AARCH64_TLSDESC_LD_PREL19, 560)
RELOC_NUMBER (R_AARCH64_TLSDESC_ADR_PREL21, 561)
RELOC_NUMBER (R_AARCH64_TLSDESC_ADR_PAGE, 562)
RELOC_NUMBER (R_AARCH64_TLSDESC_ADR_PAGE21, 562)
RELOC_NUMBER (R_AARCH64_TLSDESC_LD64_LO12_NC, 563)
RELOC_NUMBER (R_AARCH64_TLSDESC_ADD_LO12_NC, 564)
RELOC_NUMBER (R_AARCH64_TLSDESC_OFF_G1, 565)