set cpus_expected [list]
lappend cpus_expected aarch64 alpha am33-2 arc ARC700 ARCv2 arm cris
lappend cpus_expected d10v d30v fr30 fr500 fr550 h8 hppa i386 iamcu ip2022
-lappend cpus_expected m16c m32c m32r m68hc11 m68hc12 m68k m88k MCore mep c5 h1 MicroBlaze
+lappend cpus_expected m16c m32c m32r m68hc11 m68hc12 m68k MCore mep c5 h1 MicroBlaze
lappend cpus_expected mips mn10200 mn10300 ms1 msp MSP430 nds32 n1h_v3 ns32k
lappend cpus_expected or1k or1knd pj powerpc pyramid riscv romp rs6000 s390 sh sparc
lappend cpus_expected tic54x tic80 tilegx tms320c30 tms320c4x tms320c54x
-lappend cpus_expected v850 vax we32k x86-64 xscale xtensa z8k z8001 z8002
+lappend cpus_expected v850 vax x86-64 xscale xtensa z8k z8001 z8002
# Make sure the target CPU shows up in the list.
lappend cpus_expected ${target_cpu}
test_objdump_r $testarchive bintest2.o
}
+# Test objdump -d
+proc test_objdump_d { testfile dumpfile } {
+ global OBJDUMP
+ global OBJDUMPFLAGS
+
+ set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -d $testfile"]
+
+ 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>"
+ if ![regexp $want $got] then {
+ fail "objdump -d $testfile: Missing symbol name and address"
+ return
+ }
+
+ 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>"
+ if ![regexp $want $got] then {
+ fail "objdump -d $testfile: Missing third symbol"
+ return
+ }
+
+ pass "objdump -d $testfile"
+}
+
+test_objdump_d $testfile $testfile
+if { [ remote_file host exists $testarchive ] } then {
+ test_objdump_d $testarchive bintest2.o
+}
+
+# Test objdump --disassemble=<symbol>
+proc test_objdump_d_sym { testfile dumpfile } {
+ global OBJDUMP
+ global OBJDUMPFLAGS
+
+ set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS --disassemble=text_symbol2 $testfile"]
+
+ set want "$dumpfile:.*Disassembly of section"
+ if ![regexp $want $got] then {
+ fail "objdump --disassemble=text_symbol2 $testfile: No disassembly title"
+ return
+ }
+
+ set want "$dumpfile:.*00+0 <text_symbol>"
+ if [regexp $want $got] then {
+ fail "objdump --disassemble=text_symbol2 $testfile: First symbol displayed, when it should be absent"
+ return
+ }
+
+ set want "$dumpfile:.*00+. <text_symbol2>"
+ if ![regexp $want $got] then {
+ fail "objdump --disassemble=text_symbol2 $testfile: Missing second symbol"
+ return
+ }
+
+ set want "$dumpfile:.*00+. <text_symbol3>"
+ if [regexp $want $got] then {
+ fail "objdump --disassemble=text_symbol2 $testfile: Third symbol displayed when it should be absent"
+ return
+ }
+
+ pass "objdump --disassemble=text_symbol2 $testfile"
+}
+
+test_objdump_d_sym $testfile $testfile
+if { [ remote_file host exists $testarchive ] } then {
+ test_objdump_d_sym $testarchive bintest2.o
+}
+
+
# Test objdump -s
proc test_objdump_s { testfile dumpfile } {
if { ![is_elf_format]
|| [istarget "hppa64*-*-hpux*"]
- || [istarget "i370-*-*"]
|| [istarget "ia64*-*-*"]
|| [istarget "mcore-*-*"]
|| [istarget "moxie-*-*"]
global srcdir
global subdir
global env
- global CC_FOR_TARGET
global STRIP
global OBJCOPY
global OBJDUMP
global CFLAGS_FOR_TARGET
set test "build-id-debuglink"
- if {![info exists CC_FOR_TARGET]} {
- set CC_FOR_TARGET $env(CC)
- }
- if { $CC_FOR_TARGET == "" } {
- unsupported $test
- return
- }
# Use a fixed build-id.
+ if { [info exists CFLAGS_FOR_TARGET] } {
+ set save_CFLAGS_FOR_TARGET $CFLAGS_FOR_TARGET
+ }
set CFLAGS_FOR_TARGET "-g -Wl,--build-id=0x12345678abcdef01"
if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog exectuable debug] != "" } {
- fail "$test (build)"
+ unsupported "$test (build)"
return
}
- # FIXME: Do we need to restore CFLAGS_FOR_TARGET to its old value ?
+ if { [info exists save_CFLAGS_FOR_TARGET] } {
+ set CFLAGS_FOR_TARGET $save_CFLAGS_FOR_TARGET
+ } else {
+ unset CFLAGS_FOR_TARGET
+ }
if { [binutils_run $STRIP "--strip-debug --remove-section=.comment tmpdir/testprog -o tmpdir/testprog.strip"] != "" } {
fail "$test (strip debug info)"
}
}
-if {[isnative] && [is_elf_format]} then {
+if {[is_elf_format]} then {
test_build_id_debuglink
}
set got [remote_exec host "rm tmpdir/linkdebug.debug"]
}
-if {[isnative] && [is_elf_format]} then {
+if {[is_elf_format]} then {
test_follow_debuglink
}
-
-# Options which are not tested: -a -d -D -R -T -x -l --stabs
+# Options which are not tested: -a -D -R -T -x -l --stabs
# I don't see any generic way to test any of these other than -a.
# Tests could be written for specific targets, and that should be done
# if specific problems are found.