Add a test for --as-needed with symbol versioning
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 11 Dec 2013 16:00:34 +0000 (08:00 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 11 Dec 2013 16:00:34 +0000 (08:00 -0800)
* ld-elf/shared.exp (build_tests): Add libneeded2a.so,
libneeded2b.so, libneeded2c.o and needed2.

* ld-elf/needed2.ver: New file.
* ld-elf/needed2a.c: Likewise.
* ld-elf/needed2b.c: Likewise.
* ld-elf/needed2c.c: Likewise.

ld/testsuite/ChangeLog
ld/testsuite/ld-elf/needed2.ver [new file with mode: 0644]
ld/testsuite/ld-elf/needed2a.c [new file with mode: 0644]
ld/testsuite/ld-elf/needed2b.c [new file with mode: 0644]
ld/testsuite/ld-elf/needed2c.c [new file with mode: 0644]
ld/testsuite/ld-elf/shared.exp

index 4526b4e..d00d170 100644 (file)
@@ -1,3 +1,13 @@
+2013-12-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * ld-elf/shared.exp (build_tests): Add libneeded2a.so,
+       libneeded2b.so, libneeded2c.o and needed2.
+
+       * ld-elf/needed2.ver: New file.
+       * ld-elf/needed2a.c: Likewise.
+       * ld-elf/needed2b.c: Likewise.
+       * ld-elf/needed2c.c: Likewise.
+
 2013-12-07  Mike Frysinger  <vapier@gentoo.org>
 
        * ld-pe/aligncomm-1.c: Remove +x file mode.
diff --git a/ld/testsuite/ld-elf/needed2.ver b/ld/testsuite/ld-elf/needed2.ver
new file mode 100644 (file)
index 0000000..a68b3d9
--- /dev/null
@@ -0,0 +1,4 @@
+BLAFOO {
+  global: pam_end;
+  local: *;
+};
diff --git a/ld/testsuite/ld-elf/needed2a.c b/ld/testsuite/ld-elf/needed2a.c
new file mode 100644 (file)
index 0000000..538cb22
--- /dev/null
@@ -0,0 +1,5 @@
+extern void pam_end (void);
+void dumpme (void)
+{
+  pam_end ();
+}
diff --git a/ld/testsuite/ld-elf/needed2b.c b/ld/testsuite/ld-elf/needed2b.c
new file mode 100644 (file)
index 0000000..50c2588
--- /dev/null
@@ -0,0 +1,2 @@
+extern void pam_end (void);
+void pam_end (void) {}
diff --git a/ld/testsuite/ld-elf/needed2c.c b/ld/testsuite/ld-elf/needed2c.c
new file mode 100644 (file)
index 0000000..e43b0d5
--- /dev/null
@@ -0,0 +1,6 @@
+extern void dumpme (void);
+int main (void)
+{
+  dumpme();
+  return 0;
+}
index 56c724f..3162547 100644 (file)
@@ -206,6 +206,18 @@ set build_tests {
   {"Build librel.so"
    "-shared" "-fPIC"
    {rel.c} {} "librel.so"}
+  {"Build libneeded2a.so"
+   "-shared" "-fPIC"
+   {needed2a.c} {} "libneeded2a.so"}
+  {"Build libneeded2b.so"
+   "-shared -Wl,--version-script,needed2.ver" "-fPIC"
+   {needed2b.c} {} "libneeded2b.so"}
+  {"Build libneeded2c.o"
+   "-r -nostdlib" ""
+   {needed2c.c} {} "libneeded2c.o"}
+  {"Build needed2"
+   "tmpdir/libneeded2c.o -Wl,--as-needed tmpdir/libneeded2a.so tmpdir/libneeded2b.so" ""
+   {dummy.c} {} "needed2"}
 }
 
 run_cc_link_tests $build_tests