ChangeLog
config
lib
-ld.bootstrap
-ld.cdtest
-ld.scripts
+ld-bootstrap
+ld-cdtest
+ld-scripts
Things-to-lose:
--- /dev/null
+# .Sanitize for ld dejagnu testsuites
+
+# Each directory to survive it's way into a release will need a file
+# like this one called "./.Sanitize". All keyword lines must exist,
+# and must exist in the order specified by this file. Each directory
+# in the tree will be processed, top down, in the following order..
+
+# Hash started lines like this one are comments and will be deleted
+# before anything else is done. Blank lines will also be squashed
+# out.
+
+# The lines between the "Do-first:" line and the "Things-to-keep:"
+# line are executed as a /bin/sh shell script before anything else is
+# done in this directory.
+
+Do-first:
+
+# All files listed between the "Things-to-keep:" line and the
+# "Do-last:" line will be kept. All other files will be removed.
+# Directories listed in this section will have their own Sanitize
+# called. Directories not listed will be removed in their entirety
+# with rm -rf.
+
+Things-to-keep:
+
+bootstrap.exp
+
+Things-to-lose:
+
+# The lines between the "Do-last:" line and the end of the file
+# are executed as a /bin/sh shell script after everything else is
+# done.
+
+Do-last:
+
+#eof
--- /dev/null
+# .Sanitize for ld dejagnu testsuites
+
+# Each directory to survive it's way into a release will need a file
+# like this one called "./.Sanitize". All keyword lines must exist,
+# and must exist in the order specified by this file. Each directory
+# in the tree will be processed, top down, in the following order..
+
+# Hash started lines like this one are comments and will be deleted
+# before anything else is done. Blank lines will also be squashed
+# out.
+
+# The lines between the "Do-first:" line and the "Things-to-keep:"
+# line are executed as a /bin/sh shell script before anything else is
+# done in this directory.
+
+Do-first:
+
+# All files listed between the "Things-to-keep:" line and the
+# "Do-last:" line will be kept. All other files will be removed.
+# Directories listed in this section will have their own Sanitize
+# called. Directories not listed will be removed in their entirety
+# with rm -rf.
+
+Things-to-keep:
+
+cdtest-foo.cc
+cdtest-foo.h
+cdtest-bar.cc
+cdtest-main.cc
+cdtest.dat
+cdtest.exp
+
+Things-to-lose:
+
+# The lines between the "Do-last:" line and the end of the file
+# are executed as a /bin/sh shell script after everything else is
+# done.
+
+Do-last:
+
+#eof
--- /dev/null
+// test program for Class Foo
+
+#include "cdtest-foo.h"
+
+static Foo static_foo( "static_foo");
+
+Foo f()
+{
+ Foo x;
+ return x;
+}
+
+void g()
+{
+ Foo other_foo1 = Foo( "other_foo1"), other_foo2 = Foo( "other_foo2");
+ other_foo2 = other_foo1;
+}
--- /dev/null
+// Class Foo
+#pragma implementation
+
+
+// We don't use header files, since we only want to see, whether the
+// compiler is installed properly.
+//
+#if (__GNUG__ == 2)
+typedef __SIZE_TYPE__ size_t;
+#else
+typedef unsigned int size_t;
+#endif
+
+extern "C" {
+ char *strncpy (char* dest, const char* dest, size_t len);
+ int printf (const char*, ...);
+};
+
+#include "cdtest-foo.h"
+
+int Foo::foos = 0;
+
+void Foo::init_foo ()
+{
+ printf ("BROKENLY calling Foo::init_foo from __init_start; size_of(Foo) = %d\n", sizeof(Foo));
+ foos = FOOLISH_NUMBER;
+}
+
+
+Foo::Foo ()
+{
+ i = ++foos;
+ strncpy (message, "default-foo", len);
+#ifdef WITH_ADDR
+ printf ("Constructing Foo(%d) \"default-foo\" at %08x\n", i, this);
+#else
+ printf ("Constructing Foo(%d) \"default-foo\"\n", i);
+#endif
+}
+
+Foo::Foo (char* msg)
+{
+ i = ++foos;
+ strncpy( message, msg, len);
+#ifdef WITH_ADDR
+ printf ( "Constructing Foo(%d) \"%s\" at %08x\n", i, message, this);
+#else
+ printf ( "Constructing Foo(%d) \"%s\"\n", i, message);
+#endif
+}
+
+
+Foo::Foo (const Foo& foo)
+{
+ i = ++foos;
+#ifdef WITH_ADDR
+ printf ("Initializing Foo(%d) \"%s\" at %08x with Foo(%d) %08x\n",
+ i, foo.message, this, foo.i, &foo);
+#else
+ printf ("Initializing Foo(%d) \"%s\" with Foo(%d)\n",i, foo.message, foo.i);
+#endif
+ for ( int k = 0; k < FOO_MSG_LEN; k++) message[k] = foo.message[k];
+}
+
+
+Foo& Foo::operator= (const Foo& foo)
+{
+#ifdef WITH_ADDR
+ printf ("Copying Foo(%d) \"%s\" at %08x to Foo(%d) %08x\n",
+ foo.i, foo.message, &foo, i, this);
+#else
+ printf ("Copying Foo(%d) \"%s\" to Foo(%d)\n", foo.i, foo.message, i);
+#endif
+ for ( int k = 0; k < FOO_MSG_LEN; k++) message[k] = foo.message[k];
+ return *this;
+}
+
+
+Foo::~Foo ()
+{
+ foos--;
+#ifdef WITH_ADDR
+ printf ("Destructing Foo(%d) \"%s\" at %08x (remaining foos: %d)\n",
+ i, message, this, foos);
+#else
+ printf ("Destructing Foo(%d) \"%s\" (remaining foos: %d)\n",
+ i, message, foos);
+#endif
+}
--- /dev/null
+Constructing Foo(1) "static_foo"
+Constructing Foo(2) "static_foo"
+Constructing Foo(3) "automatic_foo"
+Constructing Foo(4) "default-foo"
+Initializing Foo(5) "default-foo" with Foo(4)
+Destructing Foo(4) "default-foo" (remaining foos: 4)
+Constructing Foo(5) "other_foo1"
+Constructing Foo(6) "other_foo2"
+Copying Foo(5) "other_foo1" to Foo(6)
+Destructing Foo(6) "other_foo1" (remaining foos: 5)
+Destructing Foo(5) "other_foo1" (remaining foos: 4)
+Destructing Foo(5) "default-foo" (remaining foos: 3)
+Destructing Foo(3) "automatic_foo" (remaining foos: 2)
+Destructing Foo(2) "static_foo" (remaining foos: 1)
+Destructing Foo(1) "static_foo" (remaining foos: 0)
--- /dev/null
+# .Sanitize for ld dejagnu testsuites
+
+# Each directory to survive it's way into a release will need a file
+# like this one called "./.Sanitize". All keyword lines must exist,
+# and must exist in the order specified by this file. Each directory
+# in the tree will be processed, top down, in the following order..
+
+# Hash started lines like this one are comments and will be deleted
+# before anything else is done. Blank lines will also be squashed
+# out.
+
+# The lines between the "Do-first:" line and the "Things-to-keep:"
+# line are executed as a /bin/sh shell script before anything else is
+# done in this directory.
+
+Do-first:
+
+# All files listed between the "Things-to-keep:" line and the
+# "Do-last:" line will be kept. All other files will be removed.
+# Directories listed in this section will have their own Sanitize
+# called. Directories not listed will be removed in their entirety
+# with rm -rf.
+
+Things-to-keep:
+
+defined.exp
+defined.s
+defined.t
+script.exp
+script.s
+script.t
+
+Things-to-lose:
+
+# The lines between the "Do-last:" line and the end of the file
+# are executed as a /bin/sh shell script after everything else is
+# done.
+
+Do-last:
+
+#eof
--- /dev/null
+# Test DEFINED in a linker script.
+# By Ian Lance Taylor, Cygnus Support.
+
+if ![ld_assemble $as $srcdir$subdir/defined.s tmpdir/def.o] { return }
+
+set prms_id 5699
+
+if ![ld_simple_link $ld tmpdir/def "-T $srcdir$subdir/defined.t tmpdir/def.o"] {
+ fail DEFINED
+} else {
+ if [ld_nm $nm tmpdir/def] {
+ if {![info exists nm_output(value1)] \
+ || ![info exists nm_output(value2)]} {
+ fail "DEFINED (bad output from $nm)"
+ } else {
+ if {$nm_output(value1) != 1} {
+ fail "DEFINED (value1 == $nm_output(value1))"
+ } else {
+ if {$nm_output(value2) != 2} {
+ fail "DEFINED (value2 == $nm_output(value2))"
+ } else {
+ pass DEFINED
+ }
+ }
+ }
+ }
+}
+
+set prms_id 0
--- /dev/null
+ .globl defined
+ defined = 1
--- /dev/null
+SECTIONS {
+ .text : { *(.text) }
+}
+value1 = DEFINED (defined) ? 1 : 2;
+value2 = DEFINED (undefined) ? 1 : 2;
--- /dev/null
+ .text
+text_symbol:
+ .long 1
+ .data
+data_symbol:
+ .long 2
--- /dev/null
+SECTIONS
+{
+ .text 0x100 : {
+ text_start = .;
+ *(.text)
+ text_end = .;
+ }
+ . = 0x1000;
+ .data : {
+ data_start = .;
+ *(.data)
+ data_end = .;
+ }
+}
+++ /dev/null
-# .Sanitize for ld dejagnu testsuites
-
-# Each directory to survive it's way into a release will need a file
-# like this one called "./.Sanitize". All keyword lines must exist,
-# and must exist in the order specified by this file. Each directory
-# in the tree will be processed, top down, in the following order..
-
-# Hash started lines like this one are comments and will be deleted
-# before anything else is done. Blank lines will also be squashed
-# out.
-
-# The lines between the "Do-first:" line and the "Things-to-keep:"
-# line are executed as a /bin/sh shell script before anything else is
-# done in this directory.
-
-Do-first:
-
-# All files listed between the "Things-to-keep:" line and the
-# "Do-last:" line will be kept. All other files will be removed.
-# Directories listed in this section will have their own Sanitize
-# called. Directories not listed will be removed in their entirety
-# with rm -rf.
-
-Things-to-keep:
-
-bootstrap.exp
-
-Things-to-lose:
-
-# The lines between the "Do-last:" line and the end of the file
-# are executed as a /bin/sh shell script after everything else is
-# done.
-
-Do-last:
-
-#eof
+++ /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
-# .Sanitize for ld dejagnu testsuites
-
-# Each directory to survive it's way into a release will need a file
-# like this one called "./.Sanitize". All keyword lines must exist,
-# and must exist in the order specified by this file. Each directory
-# in the tree will be processed, top down, in the following order..
-
-# Hash started lines like this one are comments and will be deleted
-# before anything else is done. Blank lines will also be squashed
-# out.
-
-# The lines between the "Do-first:" line and the "Things-to-keep:"
-# line are executed as a /bin/sh shell script before anything else is
-# done in this directory.
-
-Do-first:
-
-# All files listed between the "Things-to-keep:" line and the
-# "Do-last:" line will be kept. All other files will be removed.
-# Directories listed in this section will have their own Sanitize
-# called. Directories not listed will be removed in their entirety
-# with rm -rf.
-
-Things-to-keep:
-
-cdtest-foo.cc
-cdtest-foo.h
-cdtest-bar.cc
-cdtest-main.cc
-cdtest.dat
-cdtest.exp
-
-Things-to-lose:
-
-# The lines between the "Do-last:" line and the end of the file
-# are executed as a /bin/sh shell script after everything else is
-# done.
-
-Do-last:
-
-#eof
+++ /dev/null
-// test program for Class Foo
-
-#include "cdtest-foo.h"
-
-static Foo static_foo( "static_foo");
-
-Foo f()
-{
- Foo x;
- return x;
-}
-
-void g()
-{
- Foo other_foo1 = Foo( "other_foo1"), other_foo2 = Foo( "other_foo2");
- other_foo2 = other_foo1;
-}
+++ /dev/null
-// Class Foo
-#pragma implementation
-
-
-// We don't use header files, since we only want to see, whether the
-// compiler is installed properly.
-//
-#if (__GNUG__ == 2)
-typedef __SIZE_TYPE__ size_t;
-#else
-typedef unsigned int size_t;
-#endif
-
-extern "C" {
- char *strncpy (char* dest, const char* dest, size_t len);
- int printf (const char*, ...);
-};
-
-#include "cdtest-foo.h"
-
-int Foo::foos = 0;
-
-void Foo::init_foo ()
-{
- printf ("BROKENLY calling Foo::init_foo from __init_start; size_of(Foo) = %d\n", sizeof(Foo));
- foos = FOOLISH_NUMBER;
-}
-
-
-Foo::Foo ()
-{
- i = ++foos;
- strncpy (message, "default-foo", len);
-#ifdef WITH_ADDR
- printf ("Constructing Foo(%d) \"default-foo\" at %08x\n", i, this);
-#else
- printf ("Constructing Foo(%d) \"default-foo\"\n", i);
-#endif
-}
-
-Foo::Foo (char* msg)
-{
- i = ++foos;
- strncpy( message, msg, len);
-#ifdef WITH_ADDR
- printf ( "Constructing Foo(%d) \"%s\" at %08x\n", i, message, this);
-#else
- printf ( "Constructing Foo(%d) \"%s\"\n", i, message);
-#endif
-}
-
-
-Foo::Foo (const Foo& foo)
-{
- i = ++foos;
-#ifdef WITH_ADDR
- printf ("Initializing Foo(%d) \"%s\" at %08x with Foo(%d) %08x\n",
- i, foo.message, this, foo.i, &foo);
-#else
- printf ("Initializing Foo(%d) \"%s\" with Foo(%d)\n",i, foo.message, foo.i);
-#endif
- for ( int k = 0; k < FOO_MSG_LEN; k++) message[k] = foo.message[k];
-}
-
-
-Foo& Foo::operator= (const Foo& foo)
-{
-#ifdef WITH_ADDR
- printf ("Copying Foo(%d) \"%s\" at %08x to Foo(%d) %08x\n",
- foo.i, foo.message, &foo, i, this);
-#else
- printf ("Copying Foo(%d) \"%s\" to Foo(%d)\n", foo.i, foo.message, i);
-#endif
- for ( int k = 0; k < FOO_MSG_LEN; k++) message[k] = foo.message[k];
- return *this;
-}
-
-
-Foo::~Foo ()
-{
- foos--;
-#ifdef WITH_ADDR
- printf ("Destructing Foo(%d) \"%s\" at %08x (remaining foos: %d)\n",
- i, message, this, foos);
-#else
- printf ("Destructing Foo(%d) \"%s\" (remaining foos: %d)\n",
- i, message, foos);
-#endif
-}
+++ /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
-Constructing Foo(1) "static_foo"
-Constructing Foo(2) "static_foo"
-Constructing Foo(3) "automatic_foo"
-Constructing Foo(4) "default-foo"
-Initializing Foo(5) "default-foo" with Foo(4)
-Destructing Foo(4) "default-foo" (remaining foos: 4)
-Constructing Foo(5) "other_foo1"
-Constructing Foo(6) "other_foo2"
-Copying Foo(5) "other_foo1" to Foo(6)
-Destructing Foo(6) "other_foo1" (remaining foos: 5)
-Destructing Foo(5) "other_foo1" (remaining foos: 4)
-Destructing Foo(5) "default-foo" (remaining foos: 3)
-Destructing Foo(3) "automatic_foo" (remaining foos: 2)
-Destructing Foo(2) "static_foo" (remaining foos: 1)
-Destructing Foo(1) "static_foo" (remaining foos: 0)
+++ /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
-# .Sanitize for ld dejagnu testsuites
-
-# Each directory to survive it's way into a release will need a file
-# like this one called "./.Sanitize". All keyword lines must exist,
-# and must exist in the order specified by this file. Each directory
-# in the tree will be processed, top down, in the following order..
-
-# Hash started lines like this one are comments and will be deleted
-# before anything else is done. Blank lines will also be squashed
-# out.
-
-# The lines between the "Do-first:" line and the "Things-to-keep:"
-# line are executed as a /bin/sh shell script before anything else is
-# done in this directory.
-
-Do-first:
-
-# All files listed between the "Things-to-keep:" line and the
-# "Do-last:" line will be kept. All other files will be removed.
-# Directories listed in this section will have their own Sanitize
-# called. Directories not listed will be removed in their entirety
-# with rm -rf.
-
-Things-to-keep:
-
-defined.exp
-defined.s
-defined.t
-script.exp
-script.s
-script.t
-
-Things-to-lose:
-
-# The lines between the "Do-last:" line and the end of the file
-# are executed as a /bin/sh shell script after everything else is
-# done.
-
-Do-last:
-
-#eof
+++ /dev/null
-# Test DEFINED in a linker script.
-# By Ian Lance Taylor, Cygnus Support.
-
-if ![ld_assemble $as $srcdir$subdir/defined.s tmpdir/def.o] { return }
-
-set prms_id 5699
-
-if ![ld_simple_link $ld tmpdir/def "-T $srcdir$subdir/defined.t tmpdir/def.o"] {
- fail DEFINED
-} else {
- if [ld_nm $nm tmpdir/def] {
- if {![info exists nm_output(value1)] \
- || ![info exists nm_output(value2)]} {
- fail "DEFINED (bad output from $nm)"
- } else {
- if {$nm_output(value1) != 1} {
- fail "DEFINED (value1 == $nm_output(value1))"
- } else {
- if {$nm_output(value2) != 2} {
- fail "DEFINED (value2 == $nm_output(value2))"
- } else {
- pass DEFINED
- }
- }
- }
- }
-}
-
-set prms_id 0
+++ /dev/null
- .globl defined
- defined = 1
+++ /dev/null
-SECTIONS {
- .text : { *(.text) }
-}
-value1 = DEFINED (defined) ? 1 : 2;
-value2 = DEFINED (undefined) ? 1 : 2;
+++ /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
- } } } }
- }
- }
-}
+++ /dev/null
- .text
-text_symbol:
- .long 1
- .data
-data_symbol:
- .long 2
+++ /dev/null
-SECTIONS
-{
- .text 0x100 : {
- text_start = .;
- *(.text)
- text_end = .;
- }
- . = 0x1000;
- .data : {
- data_start = .;
- *(.data)
- data_end = .;
- }
-}