Fix readelf -S and readelf -s tests for MIPS and v850
This commit is contained in:
parent
420496c13a
commit
ade0b24fe1
5 changed files with 73 additions and 17 deletions
|
@ -1,3 +1,20 @@
|
|||
2000-11-02 Chris Demetriou <cgd@sibyte.com>
|
||||
|
||||
* binutils-all/readelf.exp (regexp_diff): Add code
|
||||
from gas testsuite to treat "#..." at beginning of line
|
||||
as an indicator to skip extra non-matching lines at that
|
||||
location.
|
||||
(readelf_test): Add support for using a machine-specific
|
||||
regexp comparison file.
|
||||
(readelf -S test, readelf -s test): Remove v850*-*-* and
|
||||
mips*-*-* from list of expected failures.
|
||||
* binutils-all/readelf.s: Accomodate changes due to
|
||||
additional sections (and therefore section numbering
|
||||
differences) on v850*-*-* and mips*-*-* targets.
|
||||
* binutils-all/readelf.ss: Likewise.
|
||||
* binutils-all/readelf.ss-mips: New file, which matches
|
||||
expected output of readelf -s test for mips*-*-*.
|
||||
|
||||
2000-10-25 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
* binutils-all/readelf.exp (-wi test): Add cris-*-* to xfails.
|
||||
|
|
|
@ -76,6 +76,20 @@ proc regexp_diff { file_1 file_2 } {
|
|||
set end_2 1
|
||||
set diff_pass 1
|
||||
break
|
||||
} elseif [ string match "#..." $line_b ] {
|
||||
if { [gets $file_b line_b] == $eof } {
|
||||
set end_2 1
|
||||
break
|
||||
}
|
||||
verbose "looking for \"^$line_b$\"" 3
|
||||
while { ![regexp "^$line_b$" "$line_a"] } {
|
||||
verbose "skipping \"$line_a\"" 3
|
||||
if { [gets $file_a line_a] == $eof } {
|
||||
set end_1 1
|
||||
break
|
||||
}
|
||||
}
|
||||
break
|
||||
}
|
||||
if { [gets $file_b line_b] == $eof } {
|
||||
set end_2 1
|
||||
|
@ -176,7 +190,16 @@ proc readelf_test { options binary_file regexp_file xfails } {
|
|||
return
|
||||
}
|
||||
|
||||
if { [file exists $srcdir/$subdir/$regexp_file-$readelf_size] } then {
|
||||
set target_machine ""
|
||||
if [istarget "mips*-*-*"] then {
|
||||
set target_machine mips
|
||||
}
|
||||
|
||||
if { $target_machine != "" && [file exists $srcdir/$subdir/$regexp_file-$readelf_size-$target_machine] } then {
|
||||
set regexp_file $regexp_file-$readelf_size-$target_machine
|
||||
} elseif { $target_machine != "" && [file exists $srcdir/$subdir/$regexp_file-$target_machine] } then {
|
||||
set regexp_file $regexp_file-$target_machine
|
||||
} elseif { [file exists $srcdir/$subdir/$regexp_file-$readelf_size] } then {
|
||||
set regexp_file $regexp_file-$readelf_size
|
||||
}
|
||||
|
||||
|
@ -227,15 +250,8 @@ readelf_find_size $tempfile
|
|||
|
||||
# Run the tests.
|
||||
readelf_test -h $tempfile 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...
|
||||
# MIPS targets fail because they add .rela.txt (empty), .mdebug,
|
||||
# and .reginfo sections.
|
||||
|
||||
readelf_test -S $tempfile readelf.s {v850*-*-* mips*-*-*}
|
||||
readelf_test -s $tempfile readelf.ss {v850*-*-* mips*-*-*}
|
||||
readelf_test -S $tempfile readelf.s {}
|
||||
readelf_test -s $tempfile readelf.ss {}
|
||||
readelf_test -r $tempfile readelf.r {}
|
||||
|
||||
|
||||
|
|
|
@ -5,11 +5,16 @@ Section Headers:
|
|||
\[ 0\] NULL 00000000 000000 000000 00 0 0 0
|
||||
\[ 1\] .text PROGBITS 00000000 000034 000008 00 AX 0 0 .
|
||||
\[ 2\] .rel.+text +REL. +0+ 0+.* 00000. 0. . 1 4
|
||||
\[ 3\] .data PROGBITS 00000000 00003c 000004 00 WA 0 0 .
|
||||
\[ 4\] .bss NOBITS 00000000 000040 000000 00 WA 0 0 .
|
||||
\[ .\] .shstrtab STRTAB 00000000 000040 0000.* 00 0 0 .
|
||||
\[ .\] .symtab SYMTAB 00000000 0+.* 0+.* 10 7 6 4
|
||||
\[ .\] .strtab STRTAB 00000000 0+.* 0+.* 00 0 0 1
|
||||
# MIPS targets put .rela.text here.
|
||||
#...
|
||||
\[ .\] .data PROGBITS 00000000 00003c 000004 00 WA 0 0 .
|
||||
\[ .\] .bss NOBITS 00000000 000040 000000 00 WA 0 0 .
|
||||
# MIPS targets put .reginfo and .mdebug here.
|
||||
# v850 targets put .call_table_data and .call_table_text here.
|
||||
#...
|
||||
\[ .\] .shstrtab STRTAB 00000000 0+.* 0+.* 00 0 0 .
|
||||
\[ .\] .symtab SYMTAB 00000000 0+.* 0+.* 10 .. . 4
|
||||
\[..\] .strtab STRTAB 00000000 0+.* 0+.* 00 0 0 1
|
||||
Key to Flags: W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
|
||||
I \(info\), L \(link order\), O \(extra OS processing required\)
|
||||
o \(os specific\), p \(processor specific\) x \(unknown\)
|
||||
|
|
|
@ -7,7 +7,10 @@ Symbol table '.symtab' contains .* entries:
|
|||
3: 00000000 0 SECTION LOCAL DEFAULT 4
|
||||
4: 00000000 0 NOTYPE LOCAL DEFAULT 1 static_text_symbol
|
||||
5: 00000000 0 NOTYPE LOCAL DEFAULT 3 static_data_symbol
|
||||
# v850 targets include extra SECTION symbols here for the .call_table_data
|
||||
# and .call_table_text sections.
|
||||
#...
|
||||
.* .: 00000000 0 NOTYPE GLOBAL DEFAULT 1 text_symbol
|
||||
.: 00000000 0 NOTYPE GLOBAL DEFAULT UND external_symbol
|
||||
.: 00000000 0 NOTYPE GLOBAL DEFAULT 3 data_symbol
|
||||
.: 00000004 4 OBJECT GLOBAL DEFAULT COM common_symbol
|
||||
..: 00000000 0 NOTYPE GLOBAL DEFAULT 3 data_symbol
|
||||
..: 00000004 4 OBJECT GLOBAL DEFAULT COM common_symbol
|
||||
|
|
15
binutils/testsuite/binutils-all/readelf.ss-mips
Normal file
15
binutils/testsuite/binutils-all/readelf.ss-mips
Normal file
|
@ -0,0 +1,15 @@
|
|||
|
||||
Symbol table '.symtab' contains 12 entries:
|
||||
Num: Value Size Type Bind Vis Ndx Name
|
||||
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
|
||||
1: 00000000 0 SECTION LOCAL DEFAULT 1
|
||||
2: 00000000 0 SECTION LOCAL DEFAULT 4
|
||||
3: 00000000 0 SECTION LOCAL DEFAULT 5
|
||||
4: 00000000 0 SECTION LOCAL DEFAULT 6
|
||||
5: 00000000 0 SECTION LOCAL DEFAULT 7
|
||||
6: 00000000 0 OBJECT GLOBAL DEFAULT 1 text_symbol
|
||||
7: 00000000 0 NOTYPE LOCAL DEFAULT 1 static_text_symbol
|
||||
8: 00000000 0 NOTYPE GLOBAL DEFAULT UND external_symbol
|
||||
9: 00000000 0 OBJECT GLOBAL DEFAULT 4 data_symbol
|
||||
10: 00000000 0 NOTYPE LOCAL DEFAULT 4 static_data_symbol
|
||||
11: 00000004 4 OBJECT GLOBAL DEFAULT PRC common_symbol
|
Loading…
Reference in a new issue