From 3a921b779a8187744dc8085220928b1a0cdb809b Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sat, 10 Nov 2001 01:17:58 +0000 Subject: [PATCH] 2001-11-09 H.J. Lu * ld-discard/discard.exp: New. Test ld discard. * ld-discard/discard.ld: Likewise. * ld-discard/exit.s: Likewise. * ld-discard/extern.d: Likewise. * ld-discard/extern.s: Likewise. * ld-discard/start.d: Likewise. * ld-discard/start.s: Likewise. * ld-discard/static.d: Likewise. * ld-discard/static.s: Likewise. --- ld/testsuite/ChangeLog | 12 ++++++++++++ ld/testsuite/ld-discard/discard.exp | 36 ++++++++++++++++++++++++++++++++++++ ld/testsuite/ld-discard/discard.ld | 9 +++++++++ ld/testsuite/ld-discard/exit.s | 6 ++++++ ld/testsuite/ld-discard/extern.d | 3 +++ ld/testsuite/ld-discard/extern.s | 12 ++++++++++++ ld/testsuite/ld-discard/start.d | 4 ++++ ld/testsuite/ld-discard/start.s | 6 ++++++ ld/testsuite/ld-discard/static.d | 3 +++ ld/testsuite/ld-discard/static.s | 10 ++++++++++ 10 files changed, 101 insertions(+) create mode 100644 ld/testsuite/ld-discard/discard.exp create mode 100644 ld/testsuite/ld-discard/discard.ld create mode 100644 ld/testsuite/ld-discard/exit.s create mode 100644 ld/testsuite/ld-discard/extern.d create mode 100644 ld/testsuite/ld-discard/extern.s create mode 100644 ld/testsuite/ld-discard/start.d create mode 100644 ld/testsuite/ld-discard/start.s create mode 100644 ld/testsuite/ld-discard/static.d create mode 100644 ld/testsuite/ld-discard/static.s diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 3f98269..104a1d9 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,15 @@ +2001-11-09 H.J. Lu + + * ld-discard/discard.exp: New. Test ld discard. + * ld-discard/discard.ld: Likewise. + * ld-discard/exit.s: Likewise. + * ld-discard/extern.d: Likewise. + * ld-discard/extern.s: Likewise. + * ld-discard/start.d: Likewise. + * ld-discard/start.s: Likewise. + * ld-discard/static.d: Likewise. + * ld-discard/static.s: Likewise. + 2001-11-02 H.J. Lu * ld-elfvsb/elfvsb.exp: Add the "ld -r" test. diff --git a/ld/testsuite/ld-discard/discard.exp b/ld/testsuite/ld-discard/discard.exp new file mode 100644 index 0000000..da60e90 --- /dev/null +++ b/ld/testsuite/ld-discard/discard.exp @@ -0,0 +1,36 @@ +# Expect script for ld discard tests +# Copyright 2001 Free Software Foundation, Inc. +# +# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# Written by Hans-Peter Nilsson (hp@axis.com) +# H.J. Lu (hjl@gnu.org) +# + +# Test for ELF here, so we don't have to qualify on ELF specifically +# in every .d-file. + +if { ![istarget *-*-linux*] && ![istarget *-*-gnu] && ![istarget *-*-elf] } { + return +} + +load_lib ld-lib.exp + +set test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]] +for { set i 0 } { $i < [llength $test_list] } { incr i } { + # We need to strip the ".d", but can leave the dirname. + verbose [file rootname [lindex $test_list $i]] + run_dump_test [file rootname [lindex $test_list $i]] +} diff --git a/ld/testsuite/ld-discard/discard.ld b/ld/testsuite/ld-discard/discard.ld new file mode 100644 index 0000000..a7ff4a5 --- /dev/null +++ b/ld/testsuite/ld-discard/discard.ld @@ -0,0 +1,9 @@ +ENTRY(_start) +SECTIONS +{ + /* Sections to be discarded */ + /DISCARD/ : { + *(.data.exit) + *(.text.exit) + } +} diff --git a/ld/testsuite/ld-discard/exit.s b/ld/testsuite/ld-discard/exit.s new file mode 100644 index 0000000..80acef5 --- /dev/null +++ b/ld/testsuite/ld-discard/exit.s @@ -0,0 +1,6 @@ +.globl data + .section .data.exit,"aw" +data: +.globl text + .section .text.exit,"aw" +text: diff --git a/ld/testsuite/ld-discard/extern.d b/ld/testsuite/ld-discard/extern.d new file mode 100644 index 0000000..3c76be2 --- /dev/null +++ b/ld/testsuite/ld-discard/extern.d @@ -0,0 +1,3 @@ +#source: extern.s +#ld: -T $srcdir/$subdir/discard.ld +#error: undefined reference to `data' diff --git a/ld/testsuite/ld-discard/extern.s b/ld/testsuite/ld-discard/extern.s new file mode 100644 index 0000000..da8e276 --- /dev/null +++ b/ld/testsuite/ld-discard/extern.s @@ -0,0 +1,12 @@ +.globl data + .section .data.exit,"aw" +data: +.globl text + .section .text.exit,"aw" +text: +.text +.globl _start +_start: + .long data + .section .debug_info + .long text diff --git a/ld/testsuite/ld-discard/start.d b/ld/testsuite/ld-discard/start.d new file mode 100644 index 0000000..943f11c --- /dev/null +++ b/ld/testsuite/ld-discard/start.d @@ -0,0 +1,4 @@ +#source: start.s +#source: exit.s +#ld: -T $srcdir/$subdir/discard.ld +#error: undefined reference to `data' diff --git a/ld/testsuite/ld-discard/start.s b/ld/testsuite/ld-discard/start.s new file mode 100644 index 0000000..82290c6 --- /dev/null +++ b/ld/testsuite/ld-discard/start.s @@ -0,0 +1,6 @@ +.text +.globl _start +_start: + .long data + .section .debug_info + .long text diff --git a/ld/testsuite/ld-discard/static.d b/ld/testsuite/ld-discard/static.d new file mode 100644 index 0000000..e259cb4 --- /dev/null +++ b/ld/testsuite/ld-discard/static.d @@ -0,0 +1,3 @@ +#source: static.s +#ld: -T $srcdir/$subdir/discard.ld +#error: undefined reference to `local symbols in discarded section \.data\.exit' diff --git a/ld/testsuite/ld-discard/static.s b/ld/testsuite/ld-discard/static.s new file mode 100644 index 0000000..b251c8b --- /dev/null +++ b/ld/testsuite/ld-discard/static.s @@ -0,0 +1,10 @@ + .section .data.exit,"aw" +data: + .section .text.exit,"aw" +text: +.text +.globl _start +_start: + .long data + .section .debug_info + .long text -- 2.7.4