aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite')
-rw-r--r--ld/testsuite/ChangeLog3
-rw-r--r--ld/testsuite/ld-powerpc/powerpc.exp46
-rw-r--r--ld/testsuite/ld-powerpc/reloc.d16
-rw-r--r--ld/testsuite/ld-powerpc/reloc.s9
4 files changed, 74 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index eb3ef07..cadeeea 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2002-09-30 Alan Modra <amodra@bigpond.net.au>
+ * ld-powerpc/reloc.s, ld-powerpc/reloc.d: New.
+ * ld-powerpc/powerpc.exp: New.
+
* ld-i386/reloc.s, ld-i386/reloc.d: New.
* ld-i386/i386.exp: Run new test.
diff --git a/ld/testsuite/ld-powerpc/powerpc.exp b/ld/testsuite/ld-powerpc/powerpc.exp
new file mode 100644
index 0000000..6915b48
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/powerpc.exp
@@ -0,0 +1,46 @@
+# Expect script for ld-powerpc tests
+# Copyright (C) 2002 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+if { ![istarget "powerpc*-*-*"] } {
+ return
+}
+
+# ELF only at the moment.
+
+if { [istarget "*-*-macos*"] || [istarget "*-*-netware*"]
+ || [istarget "*-*-pe"] || [istarget "*-*-winnt*"]
+ || [istarget "*-*-cygwin*"] || [istarget "*-*-aix*"]
+ || [istarget "*-*-beos*"] } {
+ return
+}
+
+# List contains test-items with 3 items followed by 2 lists:
+# 0:name 1:ld options 2:assembler options
+# 3:filenames of assembler files 4: action and options. 5: name of output file
+
+# Actions:
+# objdump: Apply objdump options on result. Compare with regex (last arg).
+# nm: Apply nm options on result. Compare with regex (last arg).
+# readelf: Apply readelf options on result. Compare with regex (last arg).
+
+set ppcelftests {
+ {"Reloc section order" "-shared" "" {reloc.s}
+ {{objdump -hw reloc.d}} "reloc.so"}
+}
+
+run_ld_link_tests $ppcelftests
diff --git a/ld/testsuite/ld-powerpc/reloc.d b/ld/testsuite/ld-powerpc/reloc.d
new file mode 100644
index 0000000..80a22bf
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/reloc.d
@@ -0,0 +1,16 @@
+# Test that orphan reloc sections are placed before .rela.plt even when
+# .rela.plt is the only reloc section. Also tests that orphan non-alloc
+# reloc sections go after alloc sections.
+
+#source: reloc.s
+#ld: -shared
+#objdump: -hw
+
+.*: +file format elf.*
+#...
+.*\.relaplatypus.*
+#...
+.*\.rela\.plt.*
+#...
+.*\.relaechidna.*
+#pass
diff --git a/ld/testsuite/ld-powerpc/reloc.s b/ld/testsuite/ld-powerpc/reloc.s
new file mode 100644
index 0000000..4e66151
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/reloc.s
@@ -0,0 +1,9 @@
+ .section echidna
+ .long .text
+
+ .section platypus,"ax"
+ .long .text
+
+ .text
+ b _start@plt
+ nop