URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/trunk/gnu-old/binutils-2.18.50/binutils/testsuite/binutils-all
- from Rev 156 to Rev 816
- ↔ Reverse comparison
Rev 156 → Rev 816
/arm/thumb2-cond.s
0,0 → 1,6
.thumb |
foo: |
.short 0xf000, 0xf800 |
.short 0xbf38 |
.short 0xf000, 0xbf04 |
bx lr |
/arm/objdump.exp
0,0 → 1,63
# Copyright 2004, 2007 |
# Free Software Foundation, Inc. |
|
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 3 of the License, or |
# (at your option) any later version. |
# |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
# GNU General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. |
|
if {![istarget "arm*-*-*"]} then { |
return |
} |
|
if {![is_remote host] && [which $OBJDUMP] == 0} then { |
perror "$OBJDUMP does not exist" |
return |
} |
|
send_user "Version [binutil_version $OBJDUMP]" |
|
########################### |
# Set up the test of movem.s |
########################### |
|
if {![binutils_assemble $srcdir/$subdir/thumb2-cond.s tmpdir/thumb2-cond.o]} then { |
return |
} |
|
if [is_remote host] { |
set objfile [remote_download host tmpdir/thumb2-cond.o] |
} else { |
set objfile tmpdir/thumb2-cond.o |
} |
|
# Make sure that conditional instructions are correctly decoded. |
|
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS --disassemble --start-address=6 $objfile"] |
|
set want "bcc.w\[ \t\]*e12.*bx\[ \t\]*lr" |
|
if [regexp $want $got] then { |
pass "thumb2-cond test1" |
} else { |
fail "thumb2-cond test1" |
} |
|
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS --disassemble --start-address=10 $objfile"] |
|
set want "bx\[ \t\]*lr" |
|
if [regexp $want $got] then { |
pass "thumb2-cond test2" |
} else { |
fail "thumb2-cond test2" |
} |
/readelf.ss
0,0 → 1,18
|
Symbol table '.symtab' contains .* 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 [34] |
3: 00000000 0 SECTION LOCAL DEFAULT [45] |
4: 00000000 0 NOTYPE LOCAL DEFAULT 1 static_text_symbol |
# arm-elf targets add the $d mapping symbol here... |
#... |
.: 00000000 0 NOTYPE LOCAL DEFAULT [34] 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 [34] data_symbol |
..: 00000004 4 (COMMON|OBJECT) GLOBAL DEFAULT ( COM|ANSI_COM) common_symbol |
/fastcall.def
0,0 → 1,2
EXPORTS |
@fastcall@4 |
/readelf.h
0,0 → 1,20
ELF Header: |
Magic: 7f 45 4c 46 0[12] 0[12] 01 .. .. 00 00 00 00 00 00 00 |
Class: ELF[36][24] |
Data: 2's complement,.* endian |
Version: 1 \(current\) |
OS/ABI: .* |
ABI Version: .* |
Type: REL \(Relocatable file\) |
Machine: .* |
Version: 0x1 |
Entry point address: 0x0 |
Start of program headers: 0 \(bytes into file\) |
Start of section headers: .* \(bytes into file\) |
Flags: .* |
Size of this header: .* \(bytes\) |
Size of program headers: 0 \(bytes\) |
Number of program headers: 0 |
Size of section headers: .* \(bytes\) |
Number of section headers: .* |
Section header string table index: .* |
/testprog.c
0,0 → 1,31
/* This program is used to test objcopy, readelf and strip. */ |
|
extern int strcmp (char *, const char *); |
extern int printf (const char *, ...); |
|
int common; |
int global = 1; |
static int local = 2; |
static char string[] = "string"; |
|
int |
fn (void) |
{ |
return 3; |
} |
|
int |
main (void) |
{ |
if (common != 0 |
|| global != 1 |
|| local != 2 |
|| strcmp (string, "string") != 0) |
{ |
printf ("failed\n"); |
return 1; |
} |
|
printf ("ok\n"); |
return 0; |
} |
/readelf.r-64
0,0 → 1,4
|
Relocation section '.rel.*text' at offset 0x.* contains 1 entries: |
Offset Info Type Sym. Value Sym. Name.* |
0+04 [0-9A-Fa-f]+ *R_.*0+00 external_symbol.* |
/objdump.exp
0,0 → 1,164
# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, |
# 2003, 2004, 2007 |
# Free Software Foundation, Inc. |
|
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 3 of the License, or |
# (at your option) any later version. |
# |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
# GNU General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. |
|
# Please email any bugs, comments, and/or additions to this file to: |
# bug-dejagnu@prep.ai.mit.edu |
|
# This file was written by Rob Savoye <rob@cygnus.com> |
# and rewritten by Ian Lance Taylor <ian@cygnus.com> |
|
if ![is_remote host] { |
if {[which $OBJDUMP] == 0} then { |
perror "$OBJDUMP does not exist" |
return |
} |
} |
|
send_user "Version [binutil_version $OBJDUMP]" |
|
# Simple test of objdump -i |
|
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -i"] |
|
set cpus_expected [list] |
lappend cpus_expected alpha arc arm cris |
lappend cpus_expected d10v d30v fr30 fr500 fr550 h8 hppa i386 i860 i960 ip2022 |
lappend cpus_expected m32r m68hc11 m68hc12 m68k m88k MCore |
lappend cpus_expected mips mn10200 mn10300 msp ns32k pj powerpc pyramid |
lappend cpus_expected romp rs6000 s390 sh sparc |
lappend cpus_expected tahoe tic54x tic80 tms320c30 tms320c4x tms320c54x v850 |
lappend cpus_expected vax we32k x86-64 xscale xtensa z8k z8001 z8002 |
|
# Make sure the target CPU shows up in the list. |
lappend cpus_expected ${target_cpu} |
|
# Create regexp |
set cpus_regex "([join $cpus_expected | ])" |
|
verbose -log "CPU regex: $cpus_regex" |
|
set want "BFD header file version.*srec\[^\n\]*\n\[^\n\]*header \[^\n\]*endian\[^\n\]*, data \[^\n\]*endian.*$cpus_regex" |
|
if [regexp $want $got] then { |
pass "objdump -i" |
} else { |
fail "objdump -i" |
} |
|
# The remaining tests require a test file. |
|
|
if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then { |
return |
} |
if [is_remote host] { |
set testfile [remote_download host tmpdir/bintest.o] |
} else { |
set testfile tmpdir/bintest.o |
} |
|
# Test objdump -f |
|
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f $testfile"] |
|
set want "$testfile:\[ \]*file format.*architecture:\[ \]*${cpus_regex}.*HAS_RELOC.*HAS_SYMS" |
|
if ![regexp $want $got] then { |
fail "objdump -f" |
} else { |
pass "objdump -f" |
} |
|
# Test objdump -h |
|
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -h $testfile"] |
|
set want "$testfile:\[ \]*file format.*Sections.*\[0-9\]+\[ \]+\[^ \]*(text|TEXT|\\\$CODE\\\$)\[^ \]*\[ \]*(\[0-9a-fA-F\]+).*\[0-9\]+\[ \]+\[^ \]*(\\.data|DATA)\[^ \]*\[ \]*(\[0-9a-fA-F\]+)" |
|
if ![regexp $want $got all text_name text_size data_name data_size] then { |
fail "objdump -h" |
} else { |
verbose "text name is $text_name size is $text_size" |
verbose "data name is $data_name size is $data_size" |
set ets 8 |
set eds 4 |
# The [ti]c4x target has the property sizeof(char)=sizeof(long)=1 |
if [istarget *c4x*-*-*] then { |
set ets 2 |
set eds 1 |
} |
# c54x section sizes are in bytes, not octets; adjust accordingly |
if [istarget *c54x*-*-*] then { |
set ets 4 |
set eds 2 |
} |
if {[expr "0x$text_size"] < $ets || [expr "0x$data_size"] < $eds} then { |
send_log "sizes too small\n" |
fail "objdump -h" |
} else { |
pass "objdump -h" |
} |
} |
|
# Test objdump -t |
|
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -t $testfile"] |
|
if [info exists vars] then { unset vars } |
while {[regexp "(\[a-z\]*_symbol)(.*)" $got all symbol rest]} { |
set vars($symbol) 1 |
set got $rest |
} |
|
if {![info exists vars(text_symbol)] \ |
|| ![info exists vars(data_symbol)] \ |
|| ![info exists vars(common_symbol)] \ |
|| ![info exists vars(external_symbol)]} then { |
fail "objdump -t" |
} else { |
pass "objdump -t" |
} |
|
# Test objdump -r |
|
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -r $testfile"] |
|
set want "$testfile:\[ \]*file format.*RELOCATION RECORDS FOR \\\[\[^\]\]*(text|TEXT|\\\$CODE\\\$)\[^\]\]*\\\].*external_symbol" |
|
if [regexp $want $got] then { |
pass "objdump -r" |
} else { |
fail "objdump -r" |
} |
|
# Test objdump -s |
|
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -s $testfile"] |
|
set want "$testfile:\[ \]*file format.*Contents.*(text|TEXT|\\\$CODE\\\$)\[^0-9\]*\[ \]*\[0-9a-fA-F\]*\[ \]*(00000001|01000000|00000100).*Contents.*(data|DATA)\[^0-9\]*\[ \]*\[0-9a-fA-F\]*\[ \]*(00000002|02000000|00000200)" |
|
if [regexp $want $got] then { |
pass "objdump -s" |
} else { |
fail "objdump -s" |
} |
|
# Options which are not tested: -a -d -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. |
/needed-by-reloc.s
0,0 → 1,7
.globl foo |
|
.data |
.long foo |
.text |
foo: |
.long 1 |
/objcopy.exp
0,0 → 1,809
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, |
# 2004, 2006, 2007 |
# Free Software Foundation, Inc. |
|
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 3 of the License, or |
# (at your option) any later version. |
# |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
# GNU General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. |
|
# Please email any bugs, comments, and/or additions to this file to: |
# bug-dejagnu@prep.ai.mit.edu |
|
# Written by Ian Lance Taylor <ian@cygnus.com> |
|
if ![is_remote host] { |
if {[which $OBJCOPY] == 0} then { |
perror "$OBJCOPY does not exist" |
return |
} |
} |
|
send_user "Version [binutil_version $OBJCOPY]" |
|
if ![is_remote host] { |
set tempfile tmpdir/bintest.o |
set copyfile tmpdir/copy |
} else { |
set tempfile [remote_download host tmpdir/bintest.o] |
set copyfile copy |
} |
|
# Test that objcopy does not modify a file when copying it. |
|
proc objcopy_test {testname srcfile} { |
global OBJCOPY |
global OBJCOPYFLAGS |
global srcdir |
global subdir |
global tempfile |
global copyfile |
|
if {![binutils_assemble $srcdir/$subdir/${srcfile} tmpdir/bintest.o]} then { |
perror "unresolved $testname" |
unresolved "objcopy ($testname)" |
return |
} |
|
set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS $tempfile ${copyfile}.o"] |
|
if ![string match "" $got] then { |
fail "objcopy ($testname)" |
} else { |
send_log "cmp $tempfile ${copyfile}.o\n" |
verbose "cmp $tempfile ${copyfile}.o" |
if [is_remote host] { |
set src1 tmpdir/bintest.o |
set src2 tmpdir/copy.o |
remote_upload host $tempfile $src1 |
remote_upload host ${copyfile}.o $src2 |
} else { |
set src1 ${tempfile} |
set src2 ${copyfile}.o |
} |
set status [remote_exec build cmp "${src1} ${src2}"] |
set exec_output [lindex $status 1] |
set exec_output [prune_warnings $exec_output] |
|
# On some systems the result of objcopy will not be identical. |
# Usually this is just because gas isn't using bfd to write the |
# files in the first place, and may order things a little |
# differently. Those systems should use setup_xfail here. |
|
setup_xfail "h8300-*-rtems*" "h8300-*-coff" |
setup_xfail "h8500-*-rtems*" "h8500-*-coff" |
setup_xfail "hppa*-*-*" |
setup_xfail "i960-*" |
setup_xfail "m68*-*-*coff" "m68*-*-hpux*" "m68*-*-lynxos*" |
setup_xfail "m68*-*-sysv*" "m68*-apple-aux*" |
setup_xfail "m8*-*" |
setup_xfail "or32-*-rtems*" "or32-*-coff" |
setup_xfail "sh-*-coff*" "sh-*-rtems*" |
setup_xfail "tic4x-*-*" "tic80-*-*" "w65-*" |
|
clear_xfail "hppa*64*-*-hpux*" "hppa*-*-linux*" "hppa*-*-lites*" |
clear_xfail "hppa*-*-*n*bsd*" "hppa*-*-rtems*" "*-*-*elf*" |
clear_xfail "m68*-*-sysv4*" |
|
if [string match "" $exec_output] then { |
pass "objcopy ($testname)" |
} else { |
send_log "$exec_output\n" |
verbose "$exec_output" 1 |
|
# On OSF/1, this succeeds with gas and fails with /bin/as. |
setup_xfail "alpha*-*-osf*" |
|
fail "objcopy ($testname)" |
} |
} |
} |
|
objcopy_test "simple copy" bintest.s |
|
# Test reversing bytes in a section. |
|
set reversed ${tempfile}-reversed |
set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -j .data --reverse-bytes=4 $tempfile $reversed"] |
|
if ![string match "" $got] then { |
fail "objcopy --reverse-bytes" |
} else { |
if [is_remote host] { |
remote_upload host ${reversed} tmpdir/copy-reversed.o |
set reversed tmpdir/copy-reversed.o |
} |
|
set origdata [binutils_run $OBJDUMP "$OBJDUMPFLAGS -s -j .data $tempfile"] |
set revdata [binutils_run $OBJDUMP "$OBJDUMPFLAGS -s -j .data $reversed"] |
|
set want "^ \[0-9\]+ (\[0-9\]+)" |
set found_orig [regexp -lineanchor $want $origdata -> origdata] |
set found_rev [regexp -lineanchor $want $revdata -> revdata] |
|
if {$found_orig == 0 || $found_rev == 0} then { |
fail "objcopy --reverse-bytes" |
} else { |
scan $origdata "%2x%2x%2x%2x" b1 b2 b3 b4 |
scan $revdata "%2x%2x%2x%2x" c4 c3 c2 c1 |
|
if {$b1 == $c1 && $b2 == $c2 && $b3 == $c3 && $b4 == $c4} then { |
pass "objcopy --reverse-bytes" |
} else { |
fail "objcopy --reverse-bytes" |
} |
} |
} |
|
# Test generating S records. |
|
# We make the srec filename 8.3 compatible. Note that the header string |
# matched against depends on the name of the file. Ugh. |
|
if [is_remote host] { |
set srecfile copy.sre |
set header_string S00B0000636F70792E737265C1 |
} else { |
set srecfile ${copyfile}.srec |
set header_string S0130000746D706469722F636F70792E7372656397 |
} |
|
set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $tempfile ${srecfile}"] |
|
if ![string match "" $got] then { |
fail "objcopy -O srec" |
} else { |
if [is_remote host] { |
remote_upload host ${srecfile} tmpdir/copy.srec |
set srecfile tmpdir/copy.srec |
} |
set file [open ${srecfile} r] |
|
# The first S record is fixed by the file name we are using. |
gets $file line |
send_log "$line\n" |
verbose $line |
if ![regexp "$header_string.*" $line] { |
send_log "bad header\n" |
fail "objcopy -O srec" |
} else { |
while {[gets $file line] != -1 \ |
&& [regexp "^S\[123\]\[0-9a-fA-F\]+\[\r\n\]*$" $line]} { |
send_log "$line\n" |
verbose $line |
set line "**EOF**" |
} |
send_log "$line\n" |
verbose $line |
if ![regexp "^S\[789\]\[0-9a-fA-F\]+\[\r\n\]*$" $line] then { |
send_log "bad trailer\n" |
fail "objcopy -O srec" |
} else { |
if {[gets $file line] != -1} then { |
send_log "garbage at end\n" |
send_log "$line\n" |
verbose $line |
fail "objcopy -O srec" |
} else { |
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f ${srecfile}"] |
if ![regexp "file format srec" $got] then { |
send_log "objdump failed\n" |
fail "objcopy -O srec" |
} else { |
pass "objcopy -O srec" |
} |
} |
} |
} |
|
close $file |
} |
|
# Test setting and adjusting the start address. We only test this |
# while generating S records, because we may not be able to set the |
# start address for other object file formats, and the S record case |
# is the only useful one anyhow. |
|
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f $tempfile"] |
if ![regexp "start address (\[0-9a-fA-FxX\]+)" $got all origstart] then { |
perror "objdump can not recognize bintest.o" |
set origstart "" |
} else { |
set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec --set-start 0x7654 $tempfile ${copyfile}.srec"] |
if ![string match "" $got] then { |
fail "objcopy --set-start" |
} else { |
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f ${copyfile}.srec"] |
if ![regexp "file format srec.*start address (\[0-9a-fA-FxX\]+)" $got all srecstart] then { |
fail "objcopy --set-start" |
} else { |
if {$srecstart != 0x7654} then { |
send_log "$srecstart != 0x7654\n" |
fail "objcopy --set-start" |
} else { |
pass "objcopy --set-start" |
} |
} |
} |
|
set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec --adjust-start 0x123 $tempfile ${copyfile}.srec"] |
if ![string match "" $got] then { |
fail "objcopy --adjust-start" |
} else { |
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f ${copyfile}.srec"] |
if ![regexp "file format srec.*start address (\[0-9a-fA-FxX\]+)" $got all srecstart] then { |
fail "objcopy --adjust-start" |
} else { |
if {$srecstart != $origstart + 0x123} then { |
send_log "$srecstart != $origstart + 0x123\n" |
fail "objcopy --adjust-start" |
} else { |
pass "objcopy --adjust-start" |
} |
} |
} |
} |
|
# Test adjusting the overall VMA, and adjusting the VMA of a |
# particular section. We again only test this when generating S |
# records. |
|
set low "" |
set lowname "" |
|
set headers [binutils_run $OBJDUMP "$OBJDUMPFLAGS -h $tempfile"] |
|
set headers_regexp "\[ 0-9\]+(\[^ \]+)\[ \]*(\[0-9a-fA-F\]+)\[ \]+\[0-9a-fA-F\]+\[ \]+(\[0-9a-fA-F\]+)\[ \]+\[0-9a-fA-F\]+\[ \]+2\[*\]\[*\]\[0-9\]+(.*)" |
|
set got $headers |
while {[regexp $headers_regexp $got all name size vma rest]} { |
set vma 0x$vma |
set size 0x$size |
if {$size != 0} { |
if {$low == "" || $vma < $low} { |
set low $vma |
set lowname $name |
} |
} |
set got $rest |
} |
|
if {$low == "" || $origstart == ""} then { |
perror "objdump can not recognize bintest.o" |
} else { |
set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec --adjust-vma 0x123 $tempfile ${copyfile}.srec"] |
if ![string match "" $got] then { |
fail "objcopy --adjust-vma" |
} else { |
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -fh ${copyfile}.srec"] |
set want "file format srec.*start address\[ \]*(\[0-9a-fA-FxX\]+).*sec1\[ \]+\[0-9a-fA-F\]+\[ \]+(\[0-9a-fA-F\]+)" |
if ![regexp $want $got all start vma] then { |
fail "objcopy --adjust-vma" |
} else { |
set vma 0x$vma |
if {$vma != $low + 0x123} then { |
send_log "$vma != $low + 0x123\n" |
fail "objcopy --adjust-vma" |
} else { |
if {$start != $origstart + 0x123} then { |
send_log "$start != $origstart + 0x123\n" |
fail "objcopy --adjust-vma" |
} else { |
pass "objcopy --adjust-vma" |
} |
} |
} |
} |
|
set arg "" |
set got $headers |
while {[regexp $headers_regexp $got all name size vma rest]} { |
set vma 0x$vma |
if {$vma == $low} then { |
set arg "$arg --adjust-section-vma $name+4" |
} |
set got $rest |
} |
|
set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $arg $tempfile ${copyfile}.srec"] |
if ![string match "" $got] then { |
fail "objcopy --adjust-section-vma +" |
} else { |
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -h ${copyfile}.srec"] |
set want "file format srec.*sec1\[ \]+\[0-9a-fA-F\]+\[ \]+(\[0-9a-fA-F\]+)" |
if ![regexp $want $got all vma] then { |
fail "objcopy --adjust-section-vma +" |
} else { |
set vma 0x$vma |
if {$vma != $low + 4} then { |
send_log "$vma != $low + 4\n" |
fail "objcopy --adjust-section-vma +" |
} else { |
pass "objcopy --adjust-section-vma +" |
} |
} |
} |
|
regsub -all "\\+4" $arg "=[expr $low + 4]" argeq |
set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $argeq $tempfile ${copyfile}.srec"] |
if ![string match "" $got] then { |
fail "objcopy --adjust-section-vma =" |
} else { |
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -h ${copyfile}.srec"] |
set want "file format srec.*sec1\[ \]+\[0-9a-fA-F\]+\[ \]+(\[0-9a-fA-F\]+)" |
if ![regexp $want $got all vma] then { |
fail "objcopy --adjust-section-vma =" |
} else { |
set vma 0x$vma |
if {$vma != $low + 4} then { |
send_log "$vma != $low + 4\n" |
fail "objcopy --adjust-section-vma =" |
} else { |
pass "objcopy --adjust-section-vma =" |
} |
} |
} |
} |
|
# Test stripping an object. |
|
proc strip_test { } { |
global AR |
global CC |
global STRIP |
global STRIPFLAGS |
global NM |
global NMFLAGS |
global srcdir |
global subdir |
|
set test "strip" |
|
if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog.o object debug] != "" } { |
untested $test |
return |
} |
|
if [is_remote host] { |
set archive libstrip.a |
set objfile [remote_download host tmpdir/testprog.o] |
remote_file host delete $archive |
} else { |
set archive tmpdir/libstrip.a |
set objfile tmpdir/testprog.o |
} |
|
remote_file build delete tmpdir/libstrip.a |
|
set exec_output [binutils_run $AR "rc $archive ${objfile}"] |
if ![string match "" $exec_output] { |
fail $test |
return |
} |
|
set exec_output [binutils_run $STRIP "-g $archive"] |
if ![string match "" $exec_output] { |
fail $test |
return |
} |
|
set exec_output [binutils_run $STRIP "$STRIPFLAGS $archive"] |
if ![string match "" $exec_output] { |
fail $test |
return |
} |
|
if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog.o object debug] != "" } { |
untested $test |
return |
} |
|
if [is_remote host] { |
set objfile [remote_download host tmpdir/testprog.o] |
} else { |
set objfile tmpdir/testprog.o |
} |
|
set exec_output [binutils_run $STRIP "$STRIPFLAGS $objfile"] |
if ![string match "" $exec_output] { |
fail $test |
return |
} |
|
set exec_output [binutils_run $NM "-a $NMFLAGS $objfile"] |
if ![string match "*: no symbols*" $exec_output] { |
fail $test |
return |
} |
|
pass $test |
} |
|
strip_test |
|
# Test stripping an object file with saving a symbol |
|
proc strip_test_with_saving_a_symbol { } { |
global CC |
global STRIP |
global STRIPFLAGS |
global NM |
global NMFLAGS |
global srcdir |
global subdir |
|
set test "strip with saving a symbol" |
|
if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog.o object debug] != "" } { |
untested $test |
return |
} |
|
if [is_remote host] { |
set objfile [remote_download host tmpdir/testprog.o] |
} else { |
set objfile tmpdir/testprog.o |
} |
|
set exec_output [binutils_run $STRIP "$STRIPFLAGS -K main -K _main $objfile"] |
if ![string match "" $exec_output] { |
fail $test |
return |
} |
|
set exec_output [binutils_run $NM "$NMFLAGS $objfile"] |
if {![regexp {^([0-9a-fA-F]+)?[ ]+[TD] main} $exec_output] \ |
&& ![regexp {^([0-9a-fA-F]+)?[ ]+T _main} $exec_output]} { |
fail $test |
return |
} |
|
pass $test |
} |
|
strip_test_with_saving_a_symbol |
|
# Build a final executable. |
|
if { [istarget *-*-cygwin] || [istarget *-*-mingw*] } { |
set test_prog "testprog.exe" |
} else { |
set test_prog "testprog" |
} |
|
proc copy_setup { } { |
global srcdir |
global subdir |
global gcc_gas_flag |
global test_prog |
|
set res [build_wrapper testglue.o] |
set flags { debug } |
|
if { [istarget *-*-uclinux*] } { |
return 1 |
} |
|
if { $res != "" } { |
lappend flags "additional_flags=[lindex $res 1]" |
set add_libs "testglue.o" |
} else { |
set add_libs "" |
} |
|
if { [istarget *-*-linux*] } { |
foreach i $gcc_gas_flag { |
set flags "additional_flags=$i $flags" |
} |
} |
if { [target_compile "$srcdir/$subdir/testprog.c $add_libs" tmpdir/$test_prog executable $flags] != "" } { |
return 2 |
} |
|
set result [remote_load target tmpdir/$test_prog] |
set status [lindex $result 0] |
|
if { $status != "pass" } { |
send_log "cannot run executable, status = ${status}\n" |
return 3 |
} |
|
return 0 |
} |
|
# Test copying an executable. |
|
proc copy_executable { prog flags test1 test2 } { |
global test_prog |
|
if [is_remote host] { |
set testfile [remote_download host tmpdir/$test_prog] |
set testcopy copyprog |
} else { |
set testfile tmpdir/$test_prog |
set testcopy tmpdir/copyprog |
} |
remote_file host delete $testcopy |
|
set exec_output [binutils_run $prog "$flags $testfile $testcopy"] |
|
if ![string match "" $exec_output] { |
fail $test1 |
if [string match "" $test2] { |
return |
} |
fail $test2 |
return |
} |
|
if [is_remote host] { |
remote_upload host $testcopy tmpdir/copyprog |
} |
|
set status [remote_exec build "cmp" "tmpdir/$test_prog tmpdir/copyprog"] |
set exec_output [lindex $status 1] |
|
if [string match "" $exec_output] then { |
pass $test1 |
} else { |
send_log "$exec_output\n" |
verbose "$exec_output" |
|
# This will fail for many reasons. For example, it will most |
# likely fail if a non-GNU linker is used. Therefore, we do |
# not insist that it pass. If you are using an assembler and |
# linker based on the same BFD as objcopy, it is worth |
# investigating to see why this failure occurs. If we are |
# cross compiling, we assume that a GNU linker is being used, |
# and expect it to succeed. |
if {[isnative]} then { |
setup_xfail "*-*-*" |
} |
|
# This also fails for mips*-*-elf targets. See elf32-mips.c |
# mips_elf_sym_is_global. |
setup_xfail "mips*-*-elf" |
|
setup_xfail "*arm*-*-coff" |
setup_xfail "xscale-*-coff" |
setup_xfail "arm*-*-pe" |
setup_xfail "thumb*-*-coff" |
setup_xfail "thumb*-*-pe" |
|
fail $test1 |
} |
|
if [string match "" $test2] { |
return |
} |
|
set output [remote_load target tmpdir/copyprog] |
set status [lindex $output 0] |
if { $status != "pass" } { |
fail $test2 |
} else { |
pass $test2 |
} |
} |
|
# Test stripping an executable |
|
proc strip_executable { prog flags test } { |
global NM |
global NMFLAGS |
|
remote_download build tmpdir/copyprog tmpdir/striprog |
if [is_remote host] { |
set copyfile [remote_download host tmpdir/striprog] |
} else { |
set copyfile tmpdir/striprog |
} |
|
set exec_output [binutils_run $prog "$flags ${copyfile}"] |
if ![string match "" $exec_output] { |
fail $test |
return |
} |
|
if [is_remote host] { |
remote_upload host ${copyfile} tmpdir/striprog |
} |
|
set result [remote_load target tmpdir/striprog] |
set status [lindex $result 0] |
if { $status != "pass" } { |
fail $test |
return |
} |
|
set exec_output [binutils_run $NM "$NMFLAGS ${copyfile}"] |
if ![string match "*: no symbols*" $exec_output] { |
fail $test |
return |
} |
pass $test |
} |
|
# Test stripping an executable with saving a symbol |
|
proc strip_executable_with_saving_a_symbol { prog flags test } { |
global NM |
global NMFLAGS |
|
remote_download build tmpdir/copyprog tmpdir/striprog |
if [is_remote host] { |
set copyfile [remote_download host tmpdir/striprog] |
} else { |
set copyfile tmpdir/striprog |
} |
|
set exec_output [binutils_run $prog "$flags ${copyfile}"] |
if ![string match "" $exec_output] { |
fail $test |
return |
} |
|
if [is_remote host] { |
remote_upload host ${copyfile} tmpdir/striprog |
} |
|
set result [remote_load target tmpdir/striprog] |
set status [lindex $result 0] |
if { $status != "pass" } { |
fail $test |
return |
} |
|
set exec_output [binutils_run $NM "$NMFLAGS ${copyfile}"] |
if { [istarget mmix-knuth-mmixware] } { |
# Whenever there's a symbol in the mmo format, there's the symbol |
# Main, so remove it manually from the expected output for sake of |
# this test. |
|
# Using "" not {} to get the \n and \r translated. |
regsub "^\[0-9a-fA-F\]+\[ \]+T Main\[\n\r\]+" $exec_output "" exec_output |
} |
|
if {![regexp {^([0-9a-fA-F]+)?[ ]+[TD] main} $exec_output] \ |
&& ![regexp {^([0-9a-fA-F]+)?[ ]+[TD] _main} $exec_output]} { |
fail $test |
return |
} |
pass $test |
} |
|
set test1 "simple objcopy of executable" |
set test2 "run objcopy of executable" |
set test3 "run stripped executable" |
set test4 "run stripped executable with saving a symbol" |
|
switch [copy_setup] { |
"1" { |
# do nothing |
} |
"2" { |
untested $test1 |
untested $test2 |
untested $test3 |
untested $test4 |
} |
"3" { |
copy_executable "$OBJCOPY" "$OBJCOPYFLAGS" "$test1" "" |
unsupported $test2 |
unsupported $test3 |
unsupported $test4 |
} |
"0" { |
copy_executable "$OBJCOPY" "$OBJCOPYFLAGS" "$test1" "$test2" |
strip_executable "$STRIP" "$STRIPFLAGS" "$test3" |
strip_executable_with_saving_a_symbol "$STRIP" "-K main -K _main $STRIPFLAGS" "$test4" |
} |
} |
|
proc objcopy_test_readelf {testname srcfile} { |
global OBJCOPY |
global OBJCOPYFLAGS |
global READELF |
global srcdir |
global subdir |
|
if {![binutils_assemble $srcdir/$subdir/${srcfile} tmpdir/bintest.o]} then { |
unresolved "objcopy ($testname)" |
return |
} |
|
verbose -log "$OBJCOPY $OBJCOPYFLAGS tmpdir/bintest.o tmpdir/copy.o" |
set exec_output [remote_exec host "$OBJCOPY $OBJCOPYFLAGS tmpdir/bintest.o tmpdir/copy.o"] |
if { [lindex $exec_output 0] != 0 |
|| ![string match "" [lindex $exec_output 1]] } then { |
fail "objcopy ($testname)" |
return |
} |
|
verbose -log "$READELF -a tmpdir/bintest.o > tmpdir/bintest.o.out" |
set exec_output [remote_exec host "$READELF -a tmpdir/bintest.o" "" "/dev/null" "tmpdir/bintest.o.out"] |
if { [lindex $exec_output 0] != 0 } then { |
unresolved "objcopy ($testname)" |
return |
} |
set exec_output [prune_warnings [lindex $exec_output 1]] |
if ![string match "" $exec_output] then { |
unresolved "objcopy ($testname)" |
return |
} |
|
verbose -log "$READELF -a tmpdir/copy.o > tmpdir/copy.o.out" |
set exec_output [remote_exec host "$READELF -a tmpdir/copy.o" "" "/dev/null" "tmpdir/copy.o.out"] |
if { [lindex $exec_output 0] != 0 } then { |
unresolved "objcopy ($testname)" |
return |
} |
set exec_output [prune_warnings [lindex $exec_output 1]] |
if ![string match "" $exec_output] then { |
unresolved "objcopy ($testname)" |
return |
} |
|
verbose -log "diff tmpdir/bintest.o.out tmpdir/copy.o.out" |
catch "exec diff tmpdir/bintest.o.out tmpdir/copy.o.out" exec_output |
set exec_output [prune_warnings $exec_output] |
|
if [string match "" $exec_output] then { |
pass "objcopy ($testname)" |
} else { |
fail "objcopy ($testname)" |
} |
} |
|
# ia64 specific tests |
if { ([istarget "ia64-*-elf*"] |
|| [istarget "ia64-*-linux*"]) } { |
objcopy_test "ia64 link order" link-order.s |
} |
|
# ELF specific tests |
if [is_elf_format] { |
objcopy_test "ELF unknown section type" unknown.s |
objcopy_test_readelf "ELF group" group.s |
run_dump_test "copy-1" |
} |
|
run_dump_test "copy-2" |
run_dump_test "copy-3" |
|
if [is_elf_format] { |
run_dump_test "strip-1" |
run_dump_test "strip-2" |
run_dump_test "strip-3" |
|
if { [istarget "i*86-*"] || [istarget "x86_64-*-*"] } { |
# Check to make sure we don't strip a symbol named in relocations. |
set test "objcopy keeps symbols needed by relocs" |
|
set srcfile $srcdir/$subdir/needed-by-reloc.s |
|
if {![binutils_assemble $srcfile tmpdir/bintest.o]} then { |
unresolved $test |
} else { |
set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS --strip-symbol=foo tmpdir/bintest.o ${copyfile}.o"] |
|
if [regexp "not stripping symbol `foo' because it is named in a relocation" $got] { |
pass $test |
} else { |
fail $test |
} |
} |
} |
|
run_dump_test "localize-hidden-1" |
} |
run_dump_test "localize-hidden-2" |
/unknown.s
0,0 → 1,4
.section .foo,"a","note" |
.global _start |
_start: |
.long 0 |
/readelf.r
0,0 → 1,4
|
Relocation section '.rel.*text' at offset 0x.* contains 1 entries: |
Offset Info Type Sym.Value Sym. Name.* |
00000004 [0-9A-Fa-f]+ *R_.*00000000 external_symbol.* |
/readelf.s
0,0 → 1,24
There are .* section headers, starting at offset .*: |
|
Section Headers: |
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al |
\[ 0\] NULL 00000000 000000 000000 00 +0 +0 +0 |
# On the normal MIPS systems, sections must be aligned to 16 byte |
# boundaries. On IA64, text sections are aligned to 16 byte boundaries. |
\[ 1\] .text PROGBITS 00000000 0000(34|40) 0000(08|10) 00 +AX +0 +0 +(.|..) |
\[ 2\] .rel.+text +REL. +0+ 0+.* 00000. 0. +. +1 +4 |
# MIPS targets put .rela.text here. |
#... |
\[ .\] .data PROGBITS 00000000 0000(3c|48|50) 0000(04|10) 00 WA +0 +0 +(.|..) |
\[ .\] .bss NOBITS 00000000 0000(40|4c|60) 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\), G \(group\), x \(unknown\) |
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) |
|
/dlltool.exp
0,0 → 1,81
# Copyright 2002, 2004, 2006, 2007 Free Software Foundation, Inc. |
|
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 3 of the License, or |
# (at your option) any later version. |
# |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
# GNU General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. |
|
if {![istarget "i*86-*-*"] && ![istarget "x86_64-*-mingw*"] } { |
return |
} |
|
if {![istarget "i*86-*-*pe*"] \ |
&& ![istarget "i*86-*-cygwin*"] \ |
&& ![istarget "i*86-*-mingw32*"] \ |
&& ![istarget "x86_64-*-mingw*"] } { |
set target_xfail "yes" |
} else { |
set target_xfail "no" |
} |
|
if {![info exists DLLTOOL]} then { |
return |
} |
|
if {[which $DLLTOOL] == 0} then { |
return |
} |
|
verbose "$DLLTOOL -d $srcdir/$subdir/fastcall.def" 1 |
catch "exec $DLLTOOL -d $srcdir/$subdir/fastcall.def" err |
|
if ![string match "" $err] then { |
send_log "$err\n" |
verbose "$err" 1 |
fail "dlltool (fastcall export)" |
} else { |
pass "dlltool (fastcall export)" |
} |
|
if { "$target_xfail" == "yes" } { |
setup_xfail *-* |
} |
|
verbose "$DLLTOOL -p prefix -l tmpdir/libalias.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" 1 |
catch "exec $DLLTOOL -p prefix -l tmpdir/libalias.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" err |
|
if ![string match "" $err] then { |
send_log "$err\n" |
verbose "$err" 1 |
fail "dlltool -p (execution)" |
continue |
} |
|
pass "dlltool -p (execution)" |
|
set got [binutils_run $NM "tmpdir/libalias.a"] |
set want "00000000 I __imp__prefix_symbol.*00000000 T _prefix_symbol.*00000000 I __imp__symbol.*00000000 T _symbol" |
|
if [regexp $want $got] then { |
pass "dlltool -p (symbol names)" |
} else { |
fail "dlltool -p (symbol names)" |
} |
|
set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias.a"] |
set want "(Contents of section .idata\\\$6:.*\\.\\.symbol\\.\\..*){2,2}" |
|
if [regexp $want $got] then { |
pass "dlltool -p (import name)" |
} else { |
fail "dlltool -p (import name)" |
} |
/nm.exp
0,0 → 1,123
# Copyright 1993, 1994, 1995, 1997, 2007 Free Software Foundation, Inc. |
|
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 3 of the License, or |
# (at your option) any later version. |
# |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
# GNU General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. |
|
# Please email any bugs, comments, and/or additions to this file to: |
# bug-dejagnu@prep.ai.mit.edu |
|
# This file was written by Rob Savoye <rob@cygnus.com> |
# and rewritten by Ian Lance Taylor <ian@cygnus.com> |
|
if ![is_remote host] { |
if {[which $NM] == 0} then { |
perror "$NM does not exist" |
return |
} |
} |
|
send_user "Version [binutil_version $NM]" |
|
|
if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then { |
return |
} |
|
if [is_remote host] { |
set tempfile [remote_download host tmpdir/bintest.o] |
} else { |
set tempfile tmpdir/bintest.o |
} |
|
# Test nm with no arguments. |
|
# This test does not work correctly on ECOFF targets, because ECOFF |
# stores most symbols twice, which messes up the nm output. |
setup_xfail "alpha*-*-osf*" "alpha*-*-netware*" |
setup_xfail "mips*-*-ultrix*" "mips*-*-ecoff*" "mips*-*-irix4*" |
setup_xfail "mips*-*-riscos*" "mips*-*-sysv3*" "mips*-sony-bsd*" |
|
# This test does not work correctly on XCOFF targets, because XCOFF |
# does not enter static symbols in the symbol table. |
setup_xfail "*-*-aix*" |
|
set got [binutils_run $NM "$NMFLAGS $tempfile"] |
|
if [info exists vars] then { unset vars } |
while {[regexp "(\[a-zA-Z\]) (\[a-z_\]*_symbol)(.*)" $got all type symbol rest]} { |
set vars($symbol) $type |
set got $rest |
} |
|
if {![info exists vars(text_symbol)] \ |
|| $vars(text_symbol) != "T" \ |
|| ![info exists vars(data_symbol)] \ |
|| $vars(data_symbol) != "D" \ |
|| ![info exists vars(common_symbol)] \ |
|| $vars(common_symbol) != "C" \ |
|| ![info exists vars(external_symbol)] \ |
|| $vars(external_symbol) != "U" \ |
|| ![info exists vars(static_text_symbol)] \ |
|| $vars(static_text_symbol) != "t" \ |
|| ![info exists vars(static_data_symbol)] \ |
|| $vars(static_data_symbol) != "d"} { |
fail "nm (no arguments)" |
} else { |
pass "nm (no arguments)" |
} |
|
# Test nm -g |
|
set got [binutils_run $NM "$NMFLAGS -g $tempfile"] |
|
if [info exists vars] then { unset vars } |
while {[regexp "(\[a-z_\]*_symbol)(.*)" $got all symbol rest]} { |
set vars($symbol) 1 |
set got $rest |
} |
|
if {![info exists vars(text_symbol)] \ |
|| ![info exists vars(data_symbol)] \ |
|| ![info exists vars(common_symbol)] \ |
|| ![info exists vars(external_symbol)] \ |
|| [info exists vars(static_text_symbol)] \ |
|| [info exists vars(static_data_symbol)]} { |
fail "nm -g" |
} else { |
pass "nm -g" |
} |
|
# Test nm -P |
|
# This test does not work correctly on ECOFF targets, because ECOFF |
# stores most symbols twice, which messes up the nm output. |
setup_xfail "alpha*-*-osf*" "alpha*-*-netware*" |
setup_xfail "mips*-*-ultrix*" "mips*-*-ecoff*" "mips*-*-irix4*" |
setup_xfail "mips*-*-riscos*" "mips*-*-sysv3*" "mips*-sony-bsd*" |
|
# This test does not work correctly on XCOFF targets, because XCOFF |
# does not enter static symbols in the symbol table. |
setup_xfail "*-*-aix*" |
|
set got [binutils_run $NM "$NMFLAGS -P $tempfile"] |
|
set want "common_symbol C \[0\]*4.*data_symbol D \[0-9a-fA-F\]*.*external_symbol U.*static_data_symbol d \[0-9a-fA-F\]*.*static_text_symbol t \[0-9a-fA-F\]*.*text_symbol T \[0-9a-fA-F\]*" |
|
if [regexp $want $got] then { |
pass "nm -P" |
} else { |
fail "nm -P" |
} |
|
# There are certainly other tests that could be run. |
/size.exp
0,0 → 1,81
# Copyright 1993, 1994, 1995, 1997, 1998, 2007 Free Software Foundation, Inc. |
|
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 3 of the License, or |
# (at your option) any later version. |
# |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
# GNU General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. |
|
# Please email any bugs, comments, and/or additions to this file to: |
# bug-dejagnu@prep.ai.mit.edu |
|
# This file was written by Rob Savoye <rob@cygnus.com> |
# and rewritten by Ian Lance Taylor <ian@cygnus.com> |
|
if ![is_remote host] { |
if {[which $SIZE] == 0} then { |
perror "$SIZE does not exist" |
return |
} |
} |
|
send_user "Version [binutil_version $SIZE]" |
|
|
if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then { |
return |
} |
|
if [is_remote host] { |
set testfile [remote_download host tmpdir/bintest.o] |
} else { |
set testfile tmpdir/bintest.o |
} |
|
set dec "\[0-9\]+" |
set hex "\[0-9a-fA-F\]+" |
|
# Test size with no arguments |
|
set got [binutils_run $SIZE "$SIZEFLAGS $testfile"] |
|
set want "($dec)\[ \]+($dec)\[ \]+($dec)\[ \]+($dec)\[ \]+($hex)\[ \]+${testfile}" |
|
if ![regexp $want $got all text data bss dtot hextot] then { |
fail "size (no arguments)" |
} else { |
if {$text < 8 || $data < 4} then { |
# The z80-coff port defaults to a "binary" like output |
# file format which does not include a data section. |
setup_xfail "z80-*-coff" |
fail "size (no arguments)" |
} else { |
pass "size (no arguments)" |
} |
} |
|
# Test size -A |
|
set got [binutils_run $SIZE "$SIZEFLAGS -A ${testfile}"] |
|
set want "${testfile}.*(text|TEXT)\[^\n\r\]*\[ \]($dec)\[ \]+$dec.*(\\.data|DATA)\[^\n\r\]*\[ \]($dec)\[ \]+$dec" |
|
if ![regexp $want $got all textname textsize dataname datasize] then { |
fail "size -A" |
} else { |
verbose "text size: $textsize" |
verbose "data size: $datasize" |
if {$textsize < 8 || $datasize < 4} then { |
fail "size -A" |
} else { |
pass "size -A" |
} |
} |
/dumptest.s
0,0 → 1,2
.data |
.ascii "test_string" |
/link-order.s
0,0 → 1,13
.text |
.align 16 |
.global foo# |
.proc foo# |
foo: |
.prologue 2, 2 |
.vframe r2 |
mov r2 = r12 |
.body |
.restore sp |
mov r12 = r2 |
br.ret.sptk.many b0 |
.endp foo# |
/bintest.s
0,0 → 1,12
.globl text_symbol |
.text |
text_symbol: |
static_text_symbol: |
.long 1 |
.long external_symbol |
.globl data_symbol |
.data |
data_symbol: |
static_data_symbol: |
.long 2 |
.comm common_symbol,4 |
/copytest.s
0,0 → 1,7
.globl foo_symbol |
.section foo |
foo_symbol: |
.long 1 |
.section bar |
bar_symbol: |
.long 2 |
/localize-hidden-1.d
0,0 → 1,19
#PROG: objcopy |
#objdump: --syms |
#objcopy: --localize-hidden |
#name: --localize-hidden test 1 |
#... |
0+1200 l .*\*ABS\* 0+ \.hidden Lhidden |
0+1300 l .*\*ABS\* 0+ \.internal Linternal |
0+1400 l .*\*ABS\* 0+ \.protected Lprotected |
0+1100 l .*\*ABS\* 0+ Ldefault |
#... |
0+2200 l .*\*ABS\* 0+ \.hidden Ghidden |
0+2300 l .*\*ABS\* 0+ \.internal Ginternal |
0+3200 l .*\*ABS\* 0+ \.hidden Whidden |
0+3300 l .*\*ABS\* 0+ \.internal Winternal |
0+2100 g .*\*ABS\* 0+ Gdefault |
0+2400 g .*\*ABS\* 0+ \.protected Gprotected |
0+3100 w.*\*ABS\* 0+ Wdefault |
0+3400 w.*\*ABS\* 0+ \.protected Wprotected |
#pass |
/localize-hidden-2.d
0,0 → 1,7
#PROG: objcopy |
#nm: -n |
#objcopy: --localize-hidden |
#name: --localize-hidden test 2 |
#... |
0+100 A G |
#pass |
/readelf.ss-tmips
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 3 |
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 |
6: 00000000 0 SECTION LOCAL DEFAULT 5 |
7: 00000000 0 SECTION LOCAL DEFAULT 6 |
8: 00000000 0 OBJECT GLOBAL DEFAULT 1 text_symbol |
9: 00000000 0 NOTYPE GLOBAL DEFAULT UND external_symbol |
10: 00000000 0 OBJECT GLOBAL DEFAULT 3 data_symbol |
11: 00000004 4 (COMMON|OBJECT) GLOBAL DEFAULT (PRC|COM) common_symbol |
/strip-1.d
0,0 → 1,11
#PROG: strip |
#source: group.s |
#readelf: -Sg --wide |
#name: strip with section group 1 |
|
#... |
\[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AX[ \t]+.* |
#... |
\[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WA[ \t]+.* |
#... |
There are no section groups in this file. |
/strip-2.d
0,0 → 1,18
#PROG: strip |
#source: group.s |
#strip: --strip-unneeded |
#readelf: -Sg --wide |
#name: strip with section group 2 |
|
#... |
\[[ 0-9]+\] foo_group[ \t]+GROUP[ \t]+.* |
#... |
\[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AXG[ \t]+.* |
#... |
\[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WAG[ \t]+.* |
#... |
COMDAT group section \[[ 0-9]+\] `foo_group' \[foo_group\] contains 2 sections: |
\[Index\] Name |
\[[ 0-9]+\] .text.* |
\[[ 0-9]+\] .data.* |
#pass |
/strip-3.d
0,0 → 1,11
#PROG: strip |
#source: empty.s |
#strip: -R .text -R .data -R .bss -R .ARM.attributes -R .reginfo -R .pdr -R .xtensa.info |
#readelf: -S --wide |
#name: strip empty file |
#target: *-*-linux* |
|
#... |
\[[ 0]+\][ \t]+NULL[ \t]+.* |
\[[ 1]+\] \.shstrtab.*[ \t]+STRTAB[ \t]+.* |
#pass |
/m68k/movem.s
0,0 → 1,2
movem.l %d0-%d3,-(%sp) |
movem.l %d0-%d3,(%sp) |
/m68k/objdump.exp
0,0 → 1,53
# Copyright 2004, 2007 |
# Free Software Foundation, Inc. |
|
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 3 of the License, or |
# (at your option) any later version. |
# |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
# GNU General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. |
|
if {![istarget "m68*-*-*"] || [istarget "m68h*-*-*"] || [istarget "m681*-*-*"]} then { |
return |
} |
|
if {[which $OBJDUMP] == 0} then { |
perror "$OBJDUMP does not exist" |
return |
} |
|
send_user "Version [binutil_version $OBJDUMP]" |
|
########################### |
# Set up the test of movem.s |
########################### |
|
if {![binutils_assemble $srcdir/$subdir/movem.s tmpdir/movem.o]} then { |
return |
} |
|
if [is_remote host] { |
set objfile [remote_download host tmpdir/movem.o] |
} else { |
set objfile tmpdir/movem.o |
} |
|
# Make sure that the movem is correctly decoded. |
|
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS --disassemble $objfile"] |
|
set want "moveml %d0-%d3,%sp@-.*moveml %d0-%d3,%sp@\[\r\n\]" |
|
if [regexp $want $got] then { |
pass "movem test" |
} else { |
fail "movem test" |
} |
/alias.def
0,0 → 1,2
EXPORTS |
symbol=nothing |
/hppa/freg.s
0,0 → 1,23
.LEVEL 2.0 |
.SPACE $PRIVATE$ |
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31 |
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82 |
.SPACE $TEXT$ |
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44 |
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY |
.IMPORT $global$,DATA |
.IMPORT $$dyncall,MILLICODE |
; gcc_compiled.: |
.SPACE $TEXT$ |
.SUBSPA $CODE$ |
|
.align 4 |
.NSUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY |
.EXPORT main,ENTRY,PRIV_LEV=3,RTNVAL=GR |
main |
.PROC |
.CALLINFO FRAME=64,CALLS,SAVE_RP |
.ENTRY |
fmpyfadd,sgl %fr4L,%fr4R,%fr5R,%fr5L |
.EXIT |
.PROCEND |
/hppa/objdump.exp
0,0 → 1,96
# Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2002, 2007 |
# Free Software Foundation, Inc. |
|
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 3 of the License, or |
# (at your option) any later version. |
# |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
# GNU General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. |
|
# Please email any bugs, comments, and/or additions to this file to: |
# bug-dejagnu@prep.ai.mit.edu |
|
# This file was written by Rob Savoye <rob@cygnus.com> |
# and rewritten by Ian Lance Taylor <ian@cygnus.com> |
|
if ![istarget hppa*-*-*] then { |
return |
} |
|
# These tests are not suitable for wide mode. |
if [istarget hppa*w-*-*] then { |
return |
} |
|
# elf hppa assembler doesn't support .subspa |
if {[istarget *64*-*-*] || [istarget *-*-*elf*] || [istarget *-*-linux*]} then { |
return |
} |
|
if {[which $OBJDUMP] == 0} then { |
perror "$OBJDUMP does not exist" |
return |
} |
|
send_user "Version [binutil_version $OBJDUMP]" |
|
if {![binutils_assemble $srcdir/$subdir/addendbug.s tmpdir/addendbug.o]} then { |
return |
} |
|
if [is_remote host] { |
set objfile [remote_download host tmpdir/addendbug.o] |
} else { |
set objfile tmpdir/addendbug.o |
} |
|
# Make sure the SOM BFD code sign extends constants in R_DATA_OVERRIDE fixups. |
|
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -r $objfile"] |
|
if [istarget hppa*-*-*elf*] then { |
set want "00000000 R_PARISC_DPREL21L\[ \]+is_idchar\\+0xffffffe0.*" |
} else { |
set want "00000000 R_DP_RELATIVE\[ \]+is_idchar\\+0xffffffe0.*" |
} |
|
|
if [regexp $want $got] then { |
pass "addendbug test" |
} else { |
fail "addendbug test" |
} |
|
########################### |
# Set up the test of freg.s |
########################### |
|
if {![binutils_assemble $srcdir/$subdir/freg.s tmpdir/freg.o]} then { |
return |
} |
|
if [is_remote host] { |
set objfile [remote_download host tmpdir/freg.o] |
} else { |
set objfile tmpdir/freg.o |
} |
|
# Make sure that we get R float regs like we're supposed to |
|
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS --disassemble $objfile"] |
|
set want "fmpyfadd,sgl fr4,fr4R,fr5R,fr5" |
|
if [regexp $want $got] then { |
pass "freg test" |
} else { |
fail "freg test" |
} |
/hppa/addendbug.s
0,0 → 1,23
.SPACE $PRIVATE$ |
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31 |
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82 |
.SPACE $TEXT$ |
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44 |
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY |
.IMPORT $global$,DATA |
.IMPORT $$dyncall,MILLICODE |
; gcc_compiled.: |
.SPACE $TEXT$ |
.SUBSPA $CODE$ |
|
.align 4 |
.EXPORT initialize_char_syntax,CODE |
.EXPORT initialize_char_syntax,ENTRY,PRIV_LEV=3,RTNVAL=GR |
initialize_char_syntax |
.PROC |
.CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3 |
.ENTRY |
addil L'is_idchar-$global$-32,%r27 |
.EXIT |
.PROCEND |
is_idchar .comm 256 |
/copy-1.d
0,0 → 1,13
#PROG: objcopy |
#objdump: -h |
#objcopy: --set-section-flags .post_text_reserve=contents,alloc,load,readonly,code |
#name: copy with setting section flags 1 |
|
.*: +file format .* |
|
Sections: |
Idx.* |
#... |
[0-9]* .post_text_reserve.* |
CONTENTS, ALLOC, LOAD, READONLY, CODE |
#... |
/localize-hidden-1.s
0,0 → 1,36
.globl Gdefault |
.globl Ghidden |
.globl Ginternal |
.globl Gprotected |
|
.weak Wdefault |
.weak Whidden |
.weak Winternal |
.weak Wprotected |
|
.hidden Lhidden |
.hidden Ghidden |
.hidden Whidden |
|
.internal Linternal |
.internal Ginternal |
.internal Winternal |
|
.protected Lprotected |
.protected Gprotected |
.protected Wprotected |
|
.equ Ldefault, 0x1100 |
.equ Lhidden, 0x1200 |
.equ Linternal, 0x1300 |
.equ Lprotected, 0x1400 |
|
.equ Gdefault, 0x2100 |
.equ Ghidden, 0x2200 |
.equ Ginternal, 0x2300 |
.equ Gprotected, 0x2400 |
|
.equ Wdefault, 0x3100 |
.equ Whidden, 0x3200 |
.equ Winternal, 0x3300 |
.equ Wprotected, 0x3400 |
/readelf.s-64
0,0 → 1,25
There are .* section headers, starting at offset .*: |
|
Section Headers: |
\[Nr\] Name Type Address Offset |
Size EntSize Flags Link Info Align |
\[ 0\] NULL 0000000000000000 00000000 |
0000000000000000 0000000000000000 0 0 0 |
\[ 1\] .text PROGBITS 0000000000000000 00000040 |
00000000000000.. 0000000000000000 AX 0 0 .* |
\[ 2\] .rel.+text +REL. +0+ 0+.* |
000000000000001. 000000000000001. . 1 8 |
\[ 3\] .data PROGBITS 0000000000000000 000000(48|50) |
000000000000000[48] 0000000000000000 WA 0 0 .* |
\[ 4\] .bss NOBITS 0000000000000000 000000(4c|50|54|58) |
0000000000000000 0000000000000000 WA 0 0 .* |
\[ 5\] .shstrtab STRTAB 0000000000000000 000000(4c|50|54|58) |
00000000000000.. 0000000000000000 0 0 .* |
\[ 6\] .symtab SYMTAB 0000000000000000 0+.* |
0+.* 0000000000000018 7 6 8 |
\[ 7\] .strtab STRTAB 0000000000000000 0+.* |
0+.* 0000000000000000 0 0 1 |
Key to Flags: |
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) |
I \(info\), L \(link order\), G \(group\), x \(unknown\) |
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) |
/localize-hidden-2.s
0,0 → 1,2
.globl G |
.equ G,0x100 |
/copy-2.d
0,0 → 1,18
#PROG: objcopy |
#objdump: -h |
#objcopy: --set-section-flags foo=contents,alloc,load,code |
#name: copy with setting section flags 2 |
#source: copytest.s |
#not-target: *-*-*aout |
# Note - we use copytest.s and a section named "foo" rather |
# than .text because for some file formats (eg PE) the .text |
# section has a fixed set of flags and these cannot be changed. |
|
.*: +file format .* |
|
Sections: |
Idx.* |
#... |
[0-9]* foo.* |
CONTENTS, ALLOC, LOAD, CODE |
#... |
/copy-3.d
0,0 → 1,17
#PROG: objcopy |
#objdump: -h |
#objcopy: --set-section-flags .text=alloc,data |
#name: copy with setting section flags 3 |
#source: bintest.s |
#not-target: *-*-*aout *-*-*pe *-*-*coff i*86-*-cygwin* i*86-*-mingw32* x86_64-*-mingw* |
# The .text # section in PE/COFF has a fixed set of flags and these |
# cannot be changed. We skip it for them. |
|
.*: +file format .* |
|
Sections: |
Idx.* |
#... |
[0-9]* .text.* |
CONTENTS, ALLOC, LOAD, RELOC, DATA |
#... |
/readelf.ss-mips
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 . (|\.text) |
2: 00000000 0 SECTION LOCAL DEFAULT . (|\.data) |
3: 00000000 0 SECTION LOCAL DEFAULT . (|\.bss) |
4: 00000000 0 SECTION LOCAL DEFAULT . (|\.reginfo) |
5: 00000000 0 SECTION LOCAL DEFAULT . (|\.pdr) |
6: 00000000 0 OBJECT GLOBAL DEFAULT . text_symbol |
7: 00000000 0 NOTYPE LOCAL DEFAULT . static_text_symbol |
8: 00000000 0 NOTYPE GLOBAL DEFAULT UND external_symbol |
9: 00000000 0 OBJECT GLOBAL DEFAULT . data_symbol |
10: 00000000 0 NOTYPE LOCAL DEFAULT . static_data_symbol |
11: 00000004 4 (COMMON|OBJECT) GLOBAL DEFAULT (PRC|COM) common_symbol |
/readelf.exp
0,0 → 1,299
# Copyright 1999, 2000, 2001, 2003, 2004, 2007 Free Software Foundation, Inc. |
|
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 3 of the License, or |
# (at your option) any later version. |
# |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
# GNU General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. |
|
# Please email any bugs, comments, and/or additions to this file to: |
# bug-dejagnu@prep.ai.mit.edu |
|
# Written by Nick Clifton <nickc@cygnus.com> |
# Based on scripts written by Ian Lance Taylor <ian@cygnus.com> |
# and Ken Raeburn <raeburn@cygnus.com>. |
|
# Exclude non-ELF targets. |
if ![is_elf_format] { |
verbose "$READELF is only intended for ELF targets" 2 |
return |
} |
|
# First some helpful procedures, then the tests themselves |
|
# Return the contents of the filename given |
proc file_contents { filename } { |
set file [open $filename r] |
set contents [read $file] |
close $file |
return $contents |
} |
|
# Find out the size by reading the output of the EI_CLASS field. |
# Similar to the test for readelf -h, but we're just looking for the |
# EI_CLASS line here. |
proc readelf_find_size { binary_file } { |
global READELF |
global READELFFLAGS |
global readelf_size |
|
set readelf_size "" |
set testname "finding out ELF size with readelf -h" |
set got [remote_exec host "$READELF $READELFFLAGS -h $binary_file" "" "/dev/null" "readelf.out"] |
if [is_remote host] then { |
remote_upload host "readelf.out" |
} |
|
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]]} then { |
send_log $got |
fail $testname |
return |
} |
|
if { ! [regexp "\n\[ \]*Class:\[ \]*ELF(\[0-9\]+)\n" \ |
[file_contents readelf.out] nil readelf_size] } { |
verbose -log "EI_CLASS field not found in output" |
verbose -log "output is \n[file_contents readelf.out]" |
fail $testname |
return |
} else { |
verbose -log "ELF size is $readelf_size" |
} |
|
pass $testname |
} |
|
# Run an individual readelf test. |
# Basically readelf is run on the binary_file with the given options. |
# Readelf's output is captured and then compared against the contents |
# of the regexp_file-readelf_size if it exists, else regexp_file. |
|
proc readelf_test { options binary_file regexp_file xfails } { |
|
global READELF |
global READELFFLAGS |
global readelf_size |
global srcdir |
global subdir |
|
send_log "exec $READELF $READELFFLAGS $options $binary_file > readelf.out\n" |
set got [remote_exec host "$READELF $READELFFLAGS $options $binary_file" "" "/dev/null" "readelf.out"] |
|
foreach xfail $xfails { |
setup_xfail $xfail |
} |
|
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { |
fail "readelf $options (reason: unexpected output)" |
send_log $got |
send_log "\n" |
return |
} |
|
set target_machine "" |
if [istarget "mips*-*-*"] then { |
if { [istarget "mips*-*-*linux*"] || [istarget "mips*-sde-elf*"] } then { |
set target_machine tmips |
} else { |
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 |
} |
|
if { [regexp_diff readelf.out $srcdir/$subdir/$regexp_file] } then { |
fail "readelf $options" |
verbose "output is \n[file_contents readelf.out]" 2 |
return |
} |
|
pass "readelf $options" |
} |
|
# Simple proc to skip certain expected warning messages. |
|
proc prune_readelf_wi_warnings { text } { |
regsub -all "(^|\n)(.*Skipping unexpected symbol type.*)" $text "\\1" text |
return $text |
} |
|
# Testing the "readelf -wi" option is difficult because there |
# is no guaranteed order to the output, and because some ports |
# will use indirect string references, whilst others will use |
# direct references. So instead of having an expected output |
# file, like the other readelf tests, we grep for strings that |
# really ought to be there. |
|
proc readelf_wi_test {} { |
global READELF |
global READELFFLAGS |
global srcdir |
global subdir |
|
# Compile the second test file. |
if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog.o object debug] != "" } { |
verbose "Unable to compile test file." |
untested "readelf -wi" |
return |
} |
|
# Download it. |
set tempfile [remote_download host tmpdir/testprog.o] |
|
# Run "readelf -wi" on it. |
set got [remote_exec host "$READELF $READELFFLAGS -wi $tempfile" "" "/dev/null" "readelf.out"] |
|
# Upload the results. |
set output [remote_upload host readelf.out] |
|
file_on_host delete $tempfile |
|
# Strip any superflous warnings. |
set got [prune_readelf_wi_warnings [lindex $got 1]] |
|
if ![string match "" $got] then { |
fail "readelf $READELFFLAGS -wi (reason: unexpected output)" |
send_log $got |
send_log "\n" |
return |
} |
|
if ![file size $output] then { |
# If the output file is empty, then this target does not |
# generate dwarf2 output. This is not a failure. |
verbose "No output from 'readelf -wi'" |
untested "readelf -wi" |
return |
} |
|
# Search for strings that should be in the output. |
set sought { |
".*DW_TAG_compile_unit.*" |
".*DW_TAG_subprogram.*" |
".*DW_TAG_base_type.*" |
".*DW_AT_producer.*(GNU C|indirect string).*" |
".*DW_AT_language.*ANSI C.*" |
".*DW_AT_name.*(testprog.c|indirect string).*" |
".*DW_AT_name.*fn.*" |
".*DW_AT_name.*(main|indirect string).*" |
".*\(DW_OP_addr: 0\).*" |
} |
|
foreach looked_for $sought { |
set lines [grep $output $looked_for] |
if ![llength $lines] then { |
fail "readelf -wi: missing: $looked_for" |
send_log readelf.out |
return |
} |
} |
|
file_on_host delete $output |
|
# All done. |
pass "readelf -wi" |
} |
|
|
# Test readelf's dumping abilities. |
|
proc readelf_dump_test {} { |
global READELF |
global READELFFLAGS |
global srcdir |
global subdir |
|
# Assemble the dump test file. |
if {![binutils_assemble $srcdir/$subdir/dumptest.s tmpdir/dumptest.o]} then { |
unresolved "readelf -p: failed to assemble dump test file" |
return |
} |
# Download it. |
set tempfile [remote_download host tmpdir/dumptest.o] |
|
# Run "readelf -p.data" on it. |
set got [remote_exec host "$READELF $READELFFLAGS -p.data $tempfile" "" "/dev/null" "readelf.out"] |
set got [lindex $got 1] |
|
# Upload the results. |
set output [remote_upload host readelf.out] |
|
# Check for something going wrong. |
if ![string match "" $got] then { |
fail "readelf -p: unexpected output" |
send_log $got |
send_log "\n" |
return |
} |
|
# Search for strings that should be in the output. |
set sought { |
".*test_string.*" |
} |
|
foreach looked_for $sought { |
set lines [grep $output $looked_for] |
if ![llength $lines] then { |
fail "readelf -p: missing: $looked_for" |
send_log readelf.out |
return |
} |
} |
|
file_on_host delete $tempfile |
file_on_host delete $output |
|
# All done. |
pass "readelf -p" |
|
# XXX FIXME: Add test of readelf -x here |
} |
|
if ![is_remote host] { |
if {[which $READELF] == 0} then { |
perror "$READELF does not exist" |
return |
} |
} |
|
send_user "Version [binutil_version $READELF]" |
|
# Assemble the test file. |
if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then { |
perror "could not assemble test file" |
unresolved "readelf - failed to assemble" |
return |
} |
|
if ![is_remote host] { |
set tempfile tmpdir/bintest.o |
} else { |
set tempfile [remote_download host tmpdir/bintest.o] |
} |
|
# First, determine the size, so specific output matchers can be used. |
readelf_find_size $tempfile |
|
# Run the tests. |
readelf_test -h $tempfile readelf.h {} |
readelf_test -S $tempfile readelf.s {} |
readelf_test -s $tempfile readelf.ss {} |
readelf_test -r $tempfile readelf.r {} |
|
readelf_wi_test |
|
readelf_dump_test |
/ar.exp
0,0 → 1,363
# Copyright 1995, 1997, 2002, 2004, 2007, 2008 Free Software Foundation, Inc. |
|
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 3 of the License, or |
# (at your option) any later version. |
# |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
# GNU General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. |
|
# Please email any bugs, comments, and/or additions to this file to: |
# bug-dejagnu@prep.ai.mit.edu |
|
# Written by Ian Lance Taylor <ian@cygnus.com> |
|
if ![is_remote host] { |
if {[which $AR] == 0} then { |
perror "$AR does not exist" |
return |
} |
} |
|
# send_user "Version [binutil_version $AR]" |
|
# Test long file name support |
|
proc long_filenames { } { |
global AR |
global host_triplet |
|
set testname "ar long file names" |
|
set n1 "abcdefghijklmnopqrstuvwxyz1" |
set n2 "abcdefghijklmnopqrstuvwxyz2" |
set file1 tmpdir/$n1 |
set file2 tmpdir/$n2 |
|
remote_file build delete $file1 |
remote_file host delete $n1 |
|
# Some file systems truncate file names at 14 characters, which |
# makes it impossible to run this test. Check for that now. |
set status [catch "set f [open tmpdir/$n1 w]" errs] |
if { $status != 0 } { |
verbose -log "open tmpdir/$n1 returned $errs" |
unsupported $testname |
return |
} |
puts $f "first" |
close $f |
|
remote_file build delete $file2 |
remote_file host delete $n2 |
|
set status [catch "set f [open tmpdir/$n2 w]" errs] |
if { $status != 0 } { |
verbose -log "open tmpdir/$n2 returned $errs" |
unsupported $testname |
return |
} |
puts $f "second" |
close $f |
|
if [is_remote host] { |
set file1 [remote_download host $file1] |
set file2 [remote_download host $file2] |
set dest artest.a |
} else { |
set dest tmpdir/artest.a |
} |
|
remote_file host delete $dest |
|
set got [binutils_run $AR "rc $dest $file1 $file2"] |
if [is_remote host] { |
remote_upload host $file1 tmpdir/$n1 |
} |
|
set f [open tmpdir/$n1 r] |
gets $f string |
close $f |
if ![string match "first" $string] { |
verbose -log "reading tmpdir/$n1 returned $string" |
unsupported $testname |
return |
} |
|
remote_file host delete $dest |
set got [binutils_run $AR "rc $dest $file1 $file2"] |
|
if ![string match "" $got] { |
fail $testname |
return |
} |
|
remote_file build delete tmpdir/$n1 |
remote_file build delete tmpdir/$n2 |
|
set got [binutils_run $AR "t $dest"] |
regsub "\[\r\n \t\]*$" "$got" "" got |
if ![string match "$n1*$n2" $got] { |
fail $testname |
return |
} |
|
if [is_remote host] { |
remote_file host delete $file1 |
remote_file host delete $file2 |
} |
|
verbose -log "$AR x $dest" |
set exec_output [binutils_run $AR "x $dest"] |
set exec_output [prune_warnings $exec_output] |
if ![string match "" $exec_output] { |
verbose -log $exec_output |
fail $testname |
return |
} |
|
if [is_remote host] { |
remote_upload host $n1 tmpdir/$n1 |
remote_upload host $n2 tmpdir/$n2 |
set file1 tmpdir/$n1 |
set file2 tmpdir/$n2 |
} else { |
set file1 $n1 |
set file2 $n2 |
} |
|
if ![file exists $file1] { |
verbose -log "$file1 does not exist" |
fail $testname |
return |
} |
if ![file exists $file2] { |
verbose -log "$file2 does not exist" |
fail $testname |
return |
} |
|
set f [open $file1 r] |
if { [gets $f line] == -1 || $line != "first" } { |
verbose -log "$file1 contents:" |
verbose -log "$line" |
close $f |
fail $testname |
return |
} |
close $f |
|
set f [open $file2 r] |
if { [gets $f line] == -1 || $line != "second" } { |
verbose -log "$file2 contents:" |
verbose -log "$line" |
close $f |
fail $testname |
return |
} |
close $f |
|
file delete $file1 $file2 |
pass $testname |
} |
|
# Test building the symbol table. |
|
proc symbol_table { } { |
global AR |
global AS |
global NM |
global srcdir |
global subdir |
|
set testname "ar symbol table" |
|
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] { |
unresolved $testname |
return |
} |
|
if [is_remote host] { |
set archive artest.a |
set objfile [remote_download host tmpdir/bintest.o] |
remote_file host delete $archive |
} else { |
set archive tmpdir/artest.a |
set objfile tmpdir/bintest.o |
} |
|
remote_file build delete tmpdir/artest.a |
|
set got [binutils_run $AR "rc $archive ${objfile}"] |
if ![string match "" $got] { |
fail $testname |
return |
} |
|
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] } { |
fail $testname |
return |
} |
|
pass $testname |
} |
|
# Test building a thin archive. |
|
proc thin_archive { } { |
global AR |
global AS |
global NM |
global srcdir |
global subdir |
|
set testname "ar thin archive" |
|
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] { |
unresolved $testname |
return |
} |
|
if [is_remote host] { |
set archive artest.a |
set objfile [remote_download host tmpdir/bintest.o] |
remote_file host delete $archive |
} else { |
set archive tmpdir/artest.a |
set objfile tmpdir/bintest.o |
} |
|
remote_file build delete tmpdir/artest.a |
|
set got [binutils_run $AR "rcT $archive ${objfile}"] |
if ![string match "" $got] { |
fail $testname |
return |
} |
|
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] } { |
fail $testname |
return |
} |
|
pass $testname |
} |
|
# Test building a thin archive with a nested archive. |
|
proc thin_archive_with_nested { } { |
global AR |
global AS |
global NM |
global srcdir |
global subdir |
|
set testname "ar thin archive with nested archive" |
|
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] { |
unresolved $testname |
return |
} |
|
if [is_remote host] { |
set archive artest.a |
set archive2 artest2.a |
set objfile [remote_download host tmpdir/bintest.o] |
remote_file host delete $archive |
} else { |
set archive tmpdir/artest.a |
set archive2 tmpdir/artest2.a |
set objfile tmpdir/bintest.o |
} |
|
remote_file build delete tmpdir/artest.a |
|
set got [binutils_run $AR "rc $archive ${objfile}"] |
if ![string match "" $got] { |
fail $testname |
return |
} |
|
remote_file build delete tmpdir/artest2.a |
|
set got [binutils_run $AR "rcT $archive2 ${archive}"] |
if ![string match "" $got] { |
fail $testname |
return |
} |
|
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] } { |
fail $testname |
return |
} |
|
pass $testname |
} |
|
# Test POSIX-compatible argument parsing. |
|
proc argument_parsing { } { |
global AR |
global AS |
global srcdir |
global subdir |
|
set testname "ar argument parsing" |
|
if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] { |
unresolved $testname |
return |
} |
|
if [is_remote host] { |
set archive artest.a |
set objfile [remote_download host tmpdir/bintest.o] |
remote_file host delete $archive |
} else { |
set archive tmpdir/artest.a |
set objfile tmpdir/bintest.o |
} |
|
remote_file build delete tmpdir/artest.a |
|
set got [binutils_run $AR "-r -c $archive ${objfile}"] |
if ![string match "" $got] { |
fail $testname |
return |
} |
|
pass $testname |
} |
|
# Run the tests. |
|
long_filenames |
symbol_table |
thin_archive |
thin_archive_with_nested |
argument_parsing |
/group.s
0,0 → 1,8
.section .text,"axG",%progbits,foo_group,comdat |
.global foo |
foo: |
.word 0 |
.section .data,"awG",%progbits,foo_group,comdat |
.global bar |
bar: |
.word 0 |
/vax/objdump.exp
0,0 → 1,64
# |
# Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2002, 2005, 2007 |
# Free Software Foundation, Inc. |
# |
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 3 of the License, or |
# (at your option) any later version. |
# |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
# GNU General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. |
# |
|
# |
# This file was written by Jan-Benedict Glaw <jbglaw@lug-owl.de>. It's goal |
# is to check the VAX-specific support of the -M entry:0xf00 switch, which |
# allows to force function entry masks at given addresses. |
# |
|
if ![istarget vax*-*-*] then { |
return |
} |
|
if {[which $OBJDUMP] == 0} then { |
perror "$OBJDUMP does not exist" |
return |
} |
|
send_user "Version [binutil_version $OBJDUMP]" |
|
if {![binutils_assemble $srcdir/$subdir/entrymask.s tmpdir/entrymask.o]} then { |
return |
} |
|
if [is_remote host] { |
set objfile [remote_download host tmpdir/entrymask.o] |
} else { |
set objfile tmpdir/entrymask.o |
} |
|
# |
# We check both function entry points. The second one at offset 2 will |
# show up automatically on ELF targets, but needs to be set on a.out |
# targets. |
# |
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -d -M entry:0x0 -M entry:2 $objfile"] |
set want1 "\[ \]+0:\[ \]+10 01\[ \]+\\.word 0x0110.\*r8 r4" |
set want2 "\[ \]+2:\[ \]+24 02\[ \]+\\.word 0x0224.\*r9 r5 r2" |
if [regexp $want1 $got] then { |
pass "entrymask test 1" |
} else { |
fail "entrymask test 1" |
} |
if [regexp $want2 $got] then { |
pass "entrymask test 2" |
} else { |
fail "entrymask test 2" |
} |
/vax/entrymask.s
0,0 → 1,11
.text |
|
.global label1 |
label1: |
.word 0x0110 |
|
.global label2 |
.type label2,@function |
label2: |
.word 0x0224 |
|
/empty.s
0,0 → 1,11
# An empty file. |
/copy-1.s
0,0 → 1,6
.globl text_symbol |
.text |
text_symbol: |
.long 1 |
.section .post_text_reserve,"w", %nobits |
.space 160 |
/windres/dialogid.rc
0,0 → 1,9
// Test created based on bug report submitted to binutils mailing list |
// See: http://sources.redhat.com/ml/binutils/2003-03/msg00312.html |
|
101 DIALOGEX 0, 0, 200, 200 |
|
BEGIN |
CONTROL 108, -1, "classname", 77, 11, 11, 83, 162 |
CONTROL "stringid", 102, "classname", 0x5000120e, 5, 5, 10, 10 |
END |
/windres/bmpalign.rsd
0,0 → 1,38
0000 00000000 20000000 ffff0000 ffff0000 .... ........... |
0010 00000000 00000000 00000000 00000000 ................ |
0020 6c000000 20000000 ffff0200 41000000 l... .......A... |
0030 00000000 30100000 00000000 00000000 ....0........... |
0040 28000000 01000000 01000000 01000400 (............... |
0050 00000000 04000000 00000000 00000000 ................ |
0060 00000000 00000000 00000000 00008000 ................ |
0070 00800000 00808000 80000000 80008000 ................ |
0080 80800000 c0c0c000 80808000 0000ff00 ................ |
0090 00ff0000 00ffff00 ff000000 ff00ff00 ................ |
00a0 ffff0000 ffffff00 90000000 6c000000 ............l... |
00b0 24000000 ffff0200 41004200 00000000 $.......A.B..... |
00c0 00000000 30100000 00000000 00000000 ....0........... |
00d0 28000000 01000000 01000000 01000400 (............... |
00e0 00000000 04000000 00000000 00000000 ................ |
00f0 00000000 00000000 00000000 00008000 ................ |
0100 00800000 00808000 80000000 80008000 ................ |
0110 80800000 c0c0c000 80808000 0000ff00 ................ |
0120 00ff0000 00ffff00 ff000000 ff00ff00 ................ |
0130 ffff0000 ffffff00 90000000 6c000000 ............l... |
0140 24000000 ffff0200 41004200 43000000 $.......A.B.C... |
0150 00000000 30100000 00000000 00000000 ....0........... |
0160 28000000 01000000 01000000 01000400 (............... |
0170 00000000 04000000 00000000 00000000 ................ |
0180 00000000 00000000 00000000 00008000 ................ |
0190 00800000 00808000 80000000 80008000 ................ |
01a0 80800000 c0c0c000 80808000 0000ff00 ................ |
01b0 00ff0000 00ffff00 ff000000 ff00ff00 ................ |
01c0 ffff0000 ffffff00 90000000 6c000000 ............l... |
01d0 28000000 ffff0200 41004200 43004400 (.......A.B.C.D. |
01e0 00000000 00000000 30100000 00000000 ........0....... |
01f0 00000000 28000000 01000000 01000000 ....(........... |
0200 01000400 00000000 04000000 00000000 ................ |
0210 00000000 00000000 00000000 00000000 ................ |
0220 00008000 00800000 00808000 80000000 ................ |
0230 80008000 80800000 c0c0c000 80808000 ................ |
0240 0000ff00 00ff0000 00ffff00 ff000000 ................ |
0250 ff00ff00 ffff0000 ffffff00 90000000 ................ |
/windres/printstyle.rc
0,0 → 1,6
101 DIALOG DISCARDABLE 0, 0, 186, 95 |
STYLE 0 |
BEGIN |
DEFPUSHBUTTON "OK",1,129,7,50,14 |
END |
|
/windres/edittext.rsd
0,0 → 1,8
0000 00000000 20000000 ffff0000 ffff0000 .... ........... |
0010 00000000 00000000 00000000 00000000 ................ |
0020 32000000 20000000 ffff0500 fffff501 2... ........... |
0030 00000000 30100904 00000000 00000000 ....0........... |
0040 00008880 00000000 01000000 0000a800 ................ |
0050 89000000 00000000 00008150 00000000 ...........P.... |
0060 1c003f00 89003400 e903ffff 81000000 ..?...4......... |
0070 00000000 .... |
/windres/nocaption.rsd
0,0 → 1,8
0000 00000000 20000000 ffff0000 ffff0000 .... ........... |
0010 00000000 00000000 00000000 00000000 ................ |
0020 36000000 20000000 ffff0500 ffff6500 6... .........e. |
0030 00000000 30100904 00000000 00000000 ....0........... |
0040 00008880 00000000 01000000 0000ba00 ................ |
0050 5f000000 00000000 01000150 00000000 _..........P.... |
0060 81000700 32000e00 0100ffff 80004f00 ....2.........O. |
0070 4b000000 00000000 K....... |
/windres/dialog1.rc
0,0 → 1,5
101 DIALOG DISCARDABLE 0, 0, 186, 95 |
BEGIN |
DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14 |
END |
|
/windres/dlgfont.rsd
0,0 → 1,39
0000 00000000 20000000 ffff0000 ffff0000 .... ........... |
0010 00000000 00000000 00000000 00000000 ................ |
0020 46000000 20000000 ffff0500 ffff6500 F... .........e. |
0030 00000000 30100904 00000000 00000000 ....0........... |
0040 40008880 00000000 01000000 0000ba00 @............... |
0050 5f000000 00000000 08005400 61006800 _.........T.a.h. |
0060 6f006d00 61000000 01000150 00000000 o.m.a......P.... |
0070 81000700 32000e00 0100ffff 80004f00 ....2.........O. |
0080 4b000000 00000000 58000000 20000000 K.......X... ... |
0090 ffff0500 ffff6600 00000000 30100904 ......f.....0... |
00a0 00000000 00000000 0100ffff 00000000 ................ |
00b0 00000000 40008880 01000000 0000ba00 ....@........... |
00c0 5f000000 00000000 08000000 00015400 _.............T. |
00d0 61006800 6f006d00 61000000 00000000 a.h.o.m.a....... |
00e0 00000000 01000150 81000700 32000e00 .......P....2... |
00f0 01000000 ffff8000 4f004b00 00000000 ........O.K..... |
0100 58000000 20000000 ffff0500 ffff6700 X... .........g. |
0110 00000000 30100904 00000000 00000000 ....0........... |
0120 0100ffff 00000000 00000000 40008880 ............@... |
0130 01000000 0000ba00 5f000000 00000000 ........_....... |
0140 08000000 00015400 61006800 6f006d00 ......T.a.h.o.m. |
0150 61000000 00000000 00000000 01000150 a..............P |
0160 81000700 32000e00 01000000 ffff8000 ....2........... |
0170 4f004b00 00000000 58000000 20000000 O.K.....X... ... |
0180 ffff0500 ffff6800 00000000 30100904 ......h.....0... |
0190 00000000 00000000 0100ffff 00000000 ................ |
01a0 00000000 40008880 01000000 0000ba00 ....@........... |
01b0 5f000000 00000000 08000000 00015400 _.............T. |
01c0 61006800 6f006d00 61000000 00000000 a.h.o.m.a....... |
01d0 00000000 01000150 81000700 32000e00 .......P....2... |
01e0 01000000 ffff8000 4f004b00 00000000 ........O.K..... |
01f0 58000000 20000000 ffff0500 ffff6900 X... .........i. |
0200 00000000 30100904 00000000 00000000 ....0........... |
0210 0100ffff 00000000 00000000 40008880 ............@... |
0220 01000000 0000ba00 5f000000 00000000 ........_....... |
0230 08000000 00015400 61006800 6f006d00 ......T.a.h.o.m. |
0240 61000000 00000000 00000000 01000150 a..............P |
0250 81000700 32000e00 01000000 ffff8000 ....2........... |
0260 4f004b00 00000000 O.K..... |
/windres/strtab2.rc
0,0 → 1,9
//#xfail x86_64-*-mingw* |
#include "windows.h" |
|
LANGUAGE 0, 0 |
|
STRINGTABLE MOVEABLE PURE DISCARDABLE |
BEGIN |
1 L"hello, world" |
END |
/windres/quoteclass.rc
0,0 → 1,8
// parse-only |
|
101 DIALOG DISCARDABLE 0, 0, 186, 95 |
CLASS "myclass" |
BEGIN |
DEFPUSHBUTTON "OK",1,129,7,50,14 |
END |
|
/windres/deflang.rsd
0,0 → 1,8
0000 00000000 20000000 ffff0000 ffff0000 .... ........... |
0010 00000000 00000000 00000000 00000000 ................ |
0020 36000000 20000000 ffff0500 ffff6500 6... .........e. |
0030 00000000 30100904 00000000 00000000 ....0........... |
0040 00008880 00000000 01000000 0000ba00 ................ |
0050 5f000000 00000000 01000150 00000000 _..........P.... |
0060 81000700 32000e00 0100ffff 80004f00 ....2.........O. |
0070 4b000000 00000000 K....... |
/windres/escapea.rsd
0,0 → 1,7
0000 00000000 20000000 ffff0000 ffff0000 .... ........... |
0010 00000000 00000000 00000000 00000000 ................ |
0020 28000000 20000000 ffff0400 ffff1400 (... ........... |
0030 00000000 30100904 00000000 00000000 ....0........... |
0040 00000000 90002600 46006900 6c006500 ......&.F.i.l.e. |
0050 00008000 11002600 4f007000 65006e00 ......&.O.p.e.n. |
0060 08005e00 4f000000 ..^.O... |
/windres/html2.hm
0,0 → 1,11
<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en"> |
<html> |
<head> |
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> |
<title>Windres</title> |
</head> |
|
<body> |
This is a second test page for windres HTML resource. |
</body> |
</html> |
/windres/escapex-2.rc
0,0 → 1,5
101 DIALOG DISCARDABLE 0, 0, 186, 95 |
BEGIN |
LTEXT "\xB0ABC",-1,23,46,28,8 |
END |
|
windres/escapex-2.rc
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: windres/edittext.rc
===================================================================
--- windres/edittext.rc (nonexistent)
+++ windres/edittext.rc (revision 816)
@@ -0,0 +1,4 @@
+501 DIALOG DISCARDABLE 0, 0, 168, 137
+BEGIN
+ EDITTEXT 1001, 28, 63, 137, 52
+END
Index: windres/nocaption.rc
===================================================================
--- windres/nocaption.rc (nonexistent)
+++ windres/nocaption.rc (revision 816)
@@ -0,0 +1,4 @@
+101 DIALOG DISCARDABLE 0, 0, 186, 95
+BEGIN
+ DEFPUSHBUTTON "OK",1,129,7,50,14
+END
Index: windres/sublang.rc
===================================================================
--- windres/sublang.rc (nonexistent)
+++ windres/sublang.rc (revision 816)
@@ -0,0 +1,5 @@
+LANGUAGE 9, 1
+101 DIALOG DISCARDABLE 0, 0, 186, 95
+BEGIN
+ DEFPUSHBUTTON "OK",1,129,7,50,14
+END
Index: windres/version_cat.rsd
===================================================================
--- windres/version_cat.rsd (nonexistent)
+++ windres/version_cat.rsd (revision 816)
@@ -0,0 +1,55 @@
+
+version.res: file format binary
+
+Contents of section .data:
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 ec020000 20000000 ffff1000 ffff0100 .... ...........
+ 0030 00000000 00000704 00000000 00000000 ................
+ 0040 ec023400 00005600 53005f00 56004500 ..4...V.S._.V.E.
+ 0050 52005300 49004f00 4e005f00 49004e00 R.S.I.O.N._.I.N.
+ 0060 46004f00 00000000 bd04effe 00000100 F.O.............
+ 0070 00000100 01000000 00000100 01000000 ................
+ 0080 3f000000 00000000 04000000 01000000 ?...............
+ 0090 00000000 00000000 00000000 4c020000 ............L...
+ 00a0 00005300 74007200 69006e00 67004600 ..S.t.r.i.n.g.F.
+ 00b0 69006c00 65004900 6e006600 6f000000 i.l.e.I.n.f.o...
+ 00c0 28020000 00003000 34003000 37003000 (.....0.4.0.7.0.
+ 00d0 34006500 34000000 32000900 01004300 4.e.4...2.....C.
+ 00e0 6f006d00 70006100 6e007900 4e006100 o.m.p.a.n.y.N.a.
+ 00f0 6d006500 00000000 62006900 6e007500 m.e.....b.i.n.u.
+ 0100 74006900 6c007300 00000000 42000d00 t.i.l.s.....B...
+ 0110 01004600 69006c00 65004400 65007300 ..F.i.l.e.D.e.s.
+ 0120 63007200 69007000 74006900 6f006e00 c.r.i.p.t.i.o.n.
+ 0130 00000000 52004300 20006300 6f006d00 ....R.C. .c.o.m.
+ 0140 70006900 6c006500 72002e00 00000000 p.i.l.e.r.......
+ 0150 30000800 01004600 69006c00 65005600 0.....F.i.l.e.V.
+ 0160 65007200 73006900 6f006e00 00000000 e.r.s.i.o.n.....
+ 0170 31002e00 30002e00 30002e00 31000000 1...0...0...1...
+ 0180 38000c00 01004900 6e007400 65007200 8.....I.n.t.e.r.
+ 0190 6e006100 6c004e00 61006d00 65000000 n.a.l.N.a.m.e...
+ 01a0 77006900 6e006400 72006500 73002e00 w.i.n.d.r.e.s...
+ 01b0 65007800 65000000 68002200 01004c00 e.x.e...h."...L.
+ 01c0 65006700 61006c00 43006f00 70007900 e.g.a.l.C.o.p.y.
+ 01d0 72006900 67006800 74000000 28006300 r.i.g.h.t...(.c.
+ 01e0 29002000 46005300 46002e00 20004100 ). .F.S.F... .A.
+ 01f0 6c006c00 20007200 69006700 68007400 l.l. .r.i.g.h.t.
+ 0200 73002000 61007200 65002000 72006500 s. .a.r.e. .r.e.
+ 0210 73006500 72007600 65006400 2e000000 s.e.r.v.e.d.....
+ 0220 40000c00 01004f00 72006900 67006900 @.....O.r.i.g.i.
+ 0230 6e006100 6c004600 69006c00 65006e00 n.a.l.F.i.l.e.n.
+ 0240 61006d00 65000000 77006900 6e006400 a.m.e...w.i.n.d.
+ 0250 72006500 73002e00 65007800 65000000 r.e.s...e.x.e...
+ 0260 54001a00 01005000 72006f00 64007500 T.....P.r.o.d.u.
+ 0270 63007400 4e006100 6d006500 00000000 c.t.N.a.m.e.....
+ 0280 77006900 6e006400 6f007700 73002000 w.i.n.d.o.w.s. .
+ 0290 72006500 73006f00 75007200 63006500 r.e.s.o.u.r.c.e.
+ 02a0 20006300 6f006d00 70006900 6c006500 .c.o.m.p.i.l.e.
+ 02b0 72000000 34000800 01005000 72006f00 r...4.....P.r.o.
+ 02c0 64007500 63007400 56006500 72007300 d.u.c.t.V.e.r.s.
+ 02d0 69006f00 6e000000 31002e00 30002e00 i.o.n...1...0...
+ 02e0 30002e00 31000000 44000000 00005600 0...1...D.....V.
+ 02f0 61007200 46006900 6c006500 49006e00 a.r.F.i.l.e.I.n.
+ 0300 66006f00 00000000 24000400 00005400 f.o.....$.....T.
+ 0310 72006100 6e007300 6c006100 74006900 r.a.n.s.l.a.t.i.
+ 0320 6f006e00 00000000 0704e404 o.n.........
Index: windres/deflang.rc
===================================================================
--- windres/deflang.rc (nonexistent)
+++ windres/deflang.rc (revision 816)
@@ -0,0 +1,4 @@
+101 DIALOG DISCARDABLE 0, 0, 186, 95
+BEGIN
+ DEFPUSHBUTTON "OK",1,129,7,50,14
+END
Index: windres/printstyle.rsd
===================================================================
--- windres/printstyle.rsd (nonexistent)
+++ windres/printstyle.rsd (revision 816)
@@ -0,0 +1,8 @@
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 36000000 20000000 ffff0500 ffff6500 6... .........e.
+ 0030 00000000 30100904 00000000 00000000 ....0...........
+ 0040 00000000 00000000 01000000 0000ba00 ................
+ 0050 5f000000 00000000 01000150 00000000 _..........P....
+ 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O.
+ 0070 4b000000 00000000 K.......
Index: windres/strtab1.rsd
===================================================================
--- windres/strtab1.rsd (nonexistent)
+++ windres/strtab1.rsd (revision 816)
@@ -0,0 +1,8 @@
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 38000000 20000000 ffff0600 ffff0100 8... ...........
+ 0030 00000000 30100000 00000000 00000000 ....0...........
+ 0040 00000c00 68006500 6c006c00 6f002c00 ....h.e.l.l.o.,.
+ 0050 20007700 6f007200 6c006400 00000000 .w.o.r.l.d.....
+ 0060 00000000 00000000 00000000 00000000 ................
+ 0070 00000000 00000000 ........
Index: windres/strtab2.rsd
===================================================================
--- windres/strtab2.rsd (nonexistent)
+++ windres/strtab2.rsd (revision 816)
@@ -0,0 +1,8 @@
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 38000000 20000000 ffff0600 ffff0100 8... ...........
+ 0030 00000000 30100000 00000000 00000000 ....0...........
+ 0040 00000c00 68006500 6c006c00 6f002c00 ....h.e.l.l.o.,.
+ 0050 20007700 6f007200 6c006400 00000000 .w.o.r.l.d.....
+ 0060 00000000 00000000 00000000 00000000 ................
+ 0070 00000000 00000000 ........
Index: windres/listbox.rsd
===================================================================
--- windres/listbox.rsd (nonexistent)
+++ windres/listbox.rsd (revision 816)
@@ -0,0 +1,8 @@
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 32000000 20000000 ffff0500 fffff501 2... ...........
+ 0030 00000000 30100904 00000000 00000000 ....0...........
+ 0040 00008880 00000000 01000000 0000a800 ................
+ 0050 89000000 00000000 01008050 00000000 ...........P....
+ 0060 1c003f00 89003400 e903ffff 83000000 ..?...4.........
+ 0070 00000000 ....
Index: windres/capstyle.rsd
===================================================================
--- windres/capstyle.rsd (nonexistent)
+++ windres/capstyle.rsd (revision 816)
@@ -0,0 +1,8 @@
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 36000000 20000000 ffff0500 ffff6500 6... .........e.
+ 0030 00000000 30100904 00000000 00000000 ....0...........
+ 0040 0000c880 00000000 01000000 0000ba00 ................
+ 0050 5f000000 00000000 01000150 00000000 _..........P....
+ 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O.
+ 0070 4b000000 00000000 K.......
Index: windres/checkbox.rsd
===================================================================
--- windres/checkbox.rsd (nonexistent)
+++ windres/checkbox.rsd (revision 816)
@@ -0,0 +1,12 @@
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 72000000 20000000 ffff0500 fffff501 r... ...........
+ 0030 00000000 30100904 00000000 00000000 ....0...........
+ 0040 0100ffff 00000000 00000000 00008880 ................
+ 0050 02000000 0000a800 89000000 00000000 ................
+ 0060 00000000 00000000 02000150 0c004c00 ...........P..L.
+ 0070 7b002900 ea030000 ffff8000 ffff6c00 {.)...........l.
+ 0080 00000000 00000000 00000000 02000150 ...............P
+ 0090 0c000f00 7b002900 e9030000 ffff8000 ....{.).........
+ 00a0 74006900 63006b00 20006d00 65000000 t.i.c.k. .m.e...
+ 00b0 00000000 ....
Index: windres/MSG00001.bin
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: windres/MSG00001.bin
===================================================================
--- windres/MSG00001.bin (nonexistent)
+++ windres/MSG00001.bin (revision 816)
windres/MSG00001.bin
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: windres/escapex-2.rsd
===================================================================
--- windres/escapex-2.rsd (nonexistent)
+++ windres/escapex-2.rsd (revision 816)
@@ -0,0 +1,8 @@
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 3a000000 20000000 ffff0500 ffff6500 :... .........e.
+ 0030 00000000 30100904 00000000 00000000 ....0...........
+ 0040 00008880 00000000 01000000 0000ba00 ................
+ 0050 5f000000 00000000 00000250 00000000 _..........P....
+ 0060 17002e00 1c000800 ffffffff 8200b000 ................
+ 0070 41004200 43000000 00000000 A.B.C.......
Index: windres/version_cat.rc
===================================================================
--- windres/version_cat.rc (nonexistent)
+++ windres/version_cat.rc (revision 816)
@@ -0,0 +1,33 @@
+//#xfail x86_64-*-mingw*
+#include "windows.h"
+
+LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,1
+ PRODUCTVERSION 1,0,0,1
+ FILEFLAGSMASK 0x3fL
+ FILEFLAGS 0x0L
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040704e4"
+ BEGIN
+ VALUE L"Company" "Name", L"binutil\x0073"
+ VALUE "File" "Description", L"RC " L"compiler."
+ VALUE "File" "Version", "1.0.0.1"
+ VALUE "Internal" "Name", "windres" L".exe"
+ VALUE "Legal" "Copyright", "(c) FSF." " All rights are reserved."
+ VALUE "Original" "Filename", L"windres" ".exe"
+ VALUE "Product" "Name", "windows resource " "compiler"
+ VALUE "Product" "Version", "1.0.0.1"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x407, 1252
+ END
+END
Index: windres/escapex.rsd
===================================================================
--- windres/escapex.rsd (nonexistent)
+++ windres/escapex.rsd (revision 816)
@@ -0,0 +1,8 @@
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 34000000 20000000 ffff0500 ffff6500 4... .........e.
+ 0030 00000000 30100904 00000000 00000000 ....0...........
+ 0040 00008880 00000000 01000000 0000ba00 ................
+ 0050 5f000000 00000000 00000250 00000000 _..........P....
+ 0060 17002e00 1c000800 ffffffff 8200b000 ................
+ 0070 00000000 ....
Index: windres/sublang.rsd
===================================================================
--- windres/sublang.rsd (nonexistent)
+++ windres/sublang.rsd (revision 816)
@@ -0,0 +1,8 @@
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 36000000 20000000 ffff0500 ffff6500 6... .........e.
+ 0030 00000000 30100904 00000000 00000000 ....0...........
+ 0040 00008880 00000000 01000000 0000ba00 ................
+ 0050 5f000000 00000000 01000150 00000000 _..........P....
+ 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O.
+ 0070 4b000000 00000000 K.......
Index: windres/msupdate
===================================================================
--- windres/msupdate (nonexistent)
+++ windres/msupdate (revision 816)
@@ -0,0 +1,40 @@
+#!/bin/sh
+# Copyright 2001, 2007 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-dejagnu@prep.ai.mit.edu
+
+# Written by DJ Delorie
+
+# Run this on a machine with Cygwin and Microsoft Visual C to create
+# the RES files we match against.
+
+RC="rc"
+if test x"$1" != x""
+then
+ RC="$1"
+fi
+
+for i in *.rc
+do
+ o=`echo $i | sed s/.rc/.res/`
+ d=`echo $i | sed s/.rc/.rsd/`
+ echo "$i -> $o -> $d"
+ $RC /fo$o $i
+ objdump -b binary -s $o | sed -n '/^ [0-9a-f][0-9a-f]* /p' > $d
+ rm $o
+done
windres/msupdate
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: windres/dialog0.rc
===================================================================
--- windres/dialog0.rc (nonexistent)
+++ windres/dialog0.rc (revision 816)
@@ -0,0 +1,4 @@
+101 DIALOG 0, 0, 186, 95
+BEGIN
+ DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
+END
Index: windres/messagetable.rsd
===================================================================
--- windres/messagetable.rsd (nonexistent)
+++ windres/messagetable.rsd (revision 816)
@@ -0,0 +1,15 @@
+
+messagetable.res: file format binary
+
+Contents of section .data:
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 70000000 20000000 ffff0b00 ffff7803 p... .........x.
+ 0030 00000000 30100704 00000000 00000000 ....0...........
+ 0040 01000000 00000000 05000000 10000000 ................
+ 0050 14000000 4e6f7469 63653a20 25310d0a ....Notice: %1..
+ 0060 00000000 0c000000 25310d0a 00000000 ........%1......
+ 0070 10000000 5761726e 3a202531 0d0a0000 ....Warn: %1....
+ 0080 10000000 4572726f 723a2025 310d0a00 ....Error: %1...
+ 0090 10000000 46617461 6c3a2025 310d0a00 ....Fatal: %1...
+ 00a0 10000000 25310d0a 25320d0a 00000000 ....%1..%2......
Index: windres/strtab1.rc
===================================================================
--- windres/strtab1.rc (nonexistent)
+++ windres/strtab1.rc (revision 816)
@@ -0,0 +1,9 @@
+//#xfail x86_64-*-mingw*
+#include "windows.h"
+
+LANGUAGE 0, 0
+
+STRINGTABLE MOVEABLE PURE DISCARDABLE
+BEGIN
+ 1 "hello, world"
+END
Index: windres/dialogsignature.rc
===================================================================
--- windres/dialogsignature.rc (nonexistent)
+++ windres/dialogsignature.rc (revision 816)
@@ -0,0 +1,5 @@
+101 DIALOG DISCARDABLE 0, 0, 186, 95
+STYLE 1
+BEGIN
+ DEFPUSHBUTTON "OK",1,129,7,50,14
+END
Index: windres/lang.rc
===================================================================
--- windres/lang.rc (nonexistent)
+++ windres/lang.rc (revision 816)
@@ -0,0 +1,16 @@
+//#xfail x86_64-*-mingw*
+#include "windows.h"
+
+LANGUAGE 0, 0
+
+1 MENU MOVEABLE PURE DISCARDABLE
+LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
+BEGIN
+ POPUP "&Datei" { MENUITEM "foo", 1 }
+END
+
+1 MENU MOVEABLE PURE DISCARDABLE
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+BEGIN
+ POPUP "&File" { MENUITEM "foo", 1 }
+END
Index: windres/scrollbar.rc
===================================================================
--- windres/scrollbar.rc (nonexistent)
+++ windres/scrollbar.rc (revision 816)
@@ -0,0 +1,4 @@
+501 DIALOGEX 0, 0, 168, 137
+BEGIN
+ SCROLLBAR 1001,43,68,105,10,0,0,0x81f503e9
+END
Index: windres/capstyle.rc
===================================================================
--- windres/capstyle.rc (nonexistent)
+++ windres/capstyle.rc (revision 816)
@@ -0,0 +1,5 @@
+101 DIALOG DISCARDABLE 0, 0, 186, 95
+CAPTION ""
+BEGIN
+ DEFPUSHBUTTON "OK",1,129,7,50,14
+END
Index: windres/listbox.rc
===================================================================
--- windres/listbox.rc (nonexistent)
+++ windres/listbox.rc (revision 816)
@@ -0,0 +1,4 @@
+501 DIALOG DISCARDABLE 0, 0, 168, 137
+BEGIN
+ LISTBOX 1001, 28, 63, 137, 52
+END
Index: windres/html1.hm
===================================================================
--- windres/html1.hm (nonexistent)
+++ windres/html1.hm (revision 816)
@@ -0,0 +1,11 @@
+
+
+
+
+ Windres
+
+
+
+This is a test page for windres HTML resource.
+
+
\ No newline at end of file
Index: windres/version.rc
===================================================================
--- windres/version.rc (nonexistent)
+++ windres/version.rc (revision 816)
@@ -0,0 +1,33 @@
+//#xfail x86_64-*-mingw*
+#include "windows.h"
+
+LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,1
+ PRODUCTVERSION 1,0,0,1
+ FILEFLAGSMASK 0x3fL
+ FILEFLAGS 0x0L
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040704e4"
+ BEGIN
+ VALUE L"CompanyName", L"binutil\x0073"
+ VALUE "FileDescription", "RC compiler."
+ VALUE "FileVersion", "1.0.0.1"
+ VALUE "InternalName", "windres.exe"
+ VALUE "LegalCopyright", "(c) FSF. All rights are reserved."
+ VALUE "OriginalFilename", "windres.exe"
+ VALUE "ProductName", "windows resource compiler"
+ VALUE "ProductVersion", "1.0.0.1"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x407, 1252
+ END
+END
Index: windres/checkbox.rc
===================================================================
--- windres/checkbox.rc (nonexistent)
+++ windres/checkbox.rc (revision 816)
@@ -0,0 +1,5 @@
+501 DIALOGEX DISCARDABLE 0, 0, 168, 137
+BEGIN
+ CHECKBOX 108, 1002, 12, 76, 123, 41
+ CHECKBOX "tick me", 1001, 12, 15, 123, 41
+END
Index: windres/escapex.rc
===================================================================
--- windres/escapex.rc (nonexistent)
+++ windres/escapex.rc (revision 816)
@@ -0,0 +1,4 @@
+101 DIALOG DISCARDABLE 0, 0, 186, 95
+BEGIN
+ LTEXT "\xB0",-1,23,46,28,8
+END
Index: windres/html.rsd
===================================================================
--- windres/html.rsd (nonexistent)
+++ windres/html.rsd (revision 816)
@@ -0,0 +1,45 @@
+
+html.res: file format binary
+
+Contents of section .data:
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 0d010000 20000000 ffff1700 ffff8100 .... ...........
+ 0030 00000000 30100704 00000000 00000000 ....0...........
+ 0040 3c21444f 43545950 4520646f 63747970 ...... ..
+ 00e0 20203c74 69746c65 3e57696e 64726573 Windres
+ 00f0 3c2f7469 746c653e 0d0a3c2f 68656164 ........Thi
+ 0110 73206973 20612074 65737420 70616765 s is a test page
+ 0120 20666f72 2077696e 64726573 2048544d for windres HTM
+ 0130 4c207265 736f7572 63652e0d 0a3c2f62 L resource........
+ 0150 14010000 20000000 ffff1700 ffff8200 .... ...........
+ 0160 00000000 30100704 00000000 00000000 ....0...........
+ 0170 3c21444f 43545950 4520646f 63747970 ...... ..
+ 0210 20203c74 69746c65 3e57696e 64726573 Windres
+ 0220 3c2f7469 746c653e 0d0a3c2f 68656164 ........Thi
+ 0240 73206973 20612073 65636f6e 64207465 s is a second te
+ 0250 73742070 61676520 666f7220 77696e64 st page for wind
+ 0260 72657320 48544d4c 20726573 6f757263 res HTML resourc
+ 0270 652e0d0a 3c2f626f 64793e0d 0a3c2f68 e.....
Index: windres/bmpalign.rc
===================================================================
--- windres/bmpalign.rc (nonexistent)
+++ windres/bmpalign.rc (revision 816)
@@ -0,0 +1,9 @@
+LANGUAGE 0, 0
+
+A BITMAP MOVEABLE PURE DISCARDABLE "bmp1.bmp"
+
+AB BITMAP MOVEABLE PURE DISCARDABLE "bmp1.bmp"
+
+ABC BITMAP MOVEABLE PURE DISCARDABLE "bmp1.bmp"
+
+ABCD BITMAP MOVEABLE PURE DISCARDABLE "bmp1.bmp"
Index: windres/README
===================================================================
--- windres/README (nonexistent)
+++ windres/README (revision 816)
@@ -0,0 +1,26 @@
+Instructions for adding tests:
+
+The files *.rc are hand-edited or copied from elsewhere.
+
+The script msupdate is used to generate the *.rsd files, which are
+dumps of the RES formatted output of MSVC's RC utility.
+
+Within the *.rc file, the first N lines beginning with a special
+comment can control the test. Comments are // /* or # (// is
+recommended, as both rc and windres support those). Each line
+contains one command:
+
+ // parse-only
+ // xfail *-*-*
+
+parse-only must preceed any xfail commands, and indicates that a
+comparison with the *.rsd file will not happen. xfail indicates when
+a failure is expected. This should only be used for when you are
+adding a new test that is known to fail because of a bug in windres,
+and it should be removed when the bug is fixed.
+
+You can use pfail or cfail instead of xfail to indicate that only the
+parsing or comparing should be xfailed.
+
+The windres tests only run for ix86 targets, because the
+MSVC-generated *.rsd files are generated for that.
Index: windres/combobox.rsd
===================================================================
--- windres/combobox.rsd (nonexistent)
+++ windres/combobox.rsd (revision 816)
@@ -0,0 +1,8 @@
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 32000000 20000000 ffff0500 fffff501 2... ...........
+ 0030 00000000 30100904 00000000 00000000 ....0...........
+ 0040 00008880 00000000 01000000 0000a800 ................
+ 0050 89000000 00000000 01000150 00000000 ...........P....
+ 0060 0a000a00 32003600 e903ffff 85000000 ....2.6.........
+ 0070 00000000 ....
Index: windres/messagetable.rc
===================================================================
--- windres/messagetable.rc (nonexistent)
+++ windres/messagetable.rc (revision 816)
@@ -0,0 +1,6 @@
+//#xfail x86_64-*-mingw*
+#include "windows.h"
+
+LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
+
+888 MESSAGETABLE MSG00001.bin
Index: windres/dlgfont.rc
===================================================================
--- windres/dlgfont.rc (nonexistent)
+++ windres/dlgfont.rc (revision 816)
@@ -0,0 +1,29 @@
+101 DIALOG DISCARDABLE 0, 0, 186, 95
+FONT 8, "Tahoma"
+BEGIN
+ DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
+END
+
+102 DIALOGEX DISCARDABLE 0, 0, 186, 95
+FONT 8, "Tahoma"
+BEGIN
+ DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
+END
+
+103 DIALOGEX DISCARDABLE 0, 0, 186, 95
+FONT 8, "Tahoma", 0
+BEGIN
+ DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
+END
+
+104 DIALOGEX DISCARDABLE 0, 0, 186, 95
+FONT 8, "Tahoma", 0, 0
+BEGIN
+ DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
+END
+
+105 DIALOGEX DISCARDABLE 0, 0, 186, 95
+FONT 8, "Tahoma", 0, 0, 1
+BEGIN
+ DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
+END
Index: windres/dialogid.rsd
===================================================================
--- windres/dialogid.rsd (nonexistent)
+++ windres/dialogid.rsd (revision 816)
@@ -0,0 +1,18 @@
+
+fred.res: file format binary
+
+Contents of section .data:
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 94000000 20000000 ffff0500 ffff6500 .... .........e.
+ 0030 00000000 30100904 00000000 00000000 ....0...........
+ 0040 0100ffff 00000000 00000000 00008880 ................
+ 0050 02000000 0000c800 c8000000 00000000 ................
+ 0060 00000000 00000000 4d000050 0b000b00 ........M..P....
+ 0070 5300a200 ffffffff 43004c00 41005300 S.......C.L.A.S.
+ 0080 53004e00 41004d00 45000000 ffff6c00 S.N.A.M.E.....l.
+ 0090 00000000 00000000 00000000 0e120050 ...............P
+ 00a0 05000500 0a000a00 66000000 43004c00 ........f...C.L.
+ 00b0 41005300 53004e00 41004d00 45000000 A.S.S.N.A.M.E...
+ 00c0 73007400 72006900 6e006700 69006400 s.t.r.i.n.g.i.d.
+ 00d0 00000000 ....
Index: windres/escapea.rc
===================================================================
--- windres/escapea.rc (nonexistent)
+++ windres/escapea.rc (revision 816)
@@ -0,0 +1,7 @@
+20 MENU DISCARDABLE
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Open\a^O", 17
+ END
+END
Index: windres/dialog0.rsd
===================================================================
--- windres/dialog0.rsd (nonexistent)
+++ windres/dialog0.rsd (revision 816)
@@ -0,0 +1,8 @@
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 36000000 20000000 ffff0500 ffff6500 6... .........e.
+ 0030 00000000 30100904 00000000 00000000 ....0...........
+ 0040 00008880 00000000 01000000 0000ba00 ................
+ 0050 5f000000 00000000 01000150 00000000 _..........P....
+ 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O.
+ 0070 4b000000 00000000 K.......
Index: windres/windres.exp
===================================================================
--- windres/windres.exp (nonexistent)
+++ windres/windres.exp (revision 816)
@@ -0,0 +1,136 @@
+# Copyright 2001, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-dejagnu@prep.ai.mit.edu
+
+# Written by DJ Delorie
+
+if {![istarget "i*86-*-*"] && ![istarget "x86_64-*-mingw*"] } {
+ return
+}
+
+if {![info exists WINDRES]} then {
+ return
+}
+
+if {[which $WINDRES] == 0} then {
+ return
+}
+
+set wr "$WINDRES --include-dir $srcdir/$subdir"
+
+if [file exists "$srcdir/../../winsup/w32api/include"] {
+ set wr "$wr --include-dir $srcdir/../../winsup/w32api/include"
+} else {
+ send_log "\nWarning: Assuming windres can find the win32 headers\n\n"
+}
+
+set res_list [lsort [glob -nocomplain $srcdir/$subdir/*.rc]]
+
+proc oneline { file } {
+ while { 1 } {
+ if { [gets $file line] == -1 } {
+ return ""
+ }
+ if [regexp "^ \[0-9a-z\]\[0-9a-z\]* " $line] {
+ return $line
+ }
+ }
+}
+
+foreach res $res_list {
+ set sroot [file rootname $res]
+ set broot [file tail $sroot]
+ set done 0
+
+ set rc [open $res]
+ while { [gets $rc line] != -1 } {
+ if ![regexp "^(//|/\*|#)" $line] {
+ break
+ }
+ if [regexp "\[xp\]fail *(\[^ \]*)" $line junk sys] {
+ setup_xfail $sys
+ continue
+ }
+ }
+
+ verbose "$wr -J rc -O res $res tmpdir/$broot.res" 1
+ catch "exec $wr -J rc -O res $res tmpdir/$broot.res" err
+
+ if ![string match "" $err] then {
+ send_log "$err\n"
+ verbose "$err" 1
+ if [string match "*windows.h: No such file*" $err] then {
+ unsupported "windres/$broot (parse)"
+ } else {
+ fail "windres/$broot (parse)"
+ }
+ continue
+ }
+ pass "windres/$broot (parse)"
+
+ set rc [open $res]
+ while { [gets $rc line] != -1 } {
+ if ![regexp "^(//|/\*|#)" $line] {
+ break
+ }
+ if [regexp "parse-only" $line] {
+ file delete "tmpdir/$broot.res"
+ set done 1
+ break
+ }
+ if [regexp "\[xc\]fail *(\[^ \]*)" $line junk sys] {
+ setup_xfail $sys
+ continue
+ }
+ }
+ if { $done != 0 } {
+ continue
+ }
+
+ verbose "$OBJDUMP -b binary -s tmpdir/$broot.res > tmpdir/$broot.dump" 1
+ catch "exec $OBJDUMP -b binary -s tmpdir/$broot.res > tmpdir/$broot.dump" err
+
+ if ![string match "" $err] then {
+ send_log "$err\n"
+ verbose "$err" 1
+ fail "windres/$broot (compare)"
+ continue
+ }
+
+ set pat [open "$sroot.rsd"]
+ set out [open "tmpdir/$broot.dump"]
+ set patline "foo"
+
+ while { ![string match $patline ""] } {
+ set patline [oneline $pat]
+ set outline [oneline $out]
+
+ if ![string match $patline $outline] {
+ send_log "< $patline\n"
+ send_log "> $outline\n"
+ fail "windres/$broot (compare)"
+ set done 1
+ break
+ }
+ }
+ if { $done == 0 } {
+ pass "windres/$broot (compare)"
+ file delete "tmpdir/$broot.res"
+ file delete "tmpdir/$broot.dump"
+ }
+}
Index: windres/html.rc
===================================================================
--- windres/html.rc (nonexistent)
+++ windres/html.rc (revision 816)
@@ -0,0 +1,7 @@
+//#xfail x86_64-*-mingw*
+#include "windows.h"
+
+LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
+
+129 HTML "html1.hm"
+130 HTML "html2.hm"
Index: windres/dialog1.rsd
===================================================================
--- windres/dialog1.rsd (nonexistent)
+++ windres/dialog1.rsd (revision 816)
@@ -0,0 +1,8 @@
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 36000000 20000000 ffff0500 ffff6500 6... .........e.
+ 0030 00000000 30100904 00000000 00000000 ....0...........
+ 0040 00008880 00000000 01000000 0000ba00 ................
+ 0050 5f000000 00000000 01000150 00000000 _..........P....
+ 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O.
+ 0070 4b000000 00000000 K.......
Index: windres/dialogsignature.rsd
===================================================================
--- windres/dialogsignature.rsd (nonexistent)
+++ windres/dialogsignature.rsd (revision 816)
@@ -0,0 +1,8 @@
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 36000000 20000000 ffff0500 ffff6500 6... .........e.
+ 0030 00000000 30100904 00000000 00000000 ....0...........
+ 0040 01000000 00000000 01000000 0000ba00 ................
+ 0050 5f000000 00000000 01000150 00000000 _..........P....
+ 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O.
+ 0070 4b000000 00000000 K.......
Index: windres/lang.rsd
===================================================================
--- windres/lang.rsd (nonexistent)
+++ windres/lang.rsd (revision 816)
@@ -0,0 +1,10 @@
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 20000000 20000000 ffff0400 ffff0100 ... ...........
+ 0030 00000000 30100704 00000000 00000000 ....0...........
+ 0040 00000000 90002600 44006100 74006500 ......&.D.a.t.e.
+ 0050 69000000 80000100 66006f00 6f000000 i.......f.o.o...
+ 0060 1e000000 20000000 ffff0400 ffff0100 .... ...........
+ 0070 00000000 30100904 00000000 00000000 ....0...........
+ 0080 00000000 90002600 46006900 6c006500 ......&.F.i.l.e.
+ 0090 00008000 01006600 6f006f00 00000000 ......f.o.o.....
Index: windres/scrollbar.rsd
===================================================================
--- windres/scrollbar.rsd (nonexistent)
+++ windres/scrollbar.rsd (revision 816)
@@ -0,0 +1,8 @@
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 40000000 20000000 ffff0500 fffff501 @... ...........
+ 0030 00000000 30100904 00000000 00000000 ....0...........
+ 0040 0100ffff 00000000 00000000 00008880 ................
+ 0050 01000000 0000a800 89000000 00000000 ................
+ 0060 e903f581 00000000 00000050 2b004400 ...........P+.D.
+ 0070 69000a00 e9030000 ffff8400 00000000 i...............
Index: windres/combobox.rc
===================================================================
--- windres/combobox.rc (nonexistent)
+++ windres/combobox.rc (revision 816)
@@ -0,0 +1,8 @@
+#define CBS_SIMPLE 0x1
+#define WS_TABSTOP 0x10000
+
+501 DIALOG DISCARDABLE 0, 0, 168, 137
+BEGIN
+ COMBOBOX 1001,10,10,50,54, CBS_SIMPLE | WS_TABSTOP
+END
+
Index: windres/bmp1.bmp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: windres/bmp1.bmp
===================================================================
--- windres/bmp1.bmp (nonexistent)
+++ windres/bmp1.bmp (revision 816)
windres/bmp1.bmp
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: windres/version.rsd
===================================================================
--- windres/version.rsd (nonexistent)
+++ windres/version.rsd (revision 816)
@@ -0,0 +1,55 @@
+
+version.res: file format binary
+
+Contents of section .data:
+ 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
+ 0010 00000000 00000000 00000000 00000000 ................
+ 0020 ec020000 20000000 ffff1000 ffff0100 .... ...........
+ 0030 00000000 00000704 00000000 00000000 ................
+ 0040 ec023400 00005600 53005f00 56004500 ..4...V.S._.V.E.
+ 0050 52005300 49004f00 4e005f00 49004e00 R.S.I.O.N._.I.N.
+ 0060 46004f00 00000000 bd04effe 00000100 F.O.............
+ 0070 00000100 01000000 00000100 01000000 ................
+ 0080 3f000000 00000000 04000000 01000000 ?...............
+ 0090 00000000 00000000 00000000 4c020000 ............L...
+ 00a0 00005300 74007200 69006e00 67004600 ..S.t.r.i.n.g.F.
+ 00b0 69006c00 65004900 6e006600 6f000000 i.l.e.I.n.f.o...
+ 00c0 28020000 00003000 34003000 37003000 (.....0.4.0.7.0.
+ 00d0 34006500 34000000 32000900 01004300 4.e.4...2.....C.
+ 00e0 6f006d00 70006100 6e007900 4e006100 o.m.p.a.n.y.N.a.
+ 00f0 6d006500 00000000 62006900 6e007500 m.e.....b.i.n.u.
+ 0100 74006900 6c007300 00000000 42000d00 t.i.l.s.....B...
+ 0110 01004600 69006c00 65004400 65007300 ..F.i.l.e.D.e.s.
+ 0120 63007200 69007000 74006900 6f006e00 c.r.i.p.t.i.o.n.
+ 0130 00000000 52004300 20006300 6f006d00 ....R.C. .c.o.m.
+ 0140 70006900 6c006500 72002e00 00000000 p.i.l.e.r.......
+ 0150 30000800 01004600 69006c00 65005600 0.....F.i.l.e.V.
+ 0160 65007200 73006900 6f006e00 00000000 e.r.s.i.o.n.....
+ 0170 31002e00 30002e00 30002e00 31000000 1...0...0...1...
+ 0180 38000c00 01004900 6e007400 65007200 8.....I.n.t.e.r.
+ 0190 6e006100 6c004e00 61006d00 65000000 n.a.l.N.a.m.e...
+ 01a0 77006900 6e006400 72006500 73002e00 w.i.n.d.r.e.s...
+ 01b0 65007800 65000000 68002200 01004c00 e.x.e...h."...L.
+ 01c0 65006700 61006c00 43006f00 70007900 e.g.a.l.C.o.p.y.
+ 01d0 72006900 67006800 74000000 28006300 r.i.g.h.t...(.c.
+ 01e0 29002000 46005300 46002e00 20004100 ). .F.S.F... .A.
+ 01f0 6c006c00 20007200 69006700 68007400 l.l. .r.i.g.h.t.
+ 0200 73002000 61007200 65002000 72006500 s. .a.r.e. .r.e.
+ 0210 73006500 72007600 65006400 2e000000 s.e.r.v.e.d.....
+ 0220 40000c00 01004f00 72006900 67006900 @.....O.r.i.g.i.
+ 0230 6e006100 6c004600 69006c00 65006e00 n.a.l.F.i.l.e.n.
+ 0240 61006d00 65000000 77006900 6e006400 a.m.e...w.i.n.d.
+ 0250 72006500 73002e00 65007800 65000000 r.e.s...e.x.e...
+ 0260 54001a00 01005000 72006f00 64007500 T.....P.r.o.d.u.
+ 0270 63007400 4e006100 6d006500 00000000 c.t.N.a.m.e.....
+ 0280 77006900 6e006400 6f007700 73002000 w.i.n.d.o.w.s. .
+ 0290 72006500 73006f00 75007200 63006500 r.e.s.o.u.r.c.e.
+ 02a0 20006300 6f006d00 70006900 6c006500 .c.o.m.p.i.l.e.
+ 02b0 72000000 34000800 01005000 72006f00 r...4.....P.r.o.
+ 02c0 64007500 63007400 56006500 72007300 d.u.c.t.V.e.r.s.
+ 02d0 69006f00 6e000000 31002e00 30002e00 i.o.n...1...0...
+ 02e0 30002e00 31000000 44000000 00005600 0...1...D.....V.
+ 02f0 61007200 46006900 6c006500 49006e00 a.r.F.i.l.e.I.n.
+ 0300 66006f00 00000000 24000400 00005400 f.o.....$.....T.
+ 0310 72006100 6e007300 6c006100 74006900 r.a.n.s.l.a.t.i.
+ 0320 6f006e00 00000000 0704e404 o.n.........
Index: readelf.ss-64
===================================================================
--- readelf.ss-64 (nonexistent)
+++ readelf.ss-64 (revision 816)
@@ -0,0 +1,13 @@
+
+Symbol table '.symtab' contains .* entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 0000000000000000 0 SECTION LOCAL DEFAULT 1
+ 2: 0000000000000000 0 SECTION LOCAL DEFAULT 3
+ 3: 0000000000000000 0 SECTION LOCAL DEFAULT 4
+ 4: 0000000000000000 0 NOTYPE LOCAL DEFAULT 1 static_text_symbol
+ 5: 0000000000000000 0 NOTYPE LOCAL DEFAULT 3 static_data_symbol
+.* .: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 1 text_symbol
+ .: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND external_symbol
+ .: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 3 data_symbol
+ .: 0000000000000004 4 (COMMON|OBJECT) GLOBAL DEFAULT COM common_symbol