mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
7f923b7fd2
Many ELF targets arrange to emit a number of section symbols in .dynsym for use by dynamic relocations. This happens before the dynamic relocations are output, and the need for those symbols determined. In most cases they are not needed. A proper analysis of the need for dynamic section symbols is target specific and tedious, so this patch just excludes them in the obvious case when no dynamic relocations are present. The patch also runs the new pr23161 and pr23162 tests on more targets. bfd/ * elf-bfd.h (struct elf_link_hash_table): Add "dynamic_relocs". * elflink.c (_bfd_elf_init_2_index_sections): Comment fix. (_bfd_elf_add_dynamic_entry): Set "dynamic_relocs". (_bfd_elf_link_renumber_dynsyms): Exclude all section symbols when "dynamic_relocs" is not set. * elfxx-mips.c (count_section_dynsyms): Likewise. ld/ * testsuite/ld-elf/readelf.exp: Delete DUMP and selection of variant ver_def.vd. * testsuite/ld-elf/ver_def-tic6x.vd: Delete. * testsuite/ld-elf/shared.exp: Run most pr23161 and pr23162 tests for linux, nacl and gnu targets. * testsuite/ld-mips-elf/mips-elf.exp: Set base_syms to 1. * testsuite/ld-elf/pr23161a.rd: Don't check reloc type. Allow any order of __bss_start, _edata and _end. * testsuite/ld-elf/pr23161b.rd: Don't check plt and dyn relocs. Allow and order of __bss_start, _edata and _end. * testsuite/ld-elf/pr23162.rd: Fail if __bss_start, _edata or _end relocs are present rather than testing for no relocations. * testsuite/ld-aarch64/gc-plt-relocs.d, * testsuite/ld-aarch64/ifunc-1-local.d, * testsuite/ld-aarch64/ifunc-1.d, * testsuite/ld-aarch64/ifunc-2-local.d, * testsuite/ld-aarch64/ifunc-2.d, * testsuite/ld-aarch64/ifunc-21.d, * testsuite/ld-aarch64/ifunc-3a.d, * testsuite/ld-arm/farcall-mixed-lib-v4t.d, * testsuite/ld-arm/farcall-mixed-lib.d, * testsuite/ld-arm/gc-hidden-1.d, * testsuite/ld-arm/tls-gdesc-got.d, * testsuite/ld-arm/tls-lib-loc.d, * testsuite/ld-arm/tls-longplt-lib.d, * testsuite/ld-arm/tls-thumb1.d, * testsuite/ld-cris/libdso-10.d, * testsuite/ld-cris/libdso-11.d, * testsuite/ld-cris/libdso-13b.d, * testsuite/ld-cris/libdso-14.d, * testsuite/ld-cris/libdso-15.d, * testsuite/ld-cris/pic-gc-72.d, * testsuite/ld-cris/pic-gc-73.d, * testsuite/ld-cris/tls-gc-71.d, * testsuite/ld-mips-elf/mips16-pic-4a.nd, * testsuite/ld-mips-elf/pic-and-nonpic-3a.dd, * testsuite/ld-mips-elf/pie-n32.d, * testsuite/ld-mips-elf/pie-n64.d, * testsuite/ld-mips-elf/pie-o32.d: Update for removed dynamic section symbols.
40 lines
866 B
Plaintext
40 lines
866 B
Plaintext
# GOT layout:
|
|
#
|
|
# -32752: lazy resolution function
|
|
# -32748: reserved for module pointer
|
|
# -32744: the GOT page entry
|
|
# -32740: foo's GOT entry
|
|
# -32736: ext's GOT entry
|
|
|
|
.*
|
|
|
|
Disassembly of section \.text:
|
|
|
|
00000800 <foo>:
|
|
800: 3c1c0001 lui gp,0x1
|
|
804: 279c7bf0 addiu gp,gp,31728
|
|
808: 0399e021 addu gp,gp,t9
|
|
80c: 8f99801c lw t9,-32740\(gp\)
|
|
810: 8f828018 lw v0,-32744\(gp\)
|
|
814: 03200008 jr t9
|
|
818: 24420000 addiu v0,v0,0
|
|
|
|
0000081c <bar>:
|
|
81c: f000 6a01 li v0,1
|
|
820: f3cf 0a10 la v0,83f0 .*
|
|
824: f400 3240 sll v0,16
|
|
828: e269 addu v0,v1
|
|
82a: f030 9a60 lw v1,-32736\(v0\)
|
|
82e: 659a move gp,v0
|
|
830: eb00 jr v1
|
|
832: 653b move t9,v1
|
|
#...
|
|
Disassembly of section \.MIPS\.stubs:
|
|
|
|
00000c00 <_MIPS_STUBS_>:
|
|
c00: 8f998010 lw t9,-32752\(gp\)
|
|
c04: 03e07825 move t7,ra
|
|
c08: 0320f809 jalr t9
|
|
c0c: 24180003 li t8,3
|
|
\.\.\.
|