diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2013-02-13 14:08:58 +0000 |
---|---|---|
committer | Richard Sandiford <rdsandiford@googlemail.com> | 2013-02-13 14:08:58 +0000 |
commit | 13db6b44eaf75fce5624b518185d98f81a48e603 (patch) | |
tree | aff93f9b46f4f6ebbc51459271510e53bc3b9f46 /ld/testsuite/ld-mips-elf/got-page-4b.s | |
parent | 1d3ffd6bfef1e9c7ceabba65a1d4cb0e7000c3aa (diff) | |
download | gdb-13db6b44eaf75fce5624b518185d98f81a48e603.zip gdb-13db6b44eaf75fce5624b518185d98f81a48e603.tar.gz gdb-13db6b44eaf75fce5624b518185d98f81a48e603.tar.bz2 |
bfd/
* elfxx-mips.c (mips_got_page_ref): New structure.
(mips_got_page_entry): Use a section rather than a (bfd, symndx)
pair to represent the anchor point.
(mips_got_info): Add a got_page_refs field.
(mips_elf_link_hash_table): Add a sym_cache field.
(mips_got_page_ref_hash, mips_got_page_ref_eq): New functions.
(mips_got_page_entry_hash, mips_got_page_entry_eq): Update for
new anchor representation.
(mips_elf_create_got_info): Create got_page_refs rather than
got_page_entries.
(mips_elf_record_got_page_ref): New function.
(mips_elf_pages_for_range): Move further down file.
(mips_elf_record_got_page_entry): Likewise. Take a got as argument.
Use a section rather than a (bfd, symndx) pair to represent the
anchor point.
(mips_elf_resolve_got_page_ref): New function.
(mips_elf_resolve_final_got_entries): Use it to populate
got_page_entries.
(_bfd_mips_elf_check_relocs): Call mips_elf_record_got_page_ref
rather than mips_elf_record_got_page_entry. Only nullify h
afterwards.
(mips_elf_lay_out_got): Call mips_elf_resolve_final_got_entries
earlier.
ld/testsuite/
* ld-mips-elf/mips16-pic-2.dd,
ld-mips-elf/mips16-pic-2.gd: Remove 3 unused local GOT entries.
* ld-mips-elf/got-page-4a.s, ld-mips-elf/got-page-4b.s,
ld-mips-elf/got-page-4a.d, ld-mips-elf/got-page-4a.got,
ld-mips-elf/got-page-4b.d, ld-mips-elf/got-page-4b.got,
ld-mips-elf/got-page-5.s, ld-mips-elf/got-page-5.d,
ld-mips-elf/got-page-5.got, ld-mips-elf/got-page-6.s,
ld-mips-elf/got-page-6.d, ld-mips-elf/got-page-6.got,
ld-mips-elf/got-page-7a.s, ld-mips-elf/got-page-7b.s,
ld-mips-elf/got-page-7c.s, ld-mips-elf/got-page-7d.s,
ld-mips-elf/got-page-7e.s, ld-mips-elf/got-page-7.d,
ld-mips-elf/got-page-7.got: New tests.
* ld-mips-elf/mips-elf.exp: Run them.
Diffstat (limited to 'ld/testsuite/ld-mips-elf/got-page-4b.s')
-rw-r--r-- | ld/testsuite/ld-mips-elf/got-page-4b.s | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/ld/testsuite/ld-mips-elf/got-page-4b.s b/ld/testsuite/ld-mips-elf/got-page-4b.s new file mode 100644 index 0000000..eab5277 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/got-page-4b.s @@ -0,0 +1,21 @@ + .globl foo + .ent foo +foo: + # Create page references to 16 values. The layout of the values + # in this input file requires at most 2 page entries. + .set y,0x02000000 + .rept 16 + lw $4,%got_page(1f)($gp) + addiu $4,$4,%got_ofst(1f) + .section .rodata.cst4,"aM",@progbits,4 +1: .word y + .set y,y+1 + .text + .endr + .end foo + + # Make sure the loadable size of the library is large. + .section .bss + .globl g +g: + .space 0x800000 |