binutils-gdb/ld/testsuite/ld-mips-elf/mips16-pic-1.gd
Richard Sandiford 020d725158 bfd/
* elfxx-mips.c (mips_got_entry): Adjust commentary.
	(mips_elf_create_local_got_entry): If given a symbol, check that it
	has been assigned to the local part of the GOT.
	(mips_elf_count_got_symbols): Take the bfd_link_info as argument
	instead of the master GOT.  Put all locally-binding symbols in
	the local area.
	(mips_elf_make_got_per_bfd): Use global_got_area to decide whether
	a symbol lives in the local or global area.
	(mips_elf_local_relocation_p): Remove check_forced argument and
	retain only the !check_forced behavior.
	(mips_elf_calculate_relocation): Adjust call accordingly.
	Use global_got_area to decide whether an output relocation
	should be local or global.  Explicitly decay R_MIPS_GOT_PAGE
	into R_MIPS_GOT_DISP where appropriate.  Fix selection of
	local vs. global semantics for R_MIPS*_26.  Remove redundant
	reevaluation of what is stored in was_local_p.
	(mips_elf_create_dynamic_relocation): Use global_got_area to decide
	whether the relocation should be against a global or local symbol.
	(mips_elf_lay_out_got): Update the GOT traversal after the above
	change to mips_elf_count_got_symbols.
	(mips_elf_adjust_addend): Adjust call to mips_elf_local_relocation_p.
	(_bfd_mips_elf_relocate_section): Likewise.
	(_bfd_mips_elf_finish_dynamic_symbol): Use global_got_area to decide
	whether the symbol has a global got entry.
	(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.

ld/testsuite/
	* ld-mips-elf/elf-rel-got-n32.d: Swap two local GOT entries
	and remove some duplication between the global and local GOT
	entries.  Adjust GP offsets accordingly.
	* ld-mips-elf/elf-rel-got-n64-linux.d: Likewise.
	* ld-mips-elf/elf-rel-xgot-n32.d: Reorder GOT entries and update
	GP offsets accordingly.
	* ld-mips-elf/elf-rel-xgot-n64-linux.d: Likewise.
	* ld-mips-elf/mips16-pic-1.gd: Move all global GOT entries to
	the local GOT.
	* ld-mips-elf/mips16-pic-1.dd: Update GP offsets accordingly.
	* ld-mips-elf/multi-got-no-shared.d: Adjust GP setup for
	smaller GOT sizes.
2010-09-19 10:26:28 +00:00

65 lines
1.4 KiB
GDScript3

Primary GOT:
Canonical gp value: 00057ff0
Reserved entries:
Address Access Initial Purpose
00050000 -32752\(gp\) 00000000 Lazy resolver
00050004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
Local entries:
Address Access Initial
# GOT page entry
00050008 -32744\(gp\) 00040000
# a_unused4
0005000c -32740\(gp\) 00040461
# b_unused4
00050010 -32736\(gp\) 00040465
# __fn_a_used6
00050014 -32732\(gp\) 00040c28
# __fn_b_used6
00050018 -32728\(gp\) 00040c3c
# __fn_a_used10
0005001c -32724\(gp\) 00040d08
# __fn_b_used10
00050020 -32720\(gp\) 00040d1c
# __fn_a_used12
00050024 -32716\(gp\) 00040d78
# __fn_b_used12
00050028 -32712\(gp\) 00040d8c
# a_used13
0005002c -32708\(gp\) 00040db0
# b_used13
00050030 -32704\(gp\) 00040dc4
# a_used17
00050034 -32700\(gp\) 00040e90
# b_used17
00050038 -32696\(gp\) 00040ea4
# a_used19
0005003c -32692\(gp\) 00040f00
# b_used19
00050040 -32688\(gp\) 00040f14
# a_used20
00050044 -32684\(gp\) 00040f38
# b_used20
00050048 -32680\(gp\) 00040f4c
# a_unused6
0005004c -32676\(gp\) 000404b1
# b_unused6
00050050 -32672\(gp\) 000404b5
# __fn_a_used8
00050054 -32668\(gp\) 00040c98
# __fn_b_used8
00050058 -32664\(gp\) 00040cac
# a_used15
0005005c -32660\(gp\) 00040e20
# b_used15
00050060 -32656\(gp\) 00040e34
# a_used21
00050064 -32652\(gp\) 00040f70
# b_used21
00050068 -32648\(gp\) 00040f84
0005006c -32644\(gp\) 00000000
#pass