1993-08-05 04:14:51 +00:00
|
|
|
#
|
|
|
|
# Expect script for LD Bootstrap Tests
|
|
|
|
# Copyright (C) 1993 Free Software Foundation
|
|
|
|
#
|
|
|
|
# This file 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 2 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|
|
|
#
|
|
|
|
# $Id$
|
|
|
|
#
|
|
|
|
# Written by Jeffrey Wheat (cassidy@cygnus.com)
|
|
|
|
#
|
|
|
|
|
|
|
|
if $tracelevel then {
|
|
|
|
strace $tracelevel
|
|
|
|
}
|
|
|
|
|
|
|
|
set tmpdir /tmp
|
|
|
|
|
|
|
|
set stage 0
|
1993-08-12 23:19:09 +00:00
|
|
|
|
|
|
|
#
|
|
|
|
# link an object using relocation
|
|
|
|
#
|
|
|
|
|
|
|
|
ld_relocate $objdir/ld.new $tmpdir/ld-partial.o $OFILES
|
|
|
|
|
|
|
|
ld_link $objdir/ld.new $tmpdir/ld.partial $tmpdir/ld-partial.o
|
|
|
|
|
|
|
|
ld_link $tmpdir/ld.partial $tmpdir/ld.full $OFILES
|
|
|
|
|
|
|
|
ld_link $tmpdir/ld.full $tmpdir/ld.$stage $OFILES
|
1993-08-05 04:14:51 +00:00
|
|
|
|
|
|
|
#
|
|
|
|
# main test loop
|
|
|
|
#
|
|
|
|
for { set stage 0 } { $stage < 9 } { incr stage } {
|
|
|
|
|
|
|
|
global OFILES
|
|
|
|
global BFDLIB
|
|
|
|
global LIBIBERTY
|
|
|
|
global HOSTING_EMU
|
|
|
|
global HOSTING_CRT0
|
|
|
|
global HOSTING_LIBS
|
|
|
|
|
|
|
|
set status -1
|
|
|
|
|
|
|
|
set tmpstage $stage
|
|
|
|
set ld_old $tmpdir/ld.$stage
|
|
|
|
set ld_new $tmpdir/ld.[incr tmpstage]
|
|
|
|
|
|
|
|
verbose "### Running test $target\n" 1
|
|
|
|
verbose "### stage is now $stage\n" 1
|
|
|
|
|
|
|
|
# link the target with itself
|
1993-08-12 23:19:09 +00:00
|
|
|
ld_link $ld_old $ld_new $OFILES
|
1993-08-05 04:14:51 +00:00
|
|
|
|
|
|
|
# load (compare) the target
|
|
|
|
if ![file exists $ld_old] then {
|
|
|
|
unresolved "$ld_old doesn't exist."
|
|
|
|
}
|
|
|
|
|
|
|
|
if ![file exists $ld_new] then {
|
|
|
|
unresolved "$ld_new doesn't exist."
|
|
|
|
}
|
|
|
|
|
|
|
|
# compare the old and new targets
|
|
|
|
set status [ eval ld_load "$ld_old $ld_new" ]
|
|
|
|
case $status in {
|
|
|
|
"0" {
|
|
|
|
pass "$ld_old == $ld_new"
|
|
|
|
}
|
|
|
|
"1" {
|
|
|
|
fail "$tmptarget aborted"
|
|
|
|
}
|
|
|
|
"-1" {
|
|
|
|
error "Couldn't load $tmptarget."
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
# remove generated targets
|
|
|
|
verbose "### EXEC exec rm -f $ld_old"
|
|
|
|
catch "exec rm -f $ld_old" result
|
|
|
|
}
|
|
|
|
|
|
|
|
# remove last generated targets
|
|
|
|
verbose "### EXEC rm -f $ld_old $ld_new"
|
|
|
|
catch "exec rm -f $ld_old $ld_new" result
|
|
|
|
ld_exit
|