mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-09 17:43:40 +08:00
PowerPC/BFD: Convert %P: %H:' to
%H:' in error messages
Remove an inconsistency in BFD linker error messages across the PowerPC backends, where in the presence of line information the `%P: %H:' format sequence makes the first error message produced for any given function different from subsequent ones. Taking the `ld/testsuite/ld-powerpc/tocopt7.s' test case source as an example and the `powerpc-linux' target we have: $ as -gdwarf2 -o tocopt.o -a64 tocopt.s $ ld -o tocopt -melf64ppc tocopt.o ld: tocopt.o: In function `_start': tocopt.s:35:(.text+0x14): toc optimization is not supported for 0x3fa00000 instruction. ld: tocopt.s:49:(.text+0x34): toc optimization is not supported for 0x3fa00000 instruction. $ where the first error message does not have the source file name prefixed with the linker program executable's name, i.e. `ld:', whereas the second error message does, as would any subsequent. This is because with a multiple-line error message such as `%H' produces `%P' only prints the program executable's name on the first line and not any later ones. Also the PowerPC backend is the only part of BFD which uses `%P' along with one of the clever `%C', `%D', `%G', `%H' format specifiers. And last but not least this breaks a GNU Coding Standard's requirement that error messages from compilers should look like this: source-file-name:lineno: message also quoted in `vfinfo' code handling these specifiers. Convert `%P: %H:' to `%H:' in error messages across the PowerPC backends then, yielding: $ as -gdwarf2 -o tocopt.o -a64 tocopt.s $ ld -o tocopt -melf64ppc tocopt.o tocopt.o: In function `_start': tocopt.s:35:(.text+0x14): toc optimization is not supported for 0x3fa00000 instruction. tocopt.s:49:(.text+0x34): toc optimization is not supported for 0x3fa00000 instruction. $ instead, making it consistent and matching the GNU Coding Standard's requirement. bfd/ * elf32-ppc.c (ppc_elf_check_relocs): Use `%H:' rather than `%P: %H:' with `info->callbacks->einfo'. (ppc_elf_relocate_section): Likewise. * elf64-ppc.c (ppc64_elf_check_relocs): Likewise. (ppc64_elf_edit_toc): Likewise. (ppc64_elf_relocate_section): Likewise.
This commit is contained in:
parent
befe814dd9
commit
174d0a74a2
@ -1,3 +1,12 @@
|
||||
2017-02-15 Maciej W. Rozycki <macro@imgtec.com>
|
||||
|
||||
* elf32-ppc.c (ppc_elf_check_relocs): Use `%H:' rather than
|
||||
`%P: %H:' with `info->callbacks->einfo'.
|
||||
(ppc_elf_relocate_section): Likewise.
|
||||
* elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
|
||||
(ppc64_elf_edit_toc): Likewise.
|
||||
(ppc64_elf_relocate_section): Likewise.
|
||||
|
||||
2017-02-14 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Support
|
||||
|
@ -4298,7 +4298,7 @@ ppc_elf_check_relocs (bfd *abfd,
|
||||
table entry for a non-ifunc local symbol. */
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: %s reloc against local symbol\n"),
|
||||
(_("%H: %s reloc against local symbol\n"),
|
||||
abfd, sec, rel->r_offset,
|
||||
ppc_elf_howto_table[r_type]->name);
|
||||
bfd_set_error (bfd_error_bad_value);
|
||||
@ -8221,7 +8221,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
|
||||
off = (p - contents) - (rel->r_offset - d_offset);
|
||||
if (off > 0x1fffffc || (off & 3) != 0)
|
||||
info->callbacks->einfo
|
||||
(_("%P: %H: fixup branch overflow\n"),
|
||||
(_("%H: fixup branch overflow\n"),
|
||||
input_bfd, input_section, rel->r_offset);
|
||||
|
||||
bfd_put_32 (input_bfd, B | off,
|
||||
@ -8261,7 +8261,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
|
||||
else
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: error: %s with unexpected instruction %x\n"),
|
||||
(_("%H: error: %s with unexpected instruction %x\n"),
|
||||
input_bfd, input_section, rel->r_offset,
|
||||
"R_PPC_ADDR16_HA", insn);
|
||||
}
|
||||
@ -8296,7 +8296,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
|
||||
else
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: error: %s with unexpected instruction %x\n"),
|
||||
(_("%H: error: %s with unexpected instruction %x\n"),
|
||||
input_bfd, input_section, rel->r_offset,
|
||||
"R_PPC_ADDR16_LO", insn);
|
||||
}
|
||||
@ -8352,7 +8352,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
|
||||
into .got2). */
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%X%P: %H: unsupported bss-plt -fPIC ifunc %s\n"),
|
||||
(_("%X%H: unsupported bss-plt -fPIC ifunc %s\n"),
|
||||
input_bfd, input_section, rel->r_offset, sym_name);
|
||||
}
|
||||
if (h == NULL && (ent->plt.offset & 1) == 0)
|
||||
@ -8690,7 +8690,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
|
||||
if (addend != 0)
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: non-zero addend on %s reloc against `%s'\n"),
|
||||
(_("%H: non-zero addend on %s reloc against `%s'\n"),
|
||||
input_bfd, input_section, rel->r_offset,
|
||||
howto->name,
|
||||
sym_name);
|
||||
@ -8722,7 +8722,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
|
||||
-fPIC code, so the linker won't know whether r30 is
|
||||
_GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section. */
|
||||
/* xgettext:c-format */
|
||||
info->callbacks->einfo (_("%X%P: %H: @local call to ifunc %s\n"),
|
||||
info->callbacks->einfo (_("%X%H: @local call to ifunc %s\n"),
|
||||
input_bfd, input_section, rel->r_offset,
|
||||
h->root.root.string);
|
||||
}
|
||||
@ -8912,7 +8912,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
|
||||
indirection function to resolve the reloc. */
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: relocation %s for indirect "
|
||||
(_("%H: relocation %s for indirect "
|
||||
"function %s unsupported\n"),
|
||||
input_bfd, input_section, rel->r_offset,
|
||||
howto->name,
|
||||
@ -9609,7 +9609,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
|
||||
relocation ^= lobit;
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: error: %s against `%s' not a multiple of %u\n"),
|
||||
(_("%H: error: %s against `%s' not a multiple of %u\n"),
|
||||
input_bfd, input_section, rel->r_offset,
|
||||
howto->name, sym_name, mask + 1);
|
||||
bfd_set_error (bfd_error_bad_value);
|
||||
@ -9638,7 +9638,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
|
||||
{
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: unresolvable %s relocation against symbol `%s'\n"),
|
||||
(_("%H: unresolvable %s relocation against symbol `%s'\n"),
|
||||
input_bfd, input_section, rel->r_offset,
|
||||
howto->name,
|
||||
sym_name);
|
||||
@ -9719,7 +9719,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
|
||||
{
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: %s reloc against `%s': error %d\n"),
|
||||
(_("%H: %s reloc against `%s': error %d\n"),
|
||||
input_bfd, input_section, rel->r_offset,
|
||||
howto->name, sym_name, (int) r);
|
||||
ret = FALSE;
|
||||
|
@ -5554,7 +5554,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||
table entry for a non-ifunc local symbol. */
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: %s reloc against local symbol\n"),
|
||||
(_("%H: %s reloc against local symbol\n"),
|
||||
abfd, sec, rel->r_offset,
|
||||
ppc64_elf_howto_table[r_type]->name);
|
||||
bfd_set_error (bfd_error_bad_value);
|
||||
@ -5602,7 +5602,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||
if (!ppc64_elf_howto_table[R_PPC64_ADDR32])
|
||||
ppc_howto_init ();
|
||||
/* xgettext:c-format */
|
||||
info->callbacks->einfo (_("%P: %H: %s reloc unsupported "
|
||||
info->callbacks->einfo (_("%H: %s reloc unsupported "
|
||||
"in shared libraries and PIEs.\n"),
|
||||
abfd, sec, rel->r_offset,
|
||||
ppc64_elf_howto_table[r_type]->name);
|
||||
@ -9234,7 +9234,7 @@ ppc64_elf_edit_toc (struct bfd_link_info *info)
|
||||
sprintf (str, "%#08x", insn);
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: toc optimization is not supported for"
|
||||
(_("%H: toc optimization is not supported for"
|
||||
" %s instruction.\n"),
|
||||
ibfd, sec, rel->r_offset & ~3, str);
|
||||
}
|
||||
@ -9463,7 +9463,7 @@ ppc64_elf_edit_toc (struct bfd_link_info *info)
|
||||
ppc_howto_init ();
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: %s references "
|
||||
(_("%H: %s references "
|
||||
"optimized away TOC entry\n"),
|
||||
ibfd, sec, rel->r_offset,
|
||||
ppc64_elf_howto_table[r_type]->name);
|
||||
@ -13572,9 +13572,9 @@ ppc64_elf_relocate_section (bfd *output_bfd,
|
||||
info->callbacks->einfo
|
||||
(!IS_PPC64_TLS_RELOC (r_type)
|
||||
/* xgettext:c-format */
|
||||
? _("%P: %H: %s used with TLS symbol `%T'\n")
|
||||
? _("%H: %s used with TLS symbol `%T'\n")
|
||||
/* xgettext:c-format */
|
||||
: _("%P: %H: %s used with non-TLS symbol `%T'\n"),
|
||||
: _("%H: %s used with non-TLS symbol `%T'\n"),
|
||||
input_bfd, input_section, rel->r_offset,
|
||||
ppc64_elf_howto_table[r_type]->name,
|
||||
sym_name);
|
||||
@ -14204,13 +14204,13 @@ ppc64_elf_relocate_section (bfd *output_bfd,
|
||||
|| stub_entry->stub_type == ppc_stub_plt_call_r2save)
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: call to `%T' lacks nop, can't restore toc; "
|
||||
(_("%H: call to `%T' lacks nop, can't restore toc; "
|
||||
"recompile with -fPIC\n"),
|
||||
input_bfd, input_section, rel->r_offset, sym_name);
|
||||
else
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: call to `%T' lacks nop, can't restore toc; "
|
||||
(_("%H: call to `%T' lacks nop, can't restore toc; "
|
||||
"(-mcmodel=small toc adjust stub)\n"),
|
||||
input_bfd, input_section, rel->r_offset, sym_name);
|
||||
|
||||
@ -14887,7 +14887,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
|
||||
{
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: %s for indirect "
|
||||
(_("%H: %s for indirect "
|
||||
"function `%T' unsupported\n"),
|
||||
input_bfd, input_section, rel->r_offset,
|
||||
ppc64_elf_howto_table[r_type]->name,
|
||||
@ -15174,7 +15174,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
|
||||
relocation ^= relocation & mask;
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: error: %s not a multiple of %u\n"),
|
||||
(_("%H: error: %s not a multiple of %u\n"),
|
||||
input_bfd, input_section, rel->r_offset,
|
||||
howto->name,
|
||||
mask + 1);
|
||||
@ -15196,7 +15196,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
|
||||
{
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: unresolvable %s against `%T'\n"),
|
||||
(_("%H: unresolvable %s against `%T'\n"),
|
||||
input_bfd, input_section, rel->r_offset,
|
||||
howto->name,
|
||||
h->elf.root.root.string);
|
||||
@ -15293,7 +15293,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
|
||||
{
|
||||
info->callbacks->einfo
|
||||
/* xgettext:c-format */
|
||||
(_("%P: %H: %s against `%T': error %d\n"),
|
||||
(_("%H: %s against `%T': error %d\n"),
|
||||
input_bfd, input_section, rel->r_offset,
|
||||
reloc_name, sym_name, (int) r);
|
||||
ret = FALSE;
|
||||
|
Loading…
Reference in New Issue
Block a user