binutils archive tests

There are a number of targets that don't support thin archives (*),
and vms doesn't even support file name extensions other than .obj for
archives containing object files.  This patch adjusts the testsuite
to cater for the vms restriction, and reenables testing for non-ELF
alpha targets.  That adds a few alpha-dec-vms fails and one
alpha-linuxecoff fail but testsuite fails on those targets are nothing
new.

(*) It might seem like they do if binutils is built with
--enable-plugins but the plugin archive support is broken, causing the
wrong type of archives to be created by ar for those targets.

	* testsuite/binutils-all/ar.exp (obj): Set up object file name
	extension.  Use throughout.  Don't completely exclude non-ELF
	alpha targets.  Run long_filenames test for tic30.  Exclude thin
	archive tests for aix, ecoff and vms.
	* estsuite/binutils-all/objdump.exp (obj): Set up object file name
	extension.  Use throughout.  Don't exclude non-ELF alpha targets
	from "bintest.a".
This commit is contained in:
Alan Modra
2020-06-02 15:00:14 +09:30
parent 190eb1ddba
commit 0bee4d1c08
3 changed files with 135 additions and 105 deletions

View File

@ -26,8 +26,9 @@ if ![is_remote host] {
}
}
if { [istarget "alpha-*-*"] && ![is_elf_format] } then {
return
set obj o
if { [istarget "*-*-vms"] } then {
set obj obj
}
# send_user "Version [binutil_version $AR]"
@ -189,21 +190,22 @@ proc symbol_table { } {
global NM
global srcdir
global subdir
global obj
set testname "ar symbol table"
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] {
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.${obj}] {
unresolved $testname
return
}
if [is_remote host] {
set archive artest.a
set objfile [remote_download host tmpdir/bintest.o]
set objfile [remote_download host tmpdir/bintest.${obj}]
remote_file host delete $archive
} else {
set archive tmpdir/artest.a
set objfile tmpdir/bintest.o
set objfile tmpdir/bintest.${obj}
}
remote_file build delete tmpdir/artest.a
@ -215,12 +217,12 @@ proc symbol_table { } {
}
set got [binutils_run $NM "--print-armap $archive"]
if { ![string match "*text_symbol in bintest.o*" $got] \
|| ![string match "*data_symbol in bintest.o*" $got] \
|| ![string match "*common_symbol in bintest.o*" $got] \
|| [string match "*static_text_symbol in bintest.o*" $got] \
|| [string match "*static_data_symbol in bintest.o*" $got] \
|| [string match "*external_symbol in bintest.o*" $got] } {
if { ![string match "*text_symbol in bintest.${obj}*" $got] \
|| ![string match "*data_symbol in bintest.${obj}*" $got] \
|| ![string match "*common_symbol in bintest.${obj}*" $got] \
|| [string match "*static_text_symbol in bintest.${obj}*" $got] \
|| [string match "*static_data_symbol in bintest.${obj}*" $got] \
|| [string match "*external_symbol in bintest.${obj}*" $got] } {
fail $testname
return
}
@ -237,21 +239,22 @@ proc thin_archive { bfdtests } {
global srcdir
global subdir
global base_dir
global obj
set testname "ar thin archive"
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] {
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.${obj}] {
unresolved $testname
return
}
if [is_remote host] {
set archive artest.a
set objfile [remote_download host tmpdir/bintest.o]
set objfile [remote_download host tmpdir/bintest.${obj}]
remote_file host delete $archive
} else {
set archive tmpdir/artest.a
set objfile tmpdir/bintest.o
set objfile tmpdir/bintest.${obj}
}
remote_file build delete tmpdir/artest.a
@ -272,12 +275,12 @@ proc thin_archive { bfdtests } {
}
set got [binutils_run $NM "--print-armap $archive"]
if { ![string match "*text_symbol in *bintest.o*" $got] \
|| ![string match "*data_symbol in *bintest.o*" $got] \
|| ![string match "*common_symbol in *bintest.o*" $got] \
|| [string match "*static_text_symbol in *bintest.o*" $got] \
|| [string match "*static_data_symbol in *bintest.o*" $got] \
|| [string match "*external_symbol in *bintest.o*" $got] } {
if { ![string match "*text_symbol in *bintest.${obj}*" $got] \
|| ![string match "*data_symbol in *bintest.${obj}*" $got] \
|| ![string match "*common_symbol in *bintest.${obj}*" $got] \
|| [string match "*static_text_symbol in *bintest.${obj}*" $got] \
|| [string match "*static_data_symbol in *bintest.${obj}*" $got] \
|| [string match "*external_symbol in *bintest.${obj}*" $got] } {
fail $testname
return
}
@ -294,10 +297,11 @@ proc thin_archive_with_nested { bfdtests } {
global srcdir
global subdir
global base_dir
global obj
set testname "ar thin archive with nested archive"
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] {
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.${obj}] {
unresolved $testname
return
}
@ -305,12 +309,12 @@ proc thin_archive_with_nested { bfdtests } {
if [is_remote host] {
set archive artest.a
set archive2 artest2.a
set objfile [remote_download host tmpdir/bintest.o]
set objfile [remote_download host tmpdir/bintest.${obj}]
remote_file host delete $archive
} else {
set archive tmpdir/artest.a
set archive2 tmpdir/artest2.a
set objfile tmpdir/bintest.o
set objfile tmpdir/bintest.${obj}
}
remote_file build delete tmpdir/artest.a
@ -346,12 +350,12 @@ proc thin_archive_with_nested { bfdtests } {
}
set got [binutils_run $NM "--print-armap $archive"]
if { ![string match "*text_symbol in *bintest.o*" $got] \
|| ![string match "*data_symbol in *bintest.o*" $got] \
|| ![string match "*common_symbol in *bintest.o*" $got] \
|| [string match "*static_text_symbol in *bintest.o*" $got] \
|| [string match "*static_data_symbol in *bintest.o*" $got] \
|| [string match "*external_symbol in *bintest.o*" $got] } {
if { ![string match "*text_symbol in *bintest.${obj}*" $got] \
|| ![string match "*data_symbol in *bintest.${obj}*" $got] \
|| ![string match "*common_symbol in *bintest.${obj}*" $got] \
|| [string match "*static_text_symbol in *bintest.${obj}*" $got] \
|| [string match "*static_data_symbol in *bintest.${obj}*" $got] \
|| [string match "*external_symbol in *bintest.${obj}*" $got] } {
fail $testname
return
}
@ -366,21 +370,22 @@ proc argument_parsing { } {
global AS
global srcdir
global subdir
global obj
set testname "ar argument parsing"
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] {
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.${obj}] {
unresolved $testname
return
}
if [is_remote host] {
set archive artest.a
set objfile [remote_download host tmpdir/bintest.o]
set objfile [remote_download host tmpdir/bintest.${obj}]
remote_file host delete $archive
} else {
set archive tmpdir/artest.a
set objfile tmpdir/bintest.o
set objfile tmpdir/bintest.${obj}
}
remote_file build delete tmpdir/artest.a
@ -402,21 +407,22 @@ proc deterministic_archive { } {
global NM
global srcdir
global subdir
global obj
set testname "ar deterministic archive"
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] {
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.${obj}] {
unresolved $testname
return
}
if [is_remote host] {
set archive artest.a
set objfile [remote_download host tmpdir/bintest.o]
set objfile [remote_download host tmpdir/bintest.${obj}]
remote_file host delete $archive
} else {
set archive tmpdir/artest.a
set objfile tmpdir/bintest.o
set objfile tmpdir/bintest.${obj}
}
remote_file build delete tmpdir/artest.a
@ -430,13 +436,13 @@ proc deterministic_archive { } {
set got [binutils_run $AR "tv $archive"]
# This only checks the file mode and uid/gid. We can't easily match
# date because it's printed with the user's timezone.
if ![string match "rw-r--r-- 0/0 *bintest.o*" $got] {
if ![string match "rw-r--r-- 0/0 *bintest.${obj}*" $got] {
fail $testname
return
}
set got [binutils_run $AR "tvO $archive"]
if ![string match "rw-r--r-- 0/0 *bintest.o 0x*" $got] {
if ![string match "rw-r--r-- 0/0 *bintest.${obj} 0x*" $got] {
fail $testname
return
}
@ -450,21 +456,22 @@ proc unique_symbol { } {
global NM
global srcdir
global subdir
global obj
set testname "ar unique symbol in archive"
if ![binutils_assemble $srcdir/$subdir/unique.s tmpdir/unique.o] {
if ![binutils_assemble $srcdir/$subdir/unique.s tmpdir/unique.${obj}] {
unresolved $testname
return
}
if [is_remote host] {
set archive artest.a
set objfile [remote_download host tmpdir/unique.o]
set objfile [remote_download host tmpdir/unique.${obj}]
remote_file host delete $archive
} else {
set archive tmpdir/artest.a
set objfile tmpdir/unique.o
set objfile tmpdir/unique.${obj}
}
remote_file build delete tmpdir/artest.a
@ -476,7 +483,7 @@ proc unique_symbol { } {
}
set got [binutils_run $NM "--print-armap $archive"]
if ![string match "*foo in *unique.o*" $got] {
if ![string match "*foo in *unique.${obj}*" $got] {
fail $testname
return
}
@ -491,21 +498,22 @@ proc delete_an_element { } {
global AS
global srcdir
global subdir
global obj
set testname "ar deleting an element"
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] {
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.${obj}] {
unresolved $testname
return
}
if [is_remote host] {
set archive artest.a
set objfile [remote_download host tmpdir/bintest.o]
set objfile [remote_download host tmpdir/bintest.${obj}]
remote_file host delete $archive
} else {
set archive tmpdir/artest.a
set objfile tmpdir/bintest.o
set objfile tmpdir/bintest.${obj}
}
remote_file build delete tmpdir/artest.a
@ -532,21 +540,22 @@ proc move_an_element { } {
global AS
global srcdir
global subdir
global obj
set testname "ar moving an element"
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] {
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.${obj}] {
unresolved $testname
return
}
if [is_remote host] {
set archive artest.a
set objfile [remote_download host tmpdir/bintest.o]
set objfile [remote_download host tmpdir/bintest.${obj}]
remote_file host delete $archive
} else {
set archive tmpdir/artest.a
set objfile tmpdir/bintest.o
set objfile tmpdir/bintest.${obj}
}
remote_file build delete tmpdir/artest.a
@ -612,10 +621,11 @@ proc extract_an_element { } {
global AR
global AS
global srcdir
global subdir
global obj
set testname "ar extracting an element"
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.${obj}] {
unresolved $testname
return
@ -623,10 +633,10 @@ proc extract_an_element { } {
set archive artest.a
if [is_remote host] {
if [is_remote host] {
set objfile [remote_download host tmpdir/bintest.${obj}]
remote_file host delete $archive
} else {
} else {
set objfile tmpdir/bintest.${obj}
}
@ -654,6 +664,7 @@ proc many_files { } {
global AR
global AS
global srcdir
global subdir
global obj
set testname "ar many files"
@ -673,7 +684,7 @@ proc many_files { } {
puts $ofd "data_sym$i:"
puts $ofd " .long $i"
close $ofd
set ofile "tmpdir/d-$i.${obj}"
if ![binutils_assemble $sfile $ofile] {
unresolved $testname
@ -710,12 +721,18 @@ proc many_files { } {
# Only run the bfdtest checks if the programs exist. Since these
# programs are built but not installed, running the testsuite on an
# installed toolchain will produce ERRORs about missing bfdtest1 and
# bfdtest2 executables.
# bfdtest2 executables.
if { [file exists $base_dir/bfdtest1] && [file exists $base_dir/bfdtest2] } {
set bfdtests [list bfdtest1 bfdtest2]
long_filenames $bfdtests
thin_archive $bfdtests
long_filenames $bfdtests
# xcoff, ecoff, and vms archive support doesn't handle thin archives
if { ![istarget "*-*-aix*"]
&& ![istarget "*-*-*ecoff"]
&& ![istarget "*-*-vms"] } {
thin_archive $bfdtests
thin_archive_with_nested $bfdtests
}
}

View File

@ -58,38 +58,40 @@ if [regexp $want $got] then {
fail "objdump -i"
}
set obj o
if { [istarget "*-*-vms"] } then {
set obj obj
}
# The remaining tests require a test file.
if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then {
if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.${obj}]} then {
fail "objdump (assembling bintest.s)"
return
}
if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest2.o]} then {
if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest2.${obj}]} then {
fail "objdump (assembling)"
return
}
if [is_remote host] {
set testfile [remote_download host tmpdir/bintest.o]
set testfile2 [remote_download host tmpdir/bintest2.o]
set testfile [remote_download host tmpdir/bintest.${obj}]
set testfile2 [remote_download host tmpdir/bintest2.${obj}]
} else {
set testfile tmpdir/bintest.o
set testfile2 tmpdir/bintest2.o
set testfile tmpdir/bintest.${obj}
set testfile2 tmpdir/bintest2.${obj}
}
# $testarchive exists only if it is supported.
set testarchive tmpdir/bintest.a
remote_file host file delete $testarchive
if { ![istarget "alpha-*-*"] || [is_elf_format] } then {
set got [binutils_run $AR "rc tmpdir/bintest.a $testfile2"]
if ![string match "" $got] then {
fail "bintest.a"
remote_file host delete tmpdir/bintest.a
} elseif [is_remote host] {
set testarchive [remote_download host tmpdir/bintest.a]
}
remote_file host delete tmpdir/bintest2.o
set got [binutils_run $AR "rc tmpdir/bintest.a $testfile2"]
if ![string match "" $got] then {
fail "bintest.a"
remote_file host delete tmpdir/bintest.a
} elseif [is_remote host] {
set testarchive [remote_download host tmpdir/bintest.a]
}
remote_file host delete tmpdir/bintest2.${obj}
# Test objdump -f
@ -100,7 +102,7 @@ proc test_objdump_f { testfile dumpfile } {
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f $testfile"]
set want "$dumpfile:\[ \]*file format.*architecture:\[ \]*${cpus_regex}.*HAS_RELOC.*HAS_SYMS"
set want "${dumpfile}.*:\[ \]*file format.*architecture:\[ \]*${cpus_regex}.*HAS_RELOC.*HAS_SYMS"
if ![regexp $want $got] then {
fail "objdump -f ($testfile, $dumpfile)"
@ -111,7 +113,7 @@ proc test_objdump_f { testfile dumpfile } {
test_objdump_f $testfile $testfile
if { [ remote_file host exists $testarchive ] } then {
test_objdump_f $testarchive bintest2.o
test_objdump_f $testarchive bintest2.${obj}
}
# Test objdump -h
@ -122,7 +124,7 @@ proc test_objdump_h { testfile dumpfile } {
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -h $testfile"]
set want "$dumpfile:\[ \]*file format.*Sections.*\[0-9\]+\[ \]+\[^ \]*(text|TEXT|P|\\\$CODE\\\$)\[^ \]*\[ \]*(\[0-9a-fA-F\]+).*\[0-9\]+\[ \]+\[^ \]*(\\.data|DATA|D_1)\[^ \]*\[ \]*(\[0-9a-fA-F\]+)"
set want "${dumpfile}.*:\[ \]*file format.*Sections.*\[0-9\]+\[ \]+\[^ \]*(text|TEXT|P|\\\$CODE\\\$)\[^ \]*\[ \]*(\[0-9a-fA-F\]+).*\[0-9\]+\[ \]+\[^ \]*(\\.data|DATA|D_1)\[^ \]*\[ \]*(\[0-9a-fA-F\]+)"
if ![regexp $want $got all text_name text_size data_name data_size] then {
fail "objdump -h ($testfile, $dumpfile)"
@ -152,7 +154,7 @@ proc test_objdump_h { testfile dumpfile } {
test_objdump_h $testfile $testfile
if { [ remote_file host exists $testarchive ] } then {
test_objdump_h $testarchive bintest2.o
test_objdump_h $testarchive bintest2.${obj}
}
# Test objdump -t
@ -192,7 +194,7 @@ proc test_objdump_r { testfile dumpfile } {
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -r $testfile"]
set want "$dumpfile:\[ \]*file format.*RELOCATION RECORDS FOR \\\[\[^\]\]*(text|TEXT|P|\\\$CODE\\\$)\[^\]\]*\\\].*external_symbol"
set want "${dumpfile}.*:\[ \]*file format.*RELOCATION RECORDS FOR \\\[\[^\]\]*(text|TEXT|P|\\\$CODE\\\$)\[^\]\]*\\\].*external_symbol"
if [regexp $want $got] then {
pass "objdump -r ($testfile, $dumpfile)"
@ -203,7 +205,7 @@ proc test_objdump_r { testfile dumpfile } {
test_objdump_r $testfile $testfile
if { [ remote_file host exists $testarchive ] } then {
test_objdump_r $testarchive bintest2.o
test_objdump_r $testarchive bintest2.${obj}
}
# Test objdump -d
@ -213,25 +215,25 @@ proc test_objdump_d { testfile dumpfile } {
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -d $testfile"]
set want "$dumpfile:.*Disassembly of section"
set want "${dumpfile}.*:.*Disassembly of section"
if ![regexp $want $got] then {
fail "objdump -d $testfile: No disassembly title"
return
}
set want "$dumpfile:.*00+0 <text_symbol>"
set want "${dumpfile}.*:.*00+0 <text_symbol>"
if ![regexp $want $got] then {
fail "objdump -d $testfile: Missing symbol name and address"
return
}
set want "$dumpfile:.*00+. <text_symbol2>"
set want "${dumpfile}.*:.*00+. <text_symbol2>"
if ![regexp $want $got] then {
fail "objdump -d $testfile: Missing second symbol"
return
}
set want "$dumpfile:.*00+. <text_symbol3>"
set want "${dumpfile}.*:.*00+. <text_symbol3>"
if ![regexp $want $got] then {
fail "objdump -d $testfile: Missing third symbol"
return
@ -242,7 +244,7 @@ proc test_objdump_d { testfile dumpfile } {
test_objdump_d $testfile $testfile
if { [ remote_file host exists $testarchive ] } then {
test_objdump_d $testarchive bintest2.o
test_objdump_d $testarchive bintest2.${obj}
}
# Test objdump --disassemble=<symbol>
@ -357,13 +359,13 @@ proc test_objdump_d_non_func_sym { testfile dumpfile } {
# all of func, and does not stop at the next symbol.
if { [is_elf_format] } then {
if {![binutils_assemble $srcdir/$subdir/disasm.s tmpdir/disasm.o]} then {
if {![binutils_assemble $srcdir/$subdir/disasm.s tmpdir/disasm.${obj}]} then {
fail "objdump --disassemble=func (assembling disasm.s)"
} else {
if [is_remote host] {
set elftestfile [remote_download host tmpdir/disasm.o]
set elftestfile [remote_download host tmpdir/disasm.${obj}]
} else {
set elftestfile tmpdir/disasm.o
set elftestfile tmpdir/disasm.${obj}
}
test_objdump_d_func_sym $elftestfile $elftestfile
@ -380,7 +382,7 @@ proc test_objdump_s { testfile dumpfile } {
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -s $testfile"]
set want "$dumpfile:\[ \]*file format.*Contents.*(text|TEXT|P|\\\$CODE\\\$)\[^0-9\]*\[ \]*\[0-9a-fA-F\]*\[ \]*(00000001|01000000|00000100).*Contents.*(data|DATA|D_1)\[^0-9\]*\[ \]*\[0-9a-fA-F\]*\[ \]*(00000002|02000000|00000200)"
set want "${dumpfile}.*:\[ \]*file format.*Contents.*(text|TEXT|P|\\\$CODE\\\$)\[^0-9\]*\[ \]*\[0-9a-fA-F\]*\[ \]*(00000001|01000000|00000100).*Contents.*(data|DATA|D_1)\[^0-9\]*\[ \]*\[0-9a-fA-F\]*\[ \]*(00000002|02000000|00000200)"
if [regexp $want $got] then {
pass "objdump -s ($testfile, $dumpfile)"
@ -391,20 +393,20 @@ proc test_objdump_s { testfile dumpfile } {
test_objdump_s $testfile $testfile
if { [ remote_file host exists $testarchive ] } then {
test_objdump_s $testarchive bintest2.o
test_objdump_s $testarchive bintest2.${obj}
}
# Test objdump -s on a file that contains a compressed .debug section
if { ![is_elf_format] } then {
unsupported "objdump compressed debug"
} elseif { ![binutils_assemble $srcdir/$subdir/dw2-compressed.S tmpdir/dw2-compressed.o] } then {
} elseif { ![binutils_assemble $srcdir/$subdir/dw2-compressed.S tmpdir/dw2-compressed.${obj}] } then {
fail "objdump compressed debug"
} else {
if [is_remote host] {
set compressed_testfile [remote_download host tmpdir/dw2-compressed.o]
set compressed_testfile [remote_download host tmpdir/dw2-compressed.${obj}]
} else {
set compressed_testfile tmpdir/dw2-compressed.o
set compressed_testfile tmpdir/dw2-compressed.${obj}
}
set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -s -j .zdebug_abbrev $compressed_testfile" "" "/dev/null" "objdump.out"]
@ -455,14 +457,14 @@ if { ![is_elf_format]
} else {
set decodedline_testsrc $srcdir/$subdir/dw2-decodedline.S
}
if { ![binutils_assemble $decodedline_testsrc tmpdir/dw2-decodedline.o] } then {
if { ![binutils_assemble $decodedline_testsrc tmpdir/dw2-decodedline.${obj}] } then {
fail "objdump decoded line"
}
if [is_remote host] {
set decodedline_testfile [remote_download host tmpdir/dw2-decodedline.o]
set decodedline_testfile [remote_download host tmpdir/dw2-decodedline.${obj}]
} else {
set decodedline_testfile tmpdir/dw2-decodedline.o
set decodedline_testfile tmpdir/dw2-decodedline.${obj}
}
set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -WL $decodedline_testfile" "" "/dev/null" "objdump.out"]
@ -484,13 +486,13 @@ if { ![is_elf_format]
if { ![is_elf_format] } then {
unsupported "objdump debug_ranges test"
} elseif { ![binutils_assemble $srcdir/$subdir/dw2-ranges.S tmpdir/dw2-ranges.o] } then {
} elseif { ![binutils_assemble $srcdir/$subdir/dw2-ranges.S tmpdir/dw2-ranges.${obj}] } then {
fail "objdump debug_ranges test"
} else {
if [is_remote host] {
set ranges_testfile [remote_download host tmpdir/dw2-ranges.o]
set ranges_testfile [remote_download host tmpdir/dw2-ranges.${obj}]
} else {
set ranges_testfile tmpdir/dw2-ranges.o
set ranges_testfile tmpdir/dw2-ranges.${obj}
}
set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS --dwarf=Ranges $ranges_testfile" "" "/dev/null" "objdump.out"]
@ -594,14 +596,14 @@ if {[is_elf_format]} then {
if { [is_elf_format] } then {
set testsrc $srcdir/$subdir/debuglink.s
if { ![binutils_assemble $testsrc tmpdir/debuglink.o] } then {
if { ![binutils_assemble $testsrc tmpdir/debuglink.${obj}] } then {
fail "objdump -Wk (reason: could not assemble source)"
}
if [is_remote host] {
set testfile [remote_download host tmpdir/debuglink.o]
set testfile [remote_download host tmpdir/debuglink.${obj}]
} else {
set testfile tmpdir/debuglink.o
set testfile tmpdir/debuglink.${obj}
}
set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -Wk $testfile" "" "/dev/null" "objdump.out"]
@ -627,10 +629,11 @@ proc test_follow_debuglink { options dumpfile } {
global srcdir
global subdir
global OBJDUMP
global obj
set test "follow-debuglink ($options)"
if {![binutils_assemble $srcdir/$subdir/debuglink.s tmpdir/debuglink.o]} then {
if {![binutils_assemble $srcdir/$subdir/debuglink.s tmpdir/debuglink.${obj}]} then {
fail "$test (reason: assemble first source file)"
return
}
@ -641,10 +644,10 @@ proc test_follow_debuglink { options dumpfile } {
}
if ![is_remote host] {
set tempfile tmpdir/debuglink.o
set tempfile tmpdir/debuglink.${obj}
} else {
set tempfile [remote_download host tmpdir/linkdebug.debug]
set tempfile [remote_download host tmpdir/debuglink.o]
set tempfile [remote_download host tmpdir/debuglink.${obj}]
}
set got [remote_exec host "$OBJDUMP $options $tempfile" "" "/dev/null" "tmpdir/objdump.out"]
@ -716,15 +719,15 @@ if {[is_elf_format]} then {
set text ".text"
}
# generate a copy of the test object with .text repositioned
if { [binutils_run $OBJCOPY "--change-section-address $text=0x80000000 tmpdir/bintest.o tmpdir/bintest_signed.o"] != "" } {
fail "Failed to reposition $text to 0x80000000 (tmpdir/bintest.o -> tmpdir/bintest_signed.o)"
if { [binutils_run $OBJCOPY "--change-section-address $text=0x80000000 tmpdir/bintest.${obj} tmpdir/bintest_signed.${obj}"] != "" } {
fail "Failed to reposition $text to 0x80000000 (tmpdir/bintest.${obj} -> tmpdir/bintest_signed.${obj})"
return
}
if [is_remote host] {
set testfile3 [remote_download host tmpdir/bintest_signed.o]
set testfile3 [remote_download host tmpdir/bintest_signed.${obj}]
} else {
set testfile3 tmpdir/bintest_signed.o
set testfile3 tmpdir/bintest_signed.${obj}
}
test_objdump_content_limited $testfile3 $text "80000004" "80000008"