* ld-elfvers/vers.exp: Add new tests vers17 to vers19.
authorIan Lance Taylor <ian@airs.com>
Wed, 7 Jul 1999 15:36:29 +0000 (15:36 +0000)
committerIan Lance Taylor <ian@airs.com>
Wed, 7 Jul 1999 15:36:29 +0000 (15:36 +0000)
* ld/elfvers/{vers17.*, vers18.*, vers19.*}: New files.

14 files changed:
ld/testsuite/ChangeLog
ld/testsuite/ld-elfvers/vers.exp
ld/testsuite/ld-elfvers/vers17.c [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers17.dsym [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers17.map [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers17.ver [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers18.c [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers18.dsym [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers18.map [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers18.sym [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers18.ver [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers19.c [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers19.dsym [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers19.ver [new file with mode: 0644]

index 3581965be58471704d2c9048aae66301d9ef3c99..c7e255b94a0c807cb843d0e8cdb144aba42d5c28 100644 (file)
@@ -1,3 +1,8 @@
+1999-07-07  Ian Lance Taylor  <ian@zembu.com>
+
+       * ld-elfvers/vers.exp: Add new tests vers17 to vers19.
+       * ld/elfvers/{vers17.*, vers18.*, vers19.*}: New files.
+
 1999-06-13  Ian Lance Taylor  <ian@zembu.com>
 
        * ld-checks/asm.s: Use a symbol name for .lcomm.
index 5dfaa93346ef2bfe05bd79ad2dcfdda1452fa457..6a02d69b13b0d0fda00b7e7fbe352195f5621c4a 100644 (file)
@@ -806,3 +806,8 @@ build_exec "vers15" vers15.c vers15 "" vers1.so vers15.ver vers15.dsym vers15.sy
 #
 build_vers_lib "vers16a" vers16a.c vers16a "" vers16.map vers16a.ver vers16a.dsym ""
 build_exec "vers16" vers16.c vers16 "" vers16a.so "" vers16.dsym ""
+
+# Test a weak versioned symbol.
+build_vers_lib "vers17" vers17.c vers17 "" vers17.map vers17.ver vers17.dsym ""
+build_vers_lib "vers18" vers18.c vers18 vers17.so vers18.map vers18.ver vers18.dsym vers18.sym
+build_exec "vers19" vers19.c vers19 "" vers18.so vers19.ver vers19.dsym ""
diff --git a/ld/testsuite/ld-elfvers/vers17.c b/ld/testsuite/ld-elfvers/vers17.c
new file mode 100644 (file)
index 0000000..3bcd647
--- /dev/null
@@ -0,0 +1,5 @@
+int
+show_foo ()
+{
+  return 99;
+}
diff --git a/ld/testsuite/ld-elfvers/vers17.dsym b/ld/testsuite/ld-elfvers/vers17.dsym
new file mode 100644 (file)
index 0000000..8decc0a
--- /dev/null
@@ -0,0 +1,2 @@
+[0]* g    DO \*ABS\*   [0]*  VERS_2.0    VERS_2.0
+[0-9a-f]* g    DF (.text|\*ABS\*)      [0-9a-f]*  VERS_2.0    (0x[0-9a-f][0-9a-f] )?show_foo
diff --git a/ld/testsuite/ld-elfvers/vers17.map b/ld/testsuite/ld-elfvers/vers17.map
new file mode 100644 (file)
index 0000000..a5c9cf6
--- /dev/null
@@ -0,0 +1,4 @@
+VERS_2.0 {
+        global:
+                show_foo;
+};
diff --git a/ld/testsuite/ld-elfvers/vers17.ver b/ld/testsuite/ld-elfvers/vers17.ver
new file mode 100644 (file)
index 0000000..e78d59c
--- /dev/null
@@ -0,0 +1,3 @@
+Version definitions:
+1 0x01 0x02605d3f tmpdir/vers17.so
+2 0x00 0x0a7922b0 VERS_2.0
diff --git a/ld/testsuite/ld-elfvers/vers18.c b/ld/testsuite/ld-elfvers/vers18.c
new file mode 100644 (file)
index 0000000..25dcc25
--- /dev/null
@@ -0,0 +1,42 @@
+int
+bar ()
+{
+  return 3;
+}
+
+#pragma weak hide_original_foo
+
+int
+hide_original_foo ()
+{
+  return 1 + bar ();
+}
+
+#pragma weak hide_old_foo
+
+int
+hide_old_foo ()
+{
+  return 10 + bar();
+}
+
+#pragma weak hide_old_foo1
+
+int
+hide_old_foo1 ()
+{
+  return 100 + bar ();
+}
+
+#pragma weak hide_new_foo
+
+int
+hide_new_foo ()
+{
+  return 1000 + bar ();
+}
+
+__asm__(".symver hide_original_foo,show_foo@");
+__asm__(".symver hide_old_foo,show_foo@VERS_1.1");
+__asm__(".symver hide_old_foo1,show_foo@VERS_1.2");
+__asm__(".symver hide_new_foo,show_foo@@VERS_2.0");
diff --git a/ld/testsuite/ld-elfvers/vers18.dsym b/ld/testsuite/ld-elfvers/vers18.dsym
new file mode 100644 (file)
index 0000000..dc3ad7b
--- /dev/null
@@ -0,0 +1,7 @@
+[0-9a-f]*  w   DF (\*UND\*)    [0-9a-f]*  VERS_2.0    (0x[0-9a-f][0-9a-f] )?show_foo
+[0]* g    DO \*ABS\*   [0]*  VERS_1.1    VERS_1.1
+[0]* g    DO \*ABS\*   [0]*  VERS_1.2    VERS_1.2
+[0]* g    DO \*ABS\*   [0]*  VERS_2.0    VERS_2.0
+[0-9a-f]*  w   DF (.text|\*ABS\*)      [0-9a-f]* \(Base\)       (0x[0-9a-f][0-9a-f] )?show_foo
+[0-9a-f]*  w   DF (.text|\*ABS\*)      [0-9a-f]* \(VERS_1.1\)   (0x[0-9a-f][0-9a-f] )?show_foo
+[0-9a-f]*  w   DF (.text|\*ABS\*)      [0-9a-f]* \(VERS_1.2\)   (0x[0-9a-f][0-9a-f] )?show_foo
diff --git a/ld/testsuite/ld-elfvers/vers18.map b/ld/testsuite/ld-elfvers/vers18.map
new file mode 100644 (file)
index 0000000..eac2b0e
--- /dev/null
@@ -0,0 +1,15 @@
+VERS_1.1 {
+        global:
+                foo1;
+        local:
+                hide_old*; 
+                hide_original*; 
+                hide_new*; 
+};
+
+VERS_1.2 {
+                foo2;
+} VERS_1.1;
+
+VERS_2.0 {
+} VERS_1.2;
diff --git a/ld/testsuite/ld-elfvers/vers18.sym b/ld/testsuite/ld-elfvers/vers18.sym
new file mode 100644 (file)
index 0000000..f9cefdf
--- /dev/null
@@ -0,0 +1,4 @@
+[0-9a-f]*  w    F .text        [0-9a-f]* (0x[0-9a-f][0-9a-f] )?show_foo@
+[0-9a-f]*  w    F .text        [0-9a-f]* (0x[0-9a-f][0-9a-f] )?show_foo@VERS_1.1
+[0-9a-f]*  w    F .text        [0-9a-f]* (0x[0-9a-f][0-9a-f] )?show_foo@VERS_1.2
+[0-9a-f]*  w    F .text        [0-9a-f]* (0x[0-9a-f][0-9a-f] )?show_foo@@VERS_2.0
diff --git a/ld/testsuite/ld-elfvers/vers18.ver b/ld/testsuite/ld-elfvers/vers18.ver
new file mode 100644 (file)
index 0000000..d252996
--- /dev/null
@@ -0,0 +1,12 @@
+Version definitions:
+1 0x01 0x02608d3f tmpdir/vers18.so
+2 0x00 0x0a7927b1 VERS_1.1
+3 0x00 0x0a7927b2 VERS_1.2
+       VERS_1.1 
+4 0x02 0x0a7922b0 VERS_2.0
+       VERS_1.2 
+
+Version References:
+  required from tmpdir/vers17.so:
+    0x0a7922b0 0x00 05 VERS_2.0
+
diff --git a/ld/testsuite/ld-elfvers/vers19.c b/ld/testsuite/ld-elfvers/vers19.c
new file mode 100644 (file)
index 0000000..bc2d83c
--- /dev/null
@@ -0,0 +1,6 @@
+int
+main ()
+{
+  printf ("%d\n", show_foo ());
+  return 0;
+}
diff --git a/ld/testsuite/ld-elfvers/vers19.dsym b/ld/testsuite/ld-elfvers/vers19.dsym
new file mode 100644 (file)
index 0000000..c9c2642
--- /dev/null
@@ -0,0 +1 @@
+[0-9a-f]*      DF \*UND\*      [0-9a-f]*  VERS_2.0    (0x[0-9a-f][0-9a-f] )?show_foo
diff --git a/ld/testsuite/ld-elfvers/vers19.ver b/ld/testsuite/ld-elfvers/vers19.ver
new file mode 100644 (file)
index 0000000..ccbdc88
--- /dev/null
@@ -0,0 +1,3 @@
+Version References:
+  required from *tmpdir/vers17.so:
+    0x0a7922b0 0x00 02 VERS_2.0