Browse Source
ld.bootstrap to ld-bootstrap, ld.cdtest to ld-cdtest, and ld.scripts to ld-scripts.gdb-4_18-branch
16 changed files with 3 additions and 220 deletions
@ -1,75 +0,0 @@ |
|||
# Expect script for LD Bootstrap Tests |
|||
# Copyright (C) 1993,1994 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. */ |
|||
# |
|||
# Written by Jeffrey Wheat (cassidy@cygnus.com) |
|||
# Rewritten by Ian Lance Taylor (ian@cygnus.com) |
|||
# |
|||
|
|||
# Make sure that ld can bootstrap itself. |
|||
|
|||
# This test can only be run if ld generates native executables. |
|||
if ![isnative] {return} |
|||
|
|||
# This test can only be run if we have the ld build directory, since |
|||
# we need the object files. |
|||
if {$ld != "$objdir/ld.new"} {return} |
|||
|
|||
# Bootstrap ld. First link the object files together using -r, in |
|||
# order to test -r. Then link the result into an executable, ld1, to |
|||
# really test -r. Use ld1 to link a fresh ld, ld2. Use ld2 to link a |
|||
# new ld, ld3. ld2 and ld3 should be identical. |
|||
|
|||
foreach flags {"" "--static" "--traditional-format" "--no-keep-memory"} { |
|||
if {"$flags" != ""} { |
|||
set testname "bootstrap with $flags" |
|||
} else { |
|||
set testname "bootstrap" |
|||
} |
|||
|
|||
if ![ld_relocate $ld tmpdir/ld-partial.o "$flags $OFILES"] { |
|||
fail $testname |
|||
return |
|||
} |
|||
|
|||
if ![ld_link $ld tmpdir/ld1 "$flags tmpdir/ld-partial.o $BFDLIB $LIBIBERTY"] { |
|||
fail $testname |
|||
return |
|||
} |
|||
|
|||
if ![ld_link tmpdir/ld1 tmpdir/ld2 "$flags $OFILES $BFDLIB $LIBIBERTY"] { |
|||
fail $testname |
|||
return |
|||
} |
|||
|
|||
if ![ld_link tmpdir/ld2 tmpdir/ld3 "$flags $OFILES $BFDLIB $LIBIBERTY"] { |
|||
fail $testname |
|||
return |
|||
} |
|||
|
|||
send_log "cmp tmpdir/ld2 tmpdir/ld3\n" |
|||
verbose "cmp tmpdir/ld2 tmpdir/ld3" |
|||
catch "exec cmp tmpdir/ld2 tmpdir/ld3" exec_output |
|||
|
|||
if [string match "" $exec_output] then { |
|||
pass $testname |
|||
} else { |
|||
send_log "$exec_output\n" |
|||
verbose "$exec_output" 1 |
|||
|
|||
fail $testname |
|||
} |
|||
} |
|||
@ -1,24 +0,0 @@ |
|||
// Class Foo
|
|||
|
|||
#pragma interface |
|||
|
|||
#define FOOLISH_NUMBER -4711 |
|||
|
|||
#ifndef FOO_MSG_LEN |
|||
#define FOO_MSG_LEN 80 |
|||
#endif |
|||
|
|||
class Foo { |
|||
static int foos; |
|||
int i; |
|||
const len = FOO_MSG_LEN; |
|||
char message[len]; |
|||
public: |
|||
static void init_foo (); |
|||
static int nb_foos() { return foos; } |
|||
Foo(); |
|||
Foo( char* message); |
|||
Foo(const Foo&); |
|||
Foo & operator= (const Foo&); |
|||
~Foo (); |
|||
}; |
|||
@ -1,87 +0,0 @@ |
|||
# Expect script for LD cdtest Tests |
|||
# Copyright (C) 1993,1994 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. */ |
|||
# |
|||
# Written by Jeffrey Wheat (cassidy@cygnus.com) |
|||
# Rewritten by Ian Lance Taylor (ian@cygnus.com) |
|||
# |
|||
|
|||
# Make sure that constructors are handled correctly. |
|||
|
|||
# This test requires running the executable generated by ld. |
|||
if ![isnative] {return} |
|||
|
|||
if ![ld_compile "$CXX $CXXFLAGS -fgnu-linker" $srcdir$subdir/cdtest-foo.cc tmpdir/cdtest-foo.o] { |
|||
return |
|||
} |
|||
if ![ld_compile "$CXX $CXXFLAGS -fgnu-linker" $srcdir$subdir/cdtest-bar.cc tmpdir/cdtest-bar.o] { |
|||
return |
|||
} |
|||
if ![ld_compile "$CXX $CXXFLAGS -fgnu-linker" $srcdir$subdir/cdtest-main.cc tmpdir/cdtest-main.o] { |
|||
return |
|||
} |
|||
|
|||
if ![ld_link $ld tmpdir/cdtest {tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o}] { |
|||
fail cdtest |
|||
} else { |
|||
send_log "tmpdir/cdtest >tmpdir/cdtest.out\n" |
|||
verbose "tmpdir/cdtest >tmpdir/cdtest.out" |
|||
catch "exec tmpdir/cdtest >tmpdir/cdtest.out" exec_output |
|||
if ![string match "" $exec_output] then { |
|||
send_log "$exec_output\n" |
|||
verbose "$exec_output" 1 |
|||
fail cdtest |
|||
} else { |
|||
send_log "diff tmpdir/cdtest.out $srcdir$subdir/cdtest.dat\n" |
|||
verbose "diff tmpdir/cdtest.out $srcdir$subdir/cdtest.dat" |
|||
catch "exec diff tmpdir/cdtest.out $srcdir$subdir/cdtest.dat" exec_output |
|||
if [string match "" $exec_output] then { |
|||
pass cdtest |
|||
} else { |
|||
send_log "$exec_output\n" |
|||
verbose "$exec_output" 1 |
|||
fail cdtest |
|||
} |
|||
} |
|||
} |
|||
|
|||
if ![ld_relocate $ld tmpdir/cdtest.o {-Ur tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o}] { |
|||
fail "cdtest with -Ur" |
|||
} else { |
|||
if ![ld_link $ld tmpdir/cdtest tmpdir/cdtest.o] { |
|||
fail "cdtest with -Ur" |
|||
} else { |
|||
send_log "tmpdir/cdtest >tmpdir/cdtest.out\n" |
|||
verbose "tmpdir/cdtest >tmpdir/cdtest.out" |
|||
catch "exec tmpdir/cdtest >tmpdir/cdtest.out" exec_output |
|||
if ![string match "" $exec_output] then { |
|||
send_log "$exec_output\n" |
|||
verbose "$exec_output" 1 |
|||
fail "cdtest with -Ur" |
|||
} else { |
|||
send_log "diff tmpdir/cdtest.out $srcdir$subdir/cdtest.dat\n" |
|||
verbose "diff tmpdir/cdtest.out $srcdir$subdir/cdtest.dat" |
|||
catch "exec diff tmpdir/cdtest.out $srcdir$subdir/cdtest.dat" exec_output |
|||
if [string match "" $exec_output] then { |
|||
pass "cdtest with -Ur" |
|||
} else { |
|||
send_log "$exec_output\n" |
|||
verbose "$exec_output" 1 |
|||
fail "cdtest with -Ur" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -1,31 +0,0 @@ |
|||
# Test basic linker script functionality |
|||
# By Ian Lance Taylor, Cygnus Support |
|||
|
|||
if ![ld_assemble $as $srcdir$subdir/script.s tmpdir/script.o] { return } |
|||
|
|||
if ![ld_simple_link $ld tmpdir/script "-T $srcdir$subdir/script.t tmpdir/script.o"] { |
|||
fail script |
|||
} else { |
|||
if [ld_nm $nm tmpdir/script] { |
|||
if {![info exists nm_output(text_start)] \ |
|||
|| ![info exists nm_output(text_end)] \ |
|||
|| ![info exists nm_output(data_start)] \ |
|||
|| ![info exists nm_output(data_end)]} { |
|||
fail "script (bad output from $nm)" |
|||
} else { |
|||
if {$nm_output(text_start) != 0x100} { |
|||
fail "script (text_start == $nm_output(text_start))" |
|||
} else { if {$nm_output(text_end) < 0x104 \ |
|||
|| $nm_output(text_end) > 0x110} { |
|||
fail "script (text_end == $nm_output(text_end))" |
|||
} else { if {$nm_output(data_start) != 0x1000} { |
|||
fail "script (data_start == $nm_output(data_start))" |
|||
} else { if {$nm_output(data_end) < 0x1004 \ |
|||
|| $nm_output(data_end) > 0x1010} { |
|||
fail "script (data_end == $nm_output(data_end))" |
|||
} else { |
|||
pass script |
|||
} } } } |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue