summaryrefslogtreecommitdiffstats
path: root/binutils-2.21/ld/testsuite/ld-discard
diff options
context:
space:
mode:
Diffstat (limited to 'binutils-2.21/ld/testsuite/ld-discard')
-rw-r--r--binutils-2.21/ld/testsuite/ld-discard/discard.exp47
-rw-r--r--binutils-2.21/ld/testsuite/ld-discard/discard.ld9
-rw-r--r--binutils-2.21/ld/testsuite/ld-discard/exit.s6
-rw-r--r--binutils-2.21/ld/testsuite/ld-discard/extern.d13
-rw-r--r--binutils-2.21/ld/testsuite/ld-discard/extern.s13
-rw-r--r--binutils-2.21/ld/testsuite/ld-discard/start.d8
-rw-r--r--binutils-2.21/ld/testsuite/ld-discard/start.s7
-rw-r--r--binutils-2.21/ld/testsuite/ld-discard/static.d7
-rw-r--r--binutils-2.21/ld/testsuite/ld-discard/static.s11
-rw-r--r--binutils-2.21/ld/testsuite/ld-discard/zero-range.d8
-rw-r--r--binutils-2.21/ld/testsuite/ld-discard/zero-range.s13
-rw-r--r--binutils-2.21/ld/testsuite/ld-discard/zero-rel.d8
-rw-r--r--binutils-2.21/ld/testsuite/ld-discard/zero-rel.s11
13 files changed, 161 insertions, 0 deletions
diff --git a/binutils-2.21/ld/testsuite/ld-discard/discard.exp b/binutils-2.21/ld/testsuite/ld-discard/discard.exp
new file mode 100644
index 0000000..deb5dfd
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-discard/discard.exp
@@ -0,0 +1,47 @@
+# Expect script for ld discard tests
+# Copyright 2001, 2002, 2005, 2007 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, 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 hppa*64*-*-hpux*] \
+ && ![istarget *-*-elf] } {
+ return
+}
+
+if { [istarget *-*-linux*aout*] \
+ || [istarget *-*-linux*oldld*] } {
+ 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/binutils-2.21/ld/testsuite/ld-discard/discard.ld b/binutils-2.21/ld/testsuite/ld-discard/discard.ld
new file mode 100644
index 0000000..a7ff4a5
--- /dev/null
+++ b/binutils-2.21/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/binutils-2.21/ld/testsuite/ld-discard/exit.s b/binutils-2.21/ld/testsuite/ld-discard/exit.s
new file mode 100644
index 0000000..c852978
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-discard/exit.s
@@ -0,0 +1,6 @@
+ .globl data
+ .section .data.exit,"aw"
+data:
+ .globl text
+ .section .text.exit,"ax"
+text:
diff --git a/binutils-2.21/ld/testsuite/ld-discard/extern.d b/binutils-2.21/ld/testsuite/ld-discard/extern.d
new file mode 100644
index 0000000..bb596d5
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-discard/extern.d
@@ -0,0 +1,13 @@
+#source: extern.s
+#ld: -T discard.ld
+#error: .*data.* referenced in section `\.text' of tmpdir/dump0.o: defined in discarded section `\.data\.exit' of tmpdir/dump0.o
+#objdump: -p
+#xfail: arc-*-* d30v-*-* dlx-*-* i960-*-* or32-*-* pj*-*-*
+#xfail: m68hc12-*-* m6812-*-*
+#pass
+# The expected warning used to start with "`data' referenced..." but
+# this has two problems: 1) It does not include the name of the linker
+# command which will be present in the message, eg "../ld-new"
+# 2) Targets which define EXTERN_FORCE_RELOC to 0 in their
+# gas/config/tc-xxx.h file will convert the symbol in the reloc from
+# "data" to the section symbol ".data.exit".
diff --git a/binutils-2.21/ld/testsuite/ld-discard/extern.s b/binutils-2.21/ld/testsuite/ld-discard/extern.s
new file mode 100644
index 0000000..464be8b
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-discard/extern.s
@@ -0,0 +1,13 @@
+ .globl data
+ .section .data.exit,"aw"
+data:
+ .globl text
+ .section .text.exit,"ax"
+text:
+ .text
+ .globl _start
+_start:
+ .long data
+ .section .debug_info
+ .long 0
+ .long text
diff --git a/binutils-2.21/ld/testsuite/ld-discard/start.d b/binutils-2.21/ld/testsuite/ld-discard/start.d
new file mode 100644
index 0000000..06207ee
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-discard/start.d
@@ -0,0 +1,8 @@
+#source: start.s
+#source: exit.s
+#ld: -T discard.ld
+#error: `data' referenced in section `\.text' of tmpdir/dump0.o: defined in discarded section `\.data\.exit' of tmpdir/dump1.o
+#objdump: -p
+#xfail: arc-*-* d30v-*-* dlx-*-* i960-*-* or32-*-* pj*-*-*
+#xfail: m68hc12-*-* m6812-*-*
+#pass
diff --git a/binutils-2.21/ld/testsuite/ld-discard/start.s b/binutils-2.21/ld/testsuite/ld-discard/start.s
new file mode 100644
index 0000000..70f4187
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-discard/start.s
@@ -0,0 +1,7 @@
+ .text
+ .globl _start
+_start:
+ .long data
+ .section .debug_info
+ .long 0
+ .long text
diff --git a/binutils-2.21/ld/testsuite/ld-discard/static.d b/binutils-2.21/ld/testsuite/ld-discard/static.d
new file mode 100644
index 0000000..b001d72
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-discard/static.d
@@ -0,0 +1,7 @@
+#source: static.s
+#ld: -T discard.ld
+#error: `(\.data\.exit|data)' referenced in section `\.text' of tmpdir/dump0.o: defined in discarded section `\.data\.exit' of tmpdir/dump0.o
+#objdump: -p
+#xfail: arc-*-* d30v-*-* dlx-*-* i960-*-* or32-*-* pj*-*-*
+#xfail: m68hc12-*-* m6812-*-*
+#pass
diff --git a/binutils-2.21/ld/testsuite/ld-discard/static.s b/binutils-2.21/ld/testsuite/ld-discard/static.s
new file mode 100644
index 0000000..a0f4569
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-discard/static.s
@@ -0,0 +1,11 @@
+ .section .data.exit,"aw"
+data:
+ .section .text.exit,"ax"
+text:
+ .text
+ .globl _start
+_start:
+ .long data
+ .section .debug_info
+ .long 0
+ .long text
diff --git a/binutils-2.21/ld/testsuite/ld-discard/zero-range.d b/binutils-2.21/ld/testsuite/ld-discard/zero-range.d
new file mode 100644
index 0000000..26b709e
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-discard/zero-range.d
@@ -0,0 +1,8 @@
+#source: zero-range.s
+#ld: -T discard.ld
+#objdump: -s -j .debug_ranges
+
+.*: file format .*elf.*
+
+Contents of section .debug_ranges:
+ 0000 (01)?000000(01)? (01)?000000(01)? 00000000 00000000 .*
diff --git a/binutils-2.21/ld/testsuite/ld-discard/zero-range.s b/binutils-2.21/ld/testsuite/ld-discard/zero-range.s
new file mode 100644
index 0000000..e16caf4
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-discard/zero-range.s
@@ -0,0 +1,13 @@
+ .text
+ .globl _start
+_start:
+
+ .section .debug_ranges
+ .long .Ltext
+ .long .Ltext + 2
+ .long 0
+ .long 0
+
+ .section .text.exit,"ax"
+.Ltext:
+ .long 0
diff --git a/binutils-2.21/ld/testsuite/ld-discard/zero-rel.d b/binutils-2.21/ld/testsuite/ld-discard/zero-rel.d
new file mode 100644
index 0000000..1f73775
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-discard/zero-rel.d
@@ -0,0 +1,8 @@
+#source: zero-rel.s
+#ld: -T discard.ld
+#objdump: -s -j .debug_info
+
+.*: file format .*elf.*
+
+Contents of section .debug_info:
+ 0000 0+( 0+)? +(\.+) .*
diff --git a/binutils-2.21/ld/testsuite/ld-discard/zero-rel.s b/binutils-2.21/ld/testsuite/ld-discard/zero-rel.s
new file mode 100644
index 0000000..f3f0b3c
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-discard/zero-rel.s
@@ -0,0 +1,11 @@
+ .text
+ .globl _start
+_start:
+
+ .section .debug_info
+ .long .Ltext
+ .long .Ltext + 2
+
+ .section .text.exit,"ax"
+.Ltext:
+ .long 0