aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ChangeLog3
-rw-r--r--ld/testsuite/ld-cris/dso-3.s20
-rw-r--r--ld/testsuite/ld-cris/libdso-3.d14
-rw-r--r--ld/testsuite/ld-cris/noglob1.d8
-rw-r--r--ld/testsuite/ld-cris/noglob1.s4
5 files changed, 49 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index f29197f..15dc6f4 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2002-07-09 Hans-Peter Nilsson <hp@axis.com>
+ * ld-cris/libdso-3.d, ld-cris/dso-3.s, ld-cris/noglob1.s,
+ ld-cris/noglob1.d: New tests.
+
* ld-cris/libdso-1.d: Tweak for change in size of dynamic sections.
2002-07-03 Alan Modra <amodra@bigpond.net.au>
diff --git a/ld/testsuite/ld-cris/dso-3.s b/ld/testsuite/ld-cris/dso-3.s
new file mode 100644
index 0000000..6610504
--- /dev/null
+++ b/ld/testsuite/ld-cris/dso-3.s
@@ -0,0 +1,20 @@
+; The visibility definitions here override the default
+; definitions in the object where the symbols are defined. We
+; check STV_HIDDEN and STV_PROTECTED with function and object
+; definition respectively. This is by no means a full coverage,
+; just enough to be a test-case for the bug described in
+; libdso-3.d. Use ld-elfvsb for general visibility tests.
+
+ .hidden expobj
+ .protected expfn
+
+ .text
+ .global globsym
+ .type globsym,@function
+globsym:
+ move.d expfn:GOTOFF,$r3
+ move.d expfn:PLTG,$r3
+ move.d expfn:PLT,$r3
+ move.d expobj:GOTOFF,$r3
+.Lfe1:
+ .size globsym,.Lfe1-globsym
diff --git a/ld/testsuite/ld-cris/libdso-3.d b/ld/testsuite/ld-cris/libdso-3.d
new file mode 100644
index 0000000..9111797
--- /dev/null
+++ b/ld/testsuite/ld-cris/libdso-3.d
@@ -0,0 +1,14 @@
+#source: expdyn1.s
+#source: dso-3.s
+#as: --pic --no-underscore
+#ld: --shared -m crislinux
+#objdump: -R
+
+# GOTOFF relocs against global symbols with non-default
+# visibility got a linker error. (A non-default visibility is
+# to be treated as a local definition for the reloc.) We also
+# make sure we don't get unnecessary dynamic relocations.
+
+.*: file format elf32-cris
+
+DYNAMIC RELOCATION RECORDS \(none\)
diff --git a/ld/testsuite/ld-cris/noglob1.d b/ld/testsuite/ld-cris/noglob1.d
new file mode 100644
index 0000000..a07cef8
--- /dev/null
+++ b/ld/testsuite/ld-cris/noglob1.d
@@ -0,0 +1,8 @@
+#ld:
+#objdump: -p
+
+# Check that we can link an object that doesn't have any global symbols;
+# where elf_sym_hashes(bfd) is NULL.
+
+.*: file format elf32.*-cris
+#pass
diff --git a/ld/testsuite/ld-cris/noglob1.s b/ld/testsuite/ld-cris/noglob1.s
new file mode 100644
index 0000000..62111bf
--- /dev/null
+++ b/ld/testsuite/ld-cris/noglob1.s
@@ -0,0 +1,4 @@
+; See noglob1.d
+ .text
+x:
+ move.d .,$r0