* ld-cris/libdso-3.d, ld-cris/dso-3.s, ld-cris/noglob1.s,
authorHans-Peter Nilsson <hp@axis.com>
Tue, 9 Jul 2002 03:46:49 +0000 (03:46 +0000)
committerHans-Peter Nilsson <hp@axis.com>
Tue, 9 Jul 2002 03:46:49 +0000 (03:46 +0000)
ld-cris/noglob1.d: New tests.

ld/testsuite/ChangeLog
ld/testsuite/ld-cris/dso-3.s [new file with mode: 0644]
ld/testsuite/ld-cris/libdso-3.d [new file with mode: 0644]
ld/testsuite/ld-cris/noglob1.d [new file with mode: 0644]
ld/testsuite/ld-cris/noglob1.s [new file with mode: 0644]

index f29197f86f63080724b12180696519f695bfca9d..15dc6f4f37b1c8ca3a88987c802c14057e18866b 100644 (file)
@@ -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 (file)
index 0000000..6610504
--- /dev/null
@@ -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 (file)
index 0000000..9111797
--- /dev/null
@@ -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 (file)
index 0000000..a07cef8
--- /dev/null
@@ -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 (file)
index 0000000..62111bf
--- /dev/null
@@ -0,0 +1,4 @@
+; See noglob1.d
+ .text
+x:
+ move.d .,$r0