This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 4/5] Improve handling of R_MIPS_32 GOT slots


On Sat, Jun 28, 2008 at 05:51:47PM +0100, Richard Sandiford wrote:
> bfd/
> 	* 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".

OK.

-- 
Daniel Jacobowitz
CodeSourcery


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]