23cc69b663
* elfxx-mips.c (mips_got_info): Add a "reloc_only_gotno" field. (mips_elf_got_section): Delete. (mips_elf_sort_hash_table): Use g->reloc_only_gotno to decide how many reloc-only entries there are. (mips_elf_count_got_symbols): Adjust g->reloc_only_gotno as well as g->global_gotno. (mips_elf_make_got_per_bfd): Initialize reloc_only_gotno. (mips_elf_multi_got): Likewise. Use gg->reloc_only_gotno rather than gg->assigned_gotno to store the number of reloc-only GOT entries. (mips_elf_create_got_section): Remove the MAYBE_EXCLUDE parameter. Initialize reloc_only_gotno. (mips_elf_calculate_relocation): Check htab->got_info instead of dynobj when deciding whether to call mips_elf_adjust_gp, (_bfd_mips_elf_create_dynamic_sections): Adjust the call to mips_elf_create_got_section. (mips_elf_record_relocs): Likewise. Remove redundant "dynobj == NULL" code. Do not use mips_elf_create_got_section or mips_elf_record_global_got_symbol for R_MIPS_32, R_MIPS_REL32 and R_MIPS_64; limit global_got_area to GGA_RELOC_ONLY instead. (_bfd_mips_elf_finish_dynamic_symbol): Use htab->sgot instead of mips_elf_got_section. (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise. (_bfd_mips_elf_finish_dynamic_sections): Likewise. Move the initial assignment of G to the block that uses it; it is used for an unrelated purpose later. ld/testsuite/ * ld-mips-elf/tls-hidden4.got, ld-mips-elf/tls-hidden4.r: We have removed an unused GOT entry that was allocated for the R_MIPS_32 relocation against "undef", so adjust addresses down by 4 bytes. * ld-mips-elf/got-dump-1.d, ld-mips-elf/got-dump-2.d: We have changed the order of the GOT entries so that reloc-only ones come last. "undef" is only referred to by dynamic relocations, so it now comes after "glob". * ld-mips-elf/mips16-pic-2.dd, ld-mips-elf/mips16-pic-2.gd, ld-mips-elf/mips16-pic-2.nd, ld-mips-elf/mips16-pic-2.rd: We have removed two unused local GOT entries that were originally created as global entries for the hidden symbols "used2" and "used3". "used4" and "used5" are only referred to by relocations, so they now come after "used6" and "used7".
20 lines
684 B
R
20 lines
684 B
R
|
|
Relocation section '\.rel\.dyn' at offset .* contains .* entries:
|
|
Offset Info Type Sym\.Value Sym\. Name
|
|
00000000 00000000 R_MIPS_NONE
|
|
#
|
|
# The order and addresses of the next eight entries don't matter. The
|
|
# important thing is that there is exactly one entry per GOT TLS slot
|
|
# and that the addresses match those in the .got dump.
|
|
#
|
|
001c4014 0000002f R_MIPS_TLS_TPREL3
|
|
001c4018 0000002f R_MIPS_TLS_TPREL3
|
|
001c401c 0000002f R_MIPS_TLS_TPREL3
|
|
001c4020 0000002f R_MIPS_TLS_TPREL3
|
|
001d002c 0000002f R_MIPS_TLS_TPREL3
|
|
001d0030 0000002f R_MIPS_TLS_TPREL3
|
|
001d0034 0000002f R_MIPS_TLS_TPREL3
|
|
001d0038 0000002f R_MIPS_TLS_TPREL3
|
|
.* R_MIPS_REL32 .*
|
|
#pass
|