diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2006-06-11 08:33:27 +0000 |
---|---|---|
committer | Richard Sandiford <rdsandiford@googlemail.com> | 2006-06-11 08:33:27 +0000 |
commit | 5108fc1bc95e59df3b7e56fa4144d8f438dfdbdc (patch) | |
tree | b858bef6b05cca3be6f6e7258c0f1056835af232 /ld/testsuite/ld-mips-elf/stub-dynsym-1.s | |
parent | dbed2504e9706bb9b5c4486b294bffb8b483b23b (diff) | |
download | gdb-5108fc1bc95e59df3b7e56fa4144d8f438dfdbdc.zip gdb-5108fc1bc95e59df3b7e56fa4144d8f438dfdbdc.tar.gz gdb-5108fc1bc95e59df3b7e56fa4144d8f438dfdbdc.tar.bz2 |
bfd/
* elfxx-mips.c (mips_elf_link_hash_table): Add function_stub_size.
(STUB_ORI): New macro.
(STUB_LI16U): Fix formatting.
(MIPS_FUNCTION_STUB_SIZE): Delete.
(MIPS_FUNCTION_STUB_MAX_SIZE): Likewise.
(MIPS_FUNCTION_STUB_NORMAL_SIZE): New macro.
(MIPS_FUNCTION_STUB_BIG_SIZE): Likewise.
(_bfd_mips_elf_adjust_dynamic_symbol): Use htab->function_stub_size
instead of MIPS_FUNCTION_STUB_SIZE.
(count_section_dynsyms): New function, split out from
_bfd_mips_elf_final_link.
(_bfd_mips_elf_always_size_sections): Get a worst-case estimate
of the number of dynamic symbols needed and use it to set up
function_stub_size. Use function_stub_size rather than
MIPS_FUNCTION_STUB_SIZE to determine the size of the stub section.
Use 16-byte stubs for 0x10000 dynamic symbols.
(_bfd_mips_elf_size_dynamic_sections): Use htab->function_stub_size
instead of MIPS_FUNCTION_STUB_SIZE. Fix formatting.
(_bfd_mips_elf_finish_dynamic_symbol): Likewise. Change the
size of the stub buffer from MIPS_FUNCTION_STUB_MAX_SIZE to
MIPS_FUNCTION_STUB_BIG_SIZE. Tweak the check for unhandled dynindxes.
Use MIPS_FUNCTION_STUB_BIG_SIZE rather than a hard-coded 20.
Use STUB_ORI rather than STUB_LI16U for big stubs.
(_bfd_mips_elf_link_hash_table_create): Initialize function_stub_size.
(_bfd_mips_elf_final_link): Use count_section_dynsyms.
ld/testsuite/
* ld-mips-elf/stub-dynsym-1.s,
* ld-mips-elf/stub-dynsym-1.ld,
* ld-mips-elf/stub-dynsym-1-7fff.d,
* ld-mips-elf/stub-dynsym-1-8000.d,
* ld-mips-elf/stub-dynsym-1-fff0.d,
* ld-mips-elf/stub-dynsym-1-10000.d,
* ld-mips-elf/stub-dynsym-1-2fe80.d: New test.
* ld-mips-elf/mips-elf.exp: Run it.
Diffstat (limited to 'ld/testsuite/ld-mips-elf/stub-dynsym-1.s')
-rw-r--r-- | ld/testsuite/ld-mips-elf/stub-dynsym-1.s | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/ld/testsuite/ld-mips-elf/stub-dynsym-1.s b/ld/testsuite/ld-mips-elf/stub-dynsym-1.s new file mode 100644 index 0000000..15d2e1b --- /dev/null +++ b/ld/testsuite/ld-mips-elf/stub-dynsym-1.s @@ -0,0 +1,10 @@ + .macro decl + .global exported\@ + .equ exported\@,\@ + .endm + + .rept dynsym - base_syms + decl + .endr + + lw $25,%call16(foo)($gp) |