2003-05-07 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 8 May 2003 05:10:47 +0000 (05:10 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 8 May 2003 05:10:47 +0000 (05:10 +0000)
* ld-elfvers/vers.exp (build_binary): Support build exeutable.
(build_binary): Renamed from ...
(build_vers_lib): This.
(build_vers_lib_no_pic): Updated.
(build_vers_lib_pic): Likewise.
Add vers27d1, vers27d2 and vers27d3 to test versioned
definition for hidden symbol referenced by a DSO.

* ld-elfvers/vers27d.dsym: New file.
* ld-elfvers/vers27d.sym: Likewise.
* ld-elfvers/vers27d.ver: Likewise.
* ld-elfvers/vers27d1.c: Likewise.
* ld-elfvers/vers27d2.c: Likewise.
* ld-elfvers/vers27d3.c: Likewise.

ld/testsuite/ChangeLog
ld/testsuite/ld-elfvers/vers.exp
ld/testsuite/ld-elfvers/vers27d.dsym [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers27d.sym [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers27d.ver [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers27d1.c [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers27d2.c [new file with mode: 0644]
ld/testsuite/ld-elfvers/vers27d3.c [new file with mode: 0644]

index b78599f..0da2fb8 100644 (file)
@@ -1,3 +1,20 @@
+2003-05-07  H.J. Lu <hongjiu.lu@intel.com>
+
+       * ld-elfvers/vers.exp (build_binary): Support build exeutable.
+       (build_binary): Renamed from ...
+       (build_vers_lib): This.
+       (build_vers_lib_no_pic): Updated.
+       (build_vers_lib_pic): Likewise.
+       Add vers27d1, vers27d2 and vers27d3 to test versioned
+       definition for hidden symbol referenced by a DSO.
+
+       * ld-elfvers/vers27d.dsym: New file.
+       * ld-elfvers/vers27d.sym: Likewise.
+       * ld-elfvers/vers27d.ver: Likewise.
+       * ld-elfvers/vers27d1.c: Likewise.
+       * ld-elfvers/vers27d2.c: Likewise.
+       * ld-elfvers/vers27d3.c: Likewise.
+
 2003-05-07  Andreas Schwab  <schwab@suse.de>
 
        * ld-elfvsb/elfvsb.exp: Run dump tests even when cross
index c28733e..97cfaf3 100644 (file)
@@ -497,7 +497,7 @@ proc objdump_versionstuff { objdump object expectfile } {
     }
 }
 
-proc build_vers_lib { pic test source libname other mapfile verexp versymexp symexp } {
+proc build_binary { shared pic test source libname other mapfile verexp versymexp symexp } {
     global ld
     global srcdir
     global subdir
@@ -508,7 +508,6 @@ proc build_vers_lib { pic test source libname other mapfile verexp versymexp sym
     global objdump
     global CC
     global CFLAGS
-    global shared
     global script
 
     if ![ld_compile "$CC -S $pic $CFLAGS" $srcdir/$subdir/$source $tmpdir/$libname.s]     {
@@ -565,13 +564,19 @@ proc build_vers_lib { pic test source libname other mapfile verexp versymexp sym
     
 }
 
+proc build_executable { test source libname other mapfile verexp versymexp symexp } {
+  build_binary "" "" $test $source $libname $other $mapfile $verexp $versymexp $symexp 
+}
+
 proc build_vers_lib_no_pic { test source libname other mapfile verexp versymexp symexp } {
-  build_vers_lib "" $test $source $libname $other $mapfile $verexp $versymexp $symexp 
+  global shared
+  build_binary $shared "" $test $source $libname $other $mapfile $verexp $versymexp $symexp 
 }
 
 proc build_vers_lib_pic { test source libname other mapfile verexp versymexp symexp } {
   global picflag
-  build_vers_lib $picflag $test $source $libname $other $mapfile $verexp $versymexp $symexp 
+  global shared
+  build_binary $shared $picflag $test $source $libname $other $mapfile $verexp $versymexp $symexp 
 }
 
 proc test_ldfail { test flag source execname other mapfile whyfail } {
@@ -929,3 +934,6 @@ build_vers_lib_no_pic "vers27a" vers27a.c vers27a "" vers27a.map vers27a.ver ver
 build_vers_lib_no_pic "vers27b" vers27b.c vers27b "" "" vers27b.ver vers27b.dsym ""
 build_vers_lib_no_pic "vers27c1" vers27c.c vers27c1 "vers27b.o vers27a.so" "" vers27c.ver vers27c.dsym ""
 build_vers_lib_no_pic "vers27c2" vers27c.c vers27c2 "vers27a.so vers27b.o" "" vers27c.ver vers27c.dsym ""
+build_vers_lib_pic "vers27d1" vers27d1.c vers27d1 "" vers27a.map vers27d.ver vers27d.dsym vers27d.sym
+build_vers_lib_pic "vers27d2" vers27d2.c vers27d2 "" "" vers27b.ver vers27b.dsym ""
+build_executable "vers27d3" vers27d3.c vers27d3 "vers27b.o vers27d2.so vers27d1.so" "" vers27b.ver vers27b.dsym ""
diff --git a/ld/testsuite/ld-elfvers/vers27d.dsym b/ld/testsuite/ld-elfvers/vers27d.dsym
new file mode 100644 (file)
index 0000000..9813d95
--- /dev/null
@@ -0,0 +1,2 @@
+[0]*[  ]+g[    ]+DO[   ]+\*ABS\*[      ]+[0]*[         ]+VERS.0[       ]+VERS.0
+[0-9a-f]*[     ]+g[    ]+DF[   ]+.text[        ]+[0-9a-f]*[    ]+\(VERS.0\)[   ]+(0x[0-9a-f]*|)[       ]*foo
diff --git a/ld/testsuite/ld-elfvers/vers27d.sym b/ld/testsuite/ld-elfvers/vers27d.sym
new file mode 100644 (file)
index 0000000..2069993
--- /dev/null
@@ -0,0 +1 @@
+[0-9a-f]*[     ]+g[    ]+F[    ]+.text[        ]+[0-9a-f]* (0x[0-9a-f][0-9a-f] )?foo@VERS.0
diff --git a/ld/testsuite/ld-elfvers/vers27d.ver b/ld/testsuite/ld-elfvers/vers27d.ver
new file mode 100644 (file)
index 0000000..672c7ad
--- /dev/null
@@ -0,0 +1,4 @@
+Version definitions:
+1 0x01 0x05ac0cff vers27d1.so
+2 0x00 0x05aa7610 VERS.0
+
diff --git a/ld/testsuite/ld-elfvers/vers27d1.c b/ld/testsuite/ld-elfvers/vers27d1.c
new file mode 100644 (file)
index 0000000..3fc60b0
--- /dev/null
@@ -0,0 +1,6 @@
+void
+foo ()
+{
+}
+
+asm (".symver foo,foo@VERS.0");
diff --git a/ld/testsuite/ld-elfvers/vers27d2.c b/ld/testsuite/ld-elfvers/vers27d2.c
new file mode 100644 (file)
index 0000000..a98f38a
--- /dev/null
@@ -0,0 +1,7 @@
+void foo ();
+
+void
+ref ()
+{
+  foo ();
+}
diff --git a/ld/testsuite/ld-elfvers/vers27d3.c b/ld/testsuite/ld-elfvers/vers27d3.c
new file mode 100644 (file)
index 0000000..e72d6f8
--- /dev/null
@@ -0,0 +1,11 @@
+extern void ref ();
+extern void foo ();
+
+void _start() __asm__("_start");
+
+void
+_start ()
+{
+  foo ();
+  ref ();
+}