# Readelf's output is captured and then compared against the contents
# of the regexp_file.
-proc readelf_test { options binary_file regexp_file } {
+proc readelf_test { options binary_file regexp_file xfails } {
global READELF
global READELFFLAGS
send_log "exec $READELF $READELFFLAGS $options $binary_file > readelf.out"
catch "exec $READELF $READELFFLAGS $options $binary_file > readelf.out" got
+ if { [llength $xfails] != 0 } then {
+ setup_xfail $xfails
+ }
+
if ![string match "" $got] then {
send_log $got
fail "readelf $options"
}
# Run the tests
-readelf_test -h $tempfile $srcdir/$subdir/readelf.h
-readelf_test -S $tempfile $srcdir/$subdir/readelf.s
-readelf_test -s $tempfile $srcdir/$subdir/readelf.ss
-readelf_test -r $tempfile $srcdir/$subdir/readelf.r
+readelf_test -h $tempfile $srcdir/$subdir/readelf.h {}
+# The v850 fails the next two tests because it creates two special
+# sections of its own: .call_table_data and .call_table_text
+# The regexp scripts are not expecting these sections...
+readelf_test -S $tempfile $srcdir/$subdir/readelf.s {v850*-*}
+readelf_test -s $tempfile $srcdir/$subdir/readelf.ss {v850*-*}
+readelf_test -r $tempfile $srcdir/$subdir/readelf.r {}
-Relocation section '.rel..text' at offset 0x2b8 contains 1 entries:
+Relocation section '.rel..text' at offset 0x.* contains 1 entries:
Offset Info Type Symbol's Value Symbol's Name Addend
00000004 00.* R_.* 00000000 external_symbol \+ 0
-Symbol table '.symtab' contains 10 entries:
+Symbol table '.symtab' contains .* entries:
Num: Value Size Type Bind Ot Ndx Name
0: 0 0 NOTYPE LOCAL 0 UND
1: 0 0 SECTION LOCAL 0 1
3: 0 0 SECTION LOCAL 0 4
4: 0 0 NOTYPE LOCAL 0 1 static_text_symbol
5: 0 0 NOTYPE LOCAL 0 3 static_data_symbol
- 6: 0 0 NOTYPE GLOBAL 0 1 text_symbol
- 7: 0 0 NOTYPE GLOBAL 0 UND external_symbol
- 8: 0 0 NOTYPE GLOBAL 0 3 data_symbol
- 9: 4 4 OBJECT GLOBAL 0 COM common_symbol
+.* .: 0 0 NOTYPE GLOBAL 0 1 text_symbol
+ .: 0 0 NOTYPE GLOBAL 0 UND external_symbol
+ .: 0 0 NOTYPE GLOBAL 0 3 data_symbol
+ .: 4 4 OBJECT GLOBAL 0 COM common_symbol