12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- # Expect script for ld-spu tests
- # Copyright (C) 2006-2022 Free Software Foundation, Inc.
- #
- # This file is part of the GNU Binutils.
- #
- # 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 "spu-*-*"] } {
- return
- }
- proc embed_test { } {
- global subdir srcdir
- global AS ASFLAGS LD LDFLAGS READELF READELFFLAGS
- set cmd "$AS $ASFLAGS -o tmpdir/ear.o $srcdir/$subdir/ear.s"
- send_log "$cmd\n"
- set cmdret [catch "exec $cmd" comp_output]
- set comp_output [prune_warnings $comp_output]
- if { $cmdret != 0 || $comp_output != ""} then {
- send_log "$comp_output\n"
- verbose "$comp_output" 3
- fail "ear assembly"
- return
- }
- set cmd "$LD $LDFLAGS -o tmpdir/ear tmpdir/ear.o"
- send_log "$cmd\n"
- set cmdret [catch "exec $cmd" comp_output]
- set comp_output [prune_warnings $comp_output]
- if { $cmdret != 0 || $comp_output != ""} then {
- send_log "$comp_output\n"
- verbose "$comp_output" 3
- fail "ear link"
- return
- }
- set cmd "sh $srcdir/../../binutils/embedspu.sh -m32 ear tmpdir/ear tmpdir/embed.o"
- send_log "$cmd\n"
- set cmdret [catch "exec $cmd" comp_output]
- set comp_output [prune_warnings $comp_output]
- if { $cmdret != 0 || $comp_output != ""} then {
- send_log "$comp_output\n"
- verbose "$comp_output" 3
- if { [regexp "unknown pseudo-op: `.reloc'" $comp_output] } {
- untested "ear embedspu"
- return
- }
- fail "ear embedspu"
- return
- }
- set cmd "$READELF $READELFFLAGS -r --wide tmpdir/embed.o > tmpdir/embed.out"
- send_log "$cmd\n"
- set cmdret [catch "exec $cmd" comp_output]
- set comp_output [prune_warnings $comp_output]
- if { $cmdret != 0 || $comp_output != ""} then {
- send_log "$comp_output\n"
- verbose "$comp_output" 3
- fail "ear embed readelf"
- return
- }
- if { [regexp_diff "tmpdir/embed.out" $srcdir/$subdir/embed.rd] } then {
- fail "ear embed output"
- return
- }
- pass "ear embed"
- }
- set rd_test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]]
- foreach sputest $rd_test_list {
- verbose [file rootname $sputest]
- run_dump_test [file rootname $sputest]
- }
- if { [isbuild "powerpc*-*-linux*"] } {
- embed_test
- }
|