mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
020d725158
* 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.
65 lines
1.4 KiB
GDScript3
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
|
|
|