mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-14 12:53:34 +08:00
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.
This commit is contained in:
parent
75fc9810e3
commit
77c56f443d
@ -1,3 +1,8 @@
|
||||
2011-05-15 Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
* elfxx-mips.c (_bfd_mips_elf_check_relocs): Record both local and
|
||||
global GOT entries for GOT_PAGE relocations against global symbols.
|
||||
|
||||
2011-05-13 Bernd Schmidt <bernds@codesourcery.com>
|
||||
|
||||
* config.bfd (tic6x-*-elf, tic6x-*-uclinux): New.
|
||||
|
@ -7743,7 +7743,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. */
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
2011-05-15 Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
* 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-13 Bernd Schmidt <bernds@codesourcery.com>
|
||||
|
||||
* ld-tic6x/dsbt.ld (OUTPUT_FORMAT): Add.
|
||||
|
@ -298,6 +298,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"
|
||||
|
11
ld/testsuite/ld-mips-elf/reloc-6a.s
Normal file
11
ld/testsuite/ld-mips-elf/reloc-6a.s
Normal file
@ -0,0 +1,11 @@
|
||||
.globl us
|
||||
.globl gs
|
||||
us:
|
||||
gs:
|
||||
ls:
|
||||
lw $4,%got_page(us)($gp)
|
||||
addiu $4,$4,%got_ofst(us)
|
||||
lw $4,%got_page(gs)($gp)
|
||||
addiu $4,$4,%got_ofst(gs)
|
||||
lw $4,%got_page(ls)($gp)
|
||||
addiu $4,$4,%got_ofst(ls)
|
11
ld/testsuite/ld-mips-elf/reloc-6b.s
Normal file
11
ld/testsuite/ld-mips-elf/reloc-6b.s
Normal file
@ -0,0 +1,11 @@
|
||||
.globl __start
|
||||
.globl gs
|
||||
__start:
|
||||
gs:
|
||||
ls:
|
||||
lw $4,%got_page(us)($gp)
|
||||
addiu $4,$4,%got_ofst(us)
|
||||
lw $4,%got_page(gs)($gp)
|
||||
addiu $4,$4,%got_ofst(gs)
|
||||
lw $4,%got_page(ls)($gp)
|
||||
addiu $4,$4,%got_ofst(ls)
|
@ -978,26 +978,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]
|
||||
@ -1034,10 +1029,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
|
||||
|
||||
@ -1079,18 +1071,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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user