aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/testsuite/ChangeLog6
-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
7 files changed, 88 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index e416339..af62038 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2002-02-05 Hans-Peter Nilsson <hp@axis.com>
+
+ * 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.
+
2002-02-04 Hans-Peter Nilsson <hp@bitrange.com>
* ld-mmix/bpo-18.d, ld-mmix/bpo64addr.ld, ld-mmix/bpo-18m.d,
diff --git a/ld/testsuite/ld-selective/keepdot.d b/ld/testsuite/ld-selective/keepdot.d
new file mode 100644
index 0000000..47b6ae2
--- /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 0000000..d8a2b38
--- /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 0000000..6d8d979
--- /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 0000000..e275080
--- /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 0000000..9f053d3
--- /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 0000000..ee4de62
--- /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]]
+}