mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 20:28:28 +08:00
bfd/
* elfxx-mips.c (mips_elf_count_global_tls_entries) (mips_elf_count_global_tls_relocs): Don't count indirect or warning symbols. (mips_elf_multi_got, mips_elf_lay_out_got): Assert that the right number of TLS entries were allocated. ld/testsuite/ * ld-mips-elf/tlsdyn-o32-2.got, ld-mips-elf/tlsdyn-o32-3.got: Remove unused GOT entries.
This commit is contained in:
@ -1,3 +1,11 @@
|
|||||||
|
2013-02-11 Richard Sandiford <rdsandiford@googlemail.com>
|
||||||
|
|
||||||
|
* elfxx-mips.c (mips_elf_count_global_tls_entries)
|
||||||
|
(mips_elf_count_global_tls_relocs): Don't count indirect or
|
||||||
|
warning symbols.
|
||||||
|
(mips_elf_multi_got, mips_elf_lay_out_got): Assert that the right
|
||||||
|
number of TLS entries were allocated.
|
||||||
|
|
||||||
2013-02-11 Richard Sandiford <rdsandiford@googlemail.com>
|
2013-02-11 Richard Sandiford <rdsandiford@googlemail.com>
|
||||||
|
|
||||||
* elfxx-mips.c (mips_elf_sort_hash_table_f): Remove asserts.
|
* elfxx-mips.c (mips_elf_sort_hash_table_f): Remove asserts.
|
||||||
|
@ -2982,6 +2982,10 @@ mips_elf_count_global_tls_entries (void *arg1, void *arg2)
|
|||||||
= (struct mips_elf_link_hash_entry *) arg1;
|
= (struct mips_elf_link_hash_entry *) arg1;
|
||||||
struct mips_elf_count_tls_arg *arg = arg2;
|
struct mips_elf_count_tls_arg *arg = arg2;
|
||||||
|
|
||||||
|
if (hm->root.root.type == bfd_link_hash_indirect
|
||||||
|
|| hm->root.root.type == bfd_link_hash_warning)
|
||||||
|
return 1;
|
||||||
|
|
||||||
if (hm->tls_type & GOT_TLS_GD)
|
if (hm->tls_type & GOT_TLS_GD)
|
||||||
arg->needed += 2;
|
arg->needed += 2;
|
||||||
if (hm->tls_type & GOT_TLS_IE)
|
if (hm->tls_type & GOT_TLS_IE)
|
||||||
@ -3000,6 +3004,10 @@ mips_elf_count_global_tls_relocs (void *arg1, void *arg2)
|
|||||||
= (struct mips_elf_link_hash_entry *) arg1;
|
= (struct mips_elf_link_hash_entry *) arg1;
|
||||||
struct mips_elf_count_tls_arg *arg = arg2;
|
struct mips_elf_count_tls_arg *arg = arg2;
|
||||||
|
|
||||||
|
if (hm->root.root.type == bfd_link_hash_indirect
|
||||||
|
|| hm->root.root.type == bfd_link_hash_warning)
|
||||||
|
return 1;
|
||||||
|
|
||||||
arg->needed += mips_tls_got_relocs (arg->info, hm->tls_type, &hm->root);
|
arg->needed += mips_tls_got_relocs (arg->info, hm->tls_type, &hm->root);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
@ -4688,6 +4696,7 @@ mips_elf_multi_got (bfd *abfd, struct bfd_link_info *info,
|
|||||||
all non-TLS entries. */
|
all non-TLS entries. */
|
||||||
g->tls_assigned_gotno = g->local_gotno + g->global_gotno;
|
g->tls_assigned_gotno = g->local_gotno + g->global_gotno;
|
||||||
htab_traverse (g->got_entries, mips_elf_initialize_tls_index, g);
|
htab_traverse (g->got_entries, mips_elf_initialize_tls_index, g);
|
||||||
|
BFD_ASSERT (g->tls_assigned_gotno == assign);
|
||||||
|
|
||||||
/* Move onto the next GOT. It will be a secondary GOT if nonull. */
|
/* Move onto the next GOT. It will be a secondary GOT if nonull. */
|
||||||
g = gn;
|
g = gn;
|
||||||
@ -8956,6 +8965,8 @@ mips_elf_lay_out_got (bfd *output_bfd, struct bfd_link_info *info)
|
|||||||
/* Set up TLS entries. */
|
/* Set up TLS entries. */
|
||||||
g->tls_assigned_gotno = g->global_gotno + g->local_gotno;
|
g->tls_assigned_gotno = g->global_gotno + g->local_gotno;
|
||||||
htab_traverse (g->got_entries, mips_elf_initialize_tls_index, g);
|
htab_traverse (g->got_entries, mips_elf_initialize_tls_index, g);
|
||||||
|
BFD_ASSERT (g->tls_assigned_gotno
|
||||||
|
== g->global_gotno + g->local_gotno + g->tls_gotno);
|
||||||
|
|
||||||
/* Allocate room for the TLS relocations. */
|
/* Allocate room for the TLS relocations. */
|
||||||
arg.info = info;
|
arg.info = info;
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2013-02-11 Richard Sandiford <rdsandiford@googlemail.com>
|
||||||
|
|
||||||
|
* ld-mips-elf/tlsdyn-o32-2.got, ld-mips-elf/tlsdyn-o32-3.got: Remove
|
||||||
|
unused GOT entries.
|
||||||
|
|
||||||
2013-02-07 H.J. Lu <hongjiu.lu@intel.com>
|
2013-02-07 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR ld/15107
|
PR ld/15107
|
||||||
|
@ -15,5 +15,4 @@ OFFSET TYPE VALUE
|
|||||||
Contents of section .got:
|
Contents of section .got:
|
||||||
10000020 00000000 80000000 004004ac 00000000 .*
|
10000020 00000000 80000000 004004ac 00000000 .*
|
||||||
10000030 00000000 00000000 00000000 00000000 .*
|
10000030 00000000 00000000 00000000 00000000 .*
|
||||||
10000040 00000001 00000000 00000000 00000000 .*
|
10000040 00000001 00000000 00000000 .*
|
||||||
10000050 00000000 00000000 .*
|
|
||||||
|
@ -15,5 +15,4 @@ OFFSET TYPE VALUE
|
|||||||
Contents of section .got:
|
Contents of section .got:
|
||||||
10000020 00000000 80000000 0040055c 00000000 .*
|
10000020 00000000 80000000 0040055c 00000000 .*
|
||||||
10000030 00000000 00000000 00000000 00000000 .*
|
10000030 00000000 00000000 00000000 00000000 .*
|
||||||
10000040 00000001 00000000 00000000 00000000 .*
|
10000040 00000001 00000000 00000000 .*
|
||||||
10000050 00000000 00000000 .*
|
|
||||||
|
Reference in New Issue
Block a user