Add tests for PR ld/16452 and PR ld/16457
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 1 Dec 2014 14:06:21 +0000 (06:06 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 1 Dec 2014 14:06:21 +0000 (06:06 -0800)
PR ld/16452
PR ld/16457
* ld-elf/pr16452.map: New file.
* ld-elf/pr16452.od: Likewise.
* ld-elf/pr16452a.c: Likewise.
* ld-elf/pr16452b.c: Likewise.
* ld-elf/pr16457.od: Likewise.

* ld-elf/shared.exp (build_tests): Add tests for PR ld/16452 and
PR ld/16457.

ld/testsuite/ChangeLog
ld/testsuite/ld-elf/pr16452.map [new file with mode: 0644]
ld/testsuite/ld-elf/pr16452.od [new file with mode: 0644]
ld/testsuite/ld-elf/pr16452a.c [new file with mode: 0644]
ld/testsuite/ld-elf/pr16452b.c [new file with mode: 0644]
ld/testsuite/ld-elf/pr16457.od [new file with mode: 0644]
ld/testsuite/ld-elf/shared.exp

index c87cc5772093739992550bf72347ec8ec80aa803..ef5994722168a757dda33cbba4eba8d5346cc5ef 100644 (file)
@@ -1,3 +1,16 @@
+2014-12-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/16452
+       PR ld/16457
+       * ld-elf/pr16452.map: New file.
+       * ld-elf/pr16452.od: Likewise.
+       * ld-elf/pr16452a.c: Likewise.
+       * ld-elf/pr16452b.c: Likewise.
+       * ld-elf/pr16457.od: Likewise.
+
+       * ld-elf/shared.exp (build_tests): Add tests for PR ld/16452 and
+       PR ld/16457.
+
 2014-11-27  H.J. Lu  <hongjiu.lu@intel.com>
 
        * ld-mips-elf/got-vers-1.rd: Add symbol version string to
diff --git a/ld/testsuite/ld-elf/pr16452.map b/ld/testsuite/ld-elf/pr16452.map
new file mode 100644 (file)
index 0000000..6262600
--- /dev/null
@@ -0,0 +1 @@
+FOO{global:f;};
diff --git a/ld/testsuite/ld-elf/pr16452.od b/ld/testsuite/ld-elf/pr16452.od
new file mode 100644 (file)
index 0000000..297f867
--- /dev/null
@@ -0,0 +1,7 @@
+#failif
+#...
+Version References:
+#...
+  required from libpr16452a.so:
+    0x[0-9a-f]+ 0x00 .. FOO
+#...
diff --git a/ld/testsuite/ld-elf/pr16452a.c b/ld/testsuite/ld-elf/pr16452a.c
new file mode 100644 (file)
index 0000000..c9b1784
--- /dev/null
@@ -0,0 +1 @@
+int f(void){return 0;}
diff --git a/ld/testsuite/ld-elf/pr16452b.c b/ld/testsuite/ld-elf/pr16452b.c
new file mode 100644 (file)
index 0000000..9ed2149
--- /dev/null
@@ -0,0 +1,2 @@
+int f(void) __attribute__((weak));
+int main(void){return f?f():0;}
diff --git a/ld/testsuite/ld-elf/pr16457.od b/ld/testsuite/ld-elf/pr16457.od
new file mode 100644 (file)
index 0000000..b29c4a1
--- /dev/null
@@ -0,0 +1,6 @@
+#failif
+#...
+Dynamic Section:
+#...
+[ ]+NEEDED[ ]+libpr16452a.so
+#...
index 00a4983c448591be546ca2eb9dfc447424f35099..3fc1e4b53d44efc610a236fb2b9ce3a0af1b562a 100644 (file)
@@ -255,6 +255,18 @@ set build_tests {
   {"Build libpr16496b.so"
    "-shared tmpdir/pr16496b.o tmpdir/libpr16496a.so" ""
    {dummy.c} {{objdump {-R} pr16496b.od}} "libpr16496b.so"}
+  {"Build libpr16452a.so"
+   "-shared -Wl,-soname,libpr16452a.so,--version-script=pr16452.map" "-fPIC"
+   {pr16452a.c} {} "libpr16452a.so"}
+  {"Build libpr16452b.so"
+   "-shared -Wl,-soname,libpr16452b.so,--no-as-needed tmpdir/libpr16452a.so" "-fPIC"
+   {dummy.c} {} "libpr16452b.so"}
+  {"Build pr16452"
+   "tmpdir/libpr16452b.so -Wl,-rpath=tmpdir" ""
+   {pr16452b.c} {{objdump {-p} pr16452.od}} "pr16452"}
+  {"Build pr16457"
+   "tmpdir/libpr16452b.so -Wl,-rpath=tmpdir" ""
+   {pr16452b.c} {{objdump {-p} pr16457.od}} "pr16457"}
 }
 
 run_cc_link_tests $build_tests