8275b357ad
* elfxx-mips.c (mips_elf_link_hash_table): Add computed_got_sizes. (mips_elf_record_global_got_symbol): Increment local_gotno for each forced-local symbol. (_bfd_mips_elf_check_relocs): Pass forced-local call symbols to mips_elf_record_global_got_symbol for VxWorks too. (_bfd_mips_elf_always_size_sections): Set computed_got_sizes to true after computing the GOT size. (_bfd_mips_elf_hide_symbol): Increase local_gotno whenever got.offset == 1. Only adjust global_gotno if computed_got_sizes. For VxWorks, add a local entry when hiding a symbol that needs a plt but has not been marked as needing a global got entry. (_bfd_mips_elf_link_hash_table_create): Set computed_got_sizes to false. ld/testsuite/ * ld-mips-elf/vxworks-forced-local-1.d, * ld-mips-elf/vxworks-forced-local-1.s, * ld-mips-elf/vxworks-forced-local-1.ver: New test. * ld-mips-elf/mips-elf.exp: Run it. * ld-mips-elf/tlsdyn-o32-2.d: Adjust for removal of unnecessary local GOT entry. * ld-mips-elf/tlsdyn-o32-2.got: Likewise. * ld-mips-elf/tlsdyn-o32-3.d: Likewise. * ld-mips-elf/tlsdyn-o32-3.got: Likewise. * ld-mips-elf/vxworks1-lib.dd: Likewise. * ld-mips-elf/vxworks1-lib.rd: Likewise.
13 lines
172 B
ArmAsm
13 lines
172 B
ArmAsm
.globl foo1
|
|
.globl foo2
|
|
.globl foo3
|
|
lw $4,%call16(foo1)($gp)
|
|
lw $4,%call16(foo2)($gp)
|
|
lw $4,%call16(foo3)($gp)
|
|
lw $4,%got(bar)($gp)
|
|
foo1:
|
|
nop
|
|
foo2:
|
|
nop
|
|
foo3:
|
|
nop
|