summaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-selective
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2002-02-05 06:45:16 +0000
committerHans-Peter Nilsson <hp@axis.com>2002-02-05 06:45:16 +0000
commitb6205702a27eb7a32cd6b430f8acc4ab59fdfdea (patch)
treec2f969a1eecb35a3fd94018818dc3404a665f04f /ld/testsuite/ld-selective
parent9eab2c15f37cc8b86abd42cd1413254eef89208c (diff)
downloadbinutils-redhat-b6205702a27eb7a32cd6b430f8acc4ab59fdfdea.tar.gz
* ld-selective/keepdot.d, ld-selective/keepdot.ld,
ld-selective/keepdot.s, ld-selective/keepdot0.d: New tests. * ld-selective/sel-dump.exp: New, driver for run_dump_test:s.
Diffstat (limited to 'ld/testsuite/ld-selective')
-rw-r--r--ld/testsuite/ld-selective/keepdot.d9
-rw-r--r--ld/testsuite/ld-selective/keepdot.ld5
-rw-r--r--ld/testsuite/ld-selective/keepdot.s17
-rw-r--r--ld/testsuite/ld-selective/keepdot0.d11
-rw-r--r--ld/testsuite/ld-selective/keepdot0.ld6
-rw-r--r--ld/testsuite/ld-selective/sel-dump.exp34
6 files changed, 82 insertions, 0 deletions
diff --git a/ld/testsuite/ld-selective/keepdot.d b/ld/testsuite/ld-selective/keepdot.d
new file mode 100644
index 0000000000..47b6ae2391
--- /dev/null
+++ b/ld/testsuite/ld-selective/keepdot.d
@@ -0,0 +1,9 @@
+#ld: --gc-sections -Bstatic -e _start -T$srcdir/$subdir/keepdot.ld
+#name: Preserve default . = 0
+#objdump: -h
+
+# Check that GC:ing does not mess up the default value for dot.
+
+#...
+[ ]+.[ ]+\.myinit[ ]+0+[48][ ]+0+[ ]+0+ .*
+#pass
diff --git a/ld/testsuite/ld-selective/keepdot.ld b/ld/testsuite/ld-selective/keepdot.ld
new file mode 100644
index 0000000000..d8a2b386bd
--- /dev/null
+++ b/ld/testsuite/ld-selective/keepdot.ld
@@ -0,0 +1,5 @@
+SECTIONS
+{
+ .myinit : { KEEP (*(.myinit)) }
+ .mytext : { *(.mytext*) *(.text*) }
+}
diff --git a/ld/testsuite/ld-selective/keepdot.s b/ld/testsuite/ld-selective/keepdot.s
new file mode 100644
index 0000000000..6d8d979149
--- /dev/null
+++ b/ld/testsuite/ld-selective/keepdot.s
@@ -0,0 +1,17 @@
+ .text
+ .stabs "int:t(0,1)=r(0,1);-2147483648;2147483647;",128,0,0,0
+ .stabs "char:t(0,2)=r(0,2);0;127;",128,0,0,0
+
+ .section .myinit,"ax",@progbits
+ .stabs "barxfoo:F(0,20)",36,0,2,_bar
+ .global _bar
+ .global _start
+_start:
+_bar:
+ .long 123
+
+ .section .mytext.baz,"ax",@progbits
+ .stabs "baz:F(0,20)",36,0,6,_baz
+ .global _baz
+_baz:
+ .long 456
diff --git a/ld/testsuite/ld-selective/keepdot0.d b/ld/testsuite/ld-selective/keepdot0.d
new file mode 100644
index 0000000000..e2750801d2
--- /dev/null
+++ b/ld/testsuite/ld-selective/keepdot0.d
@@ -0,0 +1,11 @@
+#source: keepdot.s
+#ld: --gc-sections -Bstatic -e _start -T$srcdir/$subdir/keepdot0.ld
+#name: Preserve explicit . = 0
+#objdump: -h
+
+# Check that GC:ing does not mess up the value for dot when specified
+# as 0.
+
+#...
+[ ]+.[ ]+\.myinit[ ]+0+[48][ ]+0+[ ]+0+ .*
+#pass
diff --git a/ld/testsuite/ld-selective/keepdot0.ld b/ld/testsuite/ld-selective/keepdot0.ld
new file mode 100644
index 0000000000..9f053d3cc2
--- /dev/null
+++ b/ld/testsuite/ld-selective/keepdot0.ld
@@ -0,0 +1,6 @@
+SECTIONS
+{
+ . = 0x0;
+ .myinit : { KEEP (*(.myinit)) }
+ .mytext : { *(.mytext*) *(.text*) }
+}
diff --git a/ld/testsuite/ld-selective/sel-dump.exp b/ld/testsuite/ld-selective/sel-dump.exp
new file mode 100644
index 0000000000..ee4de621aa
--- /dev/null
+++ b/ld/testsuite/ld-selective/sel-dump.exp
@@ -0,0 +1,34 @@
+# Expect script for ld selective linking tests running run_dump_test
+# Copyright 2002 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.
+
+# 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]]
+}