OpenCores
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-stable/binutils-2.20.1/binutils/testsuite/binutils-all
    from Rev 816 to Rev 818
    Reverse comparison

Rev 816 → Rev 818

/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.*
/needed-by-reloc.s
0,0 → 1,7
.globl foo
 
.data
.long foo
.text
foo:
.long 1
/testranges.d
0,0 → 1,15
#PROG: objcopy
#source: testranges.s
#readelf: -wR --wide
#name: unordered .debug_info references to .debug_ranges
#not-target: ia64-*-*
 
Contents of the .debug_ranges section:
 
Offset Begin End
00000000 00000001 00000002
00000000 <End of list>
00000010 00000000 00000002
00000010 <End of list>
 
#pass
/testranges-ia64.d
0,0 → 1,15
#PROG: objcopy
#source: testranges-ia64.s
#readelf: -wR --wide
#name: unordered .debug_info references to .debug_ranges
#target: ia64-*-*
 
Contents of the .debug_ranges section:
 
Offset Begin End
00000000 00000001 00000002
00000000 <End of list>
00000010 00000000 00000002
00000010 <End of list>
 
#pass
/dlltool.exp
0,0 → 1,81
# Copyright 2002, 2004, 2006, 2007, 2009 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, 2009 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.
/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#
/unique.s
0,0 → 1,4
.data
.type foo,%gnu_unique_object
foo:
.byte 0
/copytest.s
0,0 → 1,7
.globl foo_symbol
.section foo
foo_symbol:
.long 1
.section bar
bar_symbol:
.long 2
/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
/testranges.s
0,0 → 1,61
# Test .debug_info can reference .debug_ranges entries without ordering the
# offsets strictly as increasing.
 
.text
start:
.byte 1
sub:
.byte 2
end:
 
.section .debug_ranges,"",%progbits
range:
 
range_sub:
.4byte sub, end
.4byte 0, 0 ;# range terminator
 
range_cu:
.4byte start, end
.4byte 0, 0 ;# range terminator
 
.section .debug_info,"",%progbits
.4byte debugE - debugS ;# Length of Compilation Unit Info
debugS:
.short 0x2 ;# DWARF version number
.4byte abbrev0 ;# Offset Into Abbrev. Section
.byte 0x4 ;# Pointer Size (in bytes)
 
.uleb128 0x1 ;# (DIE (0xb) DW_TAG_compile_unit)
.4byte range_cu - range ;# DW_AT_ranges
 
.uleb128 0x2 ;# (DIE (0x6d) DW_TAG_subprogram)
.ascii "A\0" ;# DW_AT_name
.4byte range_sub - range ;# DW_AT_ranges
 
;# minimal section alignment on alpha-* is 2, ensure no new invalid CU
;# will be started.
.balign 2
debugE:
 
.section .debug_abbrev,"",%progbits
abbrev0:
.uleb128 0x1 ;# (abbrev code)
.uleb128 0x11 ;# (TAG: DW_TAG_compile_unit)
.byte 0x0 ;# DW_children_no
.uleb128 0x55 ;# (DW_AT_ranges)
.uleb128 0x6 ;# (DW_FORM_data4)
.byte 0x0
.byte 0x0
 
.uleb128 0x2 ;# (abbrev code)
.uleb128 0x2e ;# (TAG: DW_TAG_subprogram)
.byte 0x0 ;# DW_children_no
.uleb128 0x3 ;# (DW_AT_name)
.uleb128 0x8 ;# (DW_FORM_string)
.uleb128 0x55 ;# (DW_AT_ranges)
.uleb128 0x6 ;# (DW_FORM_data4)
.byte 0x0
.byte 0x0
 
.byte 0x0 ;# abbrevs terminator
/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.
/testranges-ia64.s
0,0 → 1,57
# Test .debug_info can reference .debug_ranges entries without ordering the
# offsets strictly as increasing.
 
.text
start:
.byte 1
sub:
.byte 2
end:
 
.section .debug_ranges,"",@progbits
range:
 
range_sub:
data4.ua @secrel(sub), @secrel(end)
data4.ua 0, 0 /* range terminator */
 
range_cu:
data4.ua @secrel(start), @secrel(end)
data4.ua 0, 0 /* range terminator */
 
.section .debug_info,"",@progbits
data4.ua debugE - debugS /* Length of Compilation Unit Info */
debugS:
.short 0x2 /* DWARF version number */
data4.ua @secrel(abbrev0) /* Offset Into Abbrev. Section */
.byte 0x4 /* Pointer Size (in bytes) */
 
.uleb128 0x1 /* (DIE (0xb) DW_TAG_compile_unit) */
data4.ua range_cu - range /* DW_AT_ranges */
 
.uleb128 0x2 /* (DIE (0x6d) DW_TAG_subprogram) */
.ascii "A\0" /* DW_AT_name */
data4.ua range_sub - range /* DW_AT_ranges */
debugE:
 
.section .debug_abbrev,"",@progbits
abbrev0:
.uleb128 0x1 /* (abbrev code) */
.uleb128 0x11 /* (TAG: DW_TAG_compile_unit) */
.byte 0x0 /* DW_children_no */
.uleb128 0x55 /* (DW_AT_ranges) */
.uleb128 0x6 /* (DW_FORM_data4) */
.byte 0x0
.byte 0x0
 
.uleb128 0x2 /* (abbrev code) */
.uleb128 0x2e /* (TAG: DW_TAG_subprogram) */
.byte 0x0 /* DW_children_no */
.uleb128 0x3 /* (DW_AT_name) */
.uleb128 0x8 /* (DW_FORM_string) */
.uleb128 0x55 /* (DW_AT_ranges) */
.uleb128 0x6 /* (DW_FORM_data4) */
.byte 0x0
.byte 0x0
 
.byte 0x0 /* abbrevs terminator */
/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
/strip-5.d
0,0 → 1,18
#PROG: strip
#source: group-2.s
#strip: --strip-unneeded
#readelf: -Sg --wide
#name: strip with section group 5
 
#...
\[[ 0-9]+\] .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]+\] `.group' \[.text.foo\] contains 2 sections:
\[Index\] Name
\[[ 0-9]+\] .text.*
\[[ 0-9]+\] .data.*
#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, 2009
# 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
/strip-7.d
0,0 → 1,18
#PROG: strip
#source: group-3.s
#strip: --strip-unneeded
#readelf: -Sg --wide
#name: strip with section group 7
 
#...
\[[ 0-9]+\] .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]+\] `.group' \[foo3\] contains 2 sections:
\[Index\] Name
\[[ 0-9]+\] .text.*
\[[ 0-9]+\] .data.*
#pass
/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, 2009
# 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
/strip-9.d
0,0 → 1,18
#PROG: strip
#source: group-4.s
#strip: --strip-unneeded
#readelf: -Sg --wide
#name: strip with section group 9
 
#...
\[[ 0-9]+\] .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]+\] `.group' \[foo4\] contains 2 sections:
\[Index\] Name
\[[ 0-9]+\] .text.*
\[[ 0-9]+\] .data.*
#pass
/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
#...
/localize-hidden-2.s
0,0 → 1,2
.globl G
G == 0x100
/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,337
# Copyright 1999, 2000, 2001, 2003, 2004, 2007, 2009
# 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"
}
 
# This tests "readelf -wa", but on a file with a compressed
# .debug_abbrev section.
 
proc readelf_compressed_wa_test {} {
global READELF
global READELFFLAGS
global srcdir
global subdir
# Compile the compressed-debug-section test file.
if { [target_compile $srcdir/$subdir/dw2-compressed.S tmpdir/dw2-compressed.o object debug] != "" } {
verbose "Unable to compile test file."
untested "readelf -wa (compressed)"
return
}
 
# Download it.
set tempfile [remote_download host tmpdir/dw2-compressed.o]
 
# Run "readelf -wa" on it.
set got [remote_exec host "$READELF $READELFFLAGS -wa $tempfile" "" "/dev/null" "readelf.out"]
 
# Upload the results.
set output [remote_upload host readelf.out]
 
file_on_host delete $tempfile
if { [string compare [file_contents readelf.out] [file_contents $srcdir/$subdir/readelf.wa]] != 0 } then {
fail "readelf -wa (compressed)"
verbose "output is \n[file_contents readelf.out]" 2
verbose "expected is \n[file_contents $srcdir/$subdir/readelf.wa]" 2
return
}
 
pass "readelf -wa (compressed)"
}
 
# 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_compressed_wa_test
 
readelf_dump_test
/copy-4.d
0,0 → 1,9
#PROG: strip
#source: bintest.s
#strip: --strip-unneeded
#nm: -n
#name: strip --strip-unneeded on common symbol
 
#...
0+04 C common_symbol
#pass
/group-3.s
0,0 → 1,8
.section .text.foo3,"axG",%progbits,foo3,comdat
.global foo3
foo3:
.word 0
.section .data.bar3,"awG",%progbits,foo3,comdat
.global bar3
bar3:
.word 0
/empty.s
0,0 → 1,8
# An empty file.
/readelf.wa
0,0 → 1,24
Contents of the .zdebug_abbrev section:
 
Number TAG
1 DW_TAG_compile_unit [has children]
DW_AT_stmt_list DW_FORM_data4
DW_AT_high_pc DW_FORM_addr
DW_AT_low_pc DW_FORM_addr
DW_AT_name DW_FORM_string
DW_AT_producer DW_FORM_string
DW_AT_language DW_FORM_data1
2 DW_TAG_subprogram [no children]
DW_AT_external DW_FORM_flag
DW_AT_decl_file DW_FORM_data1
DW_AT_decl_line DW_FORM_data1
DW_AT_name DW_FORM_string
DW_AT_type DW_FORM_ref4
DW_AT_low_pc DW_FORM_addr
DW_AT_high_pc DW_FORM_addr
DW_AT_frame_base DW_FORM_block1
3 DW_TAG_base_type [no children]
DW_AT_name DW_FORM_string
DW_AT_byte_size DW_FORM_data1
DW_AT_encoding DW_FORM_data1
 
/arm/thumb2-cond.s
0,0 → 1,8
.arch armv7
.syntax unified
.thumb
foo:
bl 1f
1: it cc
bcc.w .+0xe0c
bx lr
/arm/objdump.exp
0,0 → 1,63
# Copyright 2004, 2007, 2009
# 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;
}
/objdump.exp
0,0 → 1,209
# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2007, 2008, 2009
# 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 m16c m32c m32r m68hc11 m68hc12 m68k m88k MCore
lappend cpus_expected mips mn10200 mn10300 ms1 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"
}
 
# Test objdump -s on a file that contains a compressed .debug section
 
if { ![is_elf_format] } then {
unsupported "objdump compressed debug"
} elseif { ![binutils_assemble $srcdir/$subdir/dw2-compressed.S tmpdir/dw2-compressed.o] } then {
fail "objdump compressed debug"
} else {
if [is_remote host] {
set compressed_testfile [remote_download host tmpdir/dw2-compressed.o]
} else {
set compressed_testfile tmpdir/dw2-compressed.o
}
 
set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -s -j .zdebug_abbrev $compressed_testfile" "" "/dev/null" "objdump.out"]
 
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
fail "objdump -s -j .zdebug_abbrev (reason: unexpected output)"
send_log $got
send_log "\n"
}
 
if { [regexp_diff objdump.out $srcdir/$subdir/objdump.s] } then {
fail "objdump -s -j .zdebug_abbrev"
} else {
pass "objdump -s -j .zdebug_abbrev"
}
 
# Test objdump -W on a file that contains some compressed .debug sections
 
set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -W $compressed_testfile" "" "/dev/null" "objdump.out"]
 
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
fail "objdump -W (reason: unexpected output)"
send_log $got
send_log "\n"
}
 
if { [regexp_diff objdump.out $srcdir/$subdir/objdump.W] } then {
fail "objdump -W"
} else {
pass "objdump -W"
}
}
 
 
# 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.
/objcopy.exp
0,0 → 1,879
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
# 2004, 2006, 2007, 2009
# 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
global host_triplet
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} on ${host_triplet}\n"
if { [istarget $host_triplet] } {
return 3
}
set status "pass"
}
 
return 0
}
 
# Test copying an executable.
 
proc copy_executable { prog flags test1 test2 } {
global test_prog
global host_triplet
 
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"
setup_xfail "x86_64-*-mingw*"
setup_xfail "*-*-cygwin*"
fail $test1
}
 
if [string match "" $test2] {
return
}
 
set output [remote_load target tmpdir/copyprog]
set status [lindex $output 0]
if { ![istarget $host_triplet] } {
set status "pass"
}
if { $status != "pass" } {
fail $test2
} else {
pass $test2
}
}
 
# Test stripping an executable
 
proc strip_executable { prog flags test } {
global NM
global NMFLAGS
global host_triplet
 
remote_file build delete tmpdir/striprog
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 { ![istarget $host_triplet] } {
set status "pass"
}
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
global host_triplet
 
remote_file build delete tmpdir/striprog
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 { ![istarget $host_triplet] } {
set status "pass"
}
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
}
 
# Test keeping only debug symbols of an executable
 
proc keep_debug_symbols_and_test_copy { prog1 flags1 test1 prog2 flags2 test2 } {
global NM
global NMFLAGS
 
remote_file build delete tmpdir/striprog
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 $prog1 "$flags1 ${copyfile}"]
if ![string match "" $exec_output] {
fail $test1
return
}
pass $test1
 
set exec_output [binutils_run $prog2 "$flags2 ${copyfile}"]
if ![string match "" $exec_output] {
fail $test2
return
}
pass $test2
}
 
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"
set test5 "keep only debug data"
set test6 "simple objcopy of debug data"
 
switch [copy_setup] {
"1" {
# do nothing
}
"2" {
untested $test1
untested $test2
untested $test3
untested $test4
untested $test5
untested $test6
}
"3" {
copy_executable "$OBJCOPY" "$OBJCOPYFLAGS" "$test1" ""
unsupported $test2
unsupported $test3
unsupported $test4
unsupported $test5
unsupported $test6
}
"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"
keep_debug_symbols_and_test_copy "$STRIP" "--only-keep-debug $STRIPFLAGS" "$test5" \
"$OBJCOPY" "$OBJCOPYFLAGS" "$test6"
}
}
 
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
objcopy_test_readelf "ELF group" group-2.s
objcopy_test_readelf "ELF group" group-3.s
objcopy_test_readelf "ELF group" group-4.s
run_dump_test "copy-1"
}
 
run_dump_test "copy-2"
run_dump_test "copy-3"
run_dump_test "copy-4"
 
if [is_elf_format] {
run_dump_test "strip-1"
run_dump_test "strip-2"
run_dump_test "strip-3"
run_dump_test "strip-4"
run_dump_test "strip-5"
run_dump_test "strip-6"
run_dump_test "strip-7"
run_dump_test "strip-8"
run_dump_test "strip-9"
run_dump_test "strip-10"
 
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 "testranges"
run_dump_test "testranges-ia64"
}
run_dump_test "localize-hidden-2"
/unknown.s
0,0 → 1,4
.section .foo,"a","note"
.global _start
_start:
.long 0
/strip-10.d
0,0 → 1,8
#PROG: strip
#source: unique.s
#strip: -g
#readelf: -s
#name: strip on STB_GNU_UNIQUE
 
#...
[ ]+[0-9]+:[ ]+[0-9a-f]+[ ]+[0-9]+[ ]+OBJECT[ ]+(UNIQUE|<OS specific>: 10) DEFAULT[ ]+[1-9] foo
/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\)
 
/objdump.W
0,0 → 1,129
 
.*dw2-compressed.o: file format .*
 
Contents of the .debug_info section:
 
Compilation Unit @ offset 0x0:
Length: 0x4e \(32-bit\)
Version: 2
Abbrev Offset: 0
Pointer Size: 4
<0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
< c> DW_AT_stmt_list : 0x0
<10> DW_AT_high_pc : 0x.
<14> DW_AT_low_pc : 0x.
<18> DW_AT_name : file1.txt
<22> DW_AT_producer : GNU C 3.3.3
<2e> DW_AT_language : 1 \(ANSI C\)
<1><2f>: Abbrev Number: 2 \(DW_TAG_subprogram\)
<30> DW_AT_external : 1
<31> DW_AT_decl_file : 1
<32> DW_AT_decl_line : 2
<33> DW_AT_name : func_cu1
<3c> DW_AT_type : <0x4a>
<40> DW_AT_low_pc : 0x.
<44> DW_AT_high_pc : 0x.
<48> DW_AT_frame_base : 1 byte block: 55 \(DW_OP_reg5\)
<1><4a>: Abbrev Number: 3 \(DW_TAG_base_type\)
<4b> DW_AT_name : int
<4f> DW_AT_byte_size : 4
<50> DW_AT_encoding : 5 \(signed\)
 
Raw dump of debug contents of section .debug_line:
 
Offset: 0x0
Length: 62
DWARF Version: 2
Prologue Length: 35
Minimum Instruction Length: 1
Initial value of 'is_stmt': 1
Line Base: 1
Line Range: 1
Opcode Base: 16
 
Opcodes:
Opcode 1 has 0 args
Opcode 2 has 1 args
Opcode 3 has 1 args
Opcode 4 has 1 args
Opcode 5 has 1 args
Opcode 6 has 0 args
Opcode 7 has 0 args
Opcode 8 has 0 args
Opcode 9 has 1 args
Opcode 10 has 0 args
Opcode 11 has 0 args
Opcode 12 has 1 args
Opcode 13 has 0 args
Opcode 14 has 0 args
Opcode 15 has 0 args
 
The Directory Table is empty.
 
The File Name Table:
Entry Dir Time Size Name
1 0 0 0 file1.txt
 
Line Number Statements:
Extended opcode 2: set Address to .*
Advance Line by 3 to 4
Copy
Copy
Extended opcode 2: set Address to .*
Extended opcode 1: End of Sequence
 
 
Offset: 0x42
Length: 25
DWARF Version: 2
Prologue Length: 19
Minimum Instruction Length: [1248]
Initial value of 'is_stmt': 1
Line Base: -5
Line Range: 14
Opcode Base: 13
 
Opcodes:
Opcode 1 has 0 args
Opcode 2 has 1 args
Opcode 3 has 1 args
Opcode 4 has 1 args
Opcode 5 has 1 args
Opcode 6 has 0 args
Opcode 7 has 0 args
Opcode 8 has 0 args
Opcode 9 has 1 args
Opcode 10 has 0 args
Opcode 11 has 0 args
Opcode 12 has 1 args
 
The Directory Table is empty.
 
The File Name Table is empty.
 
Line Number Statements:
 
Contents of the .zdebug_abbrev section:
 
Number TAG
1 DW_TAG_compile_unit \[has children\]
DW_AT_stmt_list DW_FORM_data4
DW_AT_high_pc DW_FORM_addr
DW_AT_low_pc DW_FORM_addr
DW_AT_name DW_FORM_string
DW_AT_producer DW_FORM_string
DW_AT_language DW_FORM_data1
2 DW_TAG_subprogram \[no children\]
DW_AT_external DW_FORM_flag
DW_AT_decl_file DW_FORM_data1
DW_AT_decl_line DW_FORM_data1
DW_AT_name DW_FORM_string
DW_AT_type DW_FORM_ref4
DW_AT_low_pc DW_FORM_addr
DW_AT_high_pc DW_FORM_addr
DW_AT_frame_base DW_FORM_block1
3 DW_TAG_base_type \[no children\]
DW_AT_name DW_FORM_string
DW_AT_byte_size DW_FORM_data1
DW_AT_encoding DW_FORM_data1
 
/size.exp
0,0 → 1,82
# Copyright 1993, 1994, 1995, 1997, 1998, 2007, 2009
# 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"
/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
/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
/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-4.d
0,0 → 1,11
#PROG: strip
#source: group-2.s
#readelf: -Sg --wide
#name: strip with section group 4
 
#...
\[[ 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-6.d
0,0 → 1,11
#PROG: strip
#source: group-3.s
#readelf: -Sg --wide
#name: strip with section group 6
 
#...
\[[ 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-8.d
0,0 → 1,11
#PROG: strip
#source: group-4.s
#readelf: -Sg --wide
#name: strip with section group 8
 
#...
\[[ 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.
/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
 
Ldefault == 0x1100
Lhidden == 0x1200
Linternal == 0x1300
Lprotected == 0x1400
 
Gdefault == 0x2100
Ghidden == 0x2200
Ginternal == 0x2300
Gprotected == 0x2400
 
Wdefault == 0x3100
Whidden == 0x3200
Winternal == 0x3300
Wprotected == 0x3400
/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
#...
/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\)
/group-2.s
0,0 → 1,8
.section .text.foo,"axG",%progbits,.text.foo,comdat
.global foo2
foo2:
.word 0
.section .data.bar,"awG",%progbits,.text.foo,comdat
.global bar2
bar2:
.word 0
/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
#...
/group.s
0,0 → 1,8
.section .text.foo,"axG",%progbits,foo_group,comdat
.global foo
foo:
.word 0
.section .data.foo,"awG",%progbits,foo_group,comdat
.global bar
bar:
.word 0
/ar.exp
0,0 → 1,409
# Copyright 1995, 1997, 2002, 2004, 2007, 2008, 2009
# 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
}
 
# Test building a deterministic archive.
 
proc deterministic_archive { } {
global AR
global AS
global NM
global srcdir
global subdir
 
set testname "ar deterministic 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 "rcD $archive ${objfile}"]
if ![string match "" $got] {
fail $testname
return
}
 
set got [binutils_run $AR "tv $archive"]
# This only checks the file mode and uid/gid. We can't easily match
# date because it's printed with the user's timezone.
if ![string match "rw-r--r-- 0/0 *bintest.o*" $got] {
fail $testname
return
}
 
pass $testname
}
 
# Run the tests.
 
long_filenames
symbol_table
thin_archive
thin_archive_with_nested
argument_parsing
deterministic_archive
/group-4.s
0,0 → 1,6
.section .text.foo4,"axG",%progbits,foo4,comdat
foo4:
.word 0
.section .data.foo4,"awG",%progbits,foo4,comdat
bar4:
.word 0
/vax/objdump.exp
0,0 → 1,64
#
# Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2002, 2005, 2007, 2009
# 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
 
/dw2-compressed.S
0,0 → 1,218
/* This testcase is derived from a similar test in GDB.
 
Copyright 2008, 2009 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, see <http://www.gnu.org/licenses/>. */
 
/* This tests that gdb can read compressed sections. The contents
are a basic assembly file, but the .debug_abbrev section has been
comrpessed using zlib. */
 
/* Dummy function to provide debug information for. */
 
.text
.globl _start
_start:
.int 0
.Lbegin_text1:
.globl func_cu1
.type func_cu1, %function
func_cu1:
.Lbegin_func_cu1:
.int 0
.Lend_func_cu1:
.size func_cu1, .-func_cu1
.Lend_text1:
 
/* Debug information */
 
.section .debug_info
.Lcu1_begin:
/* CU header */
.4byte .Lcu1_end - .Lcu1_start /* Length of Compilation Unit */
.Lcu1_start:
.2byte 2 /* DWARF Version */
.4byte .Labbrev1_begin /* Offset into abbrev section */
.byte 4 /* Pointer size */
 
/* CU die */
.uleb128 1 /* Abbrev: DW_TAG_compile_unit */
.4byte .Lline1_begin /* DW_AT_stmt_list */
.4byte .Lend_text1 /* DW_AT_high_pc */
.4byte .Lbegin_text1 /* DW_AT_low_pc */
.ascii "file1.txt\0" /* DW_AT_name */
.ascii "GNU C 3.3.3\0" /* DW_AT_producer */
.byte 1 /* DW_AT_language (C) */
 
/* func_cu1 */
.uleb128 2 /* Abbrev: DW_TAG_subprogram */
.byte 1 /* DW_AT_external */
.byte 1 /* DW_AT_decl_file */
.byte 2 /* DW_AT_decl_line */
.ascii "func_cu1\0" /* DW_AT_name */
.4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */
.4byte .Lbegin_func_cu1 /* DW_AT_low_pc */
.4byte .Lend_func_cu1 /* DW_AT_high_pc */
.byte 1 /* DW_AT_frame_base: length */
.byte 0x55 /* DW_AT_frame_base: DW_OP_reg5 */
 
.Ltype_int:
.uleb128 3 /* Abbrev: DW_TAG_base_type */
.ascii "int\0" /* DW_AT_name */
.byte 4 /* DW_AT_byte_size */
.byte 5 /* DW_AT_encoding */
 
.byte 0 /* End of children of CU */
 
.Lcu1_end:
 
/* Line table */
.section .debug_line
.Lline1_begin:
.4byte .Lline1_end - .Lline1_start /* Initial length */
.Lline1_start:
.2byte 2 /* Version */
.4byte .Lline1_lines - .Lline1_hdr /* header_length */
.Lline1_hdr:
.byte 1 /* Minimum insn length */
.byte 1 /* default_is_stmt */
.byte 1 /* line_base */
.byte 1 /* line_range */
.byte 0x10 /* opcode_base */
 
/* Standard lengths */
.byte 0
.byte 1
.byte 1
.byte 1
.byte 1
.byte 0
.byte 0
.byte 0
.byte 1
.byte 0
.byte 0
.byte 1
.byte 0
.byte 0
.byte 0
 
/* Include directories */
.byte 0
 
/* File names */
.ascii "file1.txt\0"
.uleb128 0
.uleb128 0
.uleb128 0
 
.byte 0
 
.Lline1_lines:
.byte 0 /* DW_LNE_set_address */
.uleb128 5
.byte 2
.4byte .Lbegin_func_cu1
 
.byte 3 /* DW_LNS_advance_line */
.sleb128 3 /* ... to 4 */
 
.byte 1 /* DW_LNS_copy */
 
.byte 1 /* DW_LNS_copy (second time as an end-of-prologue marker) */
 
.byte 0 /* DW_LNE_set_address */
.uleb128 5
.byte 2
.4byte .Lend_func_cu1
 
.byte 0 /* DW_LNE_end_of_sequence */
.uleb128 1
.byte 1
 
.Lline1_end:
 
/* Abbrev table -- compressed */
.section .zdebug_abbrev
.Labbrev1_begin:
.ascii "ZLIB"
.4byte 0
.2byte 0
.byte 0
.byte 51
.byte 0x78
.byte 0x5e
.byte 0x63
.byte 0x14
.byte 0x64
.byte 0x14
.byte 0x60
.byte 0x13
.byte 0x62
.byte 0x14
.byte 0x64
.byte 0x64
.byte 0xe6
.byte 0x50
.byte 0xe5
.byte 0x10
.byte 0xe6
.byte 0x66
.byte 0x60
.byte 0x60
.byte 0xd2
.byte 0x63
.byte 0xb0
.byte 0xe7
.byte 0xb1
.byte 0xe2
.byte 0xb6
.byte 0xe6
.byte 0x66
.byte 0xe6
.byte 0xf0
.byte 0x14
.byte 0x16
.byte 0x64
.byte 0x14
.byte 0x62
.byte 0x74
.byte 0xe0
.byte 0x02
.byte 0x00
.byte 0x25
.byte 0x78
.byte 0x02
.byte 0x81
.byte 0x78
.byte 0x9c
.byte 0x63
.byte 0x60
.byte 0x60
.byte 0x56
.byte 0x61
.byte 0x60
.byte 0xe6
.byte 0xe0
.byte 0xe6
.byte 0xb6
.byte 0xe3
.byte 0x66
.byte 0x00
.byte 0x02
.byte 0x00
.byte 0x04
.byte 0x9c
.byte 0x00
.byte 0x92
/objdump.s
0,0 → 1,9
 
.*dw2-compressed.o: file format .*
 
Contents of section .zdebug_abbrev:
0000 5a4c4942 00000000 00000033 785e6314 ZLIB.......3x\^c.
0010 64146013 62146464 e650e510 e6666060 d.`.b.dd.P...f``
0020 d263b0e7 b1e2b6e6 66e6f014 16641462 .c......f....d.b
0030 74e00200 25780281 789c6360 60566160 t...%x..x.c``Va`
0040 e6e0e6b6 e3660002 00049c00 92 .....f.......
/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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818)
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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -0,0 +1,40 @@ +#!/bin/sh +# Copyright 2001, 2007, 2009 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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -0,0 +1,136 @@ +# Copyright 2001, 2003, 2004, 2006, 2007, 2009 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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818) @@ -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 818)
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 818) @@ -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 818) @@ -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 Index: bfin/unknown-mode.s =================================================================== --- bfin/unknown-mode.s (nonexistent) +++ bfin/unknown-mode.s (revision 818) @@ -0,0 +1,8 @@ + .text + + // Below 4 bytes are "A1 += R6.H * R4.L (IS);" + // with a invalid mode "0xf". + .byte 0xe1 + .byte 0xc1 + .byte 0x34 + .byte 0x98 Index: bfin/objdump.exp =================================================================== --- bfin/objdump.exp (nonexistent) +++ bfin/objdump.exp (revision 818) @@ -0,0 +1,53 @@ +# Copyright 2009 +# 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 "bfin-*-*"]} then { + return +} + +if {[which $OBJDUMP] == 0} then { + perror "$OBJDUMP does not exist" + return +} + +send_user "Version [binutil_version $OBJDUMP]" + +################################### +# Set up the test of unknown-mode.s +################################### + +if {![binutils_assemble $srcdir/$subdir/unknown-mode.s tmpdir/unknown-mode.o]} then { + return +} + +if [is_remote host] { + set objfile [remote_download host tmpdir/unknown-mode.o] +} else { + set objfile tmpdir/unknown-mode.o +} + +# Make sure that the unknown mode does not cause abort. + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -D $objfile"] + +set want "e1 c1\[ \t\]*ILLEGAL.*34 98 .*\[\r\n\]" + +if [regexp $want $got] then { + pass "unknown mode test" +} else { + fail "unknown mode test" +}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.