MIPS/LD/testsuite: Correct PR ld/22649 test case failures
authorMaciej W. Rozycki <macro@mips.com>
Tue, 30 Jan 2018 01:31:23 +0000 (01:31 +0000)
committerMaciej W. Rozycki <macro@mips.com>
Tue, 30 Jan 2018 01:34:05 +0000 (01:34 +0000)
Fix commit d664fd41e15f ("Ignore dynamic references on forced local
symbols") and use alternative test actions and match patterns to
correctly handle messages like:

.../ld/ld-new: Removing unused section '.reginfo' in file 'tmpdir/pr22649-2b.o'

or:

.../ld/ld-new: Removing unused section '.MIPS.options' in file 'tmpdir/pr22649-2b.o'

produced by LD on MIPS targets, removing:

FAIL: Build pr22649-2c.so
FAIL: Build pr22649-2d.so

test suite failures and tightening checks made with `pr22649-2a.so' and
`pr22649-2b.so' test cases.

Keep the original empty action with `pr22649-2c.so' and `pr22649-2d.so'
links and MIPS/ELF targets though, because for them the linker does not
garbage-collect the `.reginfo' section.  This is because the section has
its flags set differently by code in GAS in `md_begin':

    if (strncmp (TARGET_OS, "elf", 3) != 0)
      flags |= SEC_ALLOC | SEC_LOAD;

and consequently BFD linker code in `_bfd_elf_gc_mark_extra_sections':

  else if (((isec->flags & SEC_DEBUGGING) != 0
    || (isec->flags & (SEC_ALLOC | SEC_LOAD | SEC_RELOC)) == 0)
   && elf_next_in_group (isec) == NULL)
    isec->gc_mark = 1;

marks these sections to be kept due to their SEC_ALLOC, SEC_LOAD and
SEC_RELOC flags all being zero (`.reginfo' sections never have
relocations attached).

ld/
PR ld/22649
* testsuite/ld-elf/pr22649-2ab-mips.msg: New stderr output.
* testsuite/ld-elf/pr22649-2cd-mips.msg: New stderr output.
* testsuite/ld-elf/shared.exp: Use the new outputs with
`mips*-*-*' targets.

ld/ChangeLog
ld/testsuite/ld-elf/pr22649-2ab-mips.msg [new file with mode: 0644]
ld/testsuite/ld-elf/pr22649-2cd-mips.msg [new file with mode: 0644]
ld/testsuite/ld-elf/shared.exp

index ad05c547a710b8ce695cf5981e6f54b05841638f..83c9689f37a5eb5c356cdd25d2994c57f42535a1 100644 (file)
@@ -1,3 +1,11 @@
+2018-01-30  Maciej W. Rozycki  <macro@mips.com>
+
+       PR ld/22649
+       * testsuite/ld-elf/pr22649-2ab-mips.msg: New stderr output.
+       * testsuite/ld-elf/pr22649-2cd-mips.msg: New stderr output.
+       * testsuite/ld-elf/shared.exp: Use the new outputs with
+       `mips*-*-*' targets.
+
 2018-01-30  Maciej W. Rozycki  <macro@mips.com>
 
        * testsuite/ld-elf/comm-data1.sd: Alternatively accept
diff --git a/ld/testsuite/ld-elf/pr22649-2ab-mips.msg b/ld/testsuite/ld-elf/pr22649-2ab-mips.msg
new file mode 100644 (file)
index 0000000..e27e6e4
--- /dev/null
@@ -0,0 +1,2 @@
+.*: Removing unused section '\.data' in file 'tmpdir/pr22649-2.\.o'
+.*: Removing unused section '\.(?:reginfo|MIPS\.options)' in file 'tmpdir/pr22649-2.\.o'
diff --git a/ld/testsuite/ld-elf/pr22649-2cd-mips.msg b/ld/testsuite/ld-elf/pr22649-2cd-mips.msg
new file mode 100644 (file)
index 0000000..6a7aa77
--- /dev/null
@@ -0,0 +1 @@
+.*: Removing unused section '\.(?:reginfo|MIPS\.options)' in file 'tmpdir/pr22649-2.\.o'
index 3dfcef2e62c4e2154f72bac6777b32189595974d..8223d3df014710a073cbed356c43020ec19014a2 100644 (file)
@@ -97,6 +97,11 @@ run_ld_link_tests [list \
 ]
 
 if { [check_gc_sections_available] } {
+    if [istarget mips*-*-*] {
+       set actions {{ld pr22649-2ab-mips.msg}}
+    } else {
+       set actions {{ld pr22649.msg}}
+    }
     run_ld_link_tests [list \
        [list \
            "Build pr22649-2a.so" \
@@ -104,7 +109,7 @@ if { [check_gc_sections_available] } {
            "" \
            "$AFLAGS_PIC" \
            {pr22649-2a.s} \
-           {{ld pr22649.msg}} \
+           $actions \
            "pr22649-2a.so" \
        ] \
        [list \
@@ -113,16 +118,23 @@ if { [check_gc_sections_available] } {
            "tmpdir/pr22649-1.so" \
            "$AFLAGS_PIC" \
            {pr22649-2a.s} \
-           {{ld pr22649.msg}} \
+           $actions \
            "pr22649-2b.so" \
        ] \
+    ]
+    if { [istarget mips*-*-*] && ![istarget *-*-elf*] } {
+       set actions {{ld pr22649-2cd-mips.msg}}
+    } else {
+       set actions {}
+    }
+    run_ld_link_tests [list \
        [list \
            "Build pr22649-2c.so" \
            "$LFLAGS -shared -gc-sections -print-gc-sections" \
            "" \
            "$AFLAGS_PIC" \
            {pr22649-2b.s} \
-           {} \
+           $actions \
            "pr22649-2b.so" \
        ] \
        [list \
@@ -131,7 +143,7 @@ if { [check_gc_sections_available] } {
            "tmpdir/pr22649-1.so" \
            "$AFLAGS_PIC" \
            {pr22649-2b.s} \
-           {} \
+           $actions \
            "pr22649-2b.so" \
        ] \
     ]