From 1b818b11ae8e50fbc0310dd234589c6343faa9db Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Sun, 15 May 2011 19:04:56 +0000 Subject: [PATCH] bfd/ * elfxx-mips.c (_bfd_mips_elf_check_relocs): Record both local and global GOT entries for GOT_PAGE relocations against global symbols. ld/testsuite/ * lib/ld-lib.exp (run_ld_link_tests): Simplify pass/fail logic. Fail if the link command fails and if no test rules are defined. * ld-mips-elf/reloc-6a.s, ld-mips-elf/reloc-6b.s: New tests. * ld-mips-elf/mips-elf.exp: Run them. --- bfd/ChangeLog | 5 +++++ bfd/elfxx-mips.c | 1 - ld/testsuite/ChangeLog | 7 +++++++ ld/testsuite/ld-mips-elf/mips-elf.exp | 12 ++++++++++++ ld/testsuite/lib/ld-lib.exp | 28 ++++++++------------------- 5 files changed, 32 insertions(+), 21 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index dea69f59d04..910d8bc04b2 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2011-05-15 Richard Sandiford + + * elfxx-mips.c (_bfd_mips_elf_check_relocs): Record both local and + global GOT entries for GOT_PAGE relocations against global symbols. + 2011-05-15 Richard Sandiford PR ld/12637 diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index ea3b53f4889..455627c38b5 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -7740,7 +7740,6 @@ _bfd_mips_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, if (!mips_elf_record_got_page_entry (info, abfd, r_symndx, addend)) return FALSE; - break; } /* Fall through. */ diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index be7772955f2..8c7d51570f4 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2011-05-15 Richard Sandiford + + * lib/ld-lib.exp (run_ld_link_tests): Simplify pass/fail logic. + Fail if the link command fails and if no test rules are defined. + * ld-mips-elf/reloc-6a.s, ld-mips-elf/reloc-6b.s: New tests. + * ld-mips-elf/mips-elf.exp: Run them. + 2011-05-06 Richard Sandiford * ld-arm/cortex-a8-fix-b-plt.s, ld-arm/cortex-a8-fix-b-plt.d, diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp index 6c283e206b1..d72ce484fbf 100644 --- a/ld/testsuite/ld-mips-elf/mips-elf.exp +++ b/ld/testsuite/ld-mips-elf/mips-elf.exp @@ -293,6 +293,18 @@ if {$has_newabi} { } run_dump_test "reloc-4" run_dump_test "reloc-5" +if { $has_newabi } { + run_ld_link_tests { + {"reloc test 6a" "-shared" + "-n32" "reloc-6a.s" + {} + "reloc-6a.so"} + {"reloc test 6b" "tmpdir/reloc-6a.so" + "-n32" "reloc-6b.s" + {} + "reloc-6b"} + } +} if {$has_newabi && $linux_gnu} { run_dump_test "eh-frame1-n32" diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp index 48e9635d03f..f444da7c83b 100644 --- a/ld/testsuite/lib/ld-lib.exp +++ b/ld/testsuite/lib/ld-lib.exp @@ -980,26 +980,21 @@ proc run_ld_link_tests { ldtests } { } # Catch assembler errors. - if { $is_unresolved != 0 } { + if { $is_unresolved } { unresolved $testname continue } if { [regexp ".*\\.a$" $binfile] } { if { ![ar_simple_create $ar $ld_options $binfile "$objfiles"] } { - fail $testname set failed 1 - } else { - set failed 0 } } elseif { ![ld_simple_link $ld $binfile "-L$srcdir/$subdir $ld_options $objfiles"] } { set maybe_failed 1 set ld_output "$exec_output" - } else { - set failed 0 } - if { $failed == 0 } { + if { !$failed } { foreach actionlist $actions { set action [lindex $actionlist 0] set progopts [lindex $actionlist 1] @@ -1036,10 +1031,7 @@ proc run_ld_link_tests { ldtests } { break } set maybe_failed 0 - } elseif { $maybe_failed != 0 } { - set failed 1 - break - } elseif { $dump_prog != "" } { + } elseif { !$maybe_failed && $dump_prog != "" } { set dumpfile [lindex $actionlist 2] set binary $dump_prog @@ -1081,18 +1073,14 @@ proc run_ld_link_tests { ldtests } { remote_file host delete "dump.out" } } - - if { $failed != 0 } { - fail $testname - } else { if { $is_unresolved == 0 } { - pass $testname - } } } - # Catch action errors. - if { $is_unresolved != 0 } { + if { $is_unresolved } { unresolved $testname - continue + } elseif { $maybe_failed || $failed } { + fail $testname + } else { + pass $testname } } } -- 2.47.3