MIPS/BFD: Don't stop processing on a cross-mode jump conversion error

As with commit ed53407eec ("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.
This commit is contained in:
Maciej W. Rozycki 2016-06-21 14:06:27 +01:00
parent 04d59df6f3
commit 5f68df25f8
5 changed files with 27 additions and 8 deletions

View 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.

View 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. */

View 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.

View 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

View File

@ -13,5 +13,8 @@ main:
j doit
nop
j doit
nop
.end main
.size main, .-main