ChangeLog
config
lib
-ld.bootstrap
-ld.cdtest
-ld.scripts
+ld-bootstrap
+ld-cdtest
+ld-scripts
Things-to-lose:
+++ /dev/null
-# 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
- }
-}
+++ /dev/null
-// 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 ();
-};
+++ /dev/null
-# 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"
- }
- }
- }
-}
+++ /dev/null
-# 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
- } } } }
- }
- }
-}