aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/testsuite/ChangeLog4
-rw-r--r--ld/testsuite/ld-cris/dso-1b.s4
-rw-r--r--ld/testsuite/ld-cris/hidedsofns24681
-rw-r--r--ld/testsuite/ld-cris/libdso-12b.d50
-rw-r--r--ld/testsuite/ld-cris/libdso-12c.d41
-rw-r--r--ld/testsuite/ld-cris/libdso-1b.d15
6 files changed, 115 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index c7c1525..b0928f4 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,5 +1,9 @@
2008-12-15 Hans-Peter Nilsson <hp@axis.com>
+ * ld-cris/hidedsofns2468, ld-cris/libdso-12b.d,
+ ld-cris/libdso-12c.d, ld-cris/libdso-1b.d, ld-cris/dso-1b.s: New
+ tests.
+
* ld-cris/got7.s: Correct .size expression.
* ld-cris/tls-e-20a.d: Adjust accordingly.
diff --git a/ld/testsuite/ld-cris/dso-1b.s b/ld/testsuite/ld-cris/dso-1b.s
new file mode 100644
index 0000000..fc7424a
--- /dev/null
+++ b/ld/testsuite/ld-cris/dso-1b.s
@@ -0,0 +1,4 @@
+ .include "dso-1.s"
+ .symver dsofn,expfn@@TST2
+ .include "init.s"
+ .symver _init,expobj@@TST2
diff --git a/ld/testsuite/ld-cris/hidedsofns2468 b/ld/testsuite/ld-cris/hidedsofns2468
new file mode 100644
index 0000000..ebe3d44
--- /dev/null
+++ b/ld/testsuite/ld-cris/hidedsofns2468
@@ -0,0 +1 @@
+TST2 { local: dsofn; dsofn2; dsofn4; dsofn6; dsofn8; };
diff --git a/ld/testsuite/ld-cris/libdso-12b.d b/ld/testsuite/ld-cris/libdso-12b.d
new file mode 100644
index 0000000..87506ed
--- /dev/null
+++ b/ld/testsuite/ld-cris/libdso-12b.d
@@ -0,0 +1,50 @@
+#source: expdyn1.s
+#source: dsov32-1.s
+#source: dsov32-2.s
+#as: --pic --no-underscore --march=v32 --em=criself
+#ld: --shared -m crislinux
+#objdump: -s -T
+
+# Like libdso-12.d but without -z nocombreloc.
+
+.*: file format elf32-cris
+
+DYNAMIC SYMBOL TABLE:
+#...
+0+23e g DF \.text 0+12 dsofn4
+0+234 g DF \.text 0+2 expfn
+0+22fc g DO \.data 0+4 expobj
+#...
+0+236 g DF \.text 0+8 dsofn3
+#...
+0+ D \*UND\* 0+ dsofn
+#...
+Contents of section \.rela\.dyn:
+ 01c0 f8220000 0a040000 00000000 .*
+Contents of section \.rela\.plt:
+ 01cc f0220000 0b020000 00000000 f4220000 .*
+ 01dc 0b0a0000 00000000 .*
+Contents of section \.plt:
+ 01e4 84e20401 7e7a3f7a 04f26ffa bf09b005 .*
+ 01f4 00000000 00000000 00006f0d 0c000000 .*
+ 0204 6ffabf09 b0053f7e 00000000 bf0ed4ff .*
+ 0214 ffffb005 6f0d1000 00006ffa bf09b005 .*
+ 0224 3f7e0c00 0000bf0e baffffff b005 .*
+Contents of section \.text:
+ 0232 b005b005 bfbee2ff ffffb005 7f0da620 .*
+ 0242 00005f0d 1400bfbe b6ffffff b0050000 .*
+Contents of section \.dynamic:
+ 2254 04000000 94000000 05000000 84010000 .*
+ 2264 06000000 d4000000 0a000000 3a000000 .*
+ 2274 0b000000 10000000 03000000 e4220000 .*
+ 2284 02000000 18000000 14000000 07000000 .*
+ 2294 17000000 cc010000 07000000 c0010000 .*
+ 22a4 08000000 0c000000 09000000 0c000000 .*
+ 22b4 00000000 00000000 00000000 00000000 .*
+ 22c4 00000000 00000000 00000000 00000000 .*
+ 22d4 00000000 00000000 00000000 00000000 .*
+Contents of section \.got:
+ 22e4 54220000 00000000 00000000 0a020000 .*
+ 22f4 24020000 00000000 .*
+Contents of section \.data:
+ 22fc 00000000 .*
diff --git a/ld/testsuite/ld-cris/libdso-12c.d b/ld/testsuite/ld-cris/libdso-12c.d
new file mode 100644
index 0000000..37eab56
--- /dev/null
+++ b/ld/testsuite/ld-cris/libdso-12c.d
@@ -0,0 +1,41 @@
+#source: expdyn1.s
+#source: dsov32-1.s
+#source: dsov32-2.s
+#source: dso-1.s
+#as: --pic --no-underscore --march=v32 --em=criself
+#ld: --shared -m crislinux --version-script $srcdir/$subdir/hidedsofns2468
+#objdump: -s -T
+
+# Like libdso-12b.d, but dsofn is defined and the two called functions
+# are forced local using a linker script. There should just be the
+# GOT relocation for expobj in the DSO.
+
+.*: file format elf32-cris
+
+DYNAMIC SYMBOL TABLE:
+#...
+0+202 g[ ]+DF \.text 0+2 Base[ ]+expfn
+0+22bc g[ ]+DO \.data 0+4 Base[ ]+expobj
+#...
+0+204 g[ ]+DF \.text 0+8 Base[ ]+dsofn3
+#...
+Contents of section \.rela\.dyn:
+ 01f4 b8220000 0a040000 00000000 .*
+Contents of section \.text:
+ 0200 b005b005 bfbe1c00 0000b005 7f0da020 .*
+ 0210 00005f0d 0c00bfbe f6ffffff b0050000 .*
+ 0220 b0050000 .*
+Contents of section .dynamic:
+ 2224 04000000 94000000 05000000 70010000 .*
+ 2234 06000000 d0000000 0a000000 37000000 .*
+ 2244 0b000000 10000000 07000000 f4010000 .*
+ 2254 08000000 0c000000 09000000 0c000000 .*
+ 2264 fcffff6f bc010000 fdffff6f 02000000 .*
+ 2274 f0ffff6f a8010000 00000000 00000000 .*
+ 2284 00000000 00000000 00000000 00000000 .*
+ 2294 00000000 00000000 00000000 00000000 .*
+ 22a4 00000000 00000000 .*
+Contents of section \.got:
+ 22ac 24220000 00000000 00000000 00000000 .*
+Contents of section \.data:
+ 22bc 00000000 .*
diff --git a/ld/testsuite/ld-cris/libdso-1b.d b/ld/testsuite/ld-cris/libdso-1b.d
new file mode 100644
index 0000000..9ad2143
--- /dev/null
+++ b/ld/testsuite/ld-cris/libdso-1b.d
@@ -0,0 +1,15 @@
+#source: dso-1b.s
+#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#ld: --shared -m crislinux --version-script $srcdir/$subdir/hidedsofns2468
+#objdump: -T
+
+# Like libdso-1, but export the function as expfn@@TST2 and another
+# function as expobj@@TST2.
+
+.*: file format elf32-cris
+
+DYNAMIC SYMBOL TABLE:
+#...
+00000[12].[02468ace] g DF .text 0+2[ ]+TST2[ ]+expobj
+00000[12].[02468ace] g DF .text 0+2[ ]+TST2[ ]+expfn
+#pass