MIPS/BFD: Don't stop processing on a cross-mode jump conversion error
authorMaciej W. Rozycki <macro@imgtec.com>
Tue, 21 Jun 2016 13:06:27 +0000 (14:06 +0100)
committerMaciej W. Rozycki <macro@imgtec.com>
Tue, 21 Jun 2016 13:18:23 +0000 (14:18 +0100)
As with commit ed53407eec9e ("MIPS/BFD: Don't stop processing on
`bfd_reloc_outofrange'") don't bail out right away and instead continue
processing on a cross-mode jump conversion error, so that any further
issues are also reported.  Adjust message formatting accordingly, using
`%X' to abort processing at conclusion.  Remove the full stop from the
end of the message, for consistency across error reporting.

Adjust the corresponding test case accordingly and make it trigger the
error twice.

bfd/
* elfxx-mips.c (mips_elf_perform_relocation): Call
`info->callbacks->einfo' rather than `*_bfd_error_handler' and
use the `%X%H' format for the cross-mode jump conversion error
message.  Remove the full stop from the end of the message.
Continue processing rather than returning failure.

ld/
* testsuite/ld-mips-elf/mode-change-error-1a.s: Trigger an error
twice rather than once.
* testsuite/ld-mips-elf/mode-change-error-1.d: Adjust
accordingly.  Remove the full stop from the end of the message.

bfd/ChangeLog
bfd/elfxx-mips.c
ld/ChangeLog
ld/testsuite/ld-mips-elf/mode-change-error-1.d
ld/testsuite/ld-mips-elf/mode-change-error-1a.s

index 2b87660cfc23b10817541599cb200cb7dc1fa82f..fe19a0110da18e8e9c1d3827bf8129aab46b8b5e 100644 (file)
@@ -1,3 +1,11 @@
+2016-06-21  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elfxx-mips.c (mips_elf_perform_relocation): Call
+       `info->callbacks->einfo' rather than `*_bfd_error_handler' and
+       use the `%X%H' format for the cross-mode jump conversion error
+       message.  Remove the full stop from the end of the message.
+       Continue processing rather than returning failure.
+
 2016-06-21  Graham Markall  <graham.markall@embecosm.com>
 
        * archures.c: Remove bfd_mach_arc_nps400.
index e2f47499e9349ecbcb727c0c2ce27efd352888c1..3b7723e3d0ef0e877eea5acb8f3de36e8c834a05 100644 (file)
@@ -6273,13 +6273,11 @@ mips_elf_perform_relocation (struct bfd_link_info *info,
          convert J or JALS to JALX.  */
       if (!ok)
        {
-         (*_bfd_error_handler)
-           (_("%B: %A+0x%lx: Unsupported jump between ISA modes; consider recompiling with interlinking enabled."),
-            input_bfd,
-            input_section,
-            (unsigned long) relocation->r_offset);
-         bfd_set_error (bfd_error_bad_value);
-         return FALSE;
+         info->callbacks->einfo
+           (_("%X%H: Unsupported jump between ISA modes; "
+              "consider recompiling with interlinking enabled\n"),
+            input_bfd, input_section, relocation->r_offset);
+         return TRUE;
        }
 
       /* Make this the JALX opcode.  */
index f1c1fe7d1f2d61a4af4d92ccefbdfb02a8702137..7a2d781fc7bda5f05fcaaa02a9bb4fb6d3056f43 100644 (file)
@@ -1,3 +1,10 @@
+2016-06-21  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * testsuite/ld-mips-elf/mode-change-error-1a.s: Trigger an error
+       twice rather than once.
+       * testsuite/ld-mips-elf/mode-change-error-1.d: Adjust
+       accordingly.  Remove the full stop from the end of the message.
+
 2016-06-21  Graham Markall  <graham.markall@embecosm.com>
 
        * testsuite/ld-arc/nps-1a.d: Use -mcpu=arc700 -mnps400.
index 885c62809dcd1ae7d008b13e0d9ec5ed5b0425e5..cab1ddb3a0f624f00eb487e7b72d95481ed6b1cb 100644 (file)
@@ -2,4 +2,7 @@
 #source: mode-change-error-1a.s
 #source: mode-change-error-1b.s
 #ld: -e 0x8000000
-#error: .*: Unsupported jump between ISA modes; consider recompiling with interlinking enabled.
+#error: \A[^\n]*: In function `main':\n
+#error:   \(\.text\+0x0\): Unsupported jump between ISA modes; consider recompiling with interlinking enabled\n
+#error:   [^\n]*: In function `main':\n
+#error:   \(\.text\+0x8\): Unsupported jump between ISA modes; consider recompiling with interlinking enabled\Z
index 44bdb1f7229869e3f651a730c30ee9eb53dd5a33..d52caf5a77c31c5784bd6e0edca02622ee8760b5 100644 (file)
@@ -13,5 +13,8 @@ main:
        j       doit
        nop
 
+       j       doit
+       nop
+
        .end    main
        .size   main, .-main