* ld-cris/hiddef1.d, ld-cris/hiddef1.d, ld-cris/hidrefgotplt1.s:
authorHans-Peter Nilsson <hp@axis.com>
Tue, 7 Sep 2004 18:32:27 +0000 (18:32 +0000)
committerHans-Peter Nilsson <hp@axis.com>
Tue, 7 Sep 2004 18:32:27 +0000 (18:32 +0000)
New test.

ld/testsuite/ChangeLog
ld/testsuite/ld-cris/hiddef1.d [new file with mode: 0644]
ld/testsuite/ld-cris/hiddef1.s [new file with mode: 0644]
ld/testsuite/ld-cris/hidrefgotplt1.s [new file with mode: 0644]

index a75a44544a58e3daefbe2fac17f7a35beda7d4e1..28aa2e948a95de5a43b343b969a717835619671c 100644 (file)
@@ -1,3 +1,8 @@
+2004-09-07  Hans-Peter Nilsson  <hp@axis.com>
+
+       * ld-cris/hiddef1.d, ld-cris/hiddef1.d, ld-cris/hidrefgotplt1.s:
+       New test.
+
 2004-09-03  Tomer Levi  <Tomer.Levi@nsc.com>
 
        * ld-crx: New directory.
diff --git a/ld/testsuite/ld-cris/hiddef1.d b/ld/testsuite/ld-cris/hiddef1.d
new file mode 100644 (file)
index 0000000..0d6c4a8
--- /dev/null
@@ -0,0 +1,28 @@
+#source: gotrel1.s
+#source: hiddef1.s
+#source: hidrefgotplt1.s
+#ld: -shared -m crislinux
+#as: --pic --no-underscore -I$srcdir/$subdir
+#readelf: -S -s -r
+
+# Regression test for mishandling of GOTPLT relocs against a
+# hidden symbol, where the reloc is found after the symbol
+# definition.  There should be no PLT, just a single GOT entry
+# from a GOTPLT reloc moved to the .got section.  It's hard to
+# check for absence of a .plt section, so we just check the
+# number of symbols and sections.  When the number of symbols
+# and sections change, make sure that there's no .plt and that
+# dsofn is hidden (not exported as a dynamic symbol).
+
+There are 13 section headers, starting at offset 0x[0-9a-f]+:
+#...
+  \[[ 0-9]+\] \.got              PROGBITS        [0-9a-f]+ [0-9a-f]+ 0+10 04  WA  0   0  4
+#...
+Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
+#...
+[0-9a-f]+  0+c R_CRIS_RELATIVE                              [0-9a-f]+
+#...
+Symbol table '\.dynsym' contains 10 entries:
+#...
+Symbol table '\.symtab' contains 21 entries:
+#pass
diff --git a/ld/testsuite/ld-cris/hiddef1.s b/ld/testsuite/ld-cris/hiddef1.s
new file mode 100644 (file)
index 0000000..ac24c81
--- /dev/null
@@ -0,0 +1,2 @@
+ .include "dso-1.s"
+ .hidden dsofn
diff --git a/ld/testsuite/ld-cris/hidrefgotplt1.s b/ld/testsuite/ld-cris/hidrefgotplt1.s
new file mode 100644 (file)
index 0000000..020ff16
--- /dev/null
@@ -0,0 +1,2 @@
+ .text
+ move.d [$r0+dsofn:GOTPLT],$r1