ld: Add a testcase for PR ld/22471
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 29 Nov 2017 12:20:48 +0000 (04:20 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 29 Nov 2017 12:21:01 +0000 (04:21 -0800)
PR ld/22471
* testsuite/ld-elf/pr22471.t: New file.
* testsuite/ld-elf/pr22471a.s: Likewise.
* testsuite/ld-elf/pr22471b.s: Likewise.
* testsuite/ld-elf/shared.exp (ASFLAGS): Define UNDERSCORE for
underscore targets.
Run PR ld/22471 tests.

ld/ChangeLog
ld/testsuite/ld-elf/pr22471.t [new file with mode: 0644]
ld/testsuite/ld-elf/pr22471a.s [new file with mode: 0644]
ld/testsuite/ld-elf/pr22471b.s [new file with mode: 0644]
ld/testsuite/ld-elf/shared.exp

index 9bf3c3edf54646453a8b17c73881991ffd6b7ee6..a6de996293ec450d93d65ab40a71686af5d8d8ed 100644 (file)
@@ -1,3 +1,13 @@
+2017-11-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/22471
+       * testsuite/ld-elf/pr22471.t: New file.
+       * testsuite/ld-elf/pr22471a.s: Likewise.
+       * testsuite/ld-elf/pr22471b.s: Likewise.
+       * testsuite/ld-elf/shared.exp (ASFLAGS): Define UNDERSCORE for
+       underscore targets.
+       Run PR ld/22471 tests.
+
 2017-11-29  Stefan Stroe  <stroestefan@gmail.com>
 
        * po/Make-in (datadir): Define as @datadir@.
diff --git a/ld/testsuite/ld-elf/pr22471.t b/ld/testsuite/ld-elf/pr22471.t
new file mode 100644 (file)
index 0000000..8862dc2
--- /dev/null
@@ -0,0 +1 @@
+{ local: *; };
diff --git a/ld/testsuite/ld-elf/pr22471a.s b/ld/testsuite/ld-elf/pr22471a.s
new file mode 100644 (file)
index 0000000..3bb6a92
--- /dev/null
@@ -0,0 +1 @@
+# Empty input.
diff --git a/ld/testsuite/ld-elf/pr22471b.s b/ld/testsuite/ld-elf/pr22471b.s
new file mode 100644 (file)
index 0000000..f4edad0
--- /dev/null
@@ -0,0 +1,17 @@
+       .type start,"function"
+       .global start
+start:
+       .type _start,"function"
+       .global _start
+_start:
+       .type __start,"function"
+       .global __start
+__start:
+       .type main,"function"
+       .global main
+main:
+  .ifdef UNDERSCORE
+       .dc.a ___bss_start
+  .else
+       .dc.a __bss_start
+  .endif
index a40f8e0f59df12f505375d3b307b24c58f072437..7514eb116bb4572ee4ad598ab575871aea0f728a 100644 (file)
@@ -47,6 +47,40 @@ if [istarget "tic6x-*-*"] {
     append LFLAGS " -melf32_tic6x_le"
 }
 
+if [is_underscore_target] {
+    set ASFLAGS "$ASFLAGS --defsym UNDERSCORE=1"
+}
+
+run_ld_link_tests [list \
+    [list \
+       "Build pr22471a.so" \
+       "$LFLAGS -shared" \
+       "" \
+       "$AFLAGS_PIC" \
+       {pr22471a.s} \
+       {} \
+       "pr22471a.so" \
+    ] \
+    [list \
+       "Build pr22471b.so" \
+       "$LFLAGS -shared --version-script pr22471.t" \
+       "tmpdir/pr22471a.so" \
+       "$AFLAGS_PIC" \
+       {pr22471a.s} \
+       {} \
+       "pr22471b.so" \
+    ] \
+    [list \
+       "Build pr22471" \
+       "$LFLAGS -rpath-link ." \
+       "tmpdir/pr22471b.so" \
+       "" \
+       {pr22471b.s} \
+       {} \
+       "pr22471" \
+    ] \
+]
+
 # PR ld/20828 check for correct dynamic symbol table entries where:
 # - symbols have been defined with a linker script,
 # - the same symbols have been seen in shared library used in the link,