aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-mips-elf/got-page-4b.s
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2013-02-13 14:08:58 +0000
committerRichard Sandiford <rdsandiford@googlemail.com>2013-02-13 14:08:58 +0000
commit13db6b44eaf75fce5624b518185d98f81a48e603 (patch)
treeaff93f9b46f4f6ebbc51459271510e53bc3b9f46 /ld/testsuite/ld-mips-elf/got-page-4b.s
parent1d3ffd6bfef1e9c7ceabba65a1d4cb0e7000c3aa (diff)
downloadgdb-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.s21
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