diff options
Diffstat (limited to 'binutils-2.25/binutils/testsuite/binutils-all')
185 files changed, 7308 insertions, 0 deletions
diff --git a/binutils-2.25/binutils/testsuite/binutils-all/add-empty-section.d b/binutils-2.25/binutils/testsuite/binutils-all/add-empty-section.d new file mode 100644 index 00000000..c9162a50 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/add-empty-section.d @@ -0,0 +1,9 @@ +#PROG: objcopy +#name: objcopy add-empty-section +#source: empty.s +#objcopy: --add-section NEW=$srcdir/empty-file +#readelf: -S --wide + +#... + \[[ 0-9]+\] NEW[ \t]+PROGBITS[ \t]+[0-9a-f]+[ \t]+[0-9a-f]+[ \t]+0+[ \t]+[ \t0-9a-f]+ +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/add-section.d b/binutils-2.25/binutils/testsuite/binutils-all/add-section.d new file mode 100644 index 00000000..37a24cf5 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/add-section.d @@ -0,0 +1,11 @@ +#PROG: objcopy +#name: objcopy add-section +#source: empty.s +#objcopy: --add-section NEW=$srcdir/empty.s +#objdump: -s -j NEW + +.*: +file format .* + +Contents of section NEW: + 0000 2320416e 20656d70 74792066 696c652e # An empty file. + 0010 0a . diff --git a/binutils-2.25/binutils/testsuite/binutils-all/alias-2.def b/binutils-2.25/binutils/testsuite/binutils-all/alias-2.def new file mode 100644 index 00000000..ef41eec6 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/alias-2.def @@ -0,0 +1,2 @@ +EXPORTS +symbol=nothing ==something diff --git a/binutils-2.25/binutils/testsuite/binutils-all/alias.def b/binutils-2.25/binutils/testsuite/binutils-all/alias.def new file mode 100644 index 00000000..d59d4a01 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/alias.def @@ -0,0 +1,2 @@ +EXPORTS +symbol=nothing diff --git a/binutils-2.25/binutils/testsuite/binutils-all/ar.exp b/binutils-2.25/binutils/testsuite/binutils-all/ar.exp new file mode 100644 index 00000000..6efc1598 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/ar.exp @@ -0,0 +1,575 @@ +# Copyright 1995, 1997, 2002, 2004, 2007, 2008, 2009, 2010, 2012 +# 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 { bfdtests } { + global AR + global host_triplet + global base_dir + + 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 + } + + 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 + } + + foreach bfdtest $bfdtests { + set exec_output [binutils_run "$base_dir/$bfdtest" "$dest"] + if ![string match "" $exec_output] { + verbose -log $exec_output + fail "$testname ($bfdtest)" + 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 { bfdtests } { + global AR + global AS + global NM + global srcdir + global subdir + global base_dir + + 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 + } + + foreach bfdtest $bfdtests { + set exec_output [binutils_run "$base_dir/$bfdtest" "$archive"] + if ![string match "" $exec_output] { + verbose -log $exec_output + fail "$testname ($bfdtest)" + 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 { bfdtests } { + global AR + global AS + global NM + global srcdir + global subdir + global base_dir + + 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 + } + + foreach bfdtest $bfdtests { + set exec_output [binutils_run "$base_dir/$bfdtest" "$archive"] + if ![string match "" $exec_output] { + verbose -log $exec_output + fail "$testname ($bfdtest)" + return + } + + set exec_output [binutils_run "$base_dir/$bfdtest" "$archive2"] + if ![string match "" $exec_output] { + verbose -log $exec_output + fail "$testname ($bfdtest)" + 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 +} + +proc unique_symbol { } { + global AR + global AS + global NM + global srcdir + global subdir + + set testname "ar unique symbol in archive" + + if ![binutils_assemble $srcdir/$subdir/unique.s tmpdir/unique.o] { + unresolved $testname + } + + if [is_remote host] { + set archive artest.a + set objfile [remote_download host tmpdir/unique.o] + remote_file host delete $archive + } else { + set archive tmpdir/artest.a + set objfile tmpdir/unique.o + } + + remote_file build delete tmpdir/artest.a + + set got [binutils_run $AR "-s -r -c $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + set got [binutils_run $NM "--print-armap $archive"] + if ![string match "*foo in *unique.o*" $got] { + fail $testname + return + } + + pass $testname +} + +# Test deleting an element. + +proc delete_an_element { } { + global AR + global AS + global srcdir + global subdir + + set testname "ar deleting an element" + + 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 + } + + set got [binutils_run $AR "-d $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + pass $testname +} + +# Test moving an element. + +proc move_an_element { } { + global AR + global AS + global srcdir + global subdir + + set testname "ar moving an element" + + 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 + } + + set got [binutils_run $AR "-m $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + pass $testname +} + +# Run the tests. + +set bfdtests [list bfdtest1 bfdtest2] + +long_filenames $bfdtests +symbol_table +thin_archive $bfdtests +thin_archive_with_nested $bfdtests +argument_parsing +deterministic_archive +delete_an_element +move_an_element +if { [is_elf_format] + && ![istarget "*-*-hpux*"] + && ![istarget "msp*-*-*"] } { + unique_symbol +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/arm/objdump.exp b/binutils-2.25/binutils/testsuite/binutils-all/arm/objdump.exp new file mode 100644 index 00000000..321e2a93 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/arm/objdump.exp @@ -0,0 +1,89 @@ +# 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" +} + +########################### +# Set up the test of multiple disassemblies +########################### + +if {![binutils_assemble $srcdir/$subdir/simple.s tmpdir/simple.o]} then { + return +} + +if [is_remote host] { + set objfile [remote_download host tmpdir/simple.o] +} else { + set objfile tmpdir/simple.o +} + +# Make sure multiple disassemblies come out the same + +set got [binutils_run $OBJDUMP "-dr $objfile $objfile"] + +set want "$objfile:\[ \]*file format.*$objfile:\[ \]*file format.*push.*add.*sub.*str.*add.*ldmfd" + +if [regexp $want $got] then { + pass "multiple input files" +} else { + fail "multiple input files" +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/arm/simple.s b/binutils-2.25/binutils/testsuite/binutils-all/arm/simple.s new file mode 100644 index 00000000..df8dd2ab --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/arm/simple.s @@ -0,0 +1,35 @@ + .cpu arm7tdmi-s + .fpu softvfp + .file "y.c" + .bss + .align 2 +l: + .space 4 + .text + .align 2 + .global f1 + +f1: + str fp, [sp, #-4]! + add fp, sp, #0 + sub sp, sp, #12 + str r0, [fp, #-8] + add sp, fp, #0 + ldmfd sp!, {fp} + bx lr + .align 2 + .word l + + .align 2 + .global main + +main: + stmfd sp!, {fp, lr} + add fp, sp, #4 + bx lr + .align 2 + .word 1717986919 + .word -1840700269 + .word l + + .ident "GCC: (Sourcery G++ 2011.03) 4.5.1" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/arm/thumb2-cond.s b/binutils-2.25/binutils/testsuite/binutils-all/arm/thumb2-cond.s new file mode 100644 index 00000000..b9de4428 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/arm/thumb2-cond.s @@ -0,0 +1,8 @@ + .arch armv7 + .syntax unified + .thumb +foo: + bl 1f +1: it cc + bcc.w .+0xe0c + bx lr diff --git a/binutils-2.25/binutils/testsuite/binutils-all/bfin/objdump.exp b/binutils-2.25/binutils/testsuite/binutils-all/bfin/objdump.exp new file mode 100644 index 00000000..df7d4da8 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/bfin/objdump.exp @@ -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" +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/bfin/unknown-mode.s b/binutils-2.25/binutils/testsuite/binutils-all/bfin/unknown-mode.s new file mode 100644 index 00000000..3c477f27 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/bfin/unknown-mode.s @@ -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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/bintest.s b/binutils-2.25/binutils/testsuite/binutils-all/bintest.s new file mode 100644 index 00000000..9e006502 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/compress.exp b/binutils-2.25/binutils/testsuite/binutils-all/compress.exp new file mode 100644 index 00000000..8cf61385 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/compress.exp @@ -0,0 +1,176 @@ +# Copyright 2010, 2012 +# 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. + +# Test compressed .debug section. + +if { [is_remote host] || ![is_elf_format] || ![is_zlib_supported] } then { + return +} + +set testfile tmpdir/dw2-1.o +set compressedfile tmpdir/dw2-1-compressed.o +set copyfile tmpdir/dw2-copy +set compressedfile2 tmpdir/dw2-2-compressed.o +set libfile tmpdir/libdw2.a +set compressedcopyfile tmpdir/dw2-copy-compressed + +if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S $testfile --nocompress-debug-sections] } then { + unsupported "compressed debug sections" + return +} + +if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S $compressedfile --compress-debug-sections] } then { + unsupported "compressed debug sections" + return +} + +if { ![binutils_assemble_flags $srcdir/$subdir/dw2-2.S $compressedfile2 --compress-debug-sections] } then { + unsupported "compressed debug sections" + return +} + +remote_file host delete $libfile +set got [binutils_run $AR "rc $libfile $compressedfile $compressedfile2"] +if ![string match "" $got] then { + fail "compressed debug sections" + return +} + +set testname "objcopy compress debug sections" +set got [binutils_run $OBJCOPY "--compress-debug-sections $testfile ${copyfile}.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" +} else { + send_log "cmp $compressedfile ${copyfile}.o\n" + verbose "cmp $compressedfile ${copyfile}.o" + set src1 ${compressedfile} + 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] + + if [string match "" $exec_output] then { + pass "objcopy ($testname)" + } else { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" + } +} + +set testname "objcopy decompress compressed debug sections" +set got [binutils_run $OBJCOPY "--decompress-debug-sections $compressedfile ${copyfile}.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" +} else { + send_log "cmp $testfile ${copyfile}.o\n" + verbose "cmp $testfile ${copyfile}.o" + set src1 ${testfile} + 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] + + if [string match "" $exec_output] then { + pass "objcopy ($testname)" + } else { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" + } +} + +set testname "objcopy decompress debug sections in archive" +set got [binutils_run $OBJCOPY "--decompress-debug-sections $libfile ${copyfile}.a"] +if ![string match "" $got] then { + fail "objcopy ($testname)" +} else { + set got [remote_exec host "$READELF -S --wide ${copyfile}.a" "" "/dev/null" "tmpdir/libdw2.out"] + + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "$testname (reason: unexpected output)" + send_log $got + send_log "\n" + } + + if { [regexp_diff tmpdir/libdw2.out $srcdir/$subdir/libdw2.out] } then { + fail "$testname" + } else { + pass "$testname" + } +} + +set testname "objcopy compress debug sections in archive" +set got [binutils_run $OBJCOPY "--compress-debug-sections ${copyfile}.a ${compressedcopyfile}.a"] +if ![string match "" $got] then { + fail "objcopy ($testname)" +} else { + set got [remote_exec host "$OBJDUMP -s -j .zdebug_line ${compressedcopyfile}.a" "" "/dev/null" "tmpdir/libdw2-compressed.out"] + + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "$testname (reason: unexpected output)" + send_log $got + send_log "\n" + } + + if { [regexp_diff tmpdir/libdw2-compressed.out $srcdir/$subdir/libdw2-compressed.out] } then { + fail "$testname" + } else { + pass "$testname" + } +} + +set testname "objdump compress debug sections" +set got [remote_exec host "$OBJDUMP -W $compressedfile" "" "/dev/null" "objdump.out"] +if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "$testname" + send_log "$got\n" +} +if { [regexp_diff objdump.out $srcdir/$subdir/dw2-1.W] } then { + fail "$testname" +} else { + pass "$testname" +} + +set testfile tmpdir/dw2-emty.o + +if { ![binutils_assemble_flags $srcdir/$subdir/dw2-empty.S $testfile --nocompress-debug-sections] } then { + unsupported "compressed debug sections" + return +} + +set testname "objcopy compress empty debug sections" +set got [binutils_run $OBJCOPY "--compress-debug-sections $testfile ${copyfile}.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" +} else { + send_log "cmp $testfile ${copyfile}.o\n" + verbose "cmp $testfile ${copyfile}.o" + set src1 ${testfile} + 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] + + if [string match "" $exec_output] then { + pass "objcopy ($testname)" + } else { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" + } +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/copy-1.d b/binutils-2.25/binutils/testsuite/binutils-all/copy-1.d new file mode 100644 index 00000000..f2b0d9e9 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/copy-1.s b/binutils-2.25/binutils/testsuite/binutils-all/copy-1.s new file mode 100644 index 00000000..32864de7 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/copy-1.s @@ -0,0 +1,6 @@ + .globl text_symbol + .text +text_symbol: + .long 1 + .section .post_text_reserve,"w", %nobits + .space 160 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/copy-2.d b/binutils-2.25/binutils/testsuite/binutils-all/copy-2.d new file mode 100644 index 00000000..5636ff62 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 *-*-aix* h8300-*-* hppa*-*-hpux* m68k-*-netbsd m68k-*-openbsd* mips-sony-bsd* mips-*-ultrix* mips-*-osf* mips-*-ecoff* mips-*-irix mips-*-irix[2-4] mips-*-riscos* ns32k-*-netbsd +# 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 +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/copy-3.d b/binutils-2.25/binutils/testsuite/binutils-all/copy-3.d new file mode 100644 index 00000000..655986af --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 hppa*-*-hpux* *-*-cygwin* *-*-mingw* m68k-*-netbsd m68k-*-openbsd* ns32k-*-netbsd rs6000-*-* +# 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 +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/copy-4.d b/binutils-2.25/binutils/testsuite/binutils-all/copy-4.d new file mode 100644 index 00000000..41fccf00 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/copytest.s b/binutils-2.25/binutils/testsuite/binutils-all/copytest.s new file mode 100644 index 00000000..33c13b88 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/copytest.s @@ -0,0 +1,7 @@ + .globl foo_symbol + .section foo +foo_symbol: + .long 1 + .section bar +bar_symbol: + .long 2 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dlltool.exp b/binutils-2.25/binutils/testsuite/binutils-all/dlltool.exp new file mode 100644 index 00000000..1409d3cf --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/dlltool.exp @@ -0,0 +1,282 @@ +# 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*"] + && ![istarget "arm-*-pe*"]} { + return +} + +if {![istarget "i*86-*-*pe*"] \ + && ![istarget "i*86-*-cygwin*"] \ + && ![istarget "i*86-*-mingw32*"] \ + && ![istarget "arm-*-pe*"] \ + && ![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 --leading-underscore -d $srcdir/$subdir/fastcall.def" 1 +catch "exec $DLLTOOL --leading-underscore -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 -l libversion.a --def $srcdir/$subdir/version.def" 1 +catch "exec $DLLTOOL -l libersion.a --def $srcdir/$subdir/version.def" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool (version.dll)" +} else { + pass "dlltool (version.dll)" +} + +if { "$target_xfail" == "yes" } { + setup_xfail *-* +} + +verbose "$DLLTOOL -p prefix --leading-underscore -l tmpdir/libalias.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL -p prefix --leading-underscore -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)" +} + +verbose "$DLLTOOL -p prefix --leading-underscore -l tmpdir/libalias2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL -p prefix --leading-underscore -l tmpdir/libalias2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool -p (execution) alias-2.def" + continue +} + +pass "dlltool -p (execution) alias-2.def" + +set got [binutils_run $NM "tmpdir/libalias2.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) alias-2.def" +} else { + fail "dlltool -p (symbol names) alias-2.def" +} + +set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias2.a"] +set want "(Contents of section .idata\\\$6:.*\\.\\.something\\..*){2,2}" + +if [regexp $want $got] then { + pass "dlltool -p (import name) alias-2.def" +} else { + fail "dlltool -p (import name) alias-2.def" +} + +# Here we test explicit without leading underscore + +verbose "$DLLTOOL --no-leading-underscore -d $srcdir/$subdir/fastcall.def" 1 +catch "exec $DLLTOOL --no-leading-underscore -d $srcdir/$subdir/fastcall.def" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool (fastcall export no leading underscore)" +} else { + pass "dlltool (fastcall export no leading underscore)" +} + +if { "$target_xfail" == "yes" } { + setup_xfail *-* +} + +verbose "$DLLTOOL --no-leading-underscore -p prefix -l tmpdir/libalias_nu.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL --no-leading-underscore -p prefix -l tmpdir/libalias_nu.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 no leading underscore)" + continue +} + +pass "dlltool -p (execution no leading underscore)" + +set got [binutils_run $NM "tmpdir/libalias_nu.a"] +set want "00000000 I __imp_prefixsymbol.*00000000 T prefixsymbol.*00000000 I __imp_symbol.*00000000 T symbol" + +if [regexp $want $got] then { + pass "dlltool -p (symbol names no leading underscore)" +} else { + fail "dlltool -p (symbol names no leading underscore)" +} + +set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias_nu.a"] +set want "(Contents of section .idata\\\$6:.*\\.\\.symbol\\.\\..*){2,2}" + +if [regexp $want $got] then { + pass "dlltool -p (import name no leading underscore)" +} else { + fail "dlltool -p (import name no leading underscore)" +} + +verbose "$DLLTOOL --no-leading-underscore -p prefix -l tmpdir/libalias_nu2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL --no-leading-underscore -p prefix -l tmpdir/libalias_nu2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool -p (execution no leading underscore) alias-2.def" + continue +} + +pass "dlltool -p (execution no leading underscore) alias-2.def" + +set got [binutils_run $NM "tmpdir/libalias_nu2.a"] +set want "00000000 I __imp_prefixsymbol.*00000000 T prefixsymbol.*00000000 I __imp_symbol.*00000000 T symbol" + +if [regexp $want $got] then { + pass "dlltool -p (symbol names no leading underscore) alias-2.def" +} else { + fail "dlltool -p (symbol names no leading underscore) alias-2.def" +} + +set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias_nu2.a"] +set want "(Contents of section .idata\\\$6:.*\\.\\.something\\..*){2,2}" + +if [regexp $want $got] then { + pass "dlltool -p (import name no leading underscore) alias-2.def" +} else { + fail "dlltool -p (import name no leading underscore) alias-2.def" +} + +# Now we test with leading underscore +verbose "$DLLTOOL --leading-underscore -d $srcdir/$subdir/fastcall.def" 1 +catch "exec $DLLTOOL --leading-underscore -d $srcdir/$subdir/fastcall.def" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool (fastcall export leading underscore)" +} else { + pass "dlltool (fastcall export leading underscore)" +} + +if { "$target_xfail" == "yes" } { + setup_xfail *-* +} + +verbose "$DLLTOOL --leading-underscore -p prefix -l tmpdir/libalias_u.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL --leading-underscore -p prefix -l tmpdir/libalias_u.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 leading underscore)" + continue +} + +pass "dlltool -p (execution leading-underscore)" + +set got [binutils_run $NM "tmpdir/libalias_u.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 leading underscore)" +} else { + fail "dlltool -p (symbol names leading underscore)" +} + +set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias_u.a"] +set want "(Contents of section .idata\\\$6:.*\\.\\.symbol\\..*){2,2}" + +if [regexp $want $got] then { + pass "dlltool -p (import name leading underscore)" +} else { + fail "dlltool -p (import name leading underscore)" +} + +verbose "$DLLTOOL --leading-underscore -p prefix -l tmpdir/libalias_u2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL --leading-underscore -p prefix -l tmpdir/libalias_u2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool -p (execution) alias-2.def" + continue +} + +pass "dlltool -p (execution leading underscore) alias-2.def" + +set got [binutils_run $NM "tmpdir/libalias_u2.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 leading underscore) alias-2.def" +} else { + fail "dlltool -p (symbol names leading underscore) alias-2.def" +} + +set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias_u2.a"] +set want "(Contents of section .idata\\\$6:.*\\.\\.something\\..*){2,2}" + +if [regexp $want $got] then { + pass "dlltool -p (import name leading underscore) alias-2.def" +} else { + fail "dlltool -p (import name leading underscore) alias-2.def" +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dumptest.s b/binutils-2.25/binutils/testsuite/binutils-all/dumptest.s new file mode 100644 index 00000000..6335d22b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/dumptest.s @@ -0,0 +1,2 @@ + .data + .ascii "test_string" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dw2-1.S b/binutils-2.25/binutils/testsuite/binutils-all/dw2-1.S new file mode 100644 index 00000000..ab12be60 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/dw2-1.S @@ -0,0 +1,198 @@ +/* This testcase is derived from a similar test in GDB. + + Copyright 2008, 2009, 2010 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/>. */ + +/* 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 */ + .section .debug_abbrev +.Labbrev1_begin: + .uleb128 1 /* Abbrev code */ + .uleb128 0x11 /* DW_TAG_compile_unit */ + .byte 1 /* has_children */ + .uleb128 0x10 /* DW_AT_stmt_list */ + .uleb128 0x6 /* DW_FORM_data4 */ + .uleb128 0x12 /* DW_AT_high_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x11 /* DW_AT_low_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x3 /* DW_AT_name */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0x25 /* DW_AT_producer */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0x13 /* DW_AT_language */ + .uleb128 0xb /* DW_FORM_data1 */ + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ + + .uleb128 2 /* Abbrev code */ + .uleb128 0x2e /* DW_TAG_subprogram */ + .byte 0 /* has_children */ + .uleb128 0x3f /* DW_AT_external */ + .uleb128 0xc /* DW_FORM_flag */ + .uleb128 0x3a /* DW_AT_decl_file */ + .uleb128 0xb /* DW_FORM_data1 */ + .uleb128 0x3b /* DW_AT_decl_line */ + .uleb128 0xb /* DW_FORM_data1 */ + .uleb128 0x3 /* DW_AT_name */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0x49 /* DW_AT_type */ + .uleb128 0x13 /* DW_FORM_ref4 */ + .uleb128 0x11 /* DW_AT_low_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x12 /* DW_AT_high_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x40 /* DW_AT_frame_base */ + .uleb128 0xa /* DW_FORM_block1 */ + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ + + .uleb128 3 /* Abbrev code */ + .uleb128 0x24 /* DW_TAG_base_type */ + .byte 0 /* has_children */ + .uleb128 0x3 /* DW_AT_name */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0xb /* DW_AT_byte_size */ + .uleb128 0xb /* DW_FORM_data1 */ + .uleb128 0x3e /* DW_AT_encoding */ + .uleb128 0xb /* DW_FORM_data1 */ + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ + + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dw2-1.W b/binutils-2.25/binutils/testsuite/binutils-all/dw2-1.W new file mode 100644 index 00000000..85ce9dd0 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/dw2-1.W @@ -0,0 +1,103 @@ + +.*dw2-1-compressed.o: file format .* + +Contents of the .debug_info section: + + Compilation Unit @ offset 0x0: + Length: 0x4e \(32-bit\) + Version: 2 + Abbrev Offset: 0x0 + 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\) + <1><51>: Abbrev Number: 0 + +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 \(offset 0x.*\): + Entry Dir Time Size Name + 1 0 0 0 file1.txt + + Line Number Statements: + \[0x.*\] Extended opcode 2: set Address to 0x4 + \[0x.*\] Advance Line by 3 to 4 + \[0x.*\] Copy + \[0x.*\] Copy + \[0x.*\] Extended opcode 2: set Address to 0x8 + \[0x.*\] Extended opcode 1: End of Sequence + + +Contents of the .debug_abbrev section: + + Number TAG \(0x0\) + 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 + DW_AT value: 0 DW_FORM value: 0 + 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 + DW_AT value: 0 DW_FORM value: 0 + 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 + DW_AT value: 0 DW_FORM value: 0 + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dw2-2.S b/binutils-2.25/binutils/testsuite/binutils-all/dw2-2.S new file mode 100644 index 00000000..43b53557 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/dw2-2.S @@ -0,0 +1,195 @@ +/* This testcase is derived from a similar test in GDB. + + Copyright 2008, 2009, 2010 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/>. */ + +/* Dummy function to provide debug information for. */ + + .text +.Lbegin_text1: + .globl func_cu2 + .type func_cu2, %function +func_cu2: +.Lbegin_func_cu2: + .int 0 +.Lend_func_cu2: + .size func_cu2, .-func_cu2 +.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_cu2 */ + .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_cu2\0" /* DW_AT_name */ + .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ + .4byte .Lbegin_func_cu2 /* DW_AT_low_pc */ + .4byte .Lend_func_cu2 /* 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_cu2 + + .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_cu2 + + .byte 0 /* DW_LNE_end_of_sequence */ + .uleb128 1 + .byte 1 + +.Lline1_end: + +/* Abbrev table */ + .section .debug_abbrev +.Labbrev1_begin: + .uleb128 1 /* Abbrev code */ + .uleb128 0x11 /* DW_TAG_compile_unit */ + .byte 1 /* has_children */ + .uleb128 0x10 /* DW_AT_stmt_list */ + .uleb128 0x6 /* DW_FORM_data4 */ + .uleb128 0x12 /* DW_AT_high_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x11 /* DW_AT_low_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x3 /* DW_AT_name */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0x25 /* DW_AT_producer */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0x13 /* DW_AT_language */ + .uleb128 0xb /* DW_FORM_data1 */ + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ + + .uleb128 2 /* Abbrev code */ + .uleb128 0x2e /* DW_TAG_subprogram */ + .byte 0 /* has_children */ + .uleb128 0x3f /* DW_AT_external */ + .uleb128 0xc /* DW_FORM_flag */ + .uleb128 0x3a /* DW_AT_decl_file */ + .uleb128 0xb /* DW_FORM_data1 */ + .uleb128 0x3b /* DW_AT_decl_line */ + .uleb128 0xb /* DW_FORM_data1 */ + .uleb128 0x3 /* DW_AT_name */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0x49 /* DW_AT_type */ + .uleb128 0x13 /* DW_FORM_ref4 */ + .uleb128 0x11 /* DW_AT_low_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x12 /* DW_AT_high_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x40 /* DW_AT_frame_base */ + .uleb128 0xa /* DW_FORM_block1 */ + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ + + .uleb128 3 /* Abbrev code */ + .uleb128 0x24 /* DW_TAG_base_type */ + .byte 0 /* has_children */ + .uleb128 0x3 /* DW_AT_name */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0xb /* DW_AT_byte_size */ + .uleb128 0xb /* DW_FORM_data1 */ + .uleb128 0x3e /* DW_AT_encoding */ + .uleb128 0xb /* DW_FORM_data1 */ + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ + + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dw2-compressed.S b/binutils-2.25/binutils/testsuite/binutils-all/dw2-compressed.S new file mode 100644 index 00000000..37ba9168 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dw2-decodedline.S b/binutils-2.25/binutils/testsuite/binutils-all/dw2-decodedline.S new file mode 100644 index 00000000..a54bdcfb --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/dw2-decodedline.S @@ -0,0 +1,16 @@ + .file "dw2-decodedline.c" + .file 1 "dw2-decodedline.c" + .file 2 "directory/file1.c" + .text + .globl f1 + .type f1, %function +f1: + .loc 2 1 0 + nop + .size f1, .-f1 + .globl main + .type main, %function +main: + .loc 1 2 0 + nop + .size main, .-main diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dw2-empty.S b/binutils-2.25/binutils/testsuite/binutils-all/dw2-empty.S new file mode 100644 index 00000000..63a2b900 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/dw2-empty.S @@ -0,0 +1 @@ + .section .debug_line diff --git a/binutils-2.25/binutils/testsuite/binutils-all/elfedit-1.d b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-1.d new file mode 100644 index 00000000..700d5428 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-1.d @@ -0,0 +1,16 @@ +#PROG: elfedit +#elfedit: --output-mach l1om +#source: empty.s +#readelf: -h +#name: Update ELF header 1 +#target: x86_64-*-* + +#... +ELF Header: + Magic: 7f 45 4c 46 0(1|2) 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF(32|64) + Data: 2's complement, little endian + Version: 1 \(current\) +#... + Machine: Intel L1OM +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/elfedit-2.d b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-2.d new file mode 100644 index 00000000..56468b51 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-2.d @@ -0,0 +1,15 @@ +#PROG: elfedit +#elfedit: --output-type exec +#source: empty.s +#readelf: -h +#name: Update ELF header 2 +#target: *-*-linux* *-*-gnu* + +#... +ELF Header: + Magic: 7f 45 4c 46 .* +#... + Version:[ \t]+1 \(current\) +#... + Type:[ \t]+EXEC \(Executable file\) +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/elfedit-3.d b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-3.d new file mode 100644 index 00000000..219cac59 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-3.d @@ -0,0 +1,15 @@ +#PROG: elfedit +#elfedit: --output-osabi FenixOS +#source: empty.s +#readelf: -h +#name: Update ELF header 3 +#target: *-*-linux* *-*-gnu* + +#... +ELF Header: + Magic: 7f 45 4c 46 .* +#... + Version:[ \t]+1 \(current\) +#... + OS/ABI:[ \t]+FenixOS +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/elfedit-4.d b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-4.d new file mode 100644 index 00000000..4336dd8c --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-4.d @@ -0,0 +1,17 @@ +#PROG: elfedit +#elfedit: --output-mach k1om +#source: empty.s +#as: --64 +#readelf: -h +#name: Update ELF header 4 +#target: x86_64-*-* + +#... +ELF Header: + Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF64 + Data: 2's complement, little endian + Version: 1 \(current\) +#... + Machine: Intel K1OM +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/elfedit.exp b/binutils-2.25/binutils/testsuite/binutils-all/elfedit.exp new file mode 100644 index 00000000..500906d3 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/elfedit.exp @@ -0,0 +1,35 @@ +# Copyright 2010, 2011 +# 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. + +# Exclude non-ELF targets. +if ![is_elf_format] { + verbose "$ELFEDIT is only intended for ELF targets" 2 + return +} + +if ![is_remote host] { + set tempfile tmpdir/bintest.o + set copyfile tmpdir/bintest +} else { + set tempfile [remote_download host tmpdir/bintest.o] + set copyfile bintest +} + +run_dump_test "elfedit-1" +run_dump_test "elfedit-2" +run_dump_test "elfedit-3" +run_dump_test "elfedit-4" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/empty-file b/binutils-2.25/binutils/testsuite/binutils-all/empty-file new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/empty-file diff --git a/binutils-2.25/binutils/testsuite/binutils-all/empty.s b/binutils-2.25/binutils/testsuite/binutils-all/empty.s new file mode 100644 index 00000000..8690c06a --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/empty.s @@ -0,0 +1 @@ +# An empty file. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/exclude-1.s b/binutils-2.25/binutils/testsuite/binutils-all/exclude-1.s new file mode 100644 index 00000000..475088fd --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/exclude-1.s @@ -0,0 +1,16 @@ + .text + .type start,"function" + .global start +start: + .type _start,"function" + .global _start +_start: + .type __start,"function" + .global __start +__start: + .type main,"function" + .global main +main: + .long 0 + .section .foo1,"e", %progbits + .byte 0,0,0,0 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/exclude-1a.d b/binutils-2.25/binutils/testsuite/binutils-all/exclude-1a.d new file mode 100644 index 00000000..3a311b53 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/exclude-1a.d @@ -0,0 +1,9 @@ +#PROG: objcopy +#source: exclude-1.s +#objcopy: +#readelf: -S --wide +#name: objcopy on sections with SHF_EXCLUDE + +#... +[ ]*\[.*\][ ]+\.foo1[ ]+PROGBITS.*[ ]+E[ ]+.* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/exclude-1b.d b/binutils-2.25/binutils/testsuite/binutils-all/exclude-1b.d new file mode 100644 index 00000000..ac387fb2 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/exclude-1b.d @@ -0,0 +1,9 @@ +#PROG: strip +#source: exclude-1.s +#strip: --strip-unneeded +#readelf: -S --wide +#name: strip --strip-unneeded on sections with SHF_EXCLUDE + +#... +[ ]*\[.*\][ ]+\.foo1[ ]+PROGBITS.*[ ]+E[ ]+.* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/fastcall.def b/binutils-2.25/binutils/testsuite/binutils-all/fastcall.def new file mode 100644 index 00000000..bef49682 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/fastcall.def @@ -0,0 +1,2 @@ +EXPORTS +@fastcall@4 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group-2.s b/binutils-2.25/binutils/testsuite/binutils-all/group-2.s new file mode 100644 index 00000000..187eeda2 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group-3.s b/binutils-2.25/binutils/testsuite/binutils-all/group-3.s new file mode 100644 index 00000000..eb235e86 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group-4.s b/binutils-2.25/binutils/testsuite/binutils-all/group-4.s new file mode 100644 index 00000000..b1c8736f --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group-5.d b/binutils-2.25/binutils/testsuite/binutils-all/group-5.d new file mode 100644 index 00000000..3c88ba90 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/group-5.d @@ -0,0 +1,19 @@ +#PROG: objcopy +#readelf: -Sg --wide +#objcopy: --remove-section .dropme +#name: copy removing group member + +#readelf: -Sg --wide + +#... + \[[ 0-9]+\] \.group[ \t]+GROUP[ \t]+.* +#... + \[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AXG.* +#... + \[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WAG.* +#... +COMDAT group section \[[ 0-9]+\] `\.group' \[foo_group\] contains 2 sections: + \[Index\] Name + \[[ 0-9]+\] .text.* + \[[ 0-9]+\] .data.* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group-5.s b/binutils-2.25/binutils/testsuite/binutils-all/group-5.s new file mode 100644 index 00000000..b2e100aa --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/group-5.s @@ -0,0 +1,12 @@ + .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 1 + + .section .dropme,"G",%progbits,foo_group,comdat + .word 2 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group-6.d b/binutils-2.25/binutils/testsuite/binutils-all/group-6.d new file mode 100644 index 00000000..33197456 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/group-6.d @@ -0,0 +1,9 @@ +#PROG: objcopy +#objcopy: --remove-section .text.foo +#name: copy removing all group member +#objdump: -fw + +#... +.*: +file format .* +architecture: .* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group-6.s b/binutils-2.25/binutils/testsuite/binutils-all/group-6.s new file mode 100644 index 00000000..e4c2bdac --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/group-6.s @@ -0,0 +1,4 @@ + .text + .byte 0 + .section .text.foo,"axG",%progbits,foo,comdat + .byte 0 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group.s b/binutils-2.25/binutils/testsuite/binutils-all/group.s new file mode 100644 index 00000000..cc1ffb6d --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/hppa/addendbug.s b/binutils-2.25/binutils/testsuite/binutils-all/hppa/addendbug.s new file mode 100644 index 00000000..659306f0 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/hppa/freg.s b/binutils-2.25/binutils/testsuite/binutils-all/hppa/freg.s new file mode 100644 index 00000000..501e10f9 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/hppa/objdump.exp b/binutils-2.25/binutils/testsuite/binutils-all/hppa/objdump.exp new file mode 100644 index 00000000..c6d16404 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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-0x00000020.*" +} else { + set want "00000000 R_DP_RELATIVE\[ \]+is_idchar-0x00000020.*" +} + + +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" +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1.s b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1.s new file mode 100644 index 00000000..54c6d993 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1.s @@ -0,0 +1,147 @@ + .file "compressed-1.c" + .section .debug_abbrev,"",@progbits +.Ldebug_abbrev0: + .section .debug_info,"",@progbits +.Ldebug_info0: + .section .debug_line,"",@progbits +.Ldebug_line0: + .text +.Ltext0: + .cfi_sections .debug_frame + .p2align 4,,15 +.globl foo2 + .type foo2, @function +foo2: +.LFB1: + .file 1 "compressed-1.c" + .loc 1 11 0 + .cfi_startproc + .loc 1 12 0 + rep + ret + .cfi_endproc +.LFE1: + .size foo2, .-foo2 + .p2align 4,,15 +.globl foo1 + .type foo1, @function +foo1: +.LFB0: + .loc 1 5 0 + .cfi_startproc + subl $12, %esp + .cfi_def_cfa_offset 16 + .loc 1 7 0 + addl $12, %esp + .cfi_def_cfa_offset 4 + .loc 1 6 0 + jmp bar + .cfi_endproc +.LFE0: + .size foo1, .-foo1 +.Letext0: + .section .debug_info + .long 0x46 + .value 0x3 + .long .Ldebug_abbrev0 + .byte 0x4 + .uleb128 0x1 + .long .LASF2 + .byte 0x1 + .long .LASF3 + .long .LASF4 + .long .Ltext0 + .long .Letext0 + .long .Ldebug_line0 + .uleb128 0x2 + .byte 0x1 + .long .LASF0 + .byte 0x1 + .byte 0xa + .long .LFB1 + .long .LFE1 + .byte 0x1 + .byte 0x9c + .uleb128 0x2 + .byte 0x1 + .long .LASF1 + .byte 0x1 + .byte 0x4 + .long .LFB0 + .long .LFE0 + .byte 0x1 + .byte 0x9c + .byte 0x0 + .section .debug_abbrev + .uleb128 0x1 + .uleb128 0x11 + .byte 0x1 + .uleb128 0x25 + .uleb128 0xe + .uleb128 0x13 + .uleb128 0xb + .uleb128 0x3 + .uleb128 0xe + .uleb128 0x1b + .uleb128 0xe + .uleb128 0x11 + .uleb128 0x1 + .uleb128 0x12 + .uleb128 0x1 + .uleb128 0x10 + .uleb128 0x6 + .byte 0x0 + .byte 0x0 + .uleb128 0x2 + .uleb128 0x2e + .byte 0x0 + .uleb128 0x3f + .uleb128 0xc + .uleb128 0x3 + .uleb128 0xe + .uleb128 0x3a + .uleb128 0xb + .uleb128 0x3b + .uleb128 0xb + .uleb128 0x11 + .uleb128 0x1 + .uleb128 0x12 + .uleb128 0x1 + .uleb128 0x40 + .uleb128 0xa + .byte 0x0 + .byte 0x0 + .byte 0x0 + .section .debug_pubnames,"",@progbits + .long 0x20 + .value 0x2 + .long .Ldebug_info0 + .long 0x4a + .long 0x25 + .string "foo2" + .long 0x37 + .string "foo1" + .long 0x0 + .section .debug_aranges,"",@progbits + .long 0x1c + .value 0x2 + .long .Ldebug_info0 + .byte 0x4 + .byte 0x0 + .value 0x0 + .value 0x0 + .long .Ltext0 + .long .Letext0-.Ltext0 + .long 0x0 + .long 0x0 + .section .debug_str,"MS",@progbits,1 +.LASF2: + .string "GNU C 4.4.4" +.LASF0: + .string "foo2" +.LASF1: + .string "foo1" +.LASF4: + .string "." +.LASF3: + .string "compressed-1.c" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1a.d b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1a.d new file mode 100644 index 00000000..f1883aa2 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1a.d @@ -0,0 +1,160 @@ +#PROG: objcopy +#source: compressed-1.s +#as: --32 --compress-debug-sections +#objcopy: +#readelf: -w +#name: objcopy on compressed debug sections + +Contents of the .[z]?debug_abbrev section: + + Number TAG \(0x0\) + 1 DW_TAG_compile_unit \[has children\] + DW_AT_producer DW_FORM_strp + DW_AT_language DW_FORM_data1 + DW_AT_name DW_FORM_strp + DW_AT_comp_dir DW_FORM_strp + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_addr + DW_AT_stmt_list DW_FORM_data4 + DW_AT value: 0 DW_FORM value: 0 + 2 DW_TAG_subprogram \[no children\] + DW_AT_external DW_FORM_flag + DW_AT_name DW_FORM_strp + DW_AT_decl_file DW_FORM_data1 + DW_AT_decl_line DW_FORM_data1 + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_addr + DW_AT_frame_base DW_FORM_block1 + DW_AT value: 0 DW_FORM value: 0 + +Contents of the .[z]?debug_info section: + + Compilation Unit @ offset 0x0: + Length: 0x46 \(32-bit\) + Version: 3 + Abbrev Offset: 0x0 + Pointer Size: 4 + <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\) + <c> DW_AT_producer : \(indirect string, offset: 0x0\): GNU C 4.4.4 + <10> DW_AT_language : 1 \(ANSI C\) + <11> DW_AT_name : \(indirect string, offset: 0x18\): compressed-1.c + <15> DW_AT_comp_dir : \(indirect string, offset: 0x16\): . + <19> DW_AT_low_pc : 0x0 + <1d> DW_AT_high_pc : 0x1b + <21> DW_AT_stmt_list : 0x0 + <1><25>: Abbrev Number: 2 \(DW_TAG_subprogram\) + <26> DW_AT_external : 1 + <27> DW_AT_name : \(indirect string, offset: 0xc\): foo2 + <2b> DW_AT_decl_file : 1 + <2c> DW_AT_decl_line : 10 + <2d> DW_AT_low_pc : 0x0 + <31> DW_AT_high_pc : 0x2 + <35> DW_AT_frame_base : 1 byte block: 9c \(DW_OP_call_frame_cfa\) + <1><37>: Abbrev Number: 2 \(DW_TAG_subprogram\) + <38> DW_AT_external : 1 + <39> DW_AT_name : \(indirect string, offset: 0x11\): foo1 + <3d> DW_AT_decl_file : 1 + <3e> DW_AT_decl_line : 4 + <3f> DW_AT_low_pc : 0x10 + <43> DW_AT_high_pc : 0x1b + <47> DW_AT_frame_base : 1 byte block: 9c \(DW_OP_call_frame_cfa\) + <1><49>: Abbrev Number: 0 + +Raw dump of debug contents of section .[z]?debug_line: + + Offset: 0x0 + Length: 64 + DWARF Version: 2 + Prologue Length: 37 + Minimum Instruction Length: 1 + 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 \(offset 0x.*\): + Entry Dir Time Size Name + 1 0 0 0 compressed-1.c + + Line Number Statements: + \[0x.*\] Extended opcode 2: set Address to 0x0 + \[0x.*\] Advance Line by 10 to 11 + \[0x.*\] Copy + \[0x.*\] Special opcode 6: advance Address by 0 to 0x0 and Line by 1 to 12 + \[0x.*\] Advance Line by -7 to 5 + \[0x.*\] Special opcode 229: advance Address by 16 to 0x10 and Line by 0 to 5 + \[0x.*\] Special opcode 49: advance Address by 3 to 0x13 and Line by 2 to 7 + \[0x.*\] Special opcode 46: advance Address by 3 to 0x16 and Line by -1 to 6 + \[0x.*\] Advance PC by 5 to 0x1b + \[0x.*\] Extended opcode 1: End of Sequence + + +Contents of the .[z]?debug_pubnames section: + + Length: 32 + Version: 2 + Offset into .[z]?debug_info section: 0x0 + Size of area in .[z]?debug_info section: 74 + + Offset Name + 25 foo2 + 37 foo1 + +Contents of the .[z]?debug_aranges section: + + Length: 28 + Version: 2 + Offset into .[z]?debug_info: 0x0 + Pointer Size: 4 + Segment Size: 0 + + Address Length + 00000000 0000001b + 00000000 00000000 + +Contents of the .[z]?debug_str section: + + 0x00000000 474e5520 4320342e 342e3400 666f6f32 GNU C 4.4.4.foo2 + 0x00000010 00666f6f 31002e00 636f6d70 72657373 .foo1...compress + 0x00000020 65642d31 2e6300 ed-1.c. + +Contents of the .[z]?debug_frame section: + +00000000 00000010 ffffffff CIE + Version: 1 + Augmentation: "" + Code alignment factor: 1 + Data alignment factor: -4 + Return address column: 8 + + DW_CFA_def_cfa: r4 \(esp\) ofs 4 + DW_CFA_offset: r8 \(eip\) at cfa-4 + DW_CFA_nop + DW_CFA_nop + +00000014 0000000c 00000000 FDE cie=00000000 pc=00000000..00000002 + +00000024 00000014 00000000 FDE cie=00000000 pc=00000010..0000001b + DW_CFA_advance_loc: 3 to 00000013 + DW_CFA_def_cfa_offset: 16 + DW_CFA_advance_loc: 3 to 00000016 + DW_CFA_def_cfa_offset: 4 + DW_CFA_nop + DW_CFA_nop + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1b.d b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1b.d new file mode 100644 index 00000000..8cc9653e --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1b.d @@ -0,0 +1,18 @@ +#PROG: strip +#source: compressed-1.s +#as: --32 +#strip: +#readelf: -S --wide +#name: strip on uncompressed debug sections + +There are 5 section headers, starting at offset 0x78: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] .text PROGBITS 00000000 000040 00001b 00 AX 0 0 16 + \[ 2\] .data PROGBITS 00000000 00005b 000000 00 WA 0 0 1 + \[ 3\] .bss NOBITS 00000000 00005b 000000 00 WA 0 0 1 + \[ 4\] .shstrtab STRTAB 00000000 00005b 00001c 00 0 0 1 +Key to Flags: +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1c.d b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1c.d new file mode 100644 index 00000000..f05380fc --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1c.d @@ -0,0 +1,18 @@ +#PROG: strip +#source: compressed-1.s +#as: --32 --compress-debug-sections +#strip: +#readelf: -S --wide +#name: strip on compressed debug sections + +There are 5 section headers, starting at offset 0x78: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] .text PROGBITS 00000000 000040 00001b 00 AX 0 0 16 + \[ 2\] .data PROGBITS 00000000 00005b 000000 00 WA 0 0 1 + \[ 3\] .bss NOBITS 00000000 00005b 000000 00 WA 0 0 1 + \[ 4\] .shstrtab STRTAB 00000000 00005b 00001c 00 0 0 1 +Key to Flags: +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/i386/i386.exp b/binutils-2.25/binutils/testsuite/binutils-all/i386/i386.exp new file mode 100644 index 00000000..4b9fffdc --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/i386/i386.exp @@ -0,0 +1,38 @@ +# Copyright 2010, 2012 +# 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-*-linux*"] + || [istarget "i*86-*-gnu*"] + || [istarget "i*86-*-nacl*"] + || [istarget "x86_64-*-linux*"] + || [istarget "x86_64-*-nacl*"]) + || ![is_elf_format] + || [is_remote host]} then { + return +} + +global tempfile +global copyfile +set tempfile tmpdir/i386temp.o +set copyfile tmpdir/i386copy + +set test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]] +foreach t $test_list { + # We need to strip the ".d", but can leave the dirname. + verbose [file rootname $t] + run_dump_test [file rootname $t] +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/libdw2-compressed.out b/binutils-2.25/binutils/testsuite/binutils-all/libdw2-compressed.out new file mode 100644 index 00000000..6c1f7f5e --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/libdw2-compressed.out @@ -0,0 +1,5 @@ +#... + .* ZLIB.* +#... + .* ZLIB.* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/libdw2.out b/binutils-2.25/binutils/testsuite/binutils-all/libdw2.out new file mode 100644 index 00000000..457774c0 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/libdw2.out @@ -0,0 +1,13 @@ +#... + \[[ 0-9]+\] \.debug_info[ ]+(PROGBITS|MIPS_DWARF)[ 0-9a-z]+ [^Z]* +#... + \[[ 0-9]+\] \.debug_line[ ]+(PROGBITS|MIPS_DWARF)[ 0-9a-z]+ [^Z]* +#... + \[[ 0-9]+\] \.debug_abbrev[ ]+(PROGBITS|MIPS_DWARF)[ 0-9a-z]+ [^Z]* +#... + \[[ 0-9]+\] \.debug_info[ ]+(PROGBITS|MIPS_DWARF)[ 0-9a-z]+ [^Z]* +#... + \[[ 0-9]+\] \.debug_line[ ]+(PROGBITS|MIPS_DWARF)[ 0-9a-z]+ [^Z]* +#... + \[[ 0-9]+\] \.debug_abbrev[ ]+(PROGBITS|MIPS_DWARF)[ 0-9a-z]+ [^Z]* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/link-order.s b/binutils-2.25/binutils/testsuite/binutils-all/link-order.s new file mode 100644 index 00000000..5994cb81 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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# diff --git a/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-1.d b/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-1.d new file mode 100644 index 00000000..a5286ed1 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-1.s b/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-1.s new file mode 100644 index 00000000..cb9f367e --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-2.d b/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-2.d new file mode 100644 index 00000000..ed3807ae --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-2.s b/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-2.s new file mode 100644 index 00000000..443bad08 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-2.s @@ -0,0 +1,2 @@ + .globl G + G == 0x100 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/m68k/fnop.s b/binutils-2.25/binutils/testsuite/binutils-all/m68k/fnop.s new file mode 100644 index 00000000..628e1989 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/m68k/fnop.s @@ -0,0 +1 @@ + fnop diff --git a/binutils-2.25/binutils/testsuite/binutils-all/m68k/movem.s b/binutils-2.25/binutils/testsuite/binutils-all/m68k/movem.s new file mode 100644 index 00000000..b3718d50 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/m68k/movem.s @@ -0,0 +1,2 @@ + movem.l %d0-%d3,-(%sp) + movem.l %d0-%d3,(%sp) diff --git a/binutils-2.25/binutils/testsuite/binutils-all/m68k/objdump.exp b/binutils-2.25/binutils/testsuite/binutils-all/m68k/objdump.exp new file mode 100644 index 00000000..5043ef7e --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/m68k/objdump.exp @@ -0,0 +1,79 @@ +# Copyright 2004, 2007, 2009, 2010 +# 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" +} + +########################### +# Set up the test of fnop.s +########################### + +if {![binutils_assemble $srcdir/$subdir/fnop.s tmpdir/fnop.o]} then { + return +} + +if [is_remote host] { + set objfile [remote_download host tmpdir/fnop.o] +} else { + set objfile tmpdir/fnop.o +} + +# Make sure that fnop is decoded as fnop, not fbf. + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS --disassemble $objfile"] + +set want "fnop *\[\r\n\]" + +if [regexp $want $got] then { + pass "fnop test" +} else { + fail "fnop test" +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/mips/mips.exp b/binutils-2.25/binutils/testsuite/binutils-all/mips/mips.exp new file mode 100644 index 00000000..eba88680 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/mips/mips.exp @@ -0,0 +1,26 @@ +# Copyright 2013 +# 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 mips*-*-*] { + return +} + +if [is_elf_format] { + run_dump_test "mixed-mips16" + run_dump_test "mixed-micromips" +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.d b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.d new file mode 100644 index 00000000..0bc9e412 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.d @@ -0,0 +1,30 @@ +#PROG: objcopy +#objdump: -dr --prefix-addresses --show-raw-insn +#name: Mixed MIPS and microMIPS disassembly +#as: -32 -mips2 + +# Test mixed-mode disassembly in overlapping sections. + +.*: +file format .*mips.* + +Disassembly of section \.text\.foo: +[0-9a-f]+ <[^>]*> 27bdffe0 addiu sp,sp,-32 +[0-9a-f]+ <[^>]*> afbf001c sw ra,28\(sp\) +[0-9a-f]+ <[^>]*> 0c000000 jal 00000000 <.*> +[ ]*[0-9a-f]+: R_MIPS_26 baz +[0-9a-f]+ <[^>]*> 00000000 nop +[0-9a-f]+ <[^>]*> 8fbf001c lw ra,28\(sp\) +[0-9a-f]+ <[^>]*> 03e00008 jr ra +[0-9a-f]+ <[^>]*> 27bd0020 addiu sp,sp,32 + \.\.\. + +Disassembly of section \.text\.bar: +[0-9a-f]+ <[^>]*> 4ff1 addiu sp,sp,-32 +[0-9a-f]+ <[^>]*> cbe7 sw ra,28\(sp\) +[0-9a-f]+ <[^>]*> 7400 0000 jals 00000000 <.*> +[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 baz +[0-9a-f]+ <[^>]*> 0c00 nop +[0-9a-f]+ <[^>]*> 4be7 lw ra,28\(sp\) +[0-9a-f]+ <[^>]*> 4708 jraddiusp 32 +[0-9a-f]+ <[^>]*> 0c00 nop + \.\.\. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.s b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.s new file mode 100644 index 00000000..0528c904 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.s @@ -0,0 +1,33 @@ + .section .text.foo, "ax", @progbits + .set nomicromips + .globl foo + .ent foo +foo: + addiu $sp, $sp, -32 + sw $ra, 28($sp) + jal baz + lw $ra, 28($sp) + addiu $sp, $sp, 32 + jr $ra + .end foo + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 2 + .space 8 + + + .section .text.bar, "ax", @progbits + .set micromips + .globl bar + .ent bar +bar: + addiu $sp, $sp, -32 + sw $ra, 28($sp) + jals baz + lw $ra, 28($sp) + jraddiusp 32 + .end bar + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 2 + .space 8 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.d b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.d new file mode 100644 index 00000000..09e1821a --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.d @@ -0,0 +1,30 @@ +#PROG: objcopy +#objdump: -dr --prefix-addresses --show-raw-insn +#name: Mixed MIPS and MIPS16 disassembly +#as: -32 -mips2 + +# Test mixed-mode disassembly in overlapping sections. + +.*: +file format .*mips.* + +Disassembly of section \.text\.foo: +[0-9a-f]+ <[^>]*> 27bdffe0 addiu sp,sp,-32 +[0-9a-f]+ <[^>]*> afbf001c sw ra,28\(sp\) +[0-9a-f]+ <[^>]*> 0c000000 jal 00000000 <.*> +[ ]*[0-9a-f]+: R_MIPS_26 baz +[0-9a-f]+ <[^>]*> 00000000 nop +[0-9a-f]+ <[^>]*> 8fbf001c lw ra,28\(sp\) +[0-9a-f]+ <[^>]*> 03e00008 jr ra +[0-9a-f]+ <[^>]*> 27bd0020 addiu sp,sp,32 + \.\.\. + +Disassembly of section \.text\.bar: +[0-9a-f]+ <[^>]*> 63fc addiu sp,-32 +[0-9a-f]+ <[^>]*> 6207 sw ra,28\(sp\) +[0-9a-f]+ <[^>]*> 1800 0000 jal 00000000 <.*> +[ ]*[0-9a-f]+: R_MIPS16_26 baz +[0-9a-f]+ <[^>]*> 6500 nop +[0-9a-f]+ <[^>]*> 9707 lw a3,28\(sp\) +[0-9a-f]+ <[^>]*> ef00 jr a3 +[0-9a-f]+ <[^>]*> 6304 addiu sp,32 + \.\.\. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.s b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.s new file mode 100644 index 00000000..338022c1 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.s @@ -0,0 +1,34 @@ + .section .text.foo, "ax", @progbits + .set nomips16 + .globl foo + .ent foo +foo: + addiu $sp, $sp, -32 + sw $ra, 28($sp) + jal baz + lw $ra, 28($sp) + addiu $sp, $sp, 32 + jr $ra + .end foo + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 2 + .space 8 + + + .section .text.bar, "ax", @progbits + .set mips16 + .globl bar + .ent bar +bar: + addiu $sp, -32 + sw $ra, 28($sp) + jal baz + lw $a3, 28($sp) + addiu $sp, 32 + jr $a3 + .end bar + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 2 + .space 8 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/needed-by-reloc.s b/binutils-2.25/binutils/testsuite/binutils-all/needed-by-reloc.s new file mode 100644 index 00000000..40ebdedf --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/needed-by-reloc.s @@ -0,0 +1,7 @@ + .globl foo + + .data + .long foo + .text +foo: + .long 1 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/nm-1.s b/binutils-2.25/binutils/testsuite/binutils-all/nm-1.s new file mode 100644 index 00000000..7f1633c3 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/nm-1.s @@ -0,0 +1,15 @@ + .globl text_symbol1 + .globl text_symbol2 + .globl text_symbol3 + .globl end_symbol + .text +text_symbol1: + .byte 0,0,0,0 + .byte 0,0,0,0 + .byte 0,0,0,0 +text_symbol2: + .byte 0,0,0,0 + .byte 0,0,0,0 +text_symbol3: + .byte 0,0,0,0 +end_symbol: diff --git a/binutils-2.25/binutils/testsuite/binutils-all/nm-elf-1.s b/binutils-2.25/binutils/testsuite/binutils-all/nm-elf-1.s new file mode 100644 index 00000000..8e2f1f48 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/nm-elf-1.s @@ -0,0 +1,16 @@ + .globl text_symbol1 + .globl text_symbol2 + .globl text_symbol3 + .text +text_symbol1: + .long 0 + .long 0 + .long 0 + .size text_symbol1, . - text_symbol1 +text_symbol2: + .long 0 + .long 0 + .size text_symbol2, . - text_symbol2 +text_symbol3: + .long 0 + .size text_symbol3, . - text_symbol3 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/nm.exp b/binutils-2.25/binutils/testsuite/binutils-all/nm.exp new file mode 100644 index 00000000..e9e7f5fb --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/nm.exp @@ -0,0 +1,209 @@ +# 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" +} + +if [is_elf_format] { + # PR binutils/12753 + # Test nm -g on a unique global symbol. + + # Only some targets support unique symbols. + if {([istarget "i?86-*-*"] + || [istarget "x86_64-*-*"] + || [istarget "arm-*-*"] + || [istarget "powerpc*-*-*"] + || [istarget "sparc*-*-*"])} then { + + if {![binutils_assemble $srcdir/$subdir/unique.s tmpdir/unique.o]} then { + fail "nm -g on unique symbols (assembling)" + } else { + if [is_remote host] { + set tmpfile [remote_download host tmpdir/unique.o] + } else { + set tmpfile tmpdir/unique.o + } + + set got [binutils_run $NM "$NMFLAGS -g $tmpfile"] + + if [regexp "u foo" $got] then { + pass "nm -g on unique symbols" + } else { + fail "nm -g on unique symbols" + } + + if { $verbose < 1 } { + remote_file host delete "tmpdir/unique.o" + } + } + } +} + +# 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" +} + +# Test nm --size-sort + +# The target exceptions here are intended for targets that have ELF as +# an intermediate format or otherwise require the ELF-variant syntax +# for proper size annotation. It would be nice if is_elf_format found +# all the ELF variants, but adding the patterns here to that proc then +# introduces a whole slew of new regressions in the GAS and LD testsuites. +if { [is_elf_format] + || [istarget *-*-dragonfly*] + || [istarget *-*-*elf] + || [istarget *-*-freebsd*] + || [istarget *-*-lynxos*] + || [istarget "mmix-knuth-mmixware"] + || [istarget *-*-netware*] + || [istarget *-*-nto*] + || [istarget *-*-rdos*] + || [istarget *-*-tpf*] + || [istarget *-*-uclinux*] + || [istarget ia64-*-*vms*] + || [istarget *-*-vxworks*] } { + set nm_1_src "nm-elf-1.s" +} else { + set nm_1_src "nm-1.s" +} + +if {![binutils_assemble $srcdir/$subdir/$nm_1_src tmpdir/nm-1.o]} then { + return +} + +if [is_remote host] { + set tempfile [remote_download host tmpdir/nm-1.o] +} else { + set tempfile tmpdir/nm-1.o +} + +# 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*" + +set got [binutils_run $NM "$NMFLAGS --size-sort $tempfile"] + +set want "0*4 T text_symbol3.*0*8 T text_symbol2.*0*c T text_symbol1" + +if [regexp $want $got] then { + pass "nm --size-sort" +} else { + fail "nm --size-sort" +} + +# There are certainly other tests that could be run. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/note-1.d b/binutils-2.25/binutils/testsuite/binutils-all/note-1.d new file mode 100644 index 00000000..17a7d59a --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/note-1.d @@ -0,0 +1,13 @@ +#PROG: objcopy +#readelf: -S --wide +#objcopy: --add-section .note=$srcdir/note-1.d +#name: add notes section +#source: copytest.s +#not-target: h8300-*-* + +There are .* + +Section Headers: +#... + \[[ 0-9]*\] .note NOTE 0*0000000 0*...... 0*000... .* +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/objcopy.exp b/binutils-2.25/binutils/testsuite/binutils-all/objcopy.exp new file mode 100644 index 00000000..4dfb73c7 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/objcopy.exp @@ -0,0 +1,1006 @@ +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +# 2004, 2006, 2007, 2009, 2010, 2011 +# 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-*-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*" + setup_xfail "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 { + # som doesn't have a .data section + setup_xfail "hppa*-*-hpux*" + clear_xfail "hppa*64*-*-hpux*" + + 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 interleaved copy of multiple byte width + +set sequence_file sequence_file +set file [open ${sequence_file} w] +puts ${file} "12345678" +close ${file} + +if [is_remote host] { + remote_upload host ${sequence_file} tmpdir/sequence_file + set sequence_file tmpdir/sequence_file +} + +set got [binutils_run $OBJCOPY "-I binary -i 4 -b 0 --interleave-width 2 ${sequence_file} ${copyfile}"] + +if ![string match "" $got] then { + fail "objcopy -i --interleave-width" +} else { + if [is_remote host] { + remote_upload host ${copyfile} tmpdir/interleave_output + set interleave_output tmpdir/interleave_output + } else { + set interleave_output ${copyfile} + } + + set file [open ${interleave_output} r] + gets $file line + send_log "$line\n" + verbose $line + + if ![string match "1256" $line] then { + fail "objcopy -i --interleave-width" + } + pass "objcopy -i --interleave-width" + + close $file +} + +# 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 + global READELF + + set test "strip" + + if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog.o object debug] != "" } { + untested $test + return + } + + set osabi_fail "false" + if [is_elf_format] { + verbose -log "$READELF -a tmpdir/testprog.o > tmpdir/osabi.in" + set exec_output [remote_exec host "$READELF -h tmpdir/testprog.o" "" "/dev/null" "tmpdir/osabi.in"] + if { [lindex $exec_output 0] != 0 } then { + unresolved "$test preserving OS/ABI" + set osabi_fail "true" + } else { + verbose -log "grep OS/ABI tmpdir/osabi.in" + catch "exec grep OS/ABI tmpdir/osabi.in" osabi_in + } + } + + 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 + unresolved "$test preserving OS/ABI" + return + } + + set exec_output [binutils_run $STRIP "-g $archive"] + if ![string match "" $exec_output] { + fail $test + unresolved "$test preserving OS/ABI" + return + } + + set exec_output [binutils_run $STRIP "$STRIPFLAGS $archive"] + if ![string match "" $exec_output] { + fail $test + unresolved "$test preserving OS/ABI" + return + } + + if { $osabi_fail != "true" && [is_elf_format] } { + verbose -log "$READELF -a tmpdir/testprog.o > tmpdir/osabi.out" + set exec_output [remote_exec host "$READELF -h tmpdir/testprog.o" "" "/dev/null" "tmpdir/osabi.out"] + if { [lindex $exec_output 0] != 0 } then { + unresolved "$test preserving OS/ABI" + } else { + verbose -log "grep OS/ABI tmpdir/osabi.out" + catch "exec grep OS/ABI tmpdir/osabi.out" osabi_out + if { "$osabi_in" == "$osabi_out" } { + pass "$test preserving OS/ABI" + } else { + fail "$test preserving OS/ABI" + } + } + } + + 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*] && ![istarget tic6x-*-*] } { + return 1 + } + + if { $res != "" } { + lappend flags "additional_flags=[lindex $res 1]" + set add_libs "testglue.o" + } else { + set add_libs "" + } + + if { [istarget *-*-linux*] + || [istarget *-*-gnu*] } { + 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 "arm*-*-pe" + setup_xfail "*-*-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 READELF + 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 osabi_fail "false" + if [is_elf_format] { + verbose -log "$READELF -a ${copyfile} > tmpdir/osabi.in" + set exec_output [remote_exec host "$READELF -h ${copyfile}" "" "/dev/null" "tmpdir/osabi.in"] + if { [lindex $exec_output 0] != 0 } then { + unresolved "$test preserving OS/ABI" + set osabi_fail "true" + } else { + verbose -log "grep OS/ABI tmpdir/osabi.in" + catch "exec grep OS/ABI tmpdir/osabi.in" osabi_in + } + } + + 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 + } + + if { $osabi_fail != "true" && [is_elf_format] } { + verbose -log "$READELF -a ${copyfile} > tmpdir/osabi.out" + set exec_output [remote_exec host "$READELF -h ${copyfile}" "" "/dev/null" "tmpdir/osabi.out"] + if { [lindex $exec_output 0] != 0 } then { + unresolved "$test preserving OS/ABI" + } else { + verbose -log "grep OS/ABI tmpdir/osabi.out" + catch "exec grep OS/ABI tmpdir/osabi.out" osabi_out + if { "$osabi_in" == "$osabi_out" } { + pass "$test preserving OS/ABI" + } else { + fail "$test preserving OS/ABI" + } + } + } + + 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 "group-5" + run_dump_test "group-6" + run_dump_test "copy-1" + run_dump_test "note-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" + if { ![istarget "*-*-hpux*"] + && ![istarget "msp*-*-*"] } { + 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 + } + } + } + + # The symbol table for some MIPS targets is sorted differently than + # the ELF canonical order, so the regexps in localize-hidden-1.d fail + # to match. These tests must be matched to targets for which + # targ_defvec=bfd_elf32_bigmips_vec, + # targ_defvec=bfd_elf32_littlemips_vec, + # targ_defvec=bfd_elf32_nbigmips_vec or + # targ_defvec=bfd_elf32_nlittlemips_vec in config.bfd. When syncing, + # don't forget that earlier case-matches trump later ones. + if { ![istarget "mips*-sde-elf*"] && ![istarget "mips64*-*-openbsd*"] } { + setup_xfail "mips*-*-irix5*" "mips*-*-irix6*" "mips*-*-elf*" \ + "mips*-*-rtems*" "mips*-*-windiss" "mips*-*-none" \ + "mips*-*-openbsd*" "mips*-*-chorus*" + } + run_dump_test "localize-hidden-1" + run_dump_test "testranges" + run_dump_test "testranges-ia64" + + run_dump_test "add-section" + run_dump_test "add-empty-section" + + run_dump_test "exclude-1a" + run_dump_test "exclude-1b" +} +run_dump_test "localize-hidden-2" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/objdump.W b/binutils-2.25/binutils/testsuite/binutils-all/objdump.W new file mode 100644 index 00000000..f544d829 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/objdump.W @@ -0,0 +1,103 @@ + +.*dw2-compressed.o: file format .* + +Contents of the .debug_info section: + + Compilation Unit @ offset 0x0: + Length: 0x4e \(32-bit\) + Version: 2 + Abbrev Offset: 0x0 + 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\) + <1><51>: Abbrev Number: 0 + +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 \(offset 0x.*\): + Entry Dir Time Size Name + 1 0 0 0 file1.txt + + Line Number Statements: + \[0x.*\] Extended opcode 2: set Address to .* + \[0x.*\] Advance Line by 3 to 4 + \[0x.*\] Copy + \[0x.*\] Copy + \[0x.*\] Extended opcode 2: set Address to .* + \[0x.*\] Extended opcode 1: End of Sequence + + +Contents of the .debug_abbrev section: + + Number TAG \(0x0\) + 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 + DW_AT value: 0 DW_FORM value: 0 + 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 + DW_AT value: 0 DW_FORM value: 0 + 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 + DW_AT value: 0 DW_FORM value: 0 + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/objdump.WL b/binutils-2.25/binutils/testsuite/binutils-all/objdump.WL new file mode 100644 index 00000000..3846f4fc --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/objdump.WL @@ -0,0 +1,15 @@ + +.*dw2-decodedline.o: file format .* + +Decoded dump of debug contents of section \.debug_line: + +CU: \./dw2-decodedline\.c: +File name Line number Starting address + +directory/file1\.c: +file1\.c 1 .* + + +\./dw2-decodedline\.c:\[\+\+\] +dw2-decodedline\.c 2 .* + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/objdump.exp b/binutils-2.25/binutils/testsuite/binutils-all/objdump.exp new file mode 100644 index 00000000..b330a321 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/objdump.exp @@ -0,0 +1,249 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2007, 2008, 2009, 2011, 2012 +# 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 aarch64 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 MicroBlaze +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 tilegx tms320c30 tms320c4x tms320c54x +lappend cpus_expected v850 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] || ![is_zlib_supported] } 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" + } +} + +# Test objdump -WL on a file that contains line information for multiple files and search directories. +# Not supported on mcore, moxie and openrisc targets because they do not (yet) support the generation +# of DWARF2 line debug information. + +if { ![is_elf_format] + || [istarget "hppa64*-*-hpux*"] + || [istarget "i370-*-*"] + || [istarget "i960-*-*"] + || [istarget "ia64*-*-*"] + || [istarget "mcore-*-*"] + || [istarget "moxie-*-*"] + || [istarget "openrisc-*-*"] + || [istarget "or32-*-*"] +} then { + unsupported "objump decode line" +} else { + if { ![binutils_assemble $srcdir/$subdir/dw2-decodedline.S tmpdir/dw2-decodedline.o] } then { + fail "objdump decoded line" + } + + if [is_remote host] { + set decodedline_testfile [remote_download host tmpdir/dw2-decodedline.o] + } else { + set decodedline_testfile tmpdir/dw2-decodedline.o + } + + set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -WL $decodedline_testfile" "" "/dev/null" "objdump.out"] + + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "objdump -WL (reason: unexpected output)" + send_log $got + send_log "\n" + } + + if { [regexp_diff objdump.out $srcdir/$subdir/objdump.WL] } then { + fail "objdump -WL" + } else { + pass "objdump -WL" + } +} + +# 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. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/objdump.s b/binutils-2.25/binutils/testsuite/binutils-all/objdump.s new file mode 100644 index 00000000..aea35dfa --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.exp b/binutils-2.25/binutils/testsuite/binutils-all/readelf.exp new file mode 100644 index 00000000..db56a868 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.exp @@ -0,0 +1,361 @@ +# Copyright 1999-2013 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*"] + || [istarget "mips*-*freebsd*"] } 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\).*" + } + + # The MSP430 in LARGE mode does not generate a DW_OP_addr. + setup_xfail msp430*-*-* + + 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 + + if { ![is_zlib_supported] } { + unsupported "readelf -wa (compressed)" + return + } + + # 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 + +# PR 13482 - Check for off-by-one errors when dumping .note sections. +if {![binutils_assemble $srcdir/$subdir/version.s tmpdir/version.o]} then { + perror "could not assemble version note test file" + unresolved "readelf - failed to assemble" + return +} + +if ![is_remote host] { + set tempfile tmpdir/version.o +} else { + set tempfile [remote_download host tmpdir/version.o] +} + +readelf_test -n $tempfile readelf.n {} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.h b/binutils-2.25/binutils/testsuite/binutils-all/readelf.h new file mode 100644 index 00000000..01103fba --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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: .* diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.n b/binutils-2.25/binutils/testsuite/binutils-all/readelf.n new file mode 100644 index 00000000..7a44731f --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.n @@ -0,0 +1,5 @@ + +Displaying notes found at file offset 0x0*0.. with length 0x0*018: + Owner[ ]*Data size[ ]*Description + Version 1.0[ ]*0x0*0[ ]*NT_VERSION \(version\) +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.r b/binutils-2.25/binutils/testsuite/binutils-all/readelf.r new file mode 100644 index 00000000..689049f1 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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.* diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.r-64 b/binutils-2.25/binutils/testsuite/binutils-all/readelf.r-64 new file mode 100644 index 00000000..3e3b0a4a --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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.* diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.s b/binutils-2.25/binutils/testsuite/binutils-all/readelf.s new file mode 100644 index 00000000..8361a7eb --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.s @@ -0,0 +1,21 @@ +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: +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.s-64 b/binutils-2.25/binutils/testsuite/binutils-all/readelf.s-64 new file mode 100644 index 00000000..ec31f3f2 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.s-64 @@ -0,0 +1,23 @@ +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: +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss b/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss new file mode 100644 index 00000000..9bb0f2ed --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-64 b/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-64 new file mode 100644 index 00000000..c100c14e --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-64 @@ -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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-mips b/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-mips new file mode 100644 index 00000000..fd975520 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-tmips b/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-tmips new file mode 100644 index 00000000..1f872489 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.wa b/binutils-2.25/binutils/testsuite/binutils-all/readelf.wa new file mode 100644 index 00000000..43d60b17 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.wa @@ -0,0 +1,27 @@ +Contents of the .zdebug_abbrev section: + + Number TAG (0x0) + 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 + DW_AT value: 0 DW_FORM value: 0 + 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 + DW_AT value: 0 DW_FORM value: 0 + 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 + DW_AT value: 0 DW_FORM value: 0 + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/size.exp b/binutils-2.25/binutils/testsuite/binutils-all/size.exp new file mode 100644 index 00000000..5050a548 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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" + } +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-1.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-1.d new file mode 100644 index 00000000..20098321 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-10.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-10.d new file mode 100644 index 00000000..588c7d12 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-2.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-2.d new file mode 100644 index 00000000..9922f475 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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]+\] \.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' \[foo_group\] contains 2 sections: + \[Index\] Name + \[[ 0-9]+\] .text.* + \[[ 0-9]+\] .data.* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-3.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-3.d new file mode 100644 index 00000000..acfec85d --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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* *-*-gnu* + +#... + \[[ 0]+\][ \t]+NULL[ \t]+.* + \[[ 1]+\] \.shstrtab.*[ \t]+STRTAB[ \t]+.* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-4.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-4.d new file mode 100644 index 00000000..c8c2509f --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-5.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-5.d new file mode 100644 index 00000000..8dd23318 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-6.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-6.d new file mode 100644 index 00000000..c5d42887 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-7.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-7.d new file mode 100644 index 00000000..791463b8 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-8.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-8.d new file mode 100644 index 00000000..56185103 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-9.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-9.d new file mode 100644 index 00000000..7f07a0da --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/testprog.c b/binutils-2.25/binutils/testsuite/binutils-all/testprog.c new file mode 100644 index 00000000..6ead98e7 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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; +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/testranges-ia64.d b/binutils-2.25/binutils/testsuite/binutils-all/testranges-ia64.d new file mode 100644 index 00000000..9713236b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/testranges-ia64.s b/binutils-2.25/binutils/testsuite/binutils-all/testranges-ia64.s new file mode 100644 index 00000000..9af6b634 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 */ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/testranges.d b/binutils-2.25/binutils/testsuite/binutils-all/testranges.d new file mode 100644 index 00000000..07f97503 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 \.z?debug_ranges section: + + Offset Begin End + 00000000 00000001 00000002 + 00000000 <End of list> + 00000010 00000000 00000002 + 00000010 <End of list> + +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/testranges.s b/binutils-2.25/binutils/testsuite/binutils-all/testranges.s new file mode 100644 index 00000000..e1f9931b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/unique.s b/binutils-2.25/binutils/testsuite/binutils-all/unique.s new file mode 100644 index 00000000..44fb7a09 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/unique.s @@ -0,0 +1,4 @@ + .data + .type foo,%gnu_unique_object +foo: + .byte 0 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/unknown.s b/binutils-2.25/binutils/testsuite/binutils-all/unknown.s new file mode 100644 index 00000000..e1b53c01 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/unknown.s @@ -0,0 +1,4 @@ + .section .foo,"a","note" + .global _start +_start: + .long 0 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/vax/entrymask.s b/binutils-2.25/binutils/testsuite/binutils-all/vax/entrymask.s new file mode 100644 index 00000000..18f90106 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/vax/entrymask.s @@ -0,0 +1,11 @@ +.text + +.global label1 +label1: + .word 0x0110 + +.global label2 +.type label2,@function +label2: + .word 0x0224 + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/vax/objdump.exp b/binutils-2.25/binutils/testsuite/binutils-all/vax/objdump.exp new file mode 100644 index 00000000..f4734a5b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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" +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/version.def b/binutils-2.25/binutils/testsuite/binutils-all/version.def new file mode 100644 index 00000000..ce1c4b54 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/version.def @@ -0,0 +1,17 @@ +LIBRARY VERSION.dll +EXPORTS +GetFileVersionInfoA1 +GetFileVersionInfoSizeA2 +GetFileVersionInfoSizeW3 +GetFileVersionInfoW4 +VerFindFileA5 +VerFindFileW6 +VerInstallFileA7 +VerInstallFileW8 +VerLanguageNameA9 +VerLanguageNameW10 +VerQueryValueA11 +VerQueryValueIndexA12 +VerQueryValueIndexW13 +VerQueryValueW14 + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/version.s b/binutils-2.25/binutils/testsuite/binutils-all/version.s new file mode 100644 index 00000000..66a0566b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/version.s @@ -0,0 +1 @@ + .version "Version 1.0" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/MSG00001.bin b/binutils-2.25/binutils/testsuite/binutils-all/windres/MSG00001.bin Binary files differnew file mode 100644 index 00000000..0092b834 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/MSG00001.bin diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/README b/binutils-2.25/binutils/testsuite/binutils-all/windres/README new file mode 100644 index 00000000..67114461 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/README @@ -0,0 +1,33 @@ +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 *-*-* + // cpparg <preprocessor options passed via --preprocessor-arg> + +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. + +Copyright (C) 2012 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/bmp1.bmp b/binutils-2.25/binutils/testsuite/binutils-all/windres/bmp1.bmp Binary files differnew file mode 100644 index 00000000..208a8aa2 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/bmp1.bmp diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/bmpalign.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/bmpalign.rc new file mode 100644 index 00000000..7cb5583d --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/bmpalign.rc @@ -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" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/bmpalign.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/bmpalign.rsd new file mode 100644 index 00000000..3ee53965 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 ................ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/capstyle.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/capstyle.rc new file mode 100644 index 00000000..238d21ea --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/capstyle.rc @@ -0,0 +1,5 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95 +CAPTION "" +BEGIN + DEFPUSHBUTTON "OK",1,129,7,50,14 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/capstyle.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/capstyle.rsd new file mode 100644 index 00000000..fef81169 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/capstyle.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 0000c880 00000000 01000000 0000ba00 ................ + 0050 5f000000 00000000 01000150 00000000 _..........P.... + 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O. + 0070 4b000000 00000000 K....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/checkbox.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/checkbox.rc new file mode 100644 index 00000000..a941d6a5 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/checkbox.rc @@ -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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/checkbox.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/checkbox.rsd new file mode 100644 index 00000000..f3ea5a04 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/checkbox.rsd @@ -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 .... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/combobox.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/combobox.rc new file mode 100644 index 00000000..f9f52d18 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/combobox.rc @@ -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 + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/combobox.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/combobox.rsd new file mode 100644 index 00000000..509c7382 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/combobox.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 01000150 00000000 ...........P.... + 0060 0a000a00 32003600 e903ffff 85000000 ....2.6......... + 0070 00000000 .... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/deflang.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/deflang.rc new file mode 100644 index 00000000..1f3c20f5 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/deflang.rc @@ -0,0 +1,4 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95 +BEGIN + DEFPUSHBUTTON "OK",1,129,7,50,14 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/deflang.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/deflang.rsd new file mode 100644 index 00000000..270b6223 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog0.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog0.rc new file mode 100644 index 00000000..fba7ed77 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog0.rc @@ -0,0 +1,4 @@ +101 DIALOG 0, 0, 186, 95
+BEGIN
+ DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
+END
diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog0.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog0.rsd new file mode 100644 index 00000000..270b6223 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog0.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....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog1.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog1.rc new file mode 100644 index 00000000..71deb4a5 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog1.rc @@ -0,0 +1,5 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95
+BEGIN
+ DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
+END
+
diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog1.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog1.rsd new file mode 100644 index 00000000..270b6223 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog1.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....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogid.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogid.rc new file mode 100644 index 00000000..43bf1ec8 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogid.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogid.rsd new file mode 100644 index 00000000..6c655a1c --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogid.rsd @@ -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 .... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogsignature.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogsignature.rc new file mode 100644 index 00000000..a05ce190 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogsignature.rc @@ -0,0 +1,5 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95 +STYLE 1 +BEGIN + DEFPUSHBUTTON "OK",1,129,7,50,14 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogsignature.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogsignature.rsd new file mode 100644 index 00000000..a01c14de --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogsignature.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 01000000 00000000 01000000 0000ba00 ................ + 0050 5f000000 00000000 01000150 00000000 _..........P.... + 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O. + 0070 4b000000 00000000 K....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dlgfont.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/dlgfont.rc new file mode 100644 index 00000000..9c763e59 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dlgfont.rc @@ -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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dlgfont.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/dlgfont.rsd new file mode 100644 index 00000000..8a25cfa6 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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..... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/edittext.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/edittext.rc new file mode 100644 index 00000000..0fd70001 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/edittext.rc @@ -0,0 +1,4 @@ +501 DIALOG DISCARDABLE 0, 0, 168, 137 +BEGIN + EDITTEXT 1001, 28, 63, 137, 52 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/edittext.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/edittext.rsd new file mode 100644 index 00000000..7132b20f --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 .... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/escapea.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapea.rc new file mode 100644 index 00000000..0e3e9670 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapea.rc @@ -0,0 +1,7 @@ +20 MENU DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Open\a^O", 17 + END +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/escapea.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapea.rsd new file mode 100644 index 00000000..c8a7f4eb --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex-2.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex-2.rc new file mode 100755 index 00000000..ed35b214 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex-2.rc @@ -0,0 +1,5 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95 +BEGIN + LTEXT "\xB0ABC",-1,23,46,28,8 +END + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex-2.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex-2.rsd new file mode 100644 index 00000000..774c648c --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex-2.rsd @@ -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....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex.rc new file mode 100644 index 00000000..1a025f65 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex.rc @@ -0,0 +1,4 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95 +BEGIN + LTEXT "\xB0",-1,23,46,28,8 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex.rsd new file mode 100644 index 00000000..280aead0 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex.rsd @@ -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 .... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/html.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/html.rc new file mode 100644 index 00000000..d85f5653 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/html.rc @@ -0,0 +1,6 @@ +#include "windows.h" + +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN + +129 HTML "html1.hm" +130 HTML "html2.hm" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/html.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/html.rsd new file mode 100644 index 00000000..c124a82b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/html.rsd @@ -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 <!DOCTYPE doctyp + 0050 65205055 424c4943 20222d2f 2f773363 e PUBLIC "-//w3c + 0060 2f2f6474 64206874 6d6c2034 2e302074 //dtd html 4.0 t + 0070 72616e73 6974696f 6e616c2f 2f656e22 ransitional//en" + 0080 3e0d0a3c 68746d6c 3e0d0a3c 68656164 >..<html>..<head + 0090 3e0d0a20 203c6d65 74612063 6f6e7465 >.. <meta conte + 00a0 6e743d22 74657874 2f68746d 6c3b2063 nt="text/html; c + 00b0 68617273 65743d69 736f2d38 3835392d harset=iso-8859- + 00c0 31222020 68747470 2d657175 69763d22 1" http-equiv=" + 00d0 436f6e74 656e742d 54797065 223e0d0a Content-Type">.. + 00e0 20203c74 69746c65 3e57696e 64726573 <title>Windres + 00f0 3c2f7469 746c653e 0d0a3c2f 68656164 </title>..</head + 0100 3e0d0a0d 0a3c626f 64793e0d 0a546869 >....<body>..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...</b + 0140 6f64793e 0d0a3c2f 68746d6c 3e000000 ody>..</html>... + 0150 14010000 20000000 ffff1700 ffff8200 .... ........... + 0160 00000000 30100704 00000000 00000000 ....0........... + 0170 3c21444f 43545950 4520646f 63747970 <!DOCTYPE doctyp + 0180 65205055 424c4943 20222d2f 2f773363 e PUBLIC "-//w3c + 0190 2f2f6474 64206874 6d6c2034 2e302074 //dtd html 4.0 t + 01a0 72616e73 6974696f 6e616c2f 2f656e22 ransitional//en" + 01b0 3e0d0a3c 68746d6c 3e0d0a3c 68656164 >..<html>..<head + 01c0 3e0d0a20 203c6d65 74612063 6f6e7465 >.. <meta conte + 01d0 6e743d22 74657874 2f68746d 6c3b2063 nt="text/html; c + 01e0 68617273 65743d69 736f2d38 3835392d harset=iso-8859- + 01f0 31222020 68747470 2d657175 69763d22 1" http-equiv=" + 0200 436f6e74 656e742d 54797065 223e0d0a Content-Type">.. + 0210 20203c74 69746c65 3e57696e 64726573 <title>Windres + 0220 3c2f7469 746c653e 0d0a3c2f 68656164 </title>..</head + 0230 3e0d0a0d 0a3c626f 64793e0d 0a546869 >....<body>..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...</body>..</h + 0280 746d6c3e tml> diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/html1.hm b/binutils-2.25/binutils/testsuite/binutils-all/windres/html1.hm new file mode 100644 index 00000000..ffc5a182 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/html1.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 test page for windres HTML resource.
+</body>
+</html>
\ No newline at end of file diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/html2.hm b/binutils-2.25/binutils/testsuite/binutils-all/windres/html2.hm new file mode 100644 index 00000000..2fb343bf --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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>
\ No newline at end of file diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/lang.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/lang.rc new file mode 100644 index 00000000..d8943155 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/lang.rc @@ -0,0 +1,15 @@ +#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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/lang.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/lang.rsd new file mode 100644 index 00000000..9e0045f6 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/lang.rsd @@ -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..... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/listbox.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/listbox.rc new file mode 100644 index 00000000..bb7c121e --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/listbox.rc @@ -0,0 +1,4 @@ +501 DIALOG DISCARDABLE 0, 0, 168, 137 +BEGIN + LISTBOX 1001, 28, 63, 137, 52 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/listbox.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/listbox.rsd new file mode 100644 index 00000000..4c3eadfc --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/listbox.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 01008050 00000000 ...........P.... + 0060 1c003f00 89003400 e903ffff 83000000 ..?...4......... + 0070 00000000 .... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/messagetable.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/messagetable.rc new file mode 100644 index 00000000..250d2417 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/messagetable.rc @@ -0,0 +1,5 @@ +#include "windows.h" + +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN + +888 MESSAGETABLE MSG00001.bin diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/messagetable.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/messagetable.rsd new file mode 100644 index 00000000..9d108a58 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/messagetable.rsd @@ -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...... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/msupdate b/binutils-2.25/binutils/testsuite/binutils-all/windres/msupdate new file mode 100755 index 00000000..94d36988 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/msupdate @@ -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 <dj@redhat.com> + +# 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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/nocaption.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/nocaption.rc new file mode 100644 index 00000000..1f3c20f5 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/nocaption.rc @@ -0,0 +1,4 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95 +BEGIN + DEFPUSHBUTTON "OK",1,129,7,50,14 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/nocaption.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/nocaption.rsd new file mode 100644 index 00000000..270b6223 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/printstyle.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/printstyle.rc new file mode 100644 index 00000000..0066c995 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/printstyle.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/printstyle.rsd new file mode 100644 index 00000000..6a4a919c --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/printstyle.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 00000000 00000000 01000000 0000ba00 ................ + 0050 5f000000 00000000 01000150 00000000 _..........P.... + 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O. + 0070 4b000000 00000000 K....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/quoteclass.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/quoteclass.rc new file mode 100644 index 00000000..c1f98e19 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/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 + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/scrollbar.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/scrollbar.rc new file mode 100644 index 00000000..9391d1ab --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/scrollbar.rc @@ -0,0 +1,4 @@ +501 DIALOGEX 0, 0, 168, 137 +BEGIN + SCROLLBAR 1001,43,68,105,10,0,0,0x81f503e9 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/scrollbar.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/scrollbar.rsd new file mode 100644 index 00000000..c509c4cd --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/scrollbar.rsd @@ -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............... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab1.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab1.rc new file mode 100644 index 00000000..a1a246d8 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab1.rc @@ -0,0 +1,8 @@ +#include "windows.h" + +LANGUAGE 0, 0 + +STRINGTABLE MOVEABLE PURE DISCARDABLE +BEGIN + 1 "hello, world" +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab1.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab1.rsd new file mode 100644 index 00000000..4d610739 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab1.rsd @@ -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 ........ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab2.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab2.rc new file mode 100644 index 00000000..2721d159 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab2.rc @@ -0,0 +1,8 @@ +#include "windows.h" + +LANGUAGE 0, 0 + +STRINGTABLE MOVEABLE PURE DISCARDABLE +BEGIN + 1 L"hello, world" +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab2.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab2.rsd new file mode 100644 index 00000000..4d610739 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab2.rsd @@ -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 ........ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab3.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab3.rc new file mode 100644 index 00000000..542e9dc6 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab3.rc @@ -0,0 +1,14 @@ +// cpparg -DTEST=1 + +#include "windows.h" + +LANGUAGE 0, 0 + +STRINGTABLE MOVEABLE PURE DISCARDABLE +BEGIN +#ifdef TEST + 1 "hello, world" +#else + 1 "fail" +#endif +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab3.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab3.rsd new file mode 100644 index 00000000..4d610739 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab3.rsd @@ -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 ........ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab4.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab4.rc new file mode 100644 index 00000000..cd532980 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab4.rc @@ -0,0 +1,10 @@ +// cpparg -DTEST=1 + +#include "windows.h" + +LANGUAGE 0, 0 + +STRINGTABLE MOVEABLE PURE DISCARDABLE +BEGIN + 1 "hello\0 world" +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab4.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab4.rsd new file mode 100644 index 00000000..9fa055d7 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab4.rsd @@ -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 6f000000 ....h.e.l.l.o... + 0050 20007700 6f007200 6c006400 00000000 .w.o.r.l.d..... + 0060 00000000 00000000 00000000 00000000 ................ + 0070 00000000 00000000 ........ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/sublang.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/sublang.rc new file mode 100644 index 00000000..a37921b3 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/sublang.rc @@ -0,0 +1,5 @@ +LANGUAGE 9, 1 +101 DIALOG DISCARDABLE 0, 0, 186, 95 +BEGIN + DEFPUSHBUTTON "OK",1,129,7,50,14 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/sublang.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/sublang.rsd new file mode 100644 index 00000000..270b6223 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/sublang.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....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/version.rc new file mode 100644 index 00000000..59c8743a --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version.rc @@ -0,0 +1,32 @@ +#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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/version.rsd new file mode 100644 index 00000000..8ad479c1 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version.rsd @@ -0,0 +1,51 @@ + 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 01005300 74007200 69006e00 67004600 ..S.t.r.i.n.g.F. + 00b0 69006c00 65004900 6e006600 6f000000 i.l.e.I.n.f.o... + 00c0 28020000 01003000 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 01005600 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......... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version_cat.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_cat.rc new file mode 100644 index 00000000..8368aa12 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_cat.rc @@ -0,0 +1,32 @@ +#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 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version_cat.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_cat.rsd new file mode 100644 index 00000000..4e575121 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_cat.rsd @@ -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 01005300 74007200 69006e00 67004600 ..S.t.r.i.n.g.F. + 00b0 69006c00 65004900 6e006600 6f000000 i.l.e.I.n.f.o... + 00c0 28020000 01003000 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 01005600 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......... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version_mlang.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_mlang.rc new file mode 100644 index 00000000..e796ca95 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_mlang.rc @@ -0,0 +1,43 @@ +#include "windows.h" + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +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 "040904b0" + BEGIN + VALUE "CompanyName", "binutils" + 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 + BLOCK "041504b0" + BEGIN + VALUE "CompanyName", "binutils" + VALUE "FileDescription", "Kompilator RC." + VALUE "FileVersion", "1.0.0.1" + VALUE "InternalName", "windres.exe" + VALUE "LegalCopyright", "(c) FSF. Wszystkie prawa zastrzezone." + VALUE "OriginalFilename", "windres.exe" + VALUE "ProductName", "windows resource compiler" + VALUE "ProductVersion", "1.0.0.1" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 0x04b0, 0x0415, 0x04b0 + END +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version_mlang.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_mlang.rsd new file mode 100644 index 00000000..05ed4883 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_mlang.rsd @@ -0,0 +1,87 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 24050000 20000000 ffff1000 ffff0100 $... ........... + 0030 00000000 00000000 00000000 00000000 ................ + 0040 24053400 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 80040000 ................ + 00a0 01005300 74007200 69006e00 67004600 ..S.t.r.i.n.g.F. + 00b0 69006c00 65004900 6e006600 6f000000 i.l.e.I.n.f.o... + 00c0 28020000 01003000 34003000 39003000 (.....0.4.0.9.0. + 00d0 34006200 30000000 32000900 01004300 4.b.0...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 34020000 01003000 0...1...4.....0. + 02f0 34003100 35003000 34006200 30000000 4.1.5.0.4.b.0... + 0300 32000900 01004300 6f006d00 70006100 2.....C.o.m.p.a. + 0310 6e007900 4e006100 6d006500 00000000 n.y.N.a.m.e..... + 0320 62006900 6e007500 74006900 6c007300 b.i.n.u.t.i.l.s. + 0330 00000000 46000f00 01004600 69006c00 ....F.....F.i.l. + 0340 65004400 65007300 63007200 69007000 e.D.e.s.c.r.i.p. + 0350 74006900 6f006e00 00000000 4b006f00 t.i.o.n.....K.o. + 0360 6d007000 69006c00 61007400 6f007200 m.p.i.l.a.t.o.r. + 0370 20005200 43002e00 00000000 30000800 .R.C.......0... + 0380 01004600 69006c00 65005600 65007200 ..F.i.l.e.V.e.r. + 0390 73006900 6f006e00 00000000 31002e00 s.i.o.n.....1... + 03a0 30002e00 30002e00 31000000 38000c00 0...0...1...8... + 03b0 01004900 6e007400 65007200 6e006100 ..I.n.t.e.r.n.a. + 03c0 6c004e00 61006d00 65000000 77006900 l.N.a.m.e...w.i. + 03d0 6e006400 72006500 73002e00 65007800 n.d.r.e.s...e.x. + 03e0 65000000 70002600 01004c00 65006700 e...p.&...L.e.g. + 03f0 61006c00 43006f00 70007900 72006900 a.l.C.o.p.y.r.i. + 0400 67006800 74000000 28006300 29002000 g.h.t...(.c.). . + 0410 46005300 46002e00 20005700 73007a00 F.S.F... .W.s.z. + 0420 79007300 74006b00 69006500 20007000 y.s.t.k.i.e. .p. + 0430 72006100 77006100 20007a00 61007300 r.a.w.a. .z.a.s. + 0440 74007200 7a006500 7a006f00 6e006500 t.r.z.e.z.o.n.e. + 0450 2e000000 40000c00 01004f00 72006900 ....@.....O.r.i. + 0460 67006900 6e006100 6c004600 69006c00 g.i.n.a.l.F.i.l. + 0470 65006e00 61006d00 65000000 77006900 e.n.a.m.e...w.i. + 0480 6e006400 72006500 73002e00 65007800 n.d.r.e.s...e.x. + 0490 65000000 54001a00 01005000 72006f00 e...T.....P.r.o. + 04a0 64007500 63007400 4e006100 6d006500 d.u.c.t.N.a.m.e. + 04b0 00000000 77006900 6e006400 6f007700 ....w.i.n.d.o.w. + 04c0 73002000 72006500 73006f00 75007200 s. .r.e.s.o.u.r. + 04d0 63006500 20006300 6f006d00 70006900 c.e. .c.o.m.p.i. + 04e0 6c006500 72000000 34000800 01005000 l.e.r...4.....P. + 04f0 72006f00 64007500 63007400 56006500 r.o.d.u.c.t.V.e. + 0500 72007300 69006f00 6e000000 31002e00 r.s.i.o.n...1... + 0510 30002e00 30002e00 31000000 48000000 0...0...1...H... + 0520 01005600 61007200 46006900 6c006500 ..V.a.r.F.i.l.e. + 0530 49006e00 66006f00 00000000 28000800 I.n.f.o.....(... + 0540 00005400 72006100 6e007300 6c006100 ..T.r.a.n.s.l.a. + 0550 74006900 6f006e00 00000000 0904b004 t.i.o.n......... + 0560 1504b004 .... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version_small.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_small.rc new file mode 100755 index 00000000..add98551 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_small.rc @@ -0,0 +1,32 @@ +#include "windows.h" + +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,1 + PRODUCTVERSION 1,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.1.0" + VALUE "InternalName", "windres.exe" + VALUE "LegalCopyright", "(c) FSF. All rights are reserved." + VALUE "OriginalFilename", "windres.exe" + VALUE "ProductName", "windows resource compiler" + VALUE "ProductVersion", "1.1.0.0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x407, 1252 + END +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version_small.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_small.rsd new file mode 100755 index 00000000..141ddb14 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_small.rsd @@ -0,0 +1,51 @@ + 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 00000100 01000100 00000000 ................ + 0080 3f000000 00000000 04000000 01000000 ?............... + 0090 00000000 00000000 00000000 4c020000 ............L... + 00a0 01005300 74007200 69006e00 67004600 ..S.t.r.i.n.g.F. + 00b0 69006c00 65004900 6e006600 6f000000 i.l.e.I.n.f.o... + 00c0 28020000 01003000 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 31002e00 30000000 1...0...1...0... + 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 31002e00 i.o.n...1...1... + 02e0 30002e00 30000000 44000000 01005600 0...0...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......... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/windres.exp b/binutils-2.25/binutils/testsuite/binutils-all/windres/windres.exp new file mode 100644 index 00000000..2ef73ffe --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/windres.exp @@ -0,0 +1,141 @@ +# 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 <dj@redhat.com> + +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 cpp_opts "" + + set rc [open $res] + while { [gets $rc line] != -1 } { + if ![regexp "^(//|/\*|#)" $line] { + break + } + if [regexp "\[xp\]fail *(\[^ \]*)" $line junk sys] { + setup_xfail $sys + continue + } + if [regexp "cpparg *(\[^ \]*)" $line junk cppopt] { + set cpp_opts "--preprocessor-arg \"$cppopt\"" + continue + } + } + + verbose "$wr -J rc -O res $res tmpdir/$broot.res" 1 + catch "exec $wr $cpp_opts -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" + } +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1.s b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1.s new file mode 100644 index 00000000..e0ffc82b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1.s @@ -0,0 +1,142 @@ + .file "compressed-1.c" + .section .debug_abbrev,"",@progbits +.Ldebug_abbrev0: + .section .debug_info,"",@progbits +.Ldebug_info0: + .section .debug_line,"",@progbits +.Ldebug_line0: + .text +.Ltext0: + .cfi_sections .debug_frame + .p2align 4,,15 +.globl foo2 + .type foo2, @function +foo2: +.LFB1: + .file 1 "compressed-1.c" + .loc 1 11 0 + .cfi_startproc + .loc 1 12 0 + rep + ret + .cfi_endproc +.LFE1: + .size foo2, .-foo2 + .p2align 4,,15 +.globl foo1 + .type foo1, @function +foo1: +.LFB0: + .loc 1 5 0 + .cfi_startproc + .loc 1 6 0 + jmp bar + .cfi_endproc +.LFE0: + .size foo1, .-foo1 +.Letext0: + .section .debug_info + .long 0x5e + .value 0x3 + .long .Ldebug_abbrev0 + .byte 0x8 + .uleb128 0x1 + .long .LASF2 + .byte 0x1 + .long .LASF3 + .long .LASF4 + .quad .Ltext0 + .quad .Letext0 + .long .Ldebug_line0 + .uleb128 0x2 + .byte 0x1 + .long .LASF0 + .byte 0x1 + .byte 0xa + .quad .LFB1 + .quad .LFE1 + .byte 0x1 + .byte 0x9c + .uleb128 0x2 + .byte 0x1 + .long .LASF1 + .byte 0x1 + .byte 0x4 + .quad .LFB0 + .quad .LFE0 + .byte 0x1 + .byte 0x9c + .byte 0x0 + .section .debug_abbrev + .uleb128 0x1 + .uleb128 0x11 + .byte 0x1 + .uleb128 0x25 + .uleb128 0xe + .uleb128 0x13 + .uleb128 0xb + .uleb128 0x3 + .uleb128 0xe + .uleb128 0x1b + .uleb128 0xe + .uleb128 0x11 + .uleb128 0x1 + .uleb128 0x12 + .uleb128 0x1 + .uleb128 0x10 + .uleb128 0x6 + .byte 0x0 + .byte 0x0 + .uleb128 0x2 + .uleb128 0x2e + .byte 0x0 + .uleb128 0x3f + .uleb128 0xc + .uleb128 0x3 + .uleb128 0xe + .uleb128 0x3a + .uleb128 0xb + .uleb128 0x3b + .uleb128 0xb + .uleb128 0x11 + .uleb128 0x1 + .uleb128 0x12 + .uleb128 0x1 + .uleb128 0x40 + .uleb128 0xa + .byte 0x0 + .byte 0x0 + .byte 0x0 + .section .debug_pubnames,"",@progbits + .long 0x20 + .value 0x2 + .long .Ldebug_info0 + .long 0x62 + .long 0x2d + .string "foo2" + .long 0x47 + .string "foo1" + .long 0x0 + .section .debug_aranges,"",@progbits + .long 0x2c + .value 0x2 + .long .Ldebug_info0 + .byte 0x8 + .byte 0x0 + .value 0x0 + .value 0x0 + .quad .Ltext0 + .quad .Letext0-.Ltext0 + .quad 0x0 + .quad 0x0 + .section .debug_str,"MS",@progbits,1 +.LASF2: + .string "GNU C 4.4.4" +.LASF0: + .string "foo2" +.LASF1: + .string "foo1" +.LASF4: + .string "." +.LASF3: + .string "compressed-1.c" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1a.d b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1a.d new file mode 100644 index 00000000..f1e4bbcd --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1a.d @@ -0,0 +1,157 @@ +#PROG: objcopy +#source: compressed-1.s +#as: --64 --compress-debug-sections +#objcopy: +#readelf: -w +#name: objcopy on compressed debug sections + +Contents of the .[z]?debug_abbrev section: + + Number TAG \(0x0\) + 1 DW_TAG_compile_unit \[has children\] + DW_AT_producer DW_FORM_strp + DW_AT_language DW_FORM_data1 + DW_AT_name DW_FORM_strp + DW_AT_comp_dir DW_FORM_strp + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_addr + DW_AT_stmt_list DW_FORM_data4 + DW_AT value: 0 DW_FORM value: 0 + 2 DW_TAG_subprogram \[no children\] + DW_AT_external DW_FORM_flag + DW_AT_name DW_FORM_strp + DW_AT_decl_file DW_FORM_data1 + DW_AT_decl_line DW_FORM_data1 + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_addr + DW_AT_frame_base DW_FORM_block1 + DW_AT value: 0 DW_FORM value: 0 + +Contents of the .[z]?debug_info section: + + Compilation Unit @ offset 0x0: + Length: 0x5e \(32-bit\) + Version: 3 + Abbrev Offset: 0x0 + Pointer Size: 8 + <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\) + <c> DW_AT_producer : \(indirect string, offset: 0x0\): GNU C 4.4.4 + <10> DW_AT_language : 1 \(ANSI C\) + <11> DW_AT_name : \(indirect string, offset: 0x18\): compressed-1.c + <15> DW_AT_comp_dir : \(indirect string, offset: 0x16\): . + <19> DW_AT_low_pc : 0x0 + <21> DW_AT_high_pc : 0x15 + <29> DW_AT_stmt_list : 0x0 + <1><2d>: Abbrev Number: 2 \(DW_TAG_subprogram\) + <2e> DW_AT_external : 1 + <2f> DW_AT_name : \(indirect string, offset: 0xc\): foo2 + <33> DW_AT_decl_file : 1 + <34> DW_AT_decl_line : 10 + <35> DW_AT_low_pc : 0x0 + <3d> DW_AT_high_pc : 0x2 + <45> DW_AT_frame_base : 1 byte block: 9c \(DW_OP_call_frame_cfa\) + <1><47>: Abbrev Number: 2 \(DW_TAG_subprogram\) + <48> DW_AT_external : 1 + <49> DW_AT_name : \(indirect string, offset: 0x11\): foo1 + <4d> DW_AT_decl_file : 1 + <4e> DW_AT_decl_line : 4 + <4f> DW_AT_low_pc : 0x10 + <57> DW_AT_high_pc : 0x15 + <5f> DW_AT_frame_base : 1 byte block: 9c \(DW_OP_call_frame_cfa\) + <1><61>: Abbrev Number: 0 + +Raw dump of debug contents of section .[z]?debug_line: + + Offset: 0x0 + Length: 67 + DWARF Version: 2 + Prologue Length: 37 + Minimum Instruction Length: 1 + 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 \(offset 0x.*\): + Entry Dir Time Size Name + 1 0 0 0 compressed-1.c + + Line Number Statements: + \[0x.*\] Extended opcode 2: set Address to 0x0 + \[0x.*\] Advance Line by 10 to 11 + \[0x.*\] Copy + \[0x.*\] Special opcode 6: advance Address by 0 to 0x0 and Line by 1 to 12 + \[0x.*\] Advance Line by -7 to 5 + \[0x.*\] Special opcode 229: advance Address by 16 to 0x10 and Line by 0 to 5 + \[0x.*\] Special opcode 6: advance Address by 0 to 0x10 and Line by 1 to 6 + \[0x.*\] Advance PC by 5 to 0x15 + \[0x.*\] Extended opcode 1: End of Sequence + + +Contents of the .[z]?debug_pubnames section: + + Length: 32 + Version: 2 + Offset into .[z]?debug_info section: 0x0 + Size of area in .[z]?debug_info section: 98 + + Offset Name + 2d foo2 + 47 foo1 + +Contents of the .[z]?debug_aranges section: + + Length: 44 + Version: 2 + Offset into .[z]?debug_info: 0x0 + Pointer Size: 8 + Segment Size: 0 + + Address Length + 0000000000000000 0000000000000015 + 0000000000000000 0000000000000000 + +Contents of the .[z]?debug_str section: + + 0x00000000 474e5520 4320342e 342e3400 666f6f32 GNU C 4.4.4.foo2 + 0x00000010 00666f6f 31002e00 636f6d70 72657373 .foo1...compress + 0x00000020 65642d31 2e6300 ed-1.c. + +Contents of the .[z]?debug_frame section: + +00000000 0+014 ffffffff CIE + Version: 1 + Augmentation: "" + Code alignment factor: 1 + Data alignment factor: -8 + Return address column: 16 + + DW_CFA_def_cfa: r7 \(rsp\) ofs 8 + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + +00000018 0+014 00000000 FDE cie=00000000 pc=0+0000..0+0002 + +00000030 0+014 00000000 FDE cie=00000000 pc=0+0010..0+0015 + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1b.d b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1b.d new file mode 100644 index 00000000..ed5a45ed --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1b.d @@ -0,0 +1,18 @@ +#PROG: strip +#source: compressed-1.s +#as: --64 +#strip: +#readelf: -S --wide +#name: strip on uncompressed debug sections + +There are 5 section headers, starting at offset 0x78: + +Section Headers: + \[Nr\] Name Type Address Off Size ES Flg Lk Inf Al + \[ 0\] NULL 0000000000000000 000000 000000 00 0 0 0 + \[ 1\] .text PROGBITS 0000000000000000 000040 000015 00 AX 0 0 16 + \[ 2\] .data PROGBITS 0000000000000000 000055 000000 00 WA 0 0 1 + \[ 3\] .bss NOBITS 0000000000000000 000055 000000 00 WA 0 0 1 + \[ 4\] .shstrtab STRTAB 0000000000000000 000055 00001c 00 0 0 1 +Key to Flags: +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1c.d b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1c.d new file mode 100644 index 00000000..a0308c89 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1c.d @@ -0,0 +1,18 @@ +#PROG: strip +#source: compressed-1.s +#as: --64 --compress-debug-sections +#strip: +#readelf: -S --wide +#name: strip on compressed debug sections + +There are 5 section headers, starting at offset 0x78: + +Section Headers: + \[Nr\] Name Type Address Off Size ES Flg Lk Inf Al + \[ 0\] NULL 0000000000000000 000000 000000 00 0 0 0 + \[ 1\] .text PROGBITS 0000000000000000 000040 000015 00 AX 0 0 16 + \[ 2\] .data PROGBITS 0000000000000000 000055 000000 00 WA 0 0 1 + \[ 3\] .bss NOBITS 0000000000000000 000055 000000 00 WA 0 0 1 + \[ 4\] .shstrtab STRTAB 0000000000000000 000055 00001c 00 0 0 1 +Key to Flags: +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/x86-64/x86-64.exp b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/x86-64.exp new file mode 100644 index 00000000..ccabc635 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/x86-64.exp @@ -0,0 +1,34 @@ +# Copyright 2010, 2012 +# 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 "x86_64-*-linux*"] + || [istarget "x86_64-*-nacl*"]) + || [is_remote host]} { + return +} + +global tempfile +global copyfile +set tempfile tmpdir/x86-64temp.o +set copyfile tmpdir/x86-64copy + +set test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]] +foreach t $test_list { + # We need to strip the ".d", but can leave the dirname. + verbose [file rootname $t] + run_dump_test [file rootname $t] +} |