123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671 |
- # Copyright (C) 2010-2015 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] } then {
- return
- }
- set testfile tmpdir/dw2-1
- set compressedfile tmpdir/dw2-1-compressed
- set copyfile tmpdir/dw2-copy
- set compressedfile2 tmpdir/dw2-2-compressed
- set libfile tmpdir/libdw2
- set compressedcopyfile tmpdir/dw2-copy-compressed
- set testfile3 tmpdir/dw2-3
- set compressedfile3 tmpdir/dw2-3-compressed
- if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S ${testfile}.o --nocompress-debug-sections] } then {
- unsupported "compressed debug sections"
- return
- }
- if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S ${compressedfile}.o --compress-debug-sections] } then {
- unsupported "compressed debug sections"
- return
- }
- if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S ${compressedfile}gnu.o --compress-debug-sections=zlib-gnu] } then {
- unsupported "compressed debug sections with zlib-gnu"
- return
- }
- set got [remote_exec host "cmp ${testfile}.o ${compressedfile}gnu.o"]
- # Use it to set up xfail.
- set exec_output [lindex $got 1]
- if [string match "" $exec_output] then {
- set compression_used ""
- } else {
- set compression_used "yes"
- }
- if { ![binutils_assemble_flags $srcdir/$subdir/dw2-2.S ${compressedfile2}.o --compress-debug-sections] } then {
- unsupported "compressed debug sections"
- return
- }
- if { ![binutils_assemble_flags $srcdir/$subdir/dw2-3.S ${testfile3}.o --nocompress-debug-sections] } then {
- unsupported "compressed debug sections"
- return
- }
- if { ![binutils_assemble_flags $srcdir/$subdir/dw2-3.S ${compressedfile3}.o --compress-debug-sections] } then {
- unsupported "compressed debug sections"
- return
- }
- remote_file host delete ${libfile}.a
- set got [binutils_run $AR "rc ${libfile}.a ${compressedfile}.o ${compressedfile2}.o ${compressedfile3}.o"]
- 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}.o ${copyfile}.o"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- } else {
- send_log "cmp ${compressedfile}.o ${copyfile}.o\n"
- verbose "cmp ${compressedfile}.o ${copyfile}.o"
- set src1 ${compressedfile}.o
- 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}.o ${copyfile}.o"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- } else {
- send_log "cmp ${testfile}.o ${copyfile}.o\n"
- verbose "cmp ${testfile}.o ${copyfile}.o"
- set src1 ${testfile}.o
- 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}.a ${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"
- }
- }
- # Xfail this test if there are no compressed sections.
- setup_xfail "$compression_used$target_triplet"
- set testname "objcopy compress debug sections in archive with zlib-gnu"
- set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gnu ${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"
- }
- setup_xfail "$compression_used$target_triplet"
- 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}.o" "" "/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 testname "objdump compress debug sections 3"
- set got [remote_exec host "$OBJDUMP -W ${compressedfile3}.o" "" "/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-3.W] } then {
- fail "$testname"
- } else {
- pass "$testname"
- }
- if { ![binutils_assemble_flags $srcdir/$subdir/dw2-empty.S ${testfile}empty.o --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}empty.o ${copyfile}empty.o"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- } else {
- send_log "cmp ${testfile}empty.o ${copyfile}empty.o\n"
- verbose "cmp ${testfile}empty.o ${copyfile}empty.o"
- set src1 ${testfile}empty.o
- set src2 ${copyfile}empty.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)"
- }
- }
- if ![is_remote host] {
- set tempfile tmpdir/debug_str.o
- set copyfile tmpdir/debug_str.copy
- } else {
- set tempfile [remote_download host tmpdir/debug_str.o]
- set copyfile debug_str.copy
- }
- run_dump_test "debug_str"
- if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S ${compressedfile}gabi.o --compress-debug-sections=zlib-gabi] } then {
- fail "compressed debug sections with zlib-gabi"
- return
- }
- if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S ${compressedfile}gnu.o --compress-debug-sections=zlib-gnu] } then {
- fail "compressed debug sections with zlib-gnu"
- return
- }
- set src1 ${compressedfile}gabi.o
- set src2 ${compressedfile}.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 {
- fail "compressed debug sections with zlib-gabi"
- return
- }
- if { ![binutils_assemble_flags $srcdir/$subdir/dw2-2.S ${compressedfile2}gabi.o --compress-debug-sections=zlib-gabi] } then {
- fail "compressed debug sections with zlib-gabi"
- return
- }
- if { ![binutils_assemble_flags $srcdir/$subdir/dw2-2.S ${compressedfile2}gnu.o --compress-debug-sections=zlib-gnu] } then {
- fail "compressed debug sections with zlib-gnu"
- return
- }
- set src1 ${compressedfile2}gabi.o
- set src2 ${compressedfile2}.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 {
- fail "compressed debug sections with zlib-gabi"
- return
- }
- if { ![binutils_assemble_flags $srcdir/$subdir/dw2-3.S ${compressedfile3}gabi.o --compress-debug-sections=zlib-gabi] } then {
- fail "compressed debug sections with zlib-gabi"
- return
- }
- set testname "readelf -t zlib-gabi compress debug sections"
- set got [remote_exec host "$READELF -t --wide ${compressedfile3}gabi.o" "" "/dev/null" "tmpdir/dw2-3.rt"]
- if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
- fail "$testname (reason: unexpected output)"
- send_log "$got\n"
- }
- if { [regexp_diff tmpdir/dw2-3.rt $srcdir/$subdir/dw2-3.rt] } then {
- fail "$testname"
- } else {
- pass "$testname"
- }
- set testname "readelf -S zlib-gabi compress debug sections"
- set got [remote_exec host "$READELF -S --wide ${compressedfile3}gabi.o" "" "/dev/null" "tmpdir/dw2-3.rS"]
- if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
- fail "$testname (reason: unexpected output)"
- send_log "$got\n"
- }
- if { [regexp_diff tmpdir/dw2-3.rS $srcdir/$subdir/dw2-3.rS] } then {
- fail "$testname"
- } else {
- pass "$testname"
- }
- if { ![binutils_assemble_flags $srcdir/$subdir/dw2-3.S ${compressedfile3}gnu.o --compress-debug-sections=zlib-gnu] } then {
- fail "compressed debug sections with zlib-gnu"
- return
- }
- set src1 ${compressedfile3}gabi.o
- set src2 ${compressedfile3}.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 {
- fail "compressed debug sections with zlib-gabi"
- return
- }
- remote_file host delete ${libfile}gabi.a
- set got [binutils_run $AR "rc ${libfile}gabi.a ${compressedfile}gabi.o ${compressedfile2}gabi.o ${compressedfile3}gabi.o"]
- if ![string match "" $got] then {
- fail "compressed debug sections"
- return
- }
- set testname "objcopy compress debug sections with zlib-gabi"
- set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gabi ${testfile}.o ${copyfile}gabi.o"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- return
- }
- send_log "cmp ${compressedfile}gabi.o ${copyfile}gabi.o\n"
- verbose "cmp ${compressedfile}gabi.o ${copyfile}gabi.o"
- set src1 ${compressedfile}gabi.o
- set src2 ${copyfile}gabi.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 {
- send_log "$exec_output\n"
- verbose "$exec_output" 1
- fail "objcopy ($testname)"
- } else {
- pass "objcopy ($testname)"
- }
- set testname "objcopy decompress compressed debug sections with zlib-gabi"
- set got [binutils_run $OBJCOPY "--decompress-debug-sections ${compressedfile}gabi.o ${copyfile}gabi.o"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- return
- }
- send_log "cmp ${testfile}.o ${copyfile}gabi.o\n"
- verbose "cmp ${testfile}.o ${copyfile}gabi.o"
- set src1 ${testfile}.o
- set src2 ${copyfile}gabi.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 {
- send_log "$exec_output\n"
- verbose "$exec_output" 1
- fail "objcopy ($testname)"
- } else {
- pass "objcopy ($testname)"
- }
- set testname "objcopy zlib-gnu compress debug sections with zlib-gabi"
- set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gabi ${compressedfile}.o ${copyfile}gabi.o"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- return
- }
- send_log "cmp ${compressedfile}gabi.o ${copyfile}gabi.o\n"
- verbose "cmp ${compressedfile}gabi.o ${copyfile}gabi.o"
- set src1 ${compressedfile}gabi.o
- set src2 ${copyfile}gabi.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 {
- send_log "$exec_output\n"
- verbose "$exec_output" 1
- fail "objcopy ($testname)"
- } else {
- pass "objcopy ($testname)"
- }
- set testname "objcopy zlib-gabi compress debug sections with zlib-gnu"
- set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gnu ${compressedfile}gabi.o ${copyfile}gnu.o"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- return
- }
- send_log "cmp ${compressedfile}gnu.o ${copyfile}gnu.o\n"
- verbose "cmp ${compressedfile}gnu.o ${copyfile}gnu.o"
- set src1 ${compressedfile}gnu.o
- set src2 ${copyfile}gnu.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 {
- send_log "$exec_output\n"
- verbose "$exec_output" 1
- fail "objcopy ($testname)"
- } else {
- pass "objcopy ($testname)"
- }
- set testname "objcopy compress debug sections 3 with zlib-gabi"
- set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gabi ${testfile3}.o ${copyfile}gabi.o"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- return
- }
- send_log "cmp ${compressedfile3}gabi.o ${copyfile}gabi.o\n"
- verbose "cmp ${compressedfile3}gabi.o ${copyfile}gabi.o"
- set src1 ${compressedfile3}gabi.o
- set src2 ${copyfile}gabi.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 {
- send_log "$exec_output\n"
- verbose "$exec_output" 1
- fail "objcopy ($testname)"
- } else {
- pass "objcopy ($testname)"
- }
- set testname "objcopy decompress compressed debug sections 3 with zlib-gabi"
- set got [binutils_run $OBJCOPY "--decompress-debug-sections ${compressedfile3}gabi.o ${copyfile}gabi.o"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- return
- }
- send_log "cmp ${testfile3}.o ${copyfile}gabi.o\n"
- verbose "cmp ${testfile3}.o ${copyfile}gabi.o"
- set src1 ${testfile3}.o
- set src2 ${copyfile}gabi.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 {
- send_log "$exec_output\n"
- verbose "$exec_output" 1
- fail "objcopy ($testname)"
- } else {
- pass "objcopy ($testname)"
- }
- set testname "objcopy zlib-gnu compress debug sections 3 with zlib-gabi"
- set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gabi ${compressedfile3}.o ${copyfile}gabi.o"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- return
- }
- send_log "cmp ${compressedfile3}gabi.o ${copyfile}gabi.o\n"
- verbose "cmp ${compressedfile3}gabi.o ${copyfile}gabi.o"
- set src1 ${compressedfile3}gabi.o
- set src2 ${copyfile}gabi.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 {
- send_log "$exec_output\n"
- verbose "$exec_output" 1
- fail "objcopy ($testname)"
- } else {
- pass "objcopy ($testname)"
- }
- set testname "objcopy zlib-gabi compress debug sections 3 with zlib-gnu"
- set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gnu ${compressedfile3}gabi.o ${copyfile}gnu.o"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- return
- }
- send_log "cmp ${compressedfile3}gnu.o ${copyfile}gnu.o\n"
- verbose "cmp ${compressedfile3}gnu.o ${copyfile}gnu.o"
- set src1 ${compressedfile3}gnu.o
- set src2 ${copyfile}gnu.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 {
- send_log "$exec_output\n"
- verbose "$exec_output" 1
- fail "objcopy ($testname)"
- } else {
- pass "objcopy ($testname)"
- }
- set testname "objcopy zlib-gnu compress debug sections 3"
- set got [binutils_run $OBJCOPY "${compressedfile3}gnu.o ${copyfile}gnu.o"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- return
- }
- send_log "cmp ${compressedfile3}gnu.o ${copyfile}gnu.o\n"
- verbose "cmp ${compressedfile3}gnu.o ${copyfile}gnu.o"
- set src1 ${compressedfile3}gnu.o
- set src2 ${copyfile}gnu.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 {
- send_log "$exec_output\n"
- verbose "$exec_output" 1
- fail "objcopy ($testname)"
- } else {
- pass "objcopy ($testname)"
- }
- set testname "objcopy zlib-gnu compress debug sections 3"
- set got [binutils_run $OBJCOPY "${compressedfile3}gnu.o ${copyfile}gnu.o"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- return
- }
- send_log "cmp ${compressedfile3}gnu.o ${copyfile}gnu.o\n"
- verbose "cmp ${compressedfile3}gnu.o ${copyfile}gnu.o"
- set src1 ${compressedfile3}gnu.o
- set src2 ${copyfile}gnu.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 {
- send_log "$exec_output\n"
- verbose "$exec_output" 1
- fail "objcopy ($testname)"
- } else {
- pass "objcopy ($testname)"
- }
- set testname "objcopy decompress debug sections in archive with zlib-gabi"
- set got [binutils_run $OBJCOPY "--decompress-debug-sections ${libfile}gabi.a ${copyfile}gabi.a"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- } else {
- set got [remote_exec host "$READELF -S --wide ${copyfile}gabi.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 with zlib-gabi"
- set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gabi ${copyfile}gabi.a ${compressedcopyfile}gabi.a"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- } else {
- set got [remote_exec host "$OBJDUMP -W ${compressedcopyfile}gabi.a" "" "/dev/null" "tmpdir/libdw2-compressedgabi.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-compressedgabi.out $srcdir/$subdir/libdw2-compressedgabi.out] } then {
- fail "$testname"
- } else {
- pass "$testname"
- }
- }
- set testname "objdump compress debug sections 3 with zlib-gabi"
- set got [remote_exec host "$OBJDUMP -W ${compressedfile3}gabi.o" "" "/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-3gabi.W] } then {
- fail "$testname"
- } else {
- pass "$testname"
- }
- proc convert_test { testname as_flags objcop_flags } {
- global srcdir
- global subdir
- global testfile3
- global copyfile
- global OBJCOPY
- global OBJDUMP
- if { ![binutils_assemble_flags $srcdir/$subdir/dw2-3.S ${testfile3}.o "$as_flags"] } then {
- unresolved "$testname"
- return
- }
- set got [binutils_run $OBJCOPY "$objcop_flags ${testfile3}.o ${copyfile}.o"]
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- return
- }
- set got [remote_exec host "$OBJDUMP -W ${copyfile}.o" "" "/dev/null" "objdump.out"]
- if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
- fail "$testname (reason: unexpected output)"
- send_log $got
- send_log "\n"
- return
- }
- if { [regexp_diff objdump.out $srcdir/$subdir/dw2-3.W] } then {
- fail "$testname"
- } else {
- pass "$testname"
- }
- }
- if { ([istarget "x86_64-*-elf*"]
- || [istarget "x86_64-*-linux*"]) } {
- set testname "Convert x86-64 object with zlib-gabi to x32 (1)"
- convert_test "$testname" "--compress-debug-sections=zlib-gabi --64" "-O elf32-x86-64"
- set testname "Convert x86-64 object with zlib-gabi to x32 (2)"
- convert_test "$testname" "--compress-debug-sections=zlib-gabi --64" "-O elf32-x86-64 --compress-debug-sections=zlib-gnu"
- set testname "Convert x86-64 object with zlib-gabi to x32 (3)"
- convert_test "$testname" "--compress-debug-sections=zlib-gabi --64" "-O elf32-x86-64 --decompress-debug-sections"
- set testname "Convert x86-64 object with zlib-gnu to x32 (1)"
- convert_test "$testname" "--compress-debug-sections=zlib-gnu --64" "-O elf32-x86-64"
- set testname "Convert x86-64 object with zlib-gnu to x32 (2)"
- convert_test "$testname" "--compress-debug-sections=zlib-gnu --64" "-O elf32-x86-64 --compress-debug-sections=zlib-gabi"
- set testname "Convert x86-64 object with zlib-gnu to x32 (3)"
- convert_test "$testname" "--compress-debug-sections=zlib-gnu --64" "-O elf32-x86-64 --decompress-debug-sections"
- set testname "Convert x86-64 object to x32 (1)"
- convert_test "$testname" "--nocompress-debug-sections --64" "-O elf32-x86-64"
- set testname "Convert x86-64 object to x32 (2)"
- convert_test "$testname" "--nocompress-debug-sections --64" "-O elf32-x86-64 --compress-debug-sections=zlib-gabi"
- set testname "Convert x86-64 object to x32 (3)"
- convert_test "$testname" "--nocompress-debug-sections --64" "-O elf32-x86-64 --compress-debug-sections=zlib-gnu"
- set testname "Convert x32 object with zlib-gabi to x86-64 (1)"
- convert_test "$testname" "--compress-debug-sections=zlib-gabi --x32" "-O elf64-x86-64"
- set testname "Convert x32 object with zlib-gabi to x86-64 (2)"
- convert_test "$testname" "--compress-debug-sections=zlib-gabi --x32" "-O elf64-x86-64 --compress-debug-sections=zlib-gnu"
- set testname "Convert x32 object with zlib-gabi to x86-64 (3)"
- convert_test "$testname" "--compress-debug-sections=zlib-gabi --x32" "-O elf64-x86-64 --decompress-debug-sections"
- set testname "Convert x32 object with zlib-gnu to x86-64 (1)"
- convert_test "$testname" "--compress-debug-sections=zlib-gnu --x32" "-O elf64-x86-64"
- set testname "Convert x32 object with zlib-gnu to x86-64 (2)"
- convert_test "$testname" "--compress-debug-sections=zlib-gnu --x32" "-O elf64-x86-64 --compress-debug-sections=zlib-gabi"
- set testname "Convert x32 object with zlib-gnu to x86-64 (3)"
- convert_test "$testname" "--compress-debug-sections=zlib-gnu --x32" "-O elf64-x86-64 --decompress-debug-sections"
- set testname "Convert x32 object to x86-64 (1)"
- convert_test "$testname" "--nocompress-debug-sections --x32" "-O elf64-x86-64"
- set testname "Convert x32 object to x86-64 (2)"
- convert_test "$testname" "--nocompress-debug-sections --x32" "-O elf64-x86-64 --compress-debug-sections=zlib-gabi"
- set testname "Convert x32 object to x86-64 (3)"
- convert_test "$testname" "--nocompress-debug-sections --x32" "-O elf64-x86-64 --compress-debug-sections=zlib-gnu"
- }
|