ld error/warning messages

Message ID 20180226001925.GS3812@bubble.grove.modra.org
State New
Headers show
Series
  • ld error/warning messages
Related show

Commit Message

Alan Modra Feb. 26, 2018, 12:19 a.m.
This patch standardizes messages in ld, to better conform to the GNU
coding standard.  Besides issues of capitalization and full-stops,
I've
- Split up help messages for target options, so that adding a new
  option does not mean loss of translation for all the others.
- Embedded tabs have been removed, since a user might have tab stops
  set at other than 8 char intervals.
- Added missing program name (%P).  ld isn't the compiler.
- Put %F and %X first (and removed %X if %F was present).  These can
  go anywhere, but look silly in the m%Fiddle of a message, and
  choosing "%P%F:" in some messages but "%F%P:" in others leads to the
  likelihood of duplication in ld.pot.  Besides, the colon belongs
  with %P.

	* emulparams/call_nop.sh, * emulparams/cet.sh,
	* emulparams/elf32mcore.sh, * emultempl/aarch64elf.em
	* emultempl/aix.em, * emultempl/alphaelf.em, * emultempl/armcoff.em,
	* emultempl/armelf.em, * emultempl/avrelf.em, * emultempl/beos.em,
	* emultempl/bfin.em, * emultempl/cr16elf.em, * emultempl/elf32.em,
	* emultempl/elf-generic.em, * emultempl/hppaelf.em,
	* emultempl/linux.em, * emultempl/lnk960.em,
	* emultempl/m68hc1xelf.em, * emultempl/m68kcoff.em,
	* emultempl/m68kelf.em, * emultempl/metagelf.em,
	* emultempl/mipself.em, * emultempl/mmix-elfnmmo.em,
	* emultempl/mmo.em, * emultempl/msp430.em, * emultempl/nds32elf.em,
	* emultempl/nios2elf.em, * emultempl/pe.em, * emultempl/pep.em,
	* emultempl/ppc32elf.em, * emultempl/ppc64elf.em,
	* emultempl/scoreelf.em, * emultempl/sh64elf.em,
	* emultempl/spuelf.em, * emultempl/sunos.em, * emultempl/tic6xdsbt.em,
	* emultempl/ticoff.em, * emultempl/v850elf.em, * emultempl/vms.em,
	* emultempl/vxworks.em, * emultempl/xtensaelf.em, * ldcref.c,
	* ldctor.c, * ldexp.c, * ldfile.c, * ldgram.y, * ldlang.c,
	* ldmain.c, * ldmisc.c, * ldwrite.c, * lexsup.c, * mri.c, * pe-dll.c,
	* plugin.c: Standardize error/warning messages.
	* testsuite/ld-arc/jli-overflow.err,
	* testsuite/ld-arm/cmse-implib-errors.out,
	* testsuite/ld-arm/cmse-new-earlier-later-implib.out,
	* testsuite/ld-arm/cmse-new-implib-not-sg-in-implib.out,
	* testsuite/ld-arm/cmse-new-wrong-implib.out,
	* testsuite/ld-arm/cmse-veneers-no-gnu_sgstubs.out,
	* testsuite/ld-arm/cmse-veneers-wrong-entryfct.out,
	* testsuite/ld-arm/vxworks1-static.d,
	* testsuite/ld-cris/tls-err-20x.d, * testsuite/ld-cris/tls-err-29.d,
	* testsuite/ld-cris/tls-err-31.d, * testsuite/ld-cris/tls-err-33.d,
	* testsuite/ld-cris/tls-err-35.d, * testsuite/ld-cris/tls-err-37.d,
	* testsuite/ld-cris/tls-err-39.d, * testsuite/ld-cris/tls-err-41.d,
	* testsuite/ld-cris/tls-err-43.d, * testsuite/ld-cris/tls-err-45.d,
	* testsuite/ld-cris/tls-err-47.d, * testsuite/ld-cris/tls-err-49.d,
	* testsuite/ld-cris/tls-err-51.d, * testsuite/ld-cris/tls-err-67.d,
	* testsuite/ld-elf/dwarf2.err, * testsuite/ld-elf/dwarf3.err,
	* testsuite/ld-elf/orphan-5.l, * testsuite/ld-elf/orphan-6.l,
	* testsuite/ld-i386/vxworks1-static.d,
	* testsuite/ld-mips-elf/bal-jalx-pic-micromips-n32.d,
	* testsuite/ld-mips-elf/bal-jalx-pic-micromips-n64.d,
	* testsuite/ld-mips-elf/bal-jalx-pic-micromips.d,
	* testsuite/ld-mips-elf/bal-jalx-pic-n32.d,
	* testsuite/ld-mips-elf/bal-jalx-pic-n64.d,
	* testsuite/ld-mips-elf/bal-jalx-pic.d,
	* testsuite/ld-mips-elf/jal-global-overflow-1.d,
	* testsuite/ld-mips-elf/jal-local-overflow-1.d,
	* testsuite/ld-mips-elf/mode-change-error-1.d,
	* testsuite/ld-mips-elf/unaligned-branch-2.d,
	* testsuite/ld-mips-elf/unaligned-branch-ignore-2.d,
	* testsuite/ld-mips-elf/unaligned-branch-ignore-micromips.d,
	* testsuite/ld-mips-elf/unaligned-branch-ignore-mips16.d,
	* testsuite/ld-mips-elf/unaligned-branch-ignore-r6-1.d,
	* testsuite/ld-mips-elf/unaligned-branch-micromips.d,
	* testsuite/ld-mips-elf/unaligned-branch-mips16.d,
	* testsuite/ld-mips-elf/unaligned-branch-r6-1.d,
	* testsuite/ld-mips-elf/unaligned-branch-r6-2.d,
	* testsuite/ld-mips-elf/unaligned-branch.d,
	* testsuite/ld-mips-elf/unaligned-jalx-1.d,
	* testsuite/ld-mips-elf/unaligned-jalx-3.d,
	* testsuite/ld-mips-elf/unaligned-jalx-addend-1.d,
	* testsuite/ld-mips-elf/unaligned-jalx-addend-3.d,
	* testsuite/ld-mips-elf/unaligned-jalx-addend-micromips-1.d,
	* testsuite/ld-mips-elf/unaligned-jalx-addend-mips16-1.d,
	* testsuite/ld-mips-elf/unaligned-jalx-micromips-1.d,
	* testsuite/ld-mips-elf/unaligned-jalx-mips16-1.d,
	* testsuite/ld-mips-elf/unaligned-jump-micromips.d,
	* testsuite/ld-mips-elf/unaligned-jump-mips16.d,
	* testsuite/ld-mips-elf/unaligned-jump.d,
	* testsuite/ld-mips-elf/unaligned-ldpc-1.d,
	* testsuite/ld-mips-elf/unaligned-lwpc-1.d,
	* testsuite/ld-mips-elf/undefined.d,
	* testsuite/ld-mips-elf/vxworks1-static.d,
	* testsuite/ld-mmix/bpo-20.d, * testsuite/ld-mmix/bpo-20m.d,
	* testsuite/ld-mmix/bpo-7.d, * testsuite/ld-mmix/bpo-7m.d,
	* testsuite/ld-mmix/bpo-8.d, * testsuite/ld-mmix/bpo-8m.d,
	* testsuite/ld-mmix/greg-17.d, * testsuite/ld-mmix/greg-18.d,
	* testsuite/ld-mmix/greg-8.d, * testsuite/ld-mmix/greg-9.d,
	* testsuite/ld-plugin/plugin-14.d, * testsuite/ld-plugin/plugin-15.d,
	* testsuite/ld-plugin/plugin-16.d, * testsuite/ld-plugin/plugin-20.d,
	* testsuite/ld-plugin/plugin-21.d, * testsuite/ld-plugin/plugin-22.d,
	* testsuite/ld-plugin/plugin-23.d, * testsuite/ld-plugin/plugin-6.d,
	* testsuite/ld-plugin/plugin-7.d, * testsuite/ld-plugin/plugin-8.d,
	* testsuite/ld-powerpc/aix-weak-3-32.d,
	* testsuite/ld-powerpc/aix-weak-3-64.d,
	* testsuite/ld-powerpc/vxworks1-static.d,
	* testsuite/ld-sh/vxworks1-static.d,
	* testsuite/ld-sparc/vxworks1-static.d,
	* testsuite/ld-undefined/undefined.exp,
	* testsuite/ld-x86-64/pie1.d: Update for changed errors and warnings.
	* testsuite/ld-elf/warn1.d, * testsuite/ld-elf/warn2.d: Correct regex.


-- 
Alan Modra
Australia Development Lab, IBM

Comments

Steve Ellcey Feb. 27, 2018, 12:24 a.m. | #1
Alan,

I think this change caused a failure of g++.dg/other/anon5.C in the GCC
testsuite.  On my Aarch64 system; I was getting:

/tmp/ccuhtBd3.o: In function `f()':
/home/sellcey/tot/anon5.C:18: undefined reference to `(anonymous
namespace)::c::t'
/home/sellcey/tot/anon5.C:18: undefined reference to `(anonymous
namespace)::c::t'
collect2: error: ld returned 1 exit status

And now I get:

/home/sellcey/tot/install/lib/gcc/aarch64-linux-
gnu/8.0.1/../../../../aarch64-linux-gnu/bin/ld: /tmp/ccedsFID.o: in
function `f()':
/home/sellcey/tot/anon5.C:18: undefined reference to `(anonymous
namespace)::c::t'
/home/sellcey/tot/install/lib/gcc/aarch64-linux-
gnu/8.0.1/../../../../aarch64-linux-gnu/bin/ld:
/home/sellcey/tot/anon5.C:18: undefined reference to `(anonymous
namespace)::c::t'
collect2: error: ld returned 1 exit status


This is causing the test to fail with 'excess errors'.

FAIL: g++.dg/other/anon5.C  -std=gnu++98 (test for excess errors)
Excess errors:
/home/sellcey/tot/install/aarch64-linux-gnu/bin/ld: /tmp/ccE5UDzm.o: in
function `f()':


It looks like the important difference is 'In function' (capital I) vs.
'in function' (lowercase i).  That is why this line is no longer
getting pruned the way it did before.

We could get the GCC testsuite to prune this line with a change
to prune_gcc_output in gcc/testsuite/lib/prune.exp but I am not 
sure if that is what we want to do or if you meant to use a capital
I in this case and the lower case i is a bug.

Steve Ellcey
sellcey@cavium.com
Alan Modra Feb. 27, 2018, 4:52 a.m. | #2
On Mon, Feb 26, 2018 at 04:24:22PM -0800, Steve Ellcey wrote:
> It looks like the important difference is 'In function' (capital I) vs.

> 'in function' (lowercase i).  That is why this line is no longer

> getting pruned the way it did before.

> 

> We could get the GCC testsuite to prune this line with a change

> to prune_gcc_output in gcc/testsuite/lib/prune.exp but I am not 

> sure if that is what we want to do or if you meant to use a capital

> I in this case and the lower case i is a bug.


See https://www.gnu.org/prep/standards/standards.html#Errors
"The string message should not begin with a capital letter when it
follows a program name and/or file name.."

So yes, I meant to use the lower case "in function".  Adding the
program name for ld was deliberate too.

Hmm.
// Ignore additional messages on Linux/x86 with PIE
// { dg-prune-output "Bad value" } */
That one is not going to match either.

-- 
Alan Modra
Australia Development Lab, IBM
Steve Ellcey Feb. 27, 2018, 4:25 p.m. | #3
On Tue, 2018-02-27 at 15:22 +1030, Alan Modra wrote:
> On Mon, Feb 26, 2018 at 04:24:22PM -0800, Steve Ellcey wrote:

> > 

> > It looks like the important difference is 'In function' (capital I)

> > vs.

> > 'in function' (lowercase i).  That is why this line is no longer

> > getting pruned the way it did before.

> > 

> > We could get the GCC testsuite to prune this line with a change

> > to prune_gcc_output in gcc/testsuite/lib/prune.exp but I am not 

> > sure if that is what we want to do or if you meant to use a capital

> > I in this case and the lower case i is a bug.

> See https://www.gnu.org/prep/standards/standards.html#Errors

> "The string message should not begin with a capital letter when it

> follows a program name and/or file name.."

> 

> So yes, I meant to use the lower case "in function".  Adding the

> program name for ld was deliberate too.

> 

> Hmm.

> // Ignore additional messages on Linux/x86 with PIE

> // { dg-prune-output "Bad value" } */

> That one is not going to match either.


GCC does some 'automatic' pruning in addition to the prunning that is
specifically requested via dg-prune.  If you look at
the prune_gcc_output function in gcc/testsuite/lib/prune.exp you will
see the line:

regsub -all "(^|\n)(\[^\n\]*: )?In ((static member |lambda )?function|member|method|(copy )?constructor|destructor|instantiation|substitution|program|subroutine|block-data)\[^\n\]*" $text "" text

I believe this prunning is done to all output before the specific
prunning requested by dg-prune.  I copied this line and changed 'In' to
'in' and that made the failure go away.  I couldn't just changed the
line because some other errors are still using 'In'
instead of 'in'.

Steve Ellcey
sellcey@cavium.com
Alan Modra Feb. 27, 2018, 10:17 p.m. | #4
On Tue, Feb 27, 2018 at 08:25:02AM -0800, Steve Ellcey wrote:
> On Tue, 2018-02-27 at 15:22 +1030, Alan Modra wrote:

> > On Mon, Feb 26, 2018 at 04:24:22PM -0800, Steve Ellcey wrote:

> > > 

> > > It looks like the important difference is 'In function' (capital I)

> > > vs.

> > > 'in function' (lowercase i).  That is why this line is no longer

> > > getting pruned the way it did before.

> > > 

> > > We could get the GCC testsuite to prune this line with a change

> > > to prune_gcc_output in gcc/testsuite/lib/prune.exp but I am not 

> > > sure if that is what we want to do or if you meant to use a capital

> > > I in this case and the lower case i is a bug.

> > See https://www.gnu.org/prep/standards/standards.html#Errors

> > "The string message should not begin with a capital letter when it

> > follows a program name and/or file name.."

> > 

> > So yes, I meant to use the lower case "in function".  Adding the

> > program name for ld was deliberate too.

> > 

> > Hmm.

> > // Ignore additional messages on Linux/x86 with PIE

> > // { dg-prune-output "Bad value" } */

> > That one is not going to match either.

> 

> GCC does some 'automatic' pruning in addition to the prunning that is

> specifically requested via dg-prune.  If you look at

> the prune_gcc_output function in gcc/testsuite/lib/prune.exp you will

> see the line:

> 

> regsub -all "(^|\n)(\[^\n\]*: )?In ((static member |lambda )?function|member|method|(copy )?constructor|destructor|instantiation|substitution|program|subroutine|block-data)\[^\n\]*" $text "" text

> 

> I believe this prunning is done to all output before the specific

> prunning requested by dg-prune.  I copied this line and changed 'In' to

> 'in' and that made the failure go away.  I couldn't just changed the

> line because some other errors are still using 'In'

> instead of 'in'.


Patch at https://gcc.gnu.org/ml/gcc-patches/2018-02/msg01535.html

-- 
Alan Modra
Australia Development Lab, IBM

Patch

diff --git a/ld/emulparams/call_nop.sh b/ld/emulparams/call_nop.sh
index d45806c..c114e95 100644
--- a/ld/emulparams/call_nop.sh
+++ b/ld/emulparams/call_nop.sh
@@ -20,7 +20,7 @@  PARSE_AND_LIST_ARGS_CASE_Z_CALL_NOP='
 	      char *end;
 	      link_info.call_nop_byte = strtoul (optarg + 16 , &end, 0);
 	      if (*end)
-	        einfo (_("%P%F: invalid number for -z call-nop=prefix-: %s\n"),
+		einfo (_("%F%P: invalid number for -z call-nop=prefix-: %s\n"),
 		       optarg + 16);
 	      link_info.call_nop_as_suffix = FALSE;
 	    }
@@ -29,12 +29,12 @@  PARSE_AND_LIST_ARGS_CASE_Z_CALL_NOP='
 	      char *end;
 	      link_info.call_nop_byte = strtoul (optarg + 16, &end, 0);
 	      if (*end)
-	        einfo (_("%P%F: invalid number for -z call-nop=suffix-: %s\n"),
+		einfo (_("%F%P: invalid number for -z call-nop=suffix-: %s\n"),
 		       optarg + 16);
 	      link_info.call_nop_as_suffix = TRUE;
 	    }
 	  else
-	    einfo (_("%P%F: unsupported option: -z %s\n"), optarg);
+	    einfo (_("%F%P: unsupported option: -z %s\n"), optarg);
 	}
 '
 
diff --git a/ld/emulparams/cet.sh b/ld/emulparams/cet.sh
index 1973413..7c49b95 100644
--- a/ld/emulparams/cet.sh
+++ b/ld/emulparams/cet.sh
@@ -1,7 +1,9 @@ 
 PARSE_AND_LIST_OPTIONS_CET='
   fprintf (file, _("\
-  -z ibtplt                   Generate IBT-enabled PLT entries\n\
-  -z ibt                      Generate GNU_PROPERTY_X86_FEATURE_1_IBT\n\
+  -z ibtplt                   Generate IBT-enabled PLT entries\n"));
+  fprintf (file, _("\
+  -z ibt                      Generate GNU_PROPERTY_X86_FEATURE_1_IBT\n"));
+  fprintf (file, _("\
   -z shstk                    Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK\n"));
 '
 PARSE_AND_LIST_ARGS_CASE_Z_CET='
diff --git a/ld/emulparams/elf32mcore.sh b/ld/emulparams/elf32mcore.sh
index 9a83999..1e14c19 100644
--- a/ld/emulparams/elf32mcore.sh
+++ b/ld/emulparams/elf32mcore.sh
@@ -40,8 +40,7 @@  PARSE_AND_LIST_LONGOPTS='
 '
 
 PARSE_AND_LIST_OPTIONS='
-  fprintf (file, _("  --base_file <basefile>\n"));
-  fprintf (file, _("\t\t\tGenerate a base file for relocatable DLLs\n"));
+  fprintf (file, _("  --base_file <basefile>      Generate a base file for relocatable DLLs\n"));
 '
 
 PARSE_AND_LIST_ARGS_CASES='
diff --git a/ld/emultempl/aarch64elf.em b/ld/emultempl/aarch64elf.em
index 629e1cc..34d03f3 100644
--- a/ld/emultempl/aarch64elf.em
+++ b/ld/emultempl/aarch64elf.em
@@ -264,7 +264,7 @@  gld${EMULATION_NAME}_after_allocation (void)
 					  & elf${ELFSIZE}_aarch64_add_stub_section,
 					  & gldaarch64_layout_sections_again))
 	    {
-	      einfo (_("%X%P: cannot size stub section: %E\n"));
+	      einfo (_("%X%P: can not size stub section: %E\n"));
 	      return;
 	    }
 	}
@@ -301,8 +301,8 @@  aarch64_elf_create_output_section_statements (void)
 	 These will only be created if the output format is an arm format,
 	 hence we do not support linking and changing output formats at the
 	 same time.  Use a link followed by objcopy to change output formats.  */
-      einfo (_("%F%X%P: error: Cannot change output format "
-	       "whilst linking AArch64 binaries.\n"));
+      einfo (_("%F%P: error: cannot change output format "
+	       "whilst linking %s binaries\n"), "AArch64");
       return;
     }
 
@@ -322,7 +322,7 @@  aarch64_elf_create_output_section_statements (void)
 			      bfd_get_arch (link_info.output_bfd),
 			      bfd_get_mach (link_info.output_bfd)))
     {
-      einfo (_("%X%P: can not create BFD %E\n"));
+      einfo (_("%F%P: can not create BFD: %E\n"));
       return;
     }
 
@@ -385,17 +385,17 @@  PARSE_AND_LIST_OPTIONS='
 		   "                                wchar_t sizes\n"));
   fprintf (file, _("  --pic-veneer                Always generate PIC interworking veneers\n"));
   fprintf (file, _("\
-   --stub-group-size=N   Maximum size of a group of input sections that can be\n\
-                           handled by one stub section.  A negative value\n\
-                           locates all stubs after their branches (with a\n\
-                           group size of -N), while a positive value allows\n\
-                           two groups of input sections, one before, and one\n\
-                           after each stub section.  Values of +/-1 indicate\n\
-                           the linker should choose suitable defaults.\n"
-		   ));
+  --stub-group-size=N         Maximum size of a group of input sections that\n\
+                                can be handled by one stub section.  A negative\n\
+                                value locates all stubs after their branches\n\
+                                (with a group size of -N), while a positive\n\
+                                value allows two groups of input sections, one\n\
+                                before, and one after each stub section.\n\
+                                Values of +/-1 indicate the linker should\n\
+                                choose suitable defaults.\n"));
   fprintf (file, _("  --fix-cortex-a53-835769      Fix erratum 835769\n"));
   fprintf (file, _("  --fix-cortex-a53-843419      Fix erratum 843419\n"));
-  fprintf (file, _("  --no-apply-dynamic-relocs	   Do not apply link-time values for dynamic relocations\n"));
+  fprintf (file, _("  --no-apply-dynamic-relocs    Do not apply link-time values for dynamic relocations\n"));
 '
 
 PARSE_AND_LIST_ARGS_CASES='
@@ -433,7 +433,7 @@  PARSE_AND_LIST_ARGS_CASES='
 
 	group_size = bfd_scan_vma (optarg, &end, 0);
 	if (*end)
-	  einfo (_("%P%F: invalid number `%s'\''\n"), optarg);
+	  einfo (_("%F%P: invalid number `%s'\''\n"), optarg);
       }
       break;
 '
diff --git a/ld/emultempl/aix.em b/ld/emultempl/aix.em
index b73c777..92f59f2 100644
--- a/ld/emultempl/aix.em
+++ b/ld/emultempl/aix.em
@@ -749,9 +749,9 @@  gld${EMULATION_NAME}_before_allocation (void)
 
       h = bfd_link_hash_lookup (link_info.hash, el->name, FALSE, FALSE, FALSE);
       if (h == NULL)
-	einfo (_("%P%F: bfd_link_hash_lookup of export symbol failed: %E\n"));
+	einfo (_("%F%P: bfd_link_hash_lookup of export symbol failed: %E\n"));
       if (!bfd_xcoff_export_symbol (link_info.output_bfd, &link_info, h))
-	einfo (_("%P%F: bfd_xcoff_export_symbol failed: %E\n"));
+	einfo (_("%F%P: bfd_xcoff_export_symbol failed: %E\n"));
     }
 
   /* Track down all relocations called for by the linker script (these
@@ -835,7 +835,7 @@  gld${EMULATION_NAME}_before_allocation (void)
        maxstack, maxdata, gc && !unix_ld ? TRUE : FALSE,
        modtype, textro ? TRUE : FALSE, flags, special_sections,
        rtld ? TRUE : FALSE))
-    einfo (_("%P%F: failed to set dynamic section sizes: %E\n"));
+    einfo (_("%F%P: failed to set dynamic section sizes: %E\n"));
 
   /* Look through the special sections, and put them in the right
      place in the link ordering.  This is especially magic.  */
@@ -857,7 +857,7 @@  gld${EMULATION_NAME}_before_allocation (void)
       is = NULL;
       os = lang_output_section_get (sec->output_section);
       if (os == NULL)
-	einfo (_("%P%F: can't find output section %s\n"),
+	einfo (_("%F%P: can't find output section %s\n"),
 	       sec->output_section->name);
 
       for (pls = &os->children.head; *pls != NULL; pls = &(*pls)->header.next)
@@ -894,7 +894,7 @@  gld${EMULATION_NAME}_before_allocation (void)
 
       if (is == NULL)
 	{
-	  einfo (_("%P%F: can't find %s in output section\n"),
+	  einfo (_("%F%P: can't find %s in output section\n"),
 		 bfd_get_section_name (sec->owner, sec));
 	}
 
@@ -1109,7 +1109,7 @@  gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import)
   if (f == NULL)
     {
       bfd_set_error (bfd_error_system_call);
-      einfo ("%F%s: %E\n", filename);
+      einfo ("%F%P: %s: %E\n", filename);
       return;
     }
 
@@ -1171,7 +1171,7 @@  gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import)
 	      obstack_free (o, obstack_base (o));
 	    }
 	  else if (*s == '(')
-	    einfo (_("%F%s%d: #! ([member]) is not supported "
+	    einfo (_("%F%P:%s:%d: #! ([member]) is not supported "
 		     "in import files\n"),
 		   filename, lineno);
 	  else
@@ -1188,7 +1188,7 @@  gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import)
 	      *s = '\0';
 	      if (!bfd_xcoff_split_import_path (link_info.output_bfd,
 						start, &imppath, &impfile))
-		einfo (_("%F%P: Could not parse import path: %E\n"));
+		einfo (_("%F%P: could not parse import path: %E\n"));
 	      while (ISSPACE (cs))
 		{
 		  ++s;
@@ -1198,7 +1198,7 @@  gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import)
 		{
 		  impmember = "";
 		  if (cs != '\0')
-		    einfo (_("%s:%d: warning: syntax error in import file\n"),
+		    einfo (_("%P:%s:%d: warning: syntax error in import file\n"),
 			   filename, lineno);
 		}
 	      else
@@ -1210,7 +1210,7 @@  gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import)
 		  if (*s == ')')
 		    *s = '\0';
 		  else
-		    einfo (_("%s:%d: warning: syntax error in import file\n"),
+		    einfo (_("%P:%s:%d: warning: syntax error in import file\n"),
 			   filename, lineno);
 		}
 	    }
@@ -1245,7 +1245,7 @@  gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import)
 		  while (ISSPACE (*se))
 		    ++se;
 		  if (*se != '\0')
-		    einfo (_("%s%d: warning: syntax error in "
+		    einfo (_("%P:%s%d: warning: syntax error in "
 			     "import/export file\n"),
 			   filename, lineno);
 		}
@@ -1263,7 +1263,7 @@  gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import)
 		      address = bfd_scan_vma (s, &end, 0);
 		      if (*end != '\0')
 			{
-			  einfo (_("%s:%d: warning: syntax error in "
+			  einfo (_("%P:%s:%d: warning: syntax error in "
 				   "import/export file\n"),
 				 filename, lineno);
 
@@ -1298,7 +1298,7 @@  gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import)
 						&link_info, h,
 						address, imppath, impfile,
 						impmember, syscall_flag))
-		    einfo (_("%X%s:%d: failed to import symbol %s: %E\n"),
+		    einfo (_("%X%P:%s:%d: failed to import symbol %s: %E\n"),
 			   filename, lineno, symname);
 		}
 	    }
@@ -1308,7 +1308,7 @@  gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import)
 
   if (obstack_object_size (o) > 0)
     {
-      einfo (_("%s:%d: warning: ignoring unterminated last line\n"),
+      einfo (_("%P:%s:%d: warning: ignoring unterminated last line\n"),
 	     filename, lineno);
       obstack_free (o, obstack_base (o));
     }
@@ -1374,7 +1374,7 @@  gld${EMULATION_NAME}_find_exp_assignment (etree_type *exp)
 	  if (!bfd_xcoff_record_link_assignment (link_info.output_bfd,
 						 &link_info,
 						 exp->assign.dst))
-	    einfo (_("%P%F: failed to record assignment to %s: %E\n"),
+	    einfo (_("%F%P: failed to record assignment to %s: %E\n"),
 		   exp->assign.dst);
 	}
       gld${EMULATION_NAME}_find_exp_assignment (exp->assign.src);
@@ -1472,7 +1472,7 @@  gld${EMULATION_NAME}_create_output_section_statements (void)
 				  bfd_get_arch (link_info.output_bfd),
 				  bfd_get_mach (link_info.output_bfd)))
 	{
-	  einfo (_("%X%P: can not create BFD %E\n"));
+	  einfo (_("%F%P: can not create BFD: %E\n"));
 	  return;
 	}
 
@@ -1482,7 +1482,7 @@  gld${EMULATION_NAME}_create_output_section_statements (void)
 					    link_info.fini_function,
 					    rtld))
 	{
-	  einfo (_("%X%P: can not create BFD %E\n"));
+	  einfo (_("%F%P: can not create BFD: %E\n"));
 	  return;
 	}
 
diff --git a/ld/emultempl/alphaelf.em b/ld/emultempl/alphaelf.em
index 727f44a..cbcd179 100644
--- a/ld/emultempl/alphaelf.em
+++ b/ld/emultempl/alphaelf.em
@@ -126,10 +126,11 @@  PARSE_AND_LIST_LONGOPTS='
 PARSE_AND_LIST_OPTIONS='
   fprintf (file, _("\
   --taso                      Load executable in the lower 31-bit addressable\n\
-                                virtual address range.\n\
-  --secureplt                 Force PLT in text segment.\n\
-  --no-secureplt              Force PLT in data segment.\n\
-"));
+                                virtual address range\n"));
+  fprintf (file, _("\
+  --secureplt                 Force PLT in text segment\n"));
+  fprintf (file, _("\
+  --no-secureplt              Force PLT in data segment\n"));
 '
 
 PARSE_AND_LIST_ARGS_CASES='
diff --git a/ld/emultempl/armcoff.em b/ld/emultempl/armcoff.em
index 85c83ed..7ef9d06 100644
--- a/ld/emultempl/armcoff.em
+++ b/ld/emultempl/armcoff.em
@@ -118,7 +118,8 @@  gld${EMULATION_NAME}_before_allocation (void)
 	    (is->the_bfd, & link_info, support_old_code))
 	  {
 	    /* xgettext:c-format */
-	    einfo (_("Errors encountered processing file %s"), is->filename);
+	    einfo (_("%P: errors encountered processing file %s\n"),
+		   is->filename);
 	  }
       }
   }
@@ -140,8 +141,8 @@  gld${EMULATION_NAME}_after_open (void)
 	 These will only be created if the output format is an arm format,
 	 hence we do not support linking and changing output formats at the
 	 same time.  Use a link followed by objcopy to change output formats.  */
-      einfo (_("%F%X%P: error: cannot change output format "
-	       "whilst linking ARM binaries\n"));
+      einfo (_("%F%P: error: cannot change output format "
+	       "whilst linking %s binaries\n"), "ARM");
       return;
     }
 
diff --git a/ld/emultempl/armelf.em b/ld/emultempl/armelf.em
index 3590823..2d98064 100644
--- a/ld/emultempl/armelf.em
+++ b/ld/emultempl/armelf.em
@@ -111,7 +111,8 @@  arm_elf_before_allocation (void)
 	      || !bfd_elf32_arm_stm32l4xx_erratum_scan (is->the_bfd,
 							&link_info))
 	    /* xgettext:c-format */
-	    einfo (_("Errors encountered processing file %s"), is->filename);
+	    einfo (_("%P: errors encountered processing file %s\n"),
+		   is->filename);
 	}
 
       /* We have seen it all.  Allocate it, and carry on.  */
@@ -405,7 +406,7 @@  gld${EMULATION_NAME}_after_allocation (void)
 				      & elf32_arm_add_stub_section,
 				      & gldarm_layout_sections_again))
 	    {
-	      einfo (_("%X%P: cannot size stub section: %E\n"));
+	      einfo (_("%X%P: can not size stub section: %E\n"));
 	      return;
 	    }
 	}
@@ -512,8 +513,8 @@  arm_elf_create_output_section_statements (void)
 	 These will only be created if the output format is an arm format,
 	 hence we do not support linking and changing output formats at the
 	 same time.  Use a link followed by objcopy to change output formats.  */
-      einfo (_("%F%X%P: error: Cannot change output format "
-	       "whilst linking ARM binaries.\n"));
+      einfo (_("%F%P: error: cannot change output format "
+	       "whilst linking %s binaries\n"), "ARM");
       return;
     }
 
@@ -523,10 +524,10 @@  arm_elf_create_output_section_statements (void)
 					bfd_get_target (link_info.output_bfd));
 
       if (params.in_implib_bfd == NULL)
-	einfo (_("%F%s: Can't open: %E\n"), in_implib_filename);
+	einfo (_("%F%P: %s: can't open: %E\n"), in_implib_filename);
 
       if (!bfd_check_format (params.in_implib_bfd, bfd_object))
-	einfo (_("%F%s: Not a relocatable file: %E\n"), in_implib_filename);
+	einfo (_("%F%P: %s: not a relocatable file: %E\n"), in_implib_filename);
     }
 
   bfd_elf32_arm_set_target_params (link_info.output_bfd, &link_info, &params);
@@ -540,7 +541,7 @@  arm_elf_create_output_section_statements (void)
 			      bfd_get_arch (link_info.output_bfd),
 			      bfd_get_mach (link_info.output_bfd)))
     {
-      einfo (_("%X%P: can not create BFD %E\n"));
+      einfo (_("%F%P: can not create BFD: %E\n"));
       return;
     }
 
@@ -654,13 +655,13 @@  PARSE_AND_LIST_OPTIONS='
                    "                                remain stable\n"));
   fprintf (file, _("\
   --stub-group-size=N         Maximum size of a group of input sections that\n\
-                               can be handled by one stub section.  A negative\n\
-                               value locates all stubs after their branches\n\
-                               (with a group size of -N), while a positive\n\
-                               value allows two groups of input sections, one\n\
-                               before, and one after each stub section.\n\
-                               Values of +/-1 indicate the linker should\n\
-                               choose suitable defaults.\n"));
+                                can be handled by one stub section.  A negative\n\
+                                value locates all stubs after their branches\n\
+                                (with a group size of -N), while a positive\n\
+                                value allows two groups of input sections, one\n\
+                                before, and one after each stub section.\n\
+                                Values of +/-1 indicate the linker should\n\
+                                choose suitable defaults.\n"));
   fprintf (file, _("  --[no-]fix-cortex-a8        Disable/enable Cortex-A8 Thumb-2 branch erratum fix\n"));
   fprintf (file, _("  --no-merge-exidx-entries    Disable merging exidx entries\n"));
   fprintf (file, _("  --[no-]fix-arm1176          Disable/enable ARM1176 BLX immediate erratum fix\n"));
@@ -711,7 +712,7 @@  PARSE_AND_LIST_ARGS_CASES='
       else if (strcmp (optarg, "vector") == 0)
 	params.vfp11_denorm_fix = BFD_ARM_VFP11_FIX_VECTOR;
       else
-	einfo (_("Unrecognized VFP11 fix type '\''%s'\''.\n"), optarg);
+	einfo (_("%P: unrecognized VFP11 fix type '\''%s'\''\n"), optarg);
       break;
 
     case OPTION_STM32L4XX_FIX:
@@ -724,7 +725,7 @@  PARSE_AND_LIST_ARGS_CASES='
       else if (strcmp (optarg, "all") == 0)
 	params.stm32l4xx_fix = BFD_ARM_STM32L4XX_FIX_ALL;
       else
-	einfo (_("Unrecognized STM32L4XX fix type '\''%s'\''.\n"), optarg);
+	einfo (_("%P: unrecognized STM32L4XX fix type '\''%s'\''\n"), optarg);
       break;
 
     case OPTION_NO_ENUM_SIZE_WARNING:
@@ -745,7 +746,7 @@  PARSE_AND_LIST_ARGS_CASES='
 
 	group_size = bfd_scan_vma (optarg, &end, 0);
 	if (*end)
-	  einfo (_("%P%F: invalid number `%s'\''\n"), optarg);
+	  einfo (_("%F%P: invalid number `%s'\''\n"), optarg);
       }
       break;
 
diff --git a/ld/emultempl/avrelf.em b/ld/emultempl/avrelf.em
index 4f33ad1..a05c39a 100644
--- a/ld/emultempl/avrelf.em
+++ b/ld/emultempl/avrelf.em
@@ -116,8 +116,8 @@  avr_elf_create_output_section_statements (void)
 
   if (bfd_get_flavour (link_info.output_bfd) != bfd_target_elf_flavour)
     {
-      einfo (_("%X%P: changing output format whilst linking "
-	       "is not supported\n"));
+      einfo (_("%F%P: error: cannot change output format "
+	       "whilst linking %s binaries\n"), "AVR");
       return;
     }
 
@@ -131,7 +131,7 @@  avr_elf_create_output_section_statements (void)
 			     bfd_get_arch (link_info.output_bfd),
 			     bfd_get_mach (link_info.output_bfd)))
     {
-      einfo (_("%X%P: can not create stub BFD %E\n"));
+      einfo (_("%X%P: can not create stub BFD: %E\n"));
       return;
     }
 
diff --git a/ld/emultempl/beos.em b/ld/emultempl/beos.em
index ce59a09..ad4494e 100644
--- a/ld/emultempl/beos.em
+++ b/ld/emultempl/beos.em
@@ -226,7 +226,7 @@  set_pe_subsystem (void)
 	  return;
 	}
     }
-  einfo (_("%P%F: invalid subsystem type %s\n"), optarg);
+  einfo (_("%F%P: invalid subsystem type %s\n"), optarg);
 }
 
 
@@ -237,7 +237,7 @@  set_pe_value (char *name)
   set_pe_name (name,  strtoul (optarg, &end, 0));
   if (end == optarg)
     {
-      einfo (_("%P%F: invalid hex number for PE parameter '%s'\n"), optarg);
+      einfo (_("%F%P: invalid hex number for PE parameter '%s'\n"), optarg);
     }
 
   optarg = end;
@@ -254,7 +254,7 @@  set_pe_stack_heap (char *resname, char *comname)
     }
   else if (*optarg)
     {
-      einfo (_("%P%F: strange hex info for PE parameter '%s'\n"), optarg);
+      einfo (_("%F%P: strange hex info for PE parameter '%s'\n"), optarg);
     }
 }
 
@@ -366,7 +366,7 @@  gld_${EMULATION_NAME}_set_symbols (void)
   if (pe.FileAlignment >
       pe.SectionAlignment)
     {
-      einfo (_("%P: warning, file alignment > section alignment.\n"));
+      einfo (_("%P: warning, file alignment > section alignment\n"));
     }
 }
 
@@ -380,7 +380,7 @@  gld_${EMULATION_NAME}_after_open (void)
      including an internal BFD header.  */
   if (!coff_data(link_info.output_bfd)->pe)
     {
-      einfo (_("%F%P: PE operations on non PE file.\n"));
+      einfo (_("%F%P: PE operations on non PE file\n"));
     }
 
   pe_data(link_info.output_bfd)->pe_opthdr = pe;
@@ -433,14 +433,14 @@  sort_by_file_name (const void *a, const void *b)
 				     (*ra)->input_section.section, &a_sec,
 				     (file_ptr) 0,
 				     (bfd_size_type) sizeof(a_sec)))
-	einfo (_("%F%pB: Can't read contents of section .idata: %E\n"),
+	einfo (_("%F%P: %pB: can't read contents of section .idata: %E\n"),
 	       (*ra)->input_section.section->owner);
 
       if (!bfd_get_section_contents ((*rb)->input_section.section->owner,
 				     (*rb)->input_section.section, &b_sec,
 				     (file_ptr) 0,
 				     (bfd_size_type) sizeof(b_sec)))
-	einfo (_("%F%pB: Can't read contents of section .idata: %E\n"),
+	einfo (_("%F%P: %pB: can't read contents of section .idata: %E\n"),
 	       (*rb)->input_section.section->owner);
 
       i = a_sec < b_sec ? -1 : 0;
@@ -618,7 +618,8 @@  gld_${EMULATION_NAME}_before_allocation (void)
     {
       if (!ppc_process_before_allocation(is->the_bfd, &link_info))
 	{
-	  einfo (_("Errors encountered processing file %s\n"), is->filename);
+	  einfo (_("%P: errors encountered processing file %s\n"),
+		 is->filename);
 	}
     }
   }
@@ -638,7 +639,8 @@  gld_${EMULATION_NAME}_before_allocation (void)
     {
       if (!arm_process_before_allocation (is->the_bfd, & link_info))
 	{
-	  einfo (_("Errors encountered processing file %s"), is->filename);
+	  einfo (_("%P: errors encountered processing file %s\n"),
+		 is->filename);
 	}
     }
   }
@@ -686,7 +688,7 @@  gld${EMULATION_NAME}_place_orphan (asection *s,
   /* Everything from the '\$' on gets deleted so don't allow '\$' as the
      first character.  */
   if (*secname == '\$')
-    einfo (_("%P%F: section %s has '\$' as first character\n"), secname);
+    einfo (_("%F%P: section %s has '\$' as first character\n"), secname);
   if (strchr (secname + 1, '\$') == NULL)
     return NULL;
 
@@ -718,7 +720,7 @@  gld${EMULATION_NAME}_place_orphan (asection *s,
       }
   ps[0] = 0;
   if (l == NULL)
-    einfo (_("%P%F: *(%s\$) missing from linker script\n"), output_secname);
+    einfo (_("%F%P: *(%s\$) missing from linker script\n"), output_secname);
 
   /* Link the input section in and we're done for now.
      The sections still have to be sorted, but that has to wait until
diff --git a/ld/emultempl/bfin.em b/ld/emultempl/bfin.em
index fcad19d..c16d893 100644
--- a/ld/emultempl/bfin.em
+++ b/ld/emultempl/bfin.em
@@ -50,9 +50,9 @@  PARSE_AND_LIST_LONGOPTS='
 
 PARSE_AND_LIST_OPTIONS='
   fprintf (file, _("\
-  --code-in-l1                Put code in L1.\n\
-  --data-in-l1                Put data in L1.\n"
-		   ));
+  --code-in-l1                Put code in L1\n"));
+  fprintf (file, _("\
+  --data-in-l1                Put data in L1\n"));
 '
 
 PARSE_AND_LIST_ARGS_CASES='
diff --git a/ld/emultempl/cr16elf.em b/ld/emultempl/cr16elf.em
index 710db1a..3a35745 100644
--- a/ld/emultempl/cr16elf.em
+++ b/ld/emultempl/cr16elf.em
@@ -57,7 +57,7 @@  cr16_elf_after_open (void)
 	     COFF and ELF.  */
 	  if (bfd_get_flavour (abfd) != bfd_target_coff_flavour
 	      && bfd_get_flavour (abfd) != bfd_target_elf_flavour)
-	    einfo (_("%F%pB: all input objects must be COFF or ELF "
+	    einfo (_("%F%P: %pB: all input objects must be COFF or ELF "
 		     "for --embedded-relocs\n"));
 
 	  datasec = bfd_get_section_by_name (abfd, ".data.rel");
@@ -83,7 +83,7 @@  cr16_elf_after_open (void)
 		  || ! bfd_set_section_alignment (abfd, relsec, 2)
 		  || ! bfd_set_section_size (abfd, relsec,
 					     datasec->reloc_count * 8))
-		einfo (_("%F%pB: can not create .emreloc section: %E\n"));
+		einfo (_("%F%P: %pB: can not create .emreloc section: %E\n"));
 	    }
 
 	  /* Double check that all other data sections are empty, as is
@@ -102,7 +102,7 @@  check_sections (bfd *abfd, asection *sec, void *datasec)
   if ((strncmp (bfd_get_section_name (abfd, sec), ".data.rel", 9) == 0)
       && sec != datasec
       && sec->reloc_count == 0 )
-    einfo (_("%pB%X: section %s has relocs; can not use --embedded-relocs\n"),
+    einfo (_("%X%P: %pB: section %s has relocs; can not use --embedded-relocs\n"),
 	   abfd, bfd_get_section_name (abfd, sec));
 }
 
@@ -158,10 +158,10 @@  cr16elf_before_allocation (void)
 						       &errmsg))
 	    {
 	      if (errmsg == NULL)
-		einfo (_("%pB%X: can not create runtime reloc information: %E\n"),
+		einfo (_("%X%P: %pB: can not create runtime reloc information: %E\n"),
 		       abfd);
 	      else
-		einfo (_("%X%pB: can not create runtime reloc information: %s\n"),
+		einfo (_("%X%P: %pB: can not create runtime reloc information: %s\n"),
 		       abfd, errmsg);
 	    }
 	}
diff --git a/ld/emultempl/elf-generic.em b/ld/emultempl/elf-generic.em
index bb6ec03..0688bd3 100644
--- a/ld/emultempl/elf-generic.em
+++ b/ld/emultempl/elf-generic.em
@@ -66,6 +66,6 @@  gld${EMULATION_NAME}_map_segments (bfd_boolean need_layout)
   while (need_layout && --tries);
 
   if (tries == 0)
-    einfo (_("%P%F: looping in map_segments"));
+    einfo (_("%F%P: looping in map_segments"));
 }
 EOF
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
index eb90743..aae9d1f 100644
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -156,7 +156,7 @@  gld${EMULATION_NAME}_load_symbols (lang_input_statement_type *entry)
 
   if (entry->flags.just_syms
       && (bfd_get_file_flags (entry->the_bfd) & DYNAMIC) != 0)
-    einfo (_("%P%F: --just-symbols may not be used on DSO: %pB\n"),
+    einfo (_("%F%P: %pB: --just-symbols may not be used on DSO\n"),
 	   entry->the_bfd);
 
   if (link_class == 0
@@ -279,7 +279,7 @@  gld${EMULATION_NAME}_stat_needed (lang_input_statement_type *s)
 
   if (bfd_stat (s->the_bfd, &st) != 0)
     {
-      einfo (_("%P:%pB: bfd_stat failed: %E\n"), s->the_bfd);
+      einfo (_("%P: %pB: bfd_stat failed: %E\n"), s->the_bfd);
       return;
     }
 
@@ -381,7 +381,7 @@  gld${EMULATION_NAME}_try_needed (struct dt_needed *needed,
       struct bfd_link_needed_list *needs;
 
       if (! bfd_elf_get_bfd_needed_list (abfd, &needs))
-	einfo (_("%F%P:%pB: bfd_elf_get_bfd_needed_list failed: %E\n"), abfd);
+	einfo (_("%F%P: %pB: bfd_elf_get_bfd_needed_list failed: %E\n"), abfd);
 
       if (needs != NULL)
 	{
@@ -438,7 +438,7 @@  fragment <<EOF
      can only check that using stat.  */
 
   if (bfd_stat (abfd, &global_stat) != 0)
-    einfo (_("%F%P:%pB: bfd_stat failed: %E\n"), abfd);
+    einfo (_("%F%P: %pB: bfd_stat failed: %E\n"), abfd);
 
   /* First strip off everything before the last '/'.  */
   soname = lbasename (abfd->filename);
@@ -474,7 +474,7 @@  fragment <<EOF
 
   /* Add this file into the symbol table.  */
   if (! bfd_link_add_symbols (abfd, &link_info))
-    einfo (_("%F%pB: error adding symbols: %E\n"), abfd);
+    einfo (_("%F%P: %pB: error adding symbols: %E\n"), abfd);
 
   return TRUE;
 }
@@ -1148,7 +1148,7 @@  write_build_id (bfd *abfd)
   if (bfd_is_abs_section (asec->output_section))
     {
       einfo (_("%P: warning: .note.gnu.build-id section discarded,"
-	       " --build-id ignored.\n"));
+	       " --build-id ignored\n"));
       return TRUE;
     }
   i_shdr = &elf_section_data (asec->output_section)->this_hdr;
@@ -1193,7 +1193,7 @@  setup_build_id (bfd *ibfd)
   size = id_note_section_size (ibfd);
   if (size == 0)
     {
-      einfo (_("%P: warning: unrecognized --build-id style ignored.\n"));
+      einfo (_("%P: warning: unrecognized --build-id style ignored\n"));
       return FALSE;
     }
 
@@ -1211,8 +1211,8 @@  setup_build_id (bfd *ibfd)
       return TRUE;
     }
 
-  einfo (_("%P: warning: Cannot create .note.gnu.build-id section,"
-	   " --build-id ignored.\n"));
+  einfo (_("%P: warning: cannot create .note.gnu.build-id section,"
+	   " --build-id ignored\n"));
   return FALSE;
 }
 
@@ -1241,7 +1241,7 @@  gld${EMULATION_NAME}_after_open (void)
 
       if (link_info.out_implib_bfd == NULL)
 	{
-	  einfo (_("%F%s: Can't open for writing: %E\n"),
+	  einfo (_("%F%P: %s: can't open for writing: %E\n"),
 		 command_line.out_implib_filename);
 	}
     }
@@ -1317,7 +1317,7 @@  gld${EMULATION_NAME}_after_open (void)
 		}
 	      else if (seen_type != type)
 		{
-		  einfo (_("%P%F: compact frame descriptions incompatible with"
+		  einfo (_("%F%P: compact frame descriptions incompatible with"
 			   " DWARF2 .eh_frame from %pB\n"),
 			 type == DWARF2_EH_HDR ? abfd : elfbfd);
 		  break;
@@ -1352,8 +1352,8 @@  gld${EMULATION_NAME}_after_open (void)
 	    }
 	}
       if (warn_eh_frame)
-	einfo (_("%P: warning: Cannot create .eh_frame_hdr section,"
-		 " --eh-frame-hdr ignored.\n"));
+	einfo (_("%P: warning: cannot create .eh_frame_hdr section,"
+		 " --eh-frame-hdr ignored\n"));
     }
 
   /* Get the list of files which appear in DT_NEEDED entries in
@@ -1548,7 +1548,7 @@  fragment <<EOF
 
   if (link_info.eh_frame_hdr_type == COMPACT_EH_HDR)
     if (!bfd_elf_parse_eh_frame_entries (NULL, &link_info))
-      einfo (_("%P%F: Failed to parse EH frame entries.\n"));
+      einfo (_("%F%P: failed to parse EH frame entries\n"));
 }
 
 EOF
@@ -1583,7 +1583,7 @@  gld${EMULATION_NAME}_find_exp_assignment (etree_type *exp)
 					       &link_info,
 					       exp->assign.dst, provide,
 					       exp->assign.hidden))
-	    einfo (_("%P%F: failed to record assignment to %s: %E\n"),
+	    einfo (_("%F%P: failed to record assignment to %s: %E\n"),
 		   exp->assign.dst);
 	}
       gld${EMULATION_NAME}_find_exp_assignment (exp->assign.src);
@@ -1786,7 +1786,7 @@  gld${EMULATION_NAME}_before_allocation (void)
 	  command_line.filter_shlib, audit, depaudit,
 	  (const char * const *) command_line.auxiliary_filters,
 	  &link_info, &sinterp)))
-    einfo (_("%P%F: failed to set dynamic section sizes: %E\n"));
+    einfo (_("%F%P: failed to set dynamic section sizes: %E\n"));
 
 ${ELF_INTERPRETER_SET_DEFAULT}
   /* Let the user override the dynamic linker we are using.  */
@@ -1820,7 +1820,7 @@  ${ELF_INTERPRETER_SET_DEFAULT}
 	msg = (char *) xmalloc ((size_t) (sz + 1));
 	if (! bfd_get_section_contents (is->the_bfd, s,	msg,
 					(file_ptr) 0, sz))
-	  einfo (_("%F%pB: Can't read contents of section .gnu.warning: %E\n"),
+	  einfo (_("%F%P: %pB: can't read contents of section .gnu.warning: %E\n"),
 		 is->the_bfd);
 	msg[sz] = '\0';
 	(*link_info.callbacks->warning) (&link_info, msg,
@@ -1848,7 +1848,7 @@  ${ELF_INTERPRETER_SET_DEFAULT}
   before_allocation_default ();
 
   if (!bfd_elf_size_dynsym_hash_dynstr (link_info.output_bfd, &link_info))
-    einfo (_("%P%F: failed to set dynamic section sizes: %E\n"));
+    einfo (_("%F%P: failed to set dynamic section sizes: %E\n"));
 
   if (ehdr_start != NULL)
     {
@@ -2662,7 +2662,7 @@  gld${EMULATION_NAME}_handle_option (int optc)
       else if (strcasecmp (optarg, "zlib-gabi") == 0)
 	link_info.compress_debug = COMPRESS_DEBUG_GABI_ZLIB;
       else
-	einfo (_("%P%F: invalid --compress-debug-sections option: \`%s'\n"),
+	einfo (_("%F%P: invalid --compress-debug-sections option: \`%s'\n"),
 	       optarg);
       break;
 EOF
@@ -2717,7 +2717,7 @@  fragment <<EOF
 	  link_info.emit_gnu_hash = TRUE;
 	}
       else
-	einfo (_("%P%F: invalid hash style \`%s'\n"), optarg);
+	einfo (_("%F%P: invalid hash style \`%s'\n"), optarg);
       break;
 
 EOF
@@ -2736,7 +2736,7 @@  fragment <<EOF
 
 	  config.maxpagesize = strtoul (optarg + 14, &end, 0);
 	  if (*end || (config.maxpagesize & (config.maxpagesize - 1)) != 0)
-	    einfo (_("%P%F: invalid maxium page size \`%s'\n"),
+	    einfo (_("%F%P: invalid maxium page size \`%s'\n"),
 		   optarg + 14);
 	}
       else if (CONST_STRNEQ (optarg, "common-page-size="))
@@ -2745,7 +2745,7 @@  fragment <<EOF
 	  config.commonpagesize = strtoul (optarg + 17, &end, 0);
 	  if (*end
 	      || (config.commonpagesize & (config.commonpagesize - 1)) != 0)
-	    einfo (_("%P%F: invalid common page size \`%s'\n"),
+	    einfo (_("%F%P: invalid common page size \`%s'\n"),
 		   optarg + 17);
 	}
       else if (CONST_STRNEQ (optarg, "stack-size="))
@@ -2753,7 +2753,7 @@  fragment <<EOF
 	  char *end;
 	  link_info.stacksize = strtoul (optarg + 11, &end, 0);
 	  if (*end || link_info.stacksize < 0)
-	    einfo (_("%P%F: invalid stack size \`%s'\n"), optarg + 11);
+	    einfo (_("%F%P: invalid stack size \`%s'\n"), optarg + 11);
 	  if (!link_info.stacksize)
 	    /* Use -1 for explicit no-stack, because zero means
 	       'default'.   */
@@ -2843,7 +2843,7 @@  fi
 
 fragment <<EOF
       else
-	einfo (_("%P: warning: -z %s ignored.\n"), optarg);
+	einfo (_("%P: warning: -z %s ignored\n"), optarg);
       break;
 EOF
 
diff --git a/ld/emultempl/hppaelf.em b/ld/emultempl/hppaelf.em
index e736b29..3843a67 100644
--- a/ld/emultempl/hppaelf.em
+++ b/ld/emultempl/hppaelf.em
@@ -82,7 +82,7 @@  hppaelf_create_output_section_statements (void)
 			      bfd_get_arch (link_info.output_bfd),
 			      bfd_get_mach (link_info.output_bfd)))
     {
-      einfo (_("%X%P: can not create BFD %E\n"));
+      einfo (_("%F%P: can not create BFD: %E\n"));
       return;
     }
 
@@ -372,7 +372,7 @@  PARSE_AND_LIST_ARGS_CASES='
 	const char *end;
 	group_size = bfd_scan_vma (optarg, &end, 0);
 	if (*end)
-	  einfo (_("%P%F: invalid number `%s'\''\n"), optarg);
+	  einfo (_("%F%P: invalid number `%s'\''\n"), optarg);
       }
       break;
 '
diff --git a/ld/emultempl/linux.em b/ld/emultempl/linux.em
index 62dd772..c965741 100644
--- a/ld/emultempl/linux.em
+++ b/ld/emultempl/linux.em
@@ -123,7 +123,7 @@  gld${EMULATION_NAME}_before_allocation (void)
      dynamic linking.  */
   if (! bfd_${EMULATION_NAME}_size_dynamic_sections (link_info.output_bfd,
 						     &link_info))
-    einfo (_("%P%F: failed to set dynamic section sizes: %E\n"));
+    einfo (_("%F%P: failed to set dynamic section sizes: %E\n"));
 
   before_allocation_default ();
 }
diff --git a/ld/emultempl/lnk960.em b/ld/emultempl/lnk960.em
index a88c6b7..b9ba51d 100644
--- a/ld/emultempl/lnk960.em
+++ b/ld/emultempl/lnk960.em
@@ -90,7 +90,7 @@  lnk960_before_parse (void)
     {
       name = getenv("G960BASE");
       if (name == (char *) NULL)
-	einfo (_("%P%F I960BASE and G960BASE not set\n"));
+	einfo (_("%F%P: I960BASE and G960BASE not set\n"));
     }
 
   ldfile_add_library_path (concat (name, "/lib", (const char *) NULL), FALSE);
@@ -141,7 +141,7 @@  symbol_at_beginning_of (const char *secname, const char *name)
 
   h = bfd_link_hash_lookup (link_info.hash, name, TRUE, TRUE, TRUE);
   if (h == NULL)
-    einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n"));
+    einfo (_("%F%P: bfd_link_hash_lookup failed: %E\n"));
 
   if (h->type == bfd_link_hash_new
       || h->type == bfd_link_hash_undefined)
@@ -170,7 +170,7 @@  symbol_at_end_of (const char *secname, const char *name)
 
   h = bfd_link_hash_lookup (link_info.hash, name, TRUE, TRUE, TRUE);
   if (h == NULL)
-    einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n"));
+    einfo (_("%F%P: bfd_link_hash_lookup failed: %E\n"));
 
   if (h->type == bfd_link_hash_new
       || h->type == bfd_link_hash_undefined)
diff --git a/ld/emultempl/m68hc1xelf.em b/ld/emultempl/m68hc1xelf.em
index 9b87ac7..713ea44 100644
--- a/ld/emultempl/m68hc1xelf.em
+++ b/ld/emultempl/m68hc1xelf.em
@@ -130,9 +130,8 @@  m68hc11_elf_${EMULATION_NAME}_before_allocation (void)
 
       if (pinfo->bank_size != region->length)
 	{
-	  einfo (_("warning: the size of the 'window' memory region "
-		   "is not a power of 2\n"));
-	  einfo (_("warning: its size %d is truncated to %d\n"),
+	  einfo (_("%P: warning: the size of the 'window' memory region "
+		   "is not a power of 2; its size %d is truncated to %d\n"),
 		 region->length, pinfo->bank_size);
 	}
     }
@@ -160,7 +159,7 @@  m68hc11elf_create_output_section_statements (void)
 			     bfd_get_arch (link_info.output_bfd),
 			     bfd_get_mach (link_info.output_bfd)))
     {
-      einfo (_("%X%P: can not create BFD %E\n"));
+      einfo (_("%F%P: can not create BFD: %E\n"));
       return;
     }
 
@@ -361,10 +360,10 @@  PARSE_AND_LIST_LONGOPTS='
 PARSE_AND_LIST_OPTIONS='
   fprintf (file, _(
 "  --no-trampoline             Do not generate the far trampolines used to call\n"
-"                                a far function using 'jsr' or 'bsr'.\n"
+"                                a far function using 'jsr' or 'bsr'\n"));
+  fprintf (file, _(
 "  --bank-window NAME          Specify the name of the memory region describing\n"
-"                                the layout of the memory bank window.\n"
-		   ));
+"                                the layout of the memory bank window\n"));
 '
 
 PARSE_AND_LIST_ARGS_CASES='
diff --git a/ld/emultempl/m68kcoff.em b/ld/emultempl/m68kcoff.em
index 92b0848..1e36f3f 100644
--- a/ld/emultempl/m68kcoff.em
+++ b/ld/emultempl/m68kcoff.em
@@ -74,7 +74,7 @@  gld${EMULATION_NAME}_after_open (void)
       /* As first-order business, make sure that each input BFD is COFF. It
 	 better be, as we are directly calling a COFF backend function.  */
       if (bfd_get_flavour (abfd) != bfd_target_coff_flavour)
-	einfo (_("%F%pB: all input objects must be COFF "
+	einfo (_("%F%P: %pB: all input objects must be COFF "
 		 "for --embedded-relocs\n"));
 
       datasec = bfd_get_section_by_name (abfd, ".data");
@@ -99,7 +99,7 @@  gld${EMULATION_NAME}_after_open (void)
 	      || ! bfd_set_section_alignment (abfd, relsec, 2)
 	      || ! bfd_set_section_size (abfd, relsec,
 					 datasec->reloc_count * 12))
-	    einfo (_("%F%pB: can not create .emreloc section: %E\n"));
+	    einfo (_("%F%P: %pB: can not create .emreloc section: %E\n"));
 	}
 
       /* Double check that all other data sections are empty, as is
@@ -117,7 +117,7 @@  check_sections (bfd *abfd, asection *sec, void *datasec)
   if ((bfd_get_section_flags (abfd, sec) & SEC_DATA)
       && sec != datasec
       && sec->reloc_count != 0)
-    einfo (_("%pB%X: section %s has relocs; can not use --embedded-relocs\n"),
+    einfo (_("%X%P: %pB: section %s has relocs; can not use --embedded-relocs\n"),
 	   abfd, bfd_get_section_name (abfd, sec));
 }
 
@@ -152,10 +152,10 @@  gld${EMULATION_NAME}_after_allocation (void)
 						   &errmsg))
 	{
 	  if (errmsg == NULL)
-	    einfo (_("%pB%X: can not create runtime reloc information: %E\n"),
+	    einfo (_("%X%P: %pB: can not create runtime reloc information: %E\n"),
 		   abfd);
 	  else
-	    einfo (_("%X%pB: can not create runtime reloc information: %s\n"),
+	    einfo (_("%X%P: %pB: can not create runtime reloc information: %s\n"),
 		   abfd, errmsg);
 	}
     }
diff --git a/ld/emultempl/m68kelf.em b/ld/emultempl/m68kelf.em
index 63c0be4..ea07002 100644
--- a/ld/emultempl/m68kelf.em
+++ b/ld/emultempl/m68kelf.em
@@ -85,7 +85,7 @@  m68k_elf_after_open (void)
 	     COFF and ELF.  */
 	  if (bfd_get_flavour (abfd) != bfd_target_coff_flavour
 	      && bfd_get_flavour (abfd) != bfd_target_elf_flavour)
-	    einfo (_("%F%pB: all input objects must be COFF or ELF "
+	    einfo (_("%F%P: %pB: all input objects must be COFF or ELF "
 		     "for --embedded-relocs\n"));
 
 	  datasec = bfd_get_section_by_name (abfd, ".data");
@@ -110,7 +110,7 @@  m68k_elf_after_open (void)
 		  || ! bfd_set_section_alignment (abfd, relsec, 2)
 		  || ! bfd_set_section_size (abfd, relsec,
 					     datasec->reloc_count * 12))
-		einfo (_("%F%pB: can not create .emreloc section: %E\n"));
+		einfo (_("%F%P: %pB: can not create .emreloc section: %E\n"));
 	    }
 
 	  /* Double check that all other data sections are empty, as is
@@ -131,7 +131,7 @@  check_sections (bfd *abfd, asection *sec, void *datasec)
   if ((bfd_get_section_flags (abfd, sec) & SEC_DATA)
       && sec != datasec
       && sec->reloc_count != 0)
-    einfo (_("%pB%X: section %s has relocs; can not use --embedded-relocs\n"),
+    einfo (_("%X%P: %pB: section %s has relocs; can not use --embedded-relocs\n"),
 	   abfd, bfd_get_section_name (abfd, sec));
 }
 
@@ -174,11 +174,11 @@  m68k_elf_after_allocation (void)
 							  &errmsg))
 		{
 		  if (errmsg == NULL)
-		    einfo (_("%pB%X: can not create "
+		    einfo (_("%X%P: %pB: can not create "
 			     "runtime reloc information: %E\n"),
 			   abfd);
 		  else
-		    einfo (_("%X%pB: can not create "
+		    einfo (_("%X%P: %pB: can not create "
 			     "runtime reloc information: %s\n"),
 			   abfd, errmsg);
 		}
@@ -190,11 +190,11 @@  m68k_elf_after_allocation (void)
 							   &errmsg))
 		{
 		  if (errmsg == NULL)
-		    einfo (_("%pB%X: can not create "
+		    einfo (_("%X%P: %pB: can not create "
 			     "runtime reloc information: %E\n"),
 			   abfd);
 		  else
-		    einfo (_("%X%pB: can not create "
+		    einfo (_("%X%P: %pB: can not create "
 			     "runtime reloc information: %s\n"),
 			   abfd, errmsg);
 		}
@@ -243,7 +243,7 @@  PARSE_AND_LIST_ARGS_CASES='
       else if (strcmp (optarg, "multigot") == 0)
 	got_handling = 2;
       else
-	einfo (_("Unrecognized --got argument '\''%s'\''.\n"), optarg);
+	einfo (_("%P: unrecognized --got argument '\''%s'\''\n"), optarg);
       break;
 '
 
diff --git a/ld/emultempl/metagelf.em b/ld/emultempl/metagelf.em
index 67f432c..6b1e894 100644
--- a/ld/emultempl/metagelf.em
+++ b/ld/emultempl/metagelf.em
@@ -59,7 +59,7 @@  metagelf_create_output_section_statements (void)
 			      bfd_get_arch (link_info.output_bfd),
 			      bfd_get_mach (link_info.output_bfd)))
     {
-      einfo (_("%X%P: can not create BFD %E\n"));
+      einfo (_("%F%P: can not create BFD: %E\n"));
       return;
     }
 
@@ -330,7 +330,7 @@  PARSE_AND_LIST_ARGS_CASES='
 	const char *end;
 	group_size = bfd_scan_vma (optarg, &end, 0);
 	if (*end)
-	  einfo (_("%P%F: invalid number `%s'\''\n"), optarg);
+	  einfo (_("%F%P: invalid number `%s'\''\n"), optarg);
       }
       break;
 '
diff --git a/ld/emultempl/mipself.em b/ld/emultempl/mipself.em
index 5d428d2..c7c1642 100644
--- a/ld/emultempl/mipself.em
+++ b/ld/emultempl/mipself.em
@@ -157,7 +157,7 @@  mips_add_stub_section (const char *stub_sec_name, asection *input_section,
 				 bfd_get_arch (link_info.output_bfd),
 				 bfd_get_mach (link_info.output_bfd)))
 	{
-	  einfo (_("%F%P: can not create BFD %E\n"));
+	  einfo (_("%F%P: can not create BFD: %E\n"));
 	  return NULL;
 	}
       stub_bfd->flags |= BFD_LINKER_CREATED;
diff --git a/ld/emultempl/mmix-elfnmmo.em b/ld/emultempl/mmix-elfnmmo.em
index 3f98d31..7492c1d 100644
--- a/ld/emultempl/mmix-elfnmmo.em
+++ b/ld/emultempl/mmix-elfnmmo.em
@@ -53,7 +53,7 @@  mmix_before_allocation (void)
   ENABLE_RELAXATION;
 
   if (!_bfd_mmix_before_linker_allocation (link_info.output_bfd, &link_info))
-    einfo (_("%X%P: Internal problems setting up section %s"),
+    einfo (_("%X%P: internal problems setting up section %s"),
 	   MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME);
 }
 
@@ -97,7 +97,7 @@  mmix_after_allocation (void)
      as an undefined symbol.  */
   if (regvma < 32 * 8)
     {
-      einfo (_("%X%P: Too many global registers: %u, max 223\n"),
+      einfo (_("%X%P: too many global registers: %u, max 223\n"),
 	     (unsigned) sec->size / 8);
       regvma = 32 * 8;
     }
@@ -115,7 +115,7 @@  mmix_after_allocation (void)
   if (!_bfd_mmix_after_linker_allocation (link_info.output_bfd, &link_info))
     {
       /* This is a fatal error; make einfo call not return.  */
-      einfo (_("%F%P: Can't finalize linker-allocated global registers\n"));
+      einfo (_("%F%P: can't finalize linker-allocated global registers\n"));
     }
 }
 EOF
diff --git a/ld/emultempl/mmo.em b/ld/emultempl/mmo.em
index 20572c3..2c73cfb 100644
--- a/ld/emultempl/mmo.em
+++ b/ld/emultempl/mmo.em
@@ -228,7 +228,7 @@  mmo_after_open (void)
 	{
 	  if (bfd_get_flavour (is->the_bfd) == bfd_target_elf_flavour
 	      && !_bfd_mmix_check_all_relocs (is->the_bfd, &link_info))
-	    einfo (_("%X%P: Internal problems scanning %pB after opening it"),
+	    einfo (_("%X%P: internal problems scanning %pB after opening it"),
 		   is->the_bfd);
 	}
     }
diff --git a/ld/emultempl/msp430.em b/ld/emultempl/msp430.em
index 2cd15d6..f1b2bb2 100644
--- a/ld/emultempl/msp430.em
+++ b/ld/emultempl/msp430.em
@@ -482,15 +482,14 @@  gld${EMULATION_NAME}_add_options
 static void
 gld${EMULATION_NAME}_list_options (FILE * file)
 {
-  fprintf (file, _("\
-  --code-region={either,lower,upper,none}\n\
-  \tTransform .text* sections to {either,lower,upper,none}.text* sections.\n\
-  --data-region={either,lower,upper,none}\n\
-  \tTransform .data*, .rodata* and .bss* sections to\n\
-  {either,lower,upper,none}.{bss,data,rodata}* sections\n\
-  --disable-sec-transformation\n\
-  \tDisable transformation of .{text,data,bss,rodata}* sections to\n\
-  \tadd the {either,lower,upper,none} prefixes\n"));
+  fprintf (file, _("  --code-region={either,lower,upper,none}\n\
+        Transform .text* sections to {either,lower,upper,none}.text* sections\n"));
+  fprintf (file, _("  --data-region={either,lower,upper,none}\n\
+        Transform .data*, .rodata* and .bss* sections to\n\
+        {either,lower,upper,none}.{bss,data,rodata}* sections\n"));
+  fprintf (file, _("  --disable-sec-transformation\n\
+        Disable transformation of .{text,data,bss,rodata}* sections to\n\
+        add the {either,lower,upper,none} prefixes\n"));
 }
 
 static bfd_boolean
@@ -509,14 +508,14 @@  gld${EMULATION_NAME}_handle_option (int optc)
 	code_region = REGION_NONE;
       else if (strlen (optarg) == 0)
 	{
-	  einfo (_("%P: --code-region requires an argument: \
-		   {upper,lower,either,none}\n"));
+	  einfo (_("%P: --code-region requires an argument: "
+		   "{upper,lower,either,none}\n"));
 	  return FALSE;
 	}
       else
 	{
-	  einfo (_("%P: error: unrecognized argument to --code-region= option: \
-		   \"%s\"\n"), optarg);
+	  einfo (_("%P: error: unrecognized argument to --code-region= option: "
+		   "\"%s\"\n"), optarg);
 	  return FALSE;
 	}
       break;
@@ -532,14 +531,14 @@  gld${EMULATION_NAME}_handle_option (int optc)
 	data_region = REGION_NONE;
       else if (strlen (optarg) == 0)
 	{
-	  einfo (_("%P: --data-region requires an argument: \
-		   {upper,lower,either,none}\n"));
+	  einfo (_("%P: --data-region requires an argument: "
+		   "{upper,lower,either,none}\n"));
 	  return FALSE;
 	}
       else
 	{
-	  einfo (_("%P: error: unrecognized argument to --data-region= option: \
-		   \"%s\"\n"), optarg);
+	  einfo (_("%P: error: unrecognized argument to --data-region= option: "
+		   "\"%s\"\n"), optarg);
 	  return FALSE;
 	}
       break;
diff --git a/ld/emultempl/nds32elf.em b/ld/emultempl/nds32elf.em
index cfbf76e..3ea0ea2 100644
--- a/ld/emultempl/nds32elf.em
+++ b/ld/emultempl/nds32elf.em
@@ -51,8 +51,8 @@  nds32_elf_create_output_section_statements (void)
   if (strstr (bfd_get_target (link_info.output_bfd), "nds32") == NULL)
     {
       /* Check the output target is nds32.  */
-      einfo (_("%F%X%P: error: Cannot change output format whilst "
-	       "linking NDS32 binaries.\n"));
+      einfo (_("%F%P: error: cannot change output format whilst "
+	       "linking %s binaries\n"), "NDS32");
       return;
     }
 
@@ -121,7 +121,8 @@  nds32_elf_after_open (void)
 	       && abi_ver != (elf_elfheader (abfd)->e_flags & EF_NDS_ABI))
 	{
 	  /* Incompatible objects.  */
-	  einfo (_("%F%pB: ABI version of object files mismatched\n"), abfd);
+	  einfo (_("%F%P: %pB: ABI version of object files mismatched\n"),
+		 abfd);
 	}
 
 #if defined NDS32_EX9_EXT
@@ -166,7 +167,7 @@  nds32_elf_after_open (void)
 	      if (bfd_link_pic (&link_info))
 		{
 		  /* For PIE or shared object, all input must be PIC.  */
-		  einfo (_("%pB: must use -fpic to compile this file "
+		  einfo (_("%P: %pB: must use -fpic to compile this file "
 			   "for shared object or PIE\n"), abfd);
 		}
 	      else
@@ -269,31 +270,35 @@  PARSE_AND_LIST_LONGOPTS='
 '
 PARSE_AND_LIST_OPTIONS='
   fprintf (file, _("\
-  --m[no-]fp-as-gp            Disable/enable fp-as-gp relaxation\n\
-  --mexport-symbols=FILE      Exporting symbols in linker script\n\
-"));
+  --m[no-]fp-as-gp            Disable/enable fp-as-gp relaxation\n"));
+  fprintf (file, _("\
+  --mexport-symbols=FILE      Exporting symbols in linker script\n"));
 
 #if defined NDS32_EX9_EXT
   fprintf (file, _("\
-  --m[no-]ex9                 Disable/enable link-time EX9 relaxation\n\
-  --mexport-ex9=FILE          Export EX9 table after linking\n\
-  --mimport-ex9=FILE          Import Ex9 table for EX9 relaxation\n\
-  --mupdate-ex9               Update existing EX9 table\n\
-  --mex9-limit=NUM            Maximum number of entries in ex9 table\n\
-  --mex9-loop-aware           Avoid generate EX9 instruction inside loop\n\
-"));
+  --m[no-]ex9                 Disable/enable link-time EX9 relaxation\n"));
+  fprintf (file, _("\
+  --mexport-ex9=FILE          Export EX9 table after linking\n"));
+  fprintf (file, _("\
+  --mimport-ex9=FILE          Import Ex9 table for EX9 relaxation\n"));
+  fprintf (file, _("\
+  --mupdate-ex9               Update existing EX9 table\n"));
+  fprintf (file, _("\
+  --mex9-limit=NUM            Maximum number of entries in ex9 table\n"));
+  fprintf (file, _("\
+  --mex9-loop-aware           Avoid generate EX9 instruction inside loop\n"));
 #endif
 
 #if defined NDS32_IFC_EXT
   fprintf (file, _("\
-  --m[no-]ifc                 Disable/enable link-time IFC optimization\n\
-  --mifc-loop-aware           Avoid generate IFC instruction inside loop\n\
-"));
+  --m[no-]ifc                 Disable/enable link-time IFC optimization\n"));
+  fprintf (file, _("\
+  --mifc-loop-aware           Avoid generate IFC instruction inside loop\n"));
 #endif
 '
 PARSE_AND_LIST_ARGS_CASES='
   case OPTION_BASELINE:
-    einfo (_("%P: --mbaseline is not used anymore.\n"));
+    einfo (_("%P: --mbaseline is not used anymore\n"));
     break;
   case OPTION_ELIM_GC_RELOCS:
     eliminate_gc_relocs = 1;
@@ -304,11 +309,11 @@  PARSE_AND_LIST_ARGS_CASES='
     break;
   case OPTION_REDUCE_FP_UPDATE:
   case OPTION_NO_REDUCE_FP_UPDATE:
-    einfo (_("%P: --relax-[no-]reduce-fp-updat is not used anymore.\n"));
+    einfo (_("%P: --relax-[no-]reduce-fp-updat is not used anymore\n"));
     break;
   case OPTION_EXPORT_SYMBOLS:
     if (!optarg)
-      einfo (_("Missing file for --mexport-symbols.\n"), optarg);
+      einfo (_("%P: missing file for --mexport-symbols\n"), optarg);
 
     if(strcmp (optarg, "-") == 0)
       sym_ld_script = stdout;
@@ -316,7 +321,7 @@  PARSE_AND_LIST_ARGS_CASES='
       {
 	sym_ld_script = fopen (optarg, FOPEN_WT);
 	if(sym_ld_script == NULL)
-	  einfo (_("%P%F: cannot open map file %s: %E.\n"), optarg);
+	  einfo (_("%F%P: cannot open map file %s: %E\n"), optarg);
       }
     break;
 #if defined NDS32_EX9_EXT
@@ -328,7 +333,7 @@  PARSE_AND_LIST_ARGS_CASES='
     break;
   case OPTION_EXPORT_EX9:
     if (!optarg)
-      einfo (_("Missing file for --mexport-ex9=<file>.\n"));
+      einfo (_("%P: missing file for --mexport-ex9=<file>\n"));
 
     if(strcmp (optarg, "-") == 0)
       ex9_export_file = stdout;
@@ -336,16 +341,16 @@  PARSE_AND_LIST_ARGS_CASES='
       {
 	ex9_export_file = fopen (optarg, "wb");
 	if(ex9_export_file == NULL)
-	  einfo (_("ERROR %P%F: cannot open ex9 export file %s.\n"), optarg);
+	  einfo (_("%F%P: cannot open ex9 export file %s\n"), optarg);
       }
     break;
   case OPTION_IMPORT_EX9:
     if (!optarg)
-      einfo (_("Missing file for --mimport-ex9=<file>.\n"));
+      einfo (_("%P: missing file for --mimport-ex9=<file>\n"));
 
     ex9_import_file = fopen (optarg, "rb+");
     if(ex9_import_file == NULL)
-      einfo (_("ERROR %P%F: cannot open ex9 import file %s.\n"), optarg);
+      einfo (_("%F%P: cannot open ex9 import file %s\n"), optarg);
     break;
   case OPTION_UPDATE_EX9:
     update_ex9_table = 1;
@@ -355,10 +360,7 @@  PARSE_AND_LIST_ARGS_CASES='
       {
 	ex9_limit = atoi (optarg);
 	if (ex9_limit > 511 || ex9_limit < 1)
-	  {
-	    einfo (_("ERROR: the range of ex9_limit must between 1 and 511\n"));
-	    exit (1);
-	  }
+	  einfo (_("%F%P: the range of ex9_limit must between 1 and 511\n"));
       }
     break;
   case OPTION_EX9_LOOP:
diff --git a/ld/emultempl/nios2elf.em b/ld/emultempl/nios2elf.em
index ea95bed..805eb96 100644
--- a/ld/emultempl/nios2elf.em
+++ b/ld/emultempl/nios2elf.em
@@ -64,7 +64,7 @@  nios2elf_create_output_section_statements (void)
 			      bfd_get_arch (link_info.output_bfd),
 			      bfd_get_mach (link_info.output_bfd)))
     {
-      einfo (_("%X%P: can not create BFD %E\n"));
+      einfo (_("%F%P: can not create BFD: %E\n"));
       return;
     }
 
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 36856ce..ffa8b74 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -488,15 +488,15 @@  gld_${EMULATION_NAME}_list_options (FILE *file)
                                        executable image files\n"));
   fprintf (file, _("  --disable-long-section-names       Never use long COFF section names, even\n\
                                        in object files\n"));
-  fprintf (file, _("  --dynamicbase			 Image base address may be relocated using\n\
-				       address space layout randomization (ASLR)\n"));
-  fprintf (file, _("  --forceinteg		 Code integrity checks are enforced\n"));
-  fprintf (file, _("  --nxcompat		 Image is compatible with data execution prevention\n"));
-  fprintf (file, _("  --no-isolation		 Image understands isolation but do not isolate the image\n"));
-  fprintf (file, _("  --no-seh			 Image does not use SEH. No SE handler may\n\
-				       be called in this image\n"));
-  fprintf (file, _("  --no-bind			 Do not bind this image\n"));
-  fprintf (file, _("  --wdmdriver		 Driver uses the WDM model\n"));
+  fprintf (file, _("  --dynamicbase                      Image base address may be relocated using\n\
+                                       address space layout randomization (ASLR)\n"));
+  fprintf (file, _("  --forceinteg               Code integrity checks are enforced\n"));
+  fprintf (file, _("  --nxcompat                 Image is compatible with data execution prevention\n"));
+  fprintf (file, _("  --no-isolation             Image understands isolation but do not isolate the image\n"));
+  fprintf (file, _("  --no-seh                   Image does not use SEH. No SE handler may\n\
+                                       be called in this image\n"));
+  fprintf (file, _("  --no-bind                  Do not bind this image\n"));
+  fprintf (file, _("  --wdmdriver                Driver uses the WDM model\n"));
   fprintf (file, _("  --tsaware                  Image is Terminal Server aware\n"));
   fprintf (file, _("  --build-id[=STYLE]         Generate build ID\n"));
 }
@@ -651,7 +651,7 @@  set_pe_subsystem (void)
 
       if (v[i].name == NULL)
 	{
-	  einfo (_("%P%F: invalid subsystem type %s\n"), optarg);
+	  einfo (_("%F%P: invalid subsystem type %s\n"), optarg);
 	  return;
 	}
 
@@ -672,7 +672,7 @@  set_pe_value (char *name)
   set_pe_name (name,  strtoul (optarg, &end, 0));
 
   if (end == optarg)
-    einfo (_("%P%F: invalid hex number for PE parameter '%s'\n"), optarg);
+    einfo (_("%F%P: invalid hex number for PE parameter '%s'\n"), optarg);
 
   optarg = end;
 }
@@ -689,7 +689,7 @@  set_pe_stack_heap (char *resname, char *comname)
       set_pe_value (comname);
     }
   else if (*optarg)
-    einfo (_("%P%F: strange hex info for PE parameter '%s'\n"), optarg);
+    einfo (_("%F%P: strange hex info for PE parameter '%s'\n"), optarg);
 }
 
 #define DEFAULT_BUILD_ID_STYLE	"md5"
@@ -1001,7 +1001,7 @@  gld_${EMULATION_NAME}_set_symbols (void)
 
   if (pe.FileAlignment > pe.SectionAlignment)
     {
-      einfo (_("%P: warning, file alignment > section alignment.\n"));
+      einfo (_("%P: warning, file alignment > section alignment\n"));
     }
 }
 
@@ -1066,7 +1066,7 @@  change_undef (struct bfd_link_hash_entry * undef,
 
   if (pe_enable_stdcall_fixup == -1)
     {
-      einfo (_("Warning: resolving %s by linking to %s\n"),
+      einfo (_("%P: warning: resolving %s by linking to %s\n"),
 	     undef->root.string, sym->root.string);
 
       if (! gave_warning_message)
@@ -1140,7 +1140,7 @@  make_import_fixup (arelent *rel, asection *s, char *name)
 	    (unsigned long) rel->address, (long) rel->addend);
 
   if (! bfd_get_section_contents (s->owner, s, addend, rel->address, sizeof (addend)))
-    einfo (_("%C: Cannot get section contents - auto-import exception\n"),
+    einfo (_("%P: %C: cannot get section contents - auto-import exception\n"),
 	   s->owner, s, rel->address);
 
   pe_create_import_fixup (rel, s, bfd_get_32 (s->owner, addend), name);
@@ -1212,15 +1212,15 @@  pe_find_data_imports (void)
 		      warned = TRUE;
 		      einfo (_("%P: warning: auto-importing has been activated "
 			       "without --enable-auto-import specified on the "
-			       "command line.\nThis should work unless it "
+			       "command line; this should work unless it "
 			       "involves constant data structures referencing "
-			       "symbols from auto-imported DLLs.\n"));
+			       "symbols from auto-imported DLLs\n"));
 		    }
 		}
 
 	      if (!bfd_generic_link_read_symbols (b))
 		{
-		  einfo (_("%pB%F: could not read symbols: %E\n"), b);
+		  einfo (_("%F%P: %pB: could not read symbols: %E\n"), b);
 		  return;
 		}
 
@@ -1335,7 +1335,7 @@  write_build_id (bfd *abfd)
   if (!link_order)
     {
       einfo (_("%P: warning: .buildid section discarded,"
-	       " --build-id ignored.\n"));
+	       " --build-id ignored\n"));
       return TRUE;
     }
 
@@ -1407,7 +1407,7 @@  setup_build_id (bfd *ibfd)
 
   if (!validate_build_id_style (emit_build_id))
     {
-      einfo (_("%P: warning: unrecognized --build-id style ignored.\n"));
+      einfo (_("%P: warning: unrecognized --build-id style ignored\n"));
       return FALSE;
     }
 
@@ -1431,8 +1431,8 @@  setup_build_id (bfd *ibfd)
       return TRUE;
     }
 
-  einfo (_("%P: warning: Cannot create .buildid section,"
-	   " --build-id ignored.\n"));
+  einfo (_("%P: warning: cannot create .buildid section,"
+	   " --build-id ignored\n"));
   return FALSE;
 }
 
@@ -1484,7 +1484,7 @@  gld_${EMULATION_NAME}_after_open (void)
 
   if (coff_data (link_info.output_bfd) == NULL
       || coff_data (link_info.output_bfd)->pe == 0)
-    einfo (_("%F%P: cannot perform PE operations on non PE output file '%pB'.\n"),
+    einfo (_("%F%P: cannot perform PE operations on non PE output file '%pB'\n"),
 	   link_info.output_bfd);
 
   pe_data (link_info.output_bfd)->pe_opthdr = pe;
@@ -1556,8 +1556,8 @@  gld_${EMULATION_NAME}_after_open (void)
 	 These will only be created if the output format is an arm format,
 	 hence we do not support linking and changing output formats at the
 	 same time.  Use a link followed by objcopy to change output formats.  */
-      einfo (_("%F%X%P: error: cannot change output format "
-	       "whilst linking ARM binaries\n"));
+      einfo (_("%F%P: error: cannot change output format "
+	       "whilst linking %s binaries\n"), "ARM");
       return;
     }
   {
@@ -1616,7 +1616,7 @@  gld_${EMULATION_NAME}_after_open (void)
 
 		    if (!bfd_generic_link_read_symbols (is->the_bfd))
 		      {
-			einfo (_("%pB%F: could not read symbols: %E\n"),
+			einfo (_("%F%P: %pB: could not read symbols: %E\n"),
 			       is->the_bfd);
 			return;
 		      }
@@ -1823,7 +1823,7 @@  gld_${EMULATION_NAME}_after_open (void)
 
 		if (!bfd_generic_link_read_symbols (is->the_bfd))
 		  {
-		    einfo (_("%pB%F: could not read symbols: %E\n"),
+		    einfo (_("%F%P: %pB: could not read symbols: %E\n"),
 			   is->the_bfd);
 		    return;
 		  }
@@ -1866,7 +1866,7 @@  gld_${EMULATION_NAME}_before_allocation (void)
 	if (!ppc_process_before_allocation (is->the_bfd, &link_info))
 	  {
 	    /* xgettext:c-format */
-	    einfo (_("Errors encountered processing file %s\n"), is->filename);
+	    einfo (_("%P: errors encountered processing file %s\n"), is->filename);
 	  }
       }
   }
@@ -1889,7 +1889,7 @@  gld_${EMULATION_NAME}_before_allocation (void)
 	    (is->the_bfd, & link_info, support_old_code))
 	  {
 	    /* xgettext:c-format */
-	    einfo (_("Errors encountered processing file %s for interworking\n"),
+	    einfo (_("%P: errors encountered processing file %s for interworking\n"),
 		   is->filename);
 	  }
       }
@@ -1951,7 +1951,7 @@  gld_${EMULATION_NAME}_unrecognized_file (lang_input_statement_type *entry ATTRIB
 
 	      h = bfd_link_hash_lookup (link_info.hash, buf, TRUE, TRUE, TRUE);
 	      if (h == (struct bfd_link_hash_entry *) NULL)
-		einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n"));
+		einfo (_("%F%P: bfd_link_hash_lookup failed: %E\n"));
 	      if (h->type == bfd_link_hash_new)
 		{
 		  h->type = bfd_link_hash_undefined;
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
index ad48426..cea210c 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
@@ -410,7 +410,7 @@  gld_${EMULATION_NAME}_list_options (FILE *file)
   fprintf (file, _("  --subsystem <name>[:<version>]     Set required OS subsystem [& version]\n"));
   fprintf (file, _("  --support-old-code                 Support interworking with old code\n"));
   fprintf (file, _("  --[no-]leading-underscore          Set explicit symbol underscore prefix mode\n"));
-  fprintf (file, _("  --[no-]insert-timestamp            Use a real timestamp rather than zero. (default)\n"));
+  fprintf (file, _("  --[no-]insert-timestamp            Use a real timestamp rather than zero (default)\n"));
   fprintf (file, _("                                     This makes binaries non-deterministic\n"));
 #ifdef DLL_SUPPORT
   fprintf (file, _("  --add-stdcall-alias                Export symbols with and without @nn\n"));
@@ -421,16 +421,16 @@  gld_${EMULATION_NAME}_list_options (FILE *file)
   fprintf (file, _("  --exclude-libs lib,lib,...         Exclude libraries from automatic export\n"));
   fprintf (file, _("  --exclude-modules-for-implib mod,mod,...\n"));
   fprintf (file, _("                                     Exclude objects, archive members from auto\n"));
-  fprintf (file, _("                                     export, place into import library instead.\n"));
+  fprintf (file, _("                                     export, place into import library instead\n"));
   fprintf (file, _("  --export-all-symbols               Automatically export all globals to DLL\n"));
   fprintf (file, _("  --kill-at                          Remove @nn from exported symbols\n"));
   fprintf (file, _("  --output-def <file>                Generate a .DEF file for the built DLL\n"));
-  fprintf (file, _("  --warn-duplicate-exports           Warn about duplicate exports.\n"));
+  fprintf (file, _("  --warn-duplicate-exports           Warn about duplicate exports\n"));
   fprintf (file, _("  --compat-implib                    Create backward compatible import libs;\n\
-                                       create __imp_<SYMBOL> as well.\n"));
+                                       create __imp_<SYMBOL> as well\n"));
   fprintf (file, _("  --enable-auto-image-base           Automatically choose image base for DLLs\n\
                                        unless user specifies one\n"));
-  fprintf (file, _("  --disable-auto-image-base          Do not auto-choose image base. (default)\n"));
+  fprintf (file, _("  --disable-auto-image-base          Do not auto-choose image base (default)\n"));
   fprintf (file, _("  --dll-search-prefix=<string>       When linking dynamically to a dll without\n\
                                        an importlib, use <string><basename>.dll\n\
                                        in preference to lib<basename>.dll \n"));
@@ -439,9 +439,9 @@  gld_${EMULATION_NAME}_list_options (FILE *file)
   fprintf (file, _("  --disable-auto-import              Do not auto-import DATA items from DLLs\n"));
   fprintf (file, _("  --enable-runtime-pseudo-reloc      Work around auto-import limitations by\n\
                                        adding pseudo-relocations resolved at\n\
-                                       runtime.\n"));
+                                       runtime\n"));
   fprintf (file, _("  --disable-runtime-pseudo-reloc     Do not add runtime pseudo-relocations for\n\
-                                       auto-imported DATA.\n"));
+                                       auto-imported DATA\n"));
   fprintf (file, _("  --enable-extra-pep-debug            Enable verbose debug output when building\n\
                                        or linking to DLLs (esp. auto-import)\n"));
   fprintf (file, _("  --enable-long-section-names        Use long COFF section names even in\n\
@@ -450,15 +450,15 @@  gld_${EMULATION_NAME}_list_options (FILE *file)
                                        in object files\n"));
   fprintf (file, _("  --high-entropy-va                  Image is compatible with 64-bit address space\n\
                                        layout randomization (ASLR)\n"));
-  fprintf (file, _("  --dynamicbase			 Image base address may be relocated using\n\
-				       address space layout randomization (ASLR)\n"));
-  fprintf (file, _("  --forceinteg		 Code integrity checks are enforced\n"));
-  fprintf (file, _("  --nxcompat		 Image is compatible with data execution prevention\n"));
-  fprintf (file, _("  --no-isolation		 Image understands isolation but do not isolate the image\n"));
-  fprintf (file, _("  --no-seh			 Image does not use SEH. No SE handler may\n\
-				       be called in this image\n"));
-  fprintf (file, _("  --no-bind			 Do not bind this image\n"));
-  fprintf (file, _("  --wdmdriver		 Driver uses the WDM model\n"));
+  fprintf (file, _("  --dynamicbase                      Image base address may be relocated using\n\
+                                       address space layout randomization (ASLR)\n"));
+  fprintf (file, _("  --forceinteg               Code integrity checks are enforced\n"));
+  fprintf (file, _("  --nxcompat                 Image is compatible with data execution prevention\n"));
+  fprintf (file, _("  --no-isolation             Image understands isolation but do not isolate the image\n"));
+  fprintf (file, _("  --no-seh                   Image does not use SEH; no SE handler may\n\
+                                       be called in this image\n"));
+  fprintf (file, _("  --no-bind                  Do not bind this image\n"));
+  fprintf (file, _("  --wdmdriver                Driver uses the WDM model\n"));
   fprintf (file, _("  --tsaware                  Image is Terminal Server aware\n"));
   fprintf (file, _("  --build-id[=STYLE]         Generate build ID\n"));
 #endif
@@ -610,7 +610,7 @@  set_pep_subsystem (void)
 
       if (v[i].name == NULL)
 	{
-	  einfo (_("%P%F: invalid subsystem type %s\n"), optarg);
+	  einfo (_("%F%P: invalid subsystem type %s\n"), optarg);
 	  return;
 	}
 
@@ -631,7 +631,7 @@  set_pep_value (char *name)
   set_pep_name (name,  (bfd_vma) strtoull (optarg, &end, 0));
 
   if (end == optarg)
-    einfo (_("%P%F: invalid hex number for PE parameter '%s'\n"), optarg);
+    einfo (_("%F%P: invalid hex number for PE parameter '%s'\n"), optarg);
 
   optarg = end;
 }
@@ -648,7 +648,7 @@  set_pep_stack_heap (char *resname, char *comname)
       set_pep_value (comname);
     }
   else if (*optarg)
-    einfo (_("%P%F: strange hex info for PE parameter '%s'\n"), optarg);
+    einfo (_("%F%P: strange hex info for PE parameter '%s'\n"), optarg);
 }
 
 #define DEFAULT_BUILD_ID_STYLE	"md5"
@@ -945,7 +945,7 @@  gld_${EMULATION_NAME}_set_symbols (void)
 
   if (pep.FileAlignment > pep.SectionAlignment)
     {
-      einfo (_("%P: warning, file alignment > section alignment.\n"));
+      einfo (_("%P: warning, file alignment > section alignment\n"));
     }
 }
 
@@ -1033,7 +1033,7 @@  pep_fixup_stdcalls (void)
 
 		if (pep_enable_stdcall_fixup == -1)
 		  {
-		    einfo (_("Warning: resolving %s by linking to %s\n"),
+		    einfo (_("warning: resolving %s by linking to %s\n"),
 			   undef->root.string, cname);
 		    if (! gave_warning_message)
 		      {
@@ -1060,7 +1060,7 @@  pep_fixup_stdcalls (void)
 
 		if (pep_enable_stdcall_fixup == -1)
 		  {
-		    einfo (_("Warning: resolving %s by linking to %s\n"),
+		    einfo (_("warning: resolving %s by linking to %s\n"),
 			   undef->root.string, sym->root.string);
 		    if (! gave_warning_message)
 		      {
@@ -1117,7 +1117,7 @@  make_import_fixup (arelent *rel, asection *s, char *name)
       break;
     }
   if (! suc)
-    einfo (_("%C: Cannot get section contents - auto-import exception\n"),
+    einfo (_("%P: %C: cannot get section contents - auto-import exception\n"),
 	   s->owner, s, rel->address);
 
   if (pep_dll_extra_pe_debug)
@@ -1186,7 +1186,7 @@  pep_find_data_imports (void)
 
 	      if (!bfd_generic_link_read_symbols (b))
 		{
-		  einfo (_("%pB%F: could not read symbols: %E\n"), b);
+		  einfo (_("%F%P: %pB: could not read symbols: %E\n"), b);
 		  return;
 		}
 
@@ -1302,7 +1302,7 @@  write_build_id (bfd *abfd)
   if (!link_order)
     {
       einfo (_("%P: warning: .buildid section discarded,"
-	       " --build-id ignored.\n"));
+	       " --build-id ignored\n"));
       return TRUE;
     }
 
@@ -1374,7 +1374,7 @@  setup_build_id (bfd *ibfd)
 
   if (!validate_build_id_style (emit_build_id))
     {
-      einfo (_("%P: warning: unrecognized --build-id style ignored.\n"));
+      einfo (_("%P: warning: unrecognized --build-id style ignored\n"));
       return FALSE;
     }
 
@@ -1398,8 +1398,8 @@  setup_build_id (bfd *ibfd)
       return TRUE;
     }
 
-  einfo (_("%P: warning: Cannot create .buildid section,"
-	   " --build-id ignored.\n"));
+  einfo (_("%P: warning: cannot create .buildid section,"
+	   " --build-id ignored\n"));
   return FALSE;
 }
 
@@ -1452,7 +1452,7 @@  gld_${EMULATION_NAME}_after_open (void)
 
   if (coff_data (link_info.output_bfd) == NULL
       || coff_data (link_info.output_bfd)->pe == 0)
-    einfo (_("%F%P: cannot perform PE operations on non PE output file '%pB'.\n"),
+    einfo (_("%F%P: cannot perform PE operations on non PE output file '%pB'\n"),
 	   link_info.output_bfd);
 
   pe_data (link_info.output_bfd)->pe_opthdr = pep;
@@ -1562,7 +1562,7 @@  gld_${EMULATION_NAME}_after_open (void)
 
 		    if (!bfd_generic_link_read_symbols (is->the_bfd))
 		      {
-			einfo (_("%pB%F: could not read symbols: %E\n"),
+			einfo (_("%F%P: %pB: could not read symbols: %E\n"),
 			       is->the_bfd);
 			return;
 		      }
@@ -1786,7 +1786,7 @@  gld_${EMULATION_NAME}_unrecognized_file (lang_input_statement_type *entry ATTRIB
 
 	      h = bfd_link_hash_lookup (link_info.hash, buf, TRUE, TRUE, TRUE);
 	      if (h == (struct bfd_link_hash_entry *) NULL)
-		einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n"));
+		einfo (_("%F%P: bfd_link_hash_lookup failed: %E\n"));
 	      if (h->type == bfd_link_hash_new)
 		{
 		  h->type = bfd_link_hash_undefined;
diff --git a/ld/emultempl/ppc32elf.em b/ld/emultempl/ppc32elf.em
index 1b6339e..3c335b7 100644
--- a/ld/emultempl/ppc32elf.em
+++ b/ld/emultempl/ppc32elf.em
@@ -280,48 +280,48 @@  PARSE_AND_LIST_LONGOPTS=${PARSE_AND_LIST_LONGOPTS}'
 
 PARSE_AND_LIST_OPTIONS=${PARSE_AND_LIST_OPTIONS}'
   fprintf (file, _("\
-  --emit-stub-syms            Label linker stubs with a symbol.\n"
+  --emit-stub-syms            Label linker stubs with a symbol\n"
 		   ));
   fprintf (file, _("\
-  --no-emit-stub-syms         Don'\''t label linker stubs with a symbol.\n"
+  --no-emit-stub-syms         Don'\''t label linker stubs with a symbol\n"
 		   ));
   fprintf (file, _("\
-  --no-tls-optimize           Don'\''t try to optimize TLS accesses.\n"
+  --no-tls-optimize           Don'\''t try to optimize TLS accesses\n"
 		   ));
   fprintf (file, _("\
-  --no-tls-get-addr-optimize  Don'\''t use a special __tls_get_addr call.\n"
+  --no-tls-get-addr-optimize  Don'\''t use a special __tls_get_addr call\n"
 		   ));'
 if test -z "$VXWORKS_BASE_EM_FILE" ; then
   PARSE_AND_LIST_OPTIONS=${PARSE_AND_LIST_OPTIONS}'\
   fprintf (file, _("\
-  --secure-plt                Use new-style PLT if possible.\n"
+  --secure-plt                Use new-style PLT if possible\n"
 		   ));
   fprintf (file, _("\
-  --bss-plt                   Force old-style BSS PLT.\n"
+  --bss-plt                   Force old-style BSS PLT\n"
 		   ));
   fprintf (file, _("\
-  --plt-align                 Align PLT call stubs to fit cache lines.\n"
+  --plt-align                 Align PLT call stubs to fit cache lines\n"
 		   ));
   fprintf (file, _("\
-  --no-plt-align              Dont'\''t align individual PLT call stubs.\n"
+  --no-plt-align              Dont'\''t align individual PLT call stubs\n"
 		   ));
   fprintf (file, _("\
-  --sdata-got                 Force GOT location just before .sdata.\n"
+  --sdata-got                 Force GOT location just before .sdata\n"
 		   ));'
 fi
 PARSE_AND_LIST_OPTIONS=${PARSE_AND_LIST_OPTIONS}'\
   fprintf (file, _("\
   --ppc476-workaround [=pagesize]\n\
-                              Avoid a cache bug on ppc476.\n"
+                              Avoid a cache bug on ppc476\n"
 		   ));
   fprintf (file, _("\
-  --no-ppc476-workaround      Disable workaround.\n"
+  --no-ppc476-workaround      Disable workaround\n"
 		   ));
   fprintf (file, _("\
-  --no-pic-fixup              Don'\''t edit non-pic to pic.\n"
+  --no-pic-fixup              Don'\''t edit non-pic to pic\n"
 		   ));
   fprintf (file, _("\
-  --vle-reloc-fixup           Correct old object file 16A/16D relocation.\n"
+  --vle-reloc-fixup           Correct old object file 16A/16D relocation\n"
 		   ));
 '
 
@@ -356,7 +356,7 @@  PARSE_AND_LIST_ARGS_CASES=${PARSE_AND_LIST_ARGS_CASES}'
 	  char *end;
 	  unsigned long val = strtoul (optarg, &end, 0);
 	  if (*end || val > 5)
-	    einfo (_("%P%F: invalid --plt-align `%s'\''\n"), optarg);
+	    einfo (_("%F%P: invalid --plt-align `%s'\''\n"), optarg);
 	  params.plt_stub_align = val;
 	}
       else
@@ -385,7 +385,7 @@  PARSE_AND_LIST_ARGS_CASES=${PARSE_AND_LIST_ARGS_CASES}'
 	  if (*end
 	      || (params.pagesize < 4096 && params.pagesize != 0)
 	      || params.pagesize != (params.pagesize & -params.pagesize))
-	    einfo (_("%P%F: invalid pagesize `%s'\''\n"), optarg);
+	    einfo (_("%F%P: invalid pagesize `%s'\''\n"), optarg);
 	}
       break;
 
diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em
index 0f8062a..62c298c 100644
--- a/ld/emultempl/ppc64elf.em
+++ b/ld/emultempl/ppc64elf.em
@@ -751,34 +751,34 @@  PARSE_AND_LIST_OPTIONS=${PARSE_AND_LIST_OPTIONS}'
                                 choose suitable defaults.\n"
 		   ));
   fprintf (file, _("\
-  --plt-static-chain          PLT call stubs should load r11.'${DEFAULT_PLT_STATIC_CHAIN- (default)}'\n"
+  --plt-static-chain          PLT call stubs should load r11'${DEFAULT_PLT_STATIC_CHAIN- (default)}'\n"
 		   ));
   fprintf (file, _("\
-  --no-plt-static-chain       PLT call stubs should not load r11.'${DEFAULT_PLT_STATIC_CHAIN+ (default)}'\n"
+  --no-plt-static-chain       PLT call stubs should not load r11'${DEFAULT_PLT_STATIC_CHAIN+ (default)}'\n"
 		   ));
   fprintf (file, _("\
-  --plt-thread-safe           PLT call stubs with load-load barrier.\n"
+  --plt-thread-safe           PLT call stubs with load-load barrier\n"
 		   ));
   fprintf (file, _("\
-  --no-plt-thread-safe        PLT call stubs without barrier.\n"
+  --no-plt-thread-safe        PLT call stubs without barrier\n"
 		   ));
   fprintf (file, _("\
-  --plt-align [=<align>]      Align PLT call stubs to fit cache lines.\n"
+  --plt-align [=<align>]      Align PLT call stubs to fit cache lines\n"
 		   ));
   fprintf (file, _("\
-  --no-plt-align              Dont'\''t align individual PLT call stubs.\n"
+  --no-plt-align              Dont'\''t align individual PLT call stubs\n"
 		   ));
   fprintf (file, _("\
-  --plt-localentry            Optimize calls to ELFv2 localentry:0 functions.\n"
+  --plt-localentry            Optimize calls to ELFv2 localentry:0 functions\n"
 		   ));
   fprintf (file, _("\
-  --no-plt-localentry         Don'\''t optimize ELFv2 calls.\n"
+  --no-plt-localentry         Don'\''t optimize ELFv2 calls\n"
 		   ));
   fprintf (file, _("\
-  --emit-stub-syms            Label linker stubs with a symbol.\n"
+  --emit-stub-syms            Label linker stubs with a symbol\n"
 		   ));
   fprintf (file, _("\
-  --no-emit-stub-syms         Don'\''t label linker stubs with a symbol.\n"
+  --no-emit-stub-syms         Don'\''t label linker stubs with a symbol\n"
 		   ));
   fprintf (file, _("\
   --dotsyms                   For every version pattern \"foo\" in a version\n\
@@ -787,7 +787,7 @@  PARSE_AND_LIST_OPTIONS=${PARSE_AND_LIST_OPTIONS}'
                                 descriptor symbols.  Defaults to on.\n"
 		   ));
   fprintf (file, _("\
-  --no-dotsyms                Don'\''t do anything special in version scripts.\n"
+  --no-dotsyms                Don'\''t do anything special in version scripts\n"
 		   ));
   fprintf (file, _("\
   --save-restore-funcs        Provide register save and restore routines used\n\
@@ -795,32 +795,32 @@  PARSE_AND_LIST_OPTIONS=${PARSE_AND_LIST_OPTIONS}'
                                 final link, off for ld -r.\n"
 		   ));
   fprintf (file, _("\
-  --no-save-restore-funcs     Don'\''t provide these routines.\n"
+  --no-save-restore-funcs     Don'\''t provide these routines\n"
 		   ));
   fprintf (file, _("\
-  --no-tls-optimize           Don'\''t try to optimize TLS accesses.\n"
+  --no-tls-optimize           Don'\''t try to optimize TLS accesses\n"
 		   ));
   fprintf (file, _("\
-  --tls-get-addr-optimize     Force use of special __tls_get_addr call.\n"
+  --tls-get-addr-optimize     Force use of special __tls_get_addr call\n"
 		   ));
   fprintf (file, _("\
-  --no-tls-get-addr-optimize  Don'\''t use a special __tls_get_addr call.\n"
+  --no-tls-get-addr-optimize  Don'\''t use a special __tls_get_addr call\n"
 		   ));
   fprintf (file, _("\
-  --no-opd-optimize           Don'\''t optimize the OPD section.\n"
+  --no-opd-optimize           Don'\''t optimize the OPD section\n"
 		   ));
   fprintf (file, _("\
-  --no-toc-optimize           Don'\''t optimize the TOC section.\n"
+  --no-toc-optimize           Don'\''t optimize the TOC section\n"
 		   ));
   fprintf (file, _("\
-  --no-multi-toc              Disallow automatic multiple toc sections.\n"
+  --no-multi-toc              Disallow automatic multiple toc sections\n"
 		   ));
   fprintf (file, _("\
-  --no-toc-sort               Don'\''t sort TOC and GOT sections.\n"
+  --no-toc-sort               Don'\''t sort TOC and GOT sections\n"
 		   ));
   fprintf (file, _("\
   --non-overlapping-opd       Canonicalize .opd, so that there are no\n\
-                                overlapping .opd entries.\n"
+                                overlapping .opd entries\n"
 		   ));
 '
 
@@ -830,7 +830,7 @@  PARSE_AND_LIST_ARGS_CASES=${PARSE_AND_LIST_ARGS_CASES}'
 	const char *end;
 	params.group_size = bfd_scan_vma (optarg, &end, 0);
 	if (*end)
-	  einfo (_("%P%F: invalid number `%s'\''\n"), optarg);
+	  einfo (_("%F%P: invalid number `%s'\''\n"), optarg);
       }
       break;
 
@@ -856,7 +856,7 @@  PARSE_AND_LIST_ARGS_CASES=${PARSE_AND_LIST_ARGS_CASES}'
 	  char *end;
 	  long val = strtol (optarg, &end, 0);
 	  if (*end || (unsigned long) val + 8 > 16)
-	    einfo (_("%P%F: invalid --plt-align `%s'\''\n"), optarg);
+	    einfo (_("%F%P: invalid --plt-align `%s'\''\n"), optarg);
 	  params.plt_stub_align = val;
 	}
       else
diff --git a/ld/emultempl/scoreelf.em b/ld/emultempl/scoreelf.em
index 9774772..88f0c45 100644
--- a/ld/emultempl/scoreelf.em
+++ b/ld/emultempl/scoreelf.em
@@ -52,8 +52,8 @@  score_elf_after_open (void)
 	 These will only be created if the output format is an score format,
 	 hence we do not support linking and changing output formats at the
 	 same time.  Use a link followed by objcopy to change output formats.  */
-      einfo (_("%F%X%P: error: cannot change output format "
-	       "whilst linking S+core binaries\n"));
+      einfo (_("%F%P: error: cannot change output format "
+	       "whilst linking %s binaries\n"), "S+core");
       return;
     }
 
diff --git a/ld/emultempl/sh64elf.em b/ld/emultempl/sh64elf.em
index 7e3f680..1fe94da 100644
--- a/ld/emultempl/sh64elf.em
+++ b/ld/emultempl/sh64elf.em
@@ -66,7 +66,7 @@  sh64_elf_${EMULATION_NAME}_before_allocation (void)
 	     also look through incoming relocs and kill the ones marking
 	     relaxation areas, but that wouldn't be TRT.  */
 	  einfo
-	    (_("%P: Sorry, turning off relaxing: .cranges section in input.\n"));
+	    (_("%P: sorry, turning off relaxing: .cranges section in input\n"));
 	  einfo (_(" A .cranges section is present in:\n"));
 
 	  {
@@ -104,7 +104,7 @@  sh64_elf_${EMULATION_NAME}_before_allocation (void)
 		  if (elf_section_data (isec)->this_hdr.sh_flags
 		      & (SHF_SH5_ISA32 | SHF_SH5_ISA32_MIXED))
 		    {
-		      einfo (_("%P: Sorry, turning off relaxing: SHmedia sections present.\n"));
+		      einfo (_("%P: sorry, turning off relaxing: SHmedia sections present\n"));
 		      einfo ("  %pI\n", f);
 		      DISABLE_RELAXATION;
 		      goto done_scanning_shmedia_sections;
@@ -127,7 +127,7 @@  sh64_elf_${EMULATION_NAME}_before_allocation (void)
       bfd_vma iflags_isa = 0;
 
       if (bfd_get_flavour (link_info.output_bfd) != bfd_target_elf_flavour)
-	einfo (_("%FError: non-ELF output formats are not supported by this target's linker.\n"));
+	einfo (_("%F%P: error: non-ELF output formats are not supported by this target's linker\n"));
 
       sh64_sec_data = sh64_elf_section_data (osec)->sh64_info;
 
@@ -210,7 +210,7 @@  sh64_elf_${EMULATION_NAME}_before_allocation (void)
 							     | SEC_DEBUGGING);
 			    if (cranges == NULL)
 			      einfo
-				(_("%P%E%F: Can't make .cranges section\n"));
+				(_("%F%P: can't make .cranges section: %E\n"));
 			  }
 
 			/* We don't need to look at more input sections,
@@ -496,7 +496,7 @@  sh64_elf_${EMULATION_NAME}_after_allocation (void)
 
 			if (cr_addr_order == NULL)
 			  {
-			    einfo (_("%P%F: bfd_new_link_order failed\n"));
+			    einfo (_("%F%P: bfd_new_link_order failed\n"));
 			    return;
 			  }
 
diff --git a/ld/emultempl/spuelf.em b/ld/emultempl/spuelf.em
index 90c8531..a40605d 100644
--- a/ld/emultempl/spuelf.em
+++ b/ld/emultempl/spuelf.em
@@ -641,32 +641,51 @@  PARSE_AND_LIST_LONGOPTS='
 
 PARSE_AND_LIST_OPTIONS='
   fprintf (file, _("\
-  --plugin                    Make SPU plugin.\n\
-  --no-overlays               No overlay handling.\n\
-  --compact-stubs             Use smaller and possibly slower call stubs.\n\
-  --emit-stub-syms            Add symbols on overlay call stubs.\n\
-  --extra-overlay-stubs       Add stubs on all calls out of overlay regions.\n\
-  --local-store=lo:hi         Valid address range.\n\
-  --stack-analysis            Estimate maximum stack requirement.\n\
-  --emit-stack-syms           Add sym giving stack needed for each func.\n\
+  --plugin                    Make SPU plugin\n"));
+  fprintf (file, _("\
+  --no-overlays               No overlay handling\n"));
+  fprintf (file, _("\
+  --compact-stubs             Use smaller and possibly slower call stubs\n"));
+  fprintf (file, _("\
+  --emit-stub-syms            Add symbols on overlay call stubs\n"));
+  fprintf (file, _("\
+  --extra-overlay-stubs       Add stubs on all calls out of overlay regions\n"));
+  fprintf (file, _("\
+  --local-store=lo:hi         Valid address range\n"));
+  fprintf (file, _("\
+  --stack-analysis            Estimate maximum stack requirement\n"));
+  fprintf (file, _("\
+  --emit-stack-syms           Add sym giving stack needed for each func\n"));
+  fprintf (file, _("\
   --auto-overlay [=filename]  Create an overlay script in filename if\n\
-                              executable does not fit in local store.\n\
-  --auto-relink               Rerun linker using auto-overlay script.\n\
+                                executable does not fit in local store\n"));
+  fprintf (file, _("\
+  --auto-relink               Rerun linker using auto-overlay script\n"));
+  fprintf (file, _("\
   --overlay-rodata            Place read-only data with associated function\n\
-                              code in overlays.\n\
-  --num-regions               Number of overlay buffers (default 1).\n\
-  --region-size               Size of overlay buffers (default 0, auto).\n\
-  --fixed-space=bytes         Local store for non-overlay code and data.\n\
+                                code in overlays\n"));
+  fprintf (file, _("\
+  --num-regions               Number of overlay buffers (default 1)\n"));
+  fprintf (file, _("\
+  --region-size               Size of overlay buffers (default 0, auto)\n"));
+  fprintf (file, _("\
+  --fixed-space=bytes         Local store for non-overlay code and data\n"));
+  fprintf (file, _("\
   --reserved-space=bytes      Local store for stack and heap.  If not specified\n\
-                              ld will estimate stack size and assume no heap.\n\
+                                ld will estimate stack size and assume no heap\n"));
+  fprintf (file, _("\
   --extra-stack-space=bytes   Space for negative sp access (default 2000) if\n\
-                              --reserved-space not given.\n\
-  --soft-icache               Generate software icache overlays.\n\
-  --num-lines                 Number of soft-icache lines (default 32).\n\
-  --line-size                 Size of soft-icache lines (default 1k).\n\
-  --non-ia-text               Allow non-icache code in icache lines.\n\
-  --lrlive-analysis           Scan function prologue for lr liveness.\n"
-		   ));
+                                --reserved-space not given\n"));
+  fprintf (file, _("\
+  --soft-icache               Generate software icache overlays\n"));
+  fprintf (file, _("\
+  --num-lines                 Number of soft-icache lines (default 32)\n"));
+  fprintf (file, _("\
+  --line-size                 Size of soft-icache lines (default 1k)\n"));
+  fprintf (file, _("\
+  --non-ia-text               Allow non-icache code in icache lines\n"));
+  fprintf (file, _("\
+  --lrlive-analysis           Scan function prologue for lr liveness\n"));
 '
 
 PARSE_AND_LIST_ARGS_CASES='
@@ -700,7 +719,7 @@  PARSE_AND_LIST_ARGS_CASES='
 	    if (*end == 0)
 	      break;
 	  }
-	einfo (_("%P%F: invalid --local-store address range `%s'\''\n"), optarg);
+	einfo (_("%F%P: invalid --local-store address range `%s'\''\n"), optarg);
       }
       break;
 
@@ -736,12 +755,12 @@  PARSE_AND_LIST_ARGS_CASES='
       if (!num_lines_set)
 	params.num_lines = 32;
       else if ((params.num_lines & -params.num_lines) != params.num_lines)
-	einfo (_("%P%F: invalid --num-lines/--num-regions `%u'\''\n"),
+	einfo (_("%F%P: invalid --num-lines/--num-regions `%u'\''\n"),
 	       params.num_lines);
       if (!line_size_set)
 	params.line_size = 1024;
       else if ((params.line_size & -params.line_size) != params.line_size)
-	einfo (_("%P%F: invalid --line-size/--region-size `%u'\''\n"),
+	einfo (_("%F%P: invalid --line-size/--region-size `%u'\''\n"),
 	       params.line_size);
       break;
 
@@ -762,7 +781,7 @@  PARSE_AND_LIST_ARGS_CASES='
 	    && (params.ovly_flavour != ovly_soft_icache
 		|| (params.num_lines & -params.num_lines) == params.num_lines))
 	  break;
-	einfo (_("%P%F: invalid --num-lines/--num-regions `%s'\''\n"), optarg);
+	einfo (_("%F%P: invalid --num-lines/--num-regions `%s'\''\n"), optarg);
       }
       break;
 
@@ -775,7 +794,7 @@  PARSE_AND_LIST_ARGS_CASES='
 	    && (params.ovly_flavour != ovly_soft_icache
 		|| (params.line_size & -params.line_size) == params.line_size))
 	  break;
-	einfo (_("%P%F: invalid --line-size/--region-size `%s'\''\n"), optarg);
+	einfo (_("%F%P: invalid --line-size/--region-size `%s'\''\n"), optarg);
       }
       break;
 
@@ -784,7 +803,7 @@  PARSE_AND_LIST_ARGS_CASES='
 	char *end;
 	params.auto_overlay_fixed = strtoul (optarg, &end, 0);
 	if (*end != 0)
-	  einfo (_("%P%F: invalid --fixed-space value `%s'\''\n"), optarg);
+	  einfo (_("%F%P: invalid --fixed-space value `%s'\''\n"), optarg);
       }
       break;
 
@@ -793,7 +812,7 @@  PARSE_AND_LIST_ARGS_CASES='
 	char *end;
 	params.auto_overlay_reserved = strtoul (optarg, &end, 0);
 	if (*end != 0)
-	  einfo (_("%P%F: invalid --reserved-space value `%s'\''\n"), optarg);
+	  einfo (_("%F%P: invalid --reserved-space value `%s'\''\n"), optarg);
       }
       break;
 
@@ -802,7 +821,7 @@  PARSE_AND_LIST_ARGS_CASES='
 	char *end;
 	params.extra_stack_space = strtol (optarg, &end, 0);
 	if (*end != 0)
-	  einfo (_("%P%F: invalid --extra-stack-space value `%s'\''\n"), optarg);
+	  einfo (_("%F%P: invalid --extra-stack-space value `%s'\''\n"), optarg);
       }
       break;
 
diff --git a/ld/emultempl/sunos.em b/ld/emultempl/sunos.em
index daa94ef..173069b 100644
--- a/ld/emultempl/sunos.em
+++ b/ld/emultempl/sunos.em
@@ -427,7 +427,7 @@  gld${EMULATION_NAME}_after_open (void)
 	    {
 	      /* We've found the needed dynamic object.  */
 	      if (! bfd_link_add_symbols (abfd, &link_info))
-		einfo (_("%F%pB: error adding symbols: %E\n"), abfd);
+		einfo (_("%F%P: %pB: error adding symbols: %E\n"), abfd);
 	    }
 	  else
 	    {
@@ -574,7 +574,7 @@  gld${EMULATION_NAME}_try_needed (const char *dir, const char *name)
 
   /* Add this file into the symbol table.  */
   if (! bfd_link_add_symbols (abfd, &link_info))
-    einfo (_("%F%pB: error adding symbols: %E\n"), abfd);
+    einfo (_("%F%P: %pB: error adding symbols: %E\n"), abfd);
 
   return TRUE;
 }
@@ -717,10 +717,10 @@  gld${EMULATION_NAME}_before_allocation (void)
       hdyn = bfd_link_hash_lookup (link_info.hash, "__DYNAMIC", TRUE, FALSE,
 				   FALSE);
       if (hdyn == NULL)
-	einfo (_("%P%F: bfd_link_hash_lookup: %E\n"));
+	einfo (_("%F%P: bfd_link_hash_lookup: %E\n"));
       if (! bfd_sunos_record_link_assignment (link_info.output_bfd, &link_info,
 					      "__DYNAMIC"))
-	einfo (_("%P%F: failed to record assignment to __DYNAMIC: %E\n"));
+	einfo (_("%F%P: failed to record assignment to __DYNAMIC: %E\n"));
     }
 
   /* If we are going to make any variable assignments, we need to let
@@ -732,7 +732,7 @@  gld${EMULATION_NAME}_before_allocation (void)
      required by dynamic linking.  */
   if (! bfd_sunos_size_dynamic_sections (link_info.output_bfd, &link_info,
 					 &sdyn, &sneed, &srules))
-    einfo (_("%P%F: failed to set dynamic section sizes: %E\n"));
+    einfo (_("%F%P: failed to set dynamic section sizes: %E\n"));
 
   if (sneed != NULL)
     {
@@ -853,7 +853,7 @@  gld${EMULATION_NAME}_find_exp_assignment (etree_type *exp)
 	  if (! bfd_sunos_record_link_assignment (link_info.output_bfd,
 						  &link_info,
 						  exp->assign.dst))
-	    einfo (_("%P%F: failed to record assignment to %s: %E\n"),
+	    einfo (_("%F%P: failed to record assignment to %s: %E\n"),
 		   exp->assign.dst);
 	}
       gld${EMULATION_NAME}_find_exp_assignment (exp->assign.src);
diff --git a/ld/emultempl/tic6xdsbt.em b/ld/emultempl/tic6xdsbt.em
index 4b46db5..c40b7be 100644
--- a/ld/emultempl/tic6xdsbt.em
+++ b/ld/emultempl/tic6xdsbt.em
@@ -60,7 +60,7 @@  tic6x_after_open (void)
     {
       if (params.dsbt_index >= params.dsbt_size)
 	{
-	  einfo (_("%P%F: invalid --dsbt-index %d, outside DSBT size.\n"),
+	  einfo (_("%F%P: invalid --dsbt-index %d, outside DSBT size\n"),
 		 params.dsbt_index);
 	}
       elf32_tic6x_setup (&link_info, &params);
@@ -178,11 +178,10 @@  PARSE_AND_LIST_LONGOPTS='
 '
 
 PARSE_AND_LIST_OPTIONS='
-  fprintf (file, _("  --dsbt-index <index>\n"));
-  fprintf (file, _("\t\t\tUse this as the DSBT index for the output object\n"));
-  fprintf (file, _("  --dsbt-size <index>\n"));
-  fprintf (file, _("\t\t\tUse this as the number of entries in the DSBT table\n"));
-  fprintf (file, _("  --no-merge-exidx-entries    Disable merging exidx entries\n"));
+  fprintf (file, _("  --dsbt-index <index>    Use this as the DSBT index for the output object\n"));
+  fprintf (file, _("  --dsbt-size <index>     Use this as the number of entries in the DSBT table\n"));
+  fprintf (file, _("  --no-merge-exidx-entries\n"));
+  fprintf (file, _("                          Disable merging exidx entries\n"));
 '
 
 PARSE_AND_LIST_ARGS_CASES='
@@ -193,7 +192,7 @@  PARSE_AND_LIST_ARGS_CASES='
 	if (*end == 0
 	    && params.dsbt_index >= 0 && params.dsbt_index < 0x7fff)
 	  break;
-	einfo (_("%P%F: invalid --dsbt-index %s\n"), optarg);
+	einfo (_("%F%P: invalid --dsbt-index %s\n"), optarg);
       }
       break;
     case OPTION_DSBT_SIZE:
@@ -203,7 +202,7 @@  PARSE_AND_LIST_ARGS_CASES='
 	if (*end == 0
 	    && params.dsbt_size >= 0 && params.dsbt_size < 0x7fff)
 	  break;
-	einfo (_("%P%F: invalid --dsbt-size %s\n"), optarg);
+	einfo (_("%F%P: invalid --dsbt-size %s\n"), optarg);
       }
       break;
    case OPTION_NO_MERGE_EXIDX_ENTRIES:
diff --git a/ld/emultempl/ticoff.em b/ld/emultempl/ticoff.em
index 961edd2..dba6051 100644
--- a/ld/emultempl/ticoff.em
+++ b/ld/emultempl/ticoff.em
@@ -87,7 +87,7 @@  gld${EMULATION_NAME}_handle_option (int optc)
 	}
       else
 	{
-	  einfo (_("%P%F: invalid COFF format version %s\n"), optarg);
+	  einfo (_("%F%P: invalid COFF format version %s\n"), optarg);
 	}
       break;
     }
diff --git a/ld/emultempl/v850elf.em b/ld/emultempl/v850elf.em
index 5f86e68..7d7ed94 100644
--- a/ld/emultempl/v850elf.em
+++ b/ld/emultempl/v850elf.em
@@ -62,8 +62,8 @@  v850_create_output_section_statements (void)
 	 These will only be created if the output format is an arm format,
 	 hence we do not support linking and changing output formats at the
 	 same time.  Use a link followed by objcopy to change output formats.  */
-      einfo (_("%F%X%P: error: Cannot change output format (to %s) whilst linking V850 binaries.\n"),
-	     bfd_get_target (link_info.output_bfd));
+      einfo (_("%F%P: error: cannot change output format"
+	       " whilst linking %s binaries\n"), "V850");
       return;
     }
 }
diff --git a/ld/emultempl/vms.em b/ld/emultempl/vms.em
index 79ee076..1df0823 100644
--- a/ld/emultempl/vms.em
+++ b/ld/emultempl/vms.em
@@ -199,7 +199,7 @@  gld${EMULATION_NAME}_before_allocation (void)
       && bed->elf_backend_size_dynamic_sections
       && ! (*bed->elf_backend_size_dynamic_sections) (link_info.output_bfd,
 						      &link_info))
-    einfo (_("%P%F: failed to set dynamic section sizes: %E\n"));
+    einfo (_("%F%P: failed to set dynamic section sizes: %E\n"));
 
   before_allocation_default ();
 }
diff --git a/ld/emultempl/vxworks.em b/ld/emultempl/vxworks.em
index a57c486..95da9e6 100644
--- a/ld/emultempl/vxworks.em
+++ b/ld/emultempl/vxworks.em
@@ -44,13 +44,13 @@  vxworks_after_open (void)
       && bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour
       && !_bfd_elf_link_create_dynamic_sections (link_info.input_bfds,
 						 &link_info))
-    einfo (_("%X%P: Cannot create dynamic sections %E\n"));
+    einfo (_("%X%P: cannot create dynamic sections %E\n"));
 
   if (!force_dynamic
       && !bfd_link_pic (&link_info)
       && bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour
       && elf_hash_table (&link_info)->dynamic_sections_created)
-    einfo (_("%X%P: Dynamic sections created in non-dynamic link\n"));
+    einfo (_("%X%P: dynamic sections created in non-dynamic link\n"));
 }
 
 EOF
diff --git a/ld/emultempl/xtensaelf.em b/ld/emultempl/xtensaelf.em
index b88f5f1..7b04a7a 100644
--- a/ld/emultempl/xtensaelf.em
+++ b/ld/emultempl/xtensaelf.em
@@ -384,7 +384,7 @@  check_xtensa_info (bfd *abfd, asection *info_sec)
 
   data = xmalloc (info_sec->size);
   if (! bfd_get_section_contents (abfd, info_sec, data, 0, info_sec->size))
-    einfo (_("%F%P:%pB: cannot read contents of section %pA\n"), abfd, info_sec);
+    einfo (_("%F%P: %pB: cannot read contents of section %pA\n"), abfd, info_sec);
 
   if (info_sec->size > 24
       && info_sec->size >= 24 + bfd_get_32 (abfd, data + 4)
@@ -395,11 +395,11 @@  check_xtensa_info (bfd *abfd, asection *info_sec)
 					  &mismatch, &errmsg))
     {
       if (mismatch)
-	einfo (_("%P:%pB: warning: incompatible Xtensa configuration (%s)\n"),
+	einfo (_("%P: %pB: warning: incompatible Xtensa configuration (%s)\n"),
 	       abfd, errmsg);
     }
   else
-    einfo (_("%P:%pB: warning: cannot parse .xtensa.info section\n"), abfd);
+    einfo (_("%P: %pB: warning: cannot parse .xtensa.info section\n"), abfd);
 
   free (data);
 }
diff --git a/ld/ldcref.c b/ld/ldcref.c
index ccf7a70..01d3b53 100644
--- a/ld/ldcref.c
+++ b/ld/ldcref.c
@@ -514,7 +514,7 @@  check_local_sym_xref (lang_input_statement_type *statement)
     return;
 
   if (!bfd_generic_link_read_symbols (abfd))
-    einfo (_("%pB%F: could not read symbols: %E\n"), abfd);
+    einfo (_("%F%P: %pB: could not read symbols: %E\n"), abfd);
 
   for (syms = bfd_get_outsymbols (abfd); *syms; ++syms)
     {
@@ -625,7 +625,7 @@  check_refs (const char *name,
      BFD might contain a prohibited cross reference.  */
 
   if (!bfd_generic_link_read_symbols (abfd))
-    einfo (_("%pB%F: could not read symbols: %E\n"), abfd);
+    einfo (_("%F%P: %pB: could not read symbols: %E\n"), abfd);
 
   info.sym_name = name;
   info.global = global;
@@ -687,14 +687,14 @@  check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
 
   relsize = bfd_get_reloc_upper_bound (abfd, sec);
   if (relsize < 0)
-    einfo (_("%pB%F: could not read relocs: %E\n"), abfd);
+    einfo (_("%F%P: %pB: could not read relocs: %E\n"), abfd);
   if (relsize == 0)
     return;
 
   relpp = (arelent **) xmalloc (relsize);
   relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
   if (relcount < 0)
-    einfo (_("%pB%F: could not read relocs: %E\n"), abfd);
+    einfo (_("%F%P: %pB: could not read relocs: %E\n"), abfd);
 
   p = relpp;
   pend = p + relcount;
@@ -721,7 +721,7 @@  check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
 	     in OUTSECNAME.  This reloc is from a section which is
 	     mapped into a section from which references to OUTSECNAME
 	     are prohibited.  We must report an error.  */
-	  einfo (_("%X%C: prohibited cross reference from %s to `%pT' in %s\n"),
+	  einfo (_("%X%P: %C: prohibited cross reference from %s to `%pT' in %s\n"),
 		 abfd, sec, q->address, outsecname,
 		 bfd_asymbol_name (*q->sym_ptr_ptr), outdefsecname);
 	}
diff --git a/ld/ldctor.c b/ld/ldctor.c
index 723d01d..5fd6502 100644
--- a/ld/ldctor.c
+++ b/ld/ldctor.c
@@ -80,7 +80,7 @@  ldctor_add_set_entry (struct bfd_link_hash_entry *h,
     {
       if (p->reloc != reloc)
 	{
-	  einfo (_("%P%X: Different relocs used in set %s\n"),
+	  einfo (_("%X%P: different relocs used in set %s\n"),
 		 h->root.string);
 	  return;
 	}
@@ -98,7 +98,7 @@  ldctor_add_set_entry (struct bfd_link_hash_entry *h,
 	  && strcmp (bfd_get_target (section->owner),
 		     bfd_get_target (p->elements->section->owner)) != 0)
 	{
-	  einfo (_("%P%X: Different object file formats composing set %s\n"),
+	  einfo (_("%X%P: different object file formats composing set %s\n"),
 		 h->root.string);
 	  return;
 	}
@@ -276,7 +276,7 @@  ldctor_build_sets (void)
 	{
 	  if (bfd_link_relocatable (&link_info))
 	    {
-	      einfo (_("%P%X: %s does not support reloc %s for set %s\n"),
+	      einfo (_("%X%P: %s does not support reloc %s for set %s\n"),
 		     bfd_get_target (link_info.output_bfd),
 		     bfd_get_reloc_code_name (p->reloc),
 		     p->h->root.string);
@@ -292,12 +292,12 @@  ldctor_build_sets (void)
 	    {
 	      /* See PR 20911 for a reproducer.  */
 	      if (p->elements->section->owner == NULL)
-		einfo (_("%P%X: Special section %s does not support reloc %s for set %s\n"),
+		einfo (_("%X%P: special section %s does not support reloc %s for set %s\n"),
 		       bfd_get_section_name (link_info.output_bfd, p->elements->section),
 		       bfd_get_reloc_code_name (p->reloc),
 		       p->h->root.string);
 	      else
-		einfo (_("%P%X: %s does not support reloc %s for set %s\n"),
+		einfo (_("%X%P: %s does not support reloc %s for set %s\n"),
 		       bfd_get_target (p->elements->section->owner),
 		       bfd_get_reloc_code_name (p->reloc),
 		       p->h->root.string);
@@ -318,7 +318,7 @@  ldctor_build_sets (void)
 	    size = QUAD;
 	  break;
 	default:
-	  einfo (_("%P%X: Unsupported size %d for set %s\n"),
+	  einfo (_("%X%P: unsupported size %d for set %s\n"),
 		 bfd_get_reloc_size (howto), p->h->root.string);
 	  size = LONG;
 	  break;
diff --git a/ld/ldexp.c b/ld/ldexp.c
index a44a4fe..f9dc362 100644
--- a/ld/ldexp.c
+++ b/ld/ldexp.c
@@ -280,7 +280,7 @@  definedness_newfunc (struct bfd_hash_entry *entry,
       bfd_hash_allocate (table, sizeof (struct definedness_hash_entry));
 
   if (ret == NULL)
-    einfo (_("%P%F: bfd_hash_allocate failed creating symbol %s\n"), name);
+    einfo (_("%F%P: bfd_hash_allocate failed creating symbol %s\n"), name);
 
   ret->by_object = 0;
   ret->iteration = 0;
@@ -311,7 +311,7 @@  update_definedness (const char *name, struct bfd_link_hash_entry *h)
     bfd_hash_lookup (&definedness_table, name, TRUE, FALSE);
 
   if (defentry == NULL)
-    einfo (_("%P%F: bfd_hash_lookup failed creating symbol %s\n"), name);
+    einfo (_("%F%P: bfd_hash_lookup failed creating symbol %s\n"), name);
 
   /* If the symbol was already defined, and not by a script, then it
      must be defined by an object file or by the linker target code.  */
@@ -624,7 +624,7 @@  fold_binary (etree_type *tree)
 	    expld.result.value = ((bfd_signed_vma) lhs.value
 				  % (bfd_signed_vma) expld.result.value);
 	  else if (expld.phase != lang_mark_phase_enum)
-	    einfo (_("%F%pS %% by zero\n"), tree->binary.rhs);
+	    einfo (_("%F%P:%pS %% by zero\n"), tree->binary.rhs);
 	  arith_result_section (&lhs);
 	  break;
 
@@ -633,7 +633,7 @@  fold_binary (etree_type *tree)
 	    expld.result.value = ((bfd_signed_vma) lhs.value
 				  / (bfd_signed_vma) expld.result.value);
 	  else if (expld.phase != lang_mark_phase_enum)
-	    einfo (_("%F%pS / by zero\n"), tree->binary.rhs);
+	    einfo (_("%F%P:%pS / by zero\n"), tree->binary.rhs);
 	  arith_result_section (&lhs);
 	  break;
 
@@ -742,7 +742,7 @@  fold_name (etree_type *tree)
 					    tree->name.name,
 					    TRUE, FALSE, TRUE);
 	  if (!h)
-	    einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n"));
+	    einfo (_("%F%P: bfd_link_hash_lookup failed: %E\n"));
 	  else if (h->type == bfd_link_hash_defined
 		   || h->type == bfd_link_hash_defweak)
 	    {
@@ -754,7 +754,7 @@  fold_name (etree_type *tree)
 		  if (expld.phase <= lang_mark_phase_enum)
 		    new_rel (h->u.def.value, h->u.def.section);
 		  else
-		    einfo (_("%X%pS: unresolvable symbol `%s'"
+		    einfo (_("%X%P:%pS: unresolvable symbol `%s'"
 			     " referenced in expression\n"),
 			   tree, tree->name.name);
 		}
@@ -769,7 +769,7 @@  fold_name (etree_type *tree)
 	  else if (expld.phase == lang_final_phase_enum
 		   || (expld.phase != lang_mark_phase_enum
 		       && expld.assigning_to_dot))
-	    einfo (_("%F%pS: undefined symbol `%s'"
+	    einfo (_("%F%P:%pS: undefined symbol `%s'"
 		     " referenced in expression\n"),
 		   tree, tree->name.name);
 	  else if (h->type == bfd_link_hash_new)
@@ -795,7 +795,7 @@  fold_name (etree_type *tree)
 	  if (os == NULL)
 	    {
 	      if (expld.phase == lang_final_phase_enum)
-		einfo (_("%F%pS: undefined section `%s'"
+		einfo (_("%F%P:%pS: undefined section `%s'"
 			 " referenced in expression\n"),
 		       tree, tree->name.name);
 	    }
@@ -813,7 +813,7 @@  fold_name (etree_type *tree)
 	  if (os == NULL)
 	    {
 	      if (expld.phase == lang_final_phase_enum)
-		einfo (_("%F%pS: undefined section `%s'"
+		einfo (_("%F%P:%pS: undefined section `%s'"
 			 " referenced in expression\n"),
 		       tree, tree->name.name);
 	    }
@@ -841,7 +841,7 @@  fold_name (etree_type *tree)
 	  if (os == NULL)
 	    {
 	      if (expld.phase == lang_final_phase_enum)
-		einfo (_("%F%pS: undefined section `%s'"
+		einfo (_("%F%P:%pS: undefined section `%s'"
 			 " referenced in expression\n"),
 		       tree, tree->name.name);
 	      new_number (0);
@@ -873,7 +873,7 @@  fold_name (etree_type *tree)
 	  if (mem != NULL)
 	    new_number (mem->length);
 	  else
-	    einfo (_("%F%pS: undefined MEMORY region `%s'"
+	    einfo (_("%F%P:%pS: undefined MEMORY region `%s'"
 		     " referenced in expression\n"),
 		   tree, tree->name.name);
 	}
@@ -889,7 +889,7 @@  fold_name (etree_type *tree)
 	  if (mem != NULL)
 	    new_rel_from_abs (mem->origin);
 	  else
-	    einfo (_("%F%pS: undefined MEMORY region `%s'"
+	    einfo (_("%F%P:%pS: undefined MEMORY region `%s'"
 		     " referenced in expression\n"),
 		   tree, tree->name.name);
 	}
@@ -901,7 +901,7 @@  fold_name (etree_type *tree)
       else if (strcmp (tree->name.name, "COMMONPAGESIZE") == 0)
 	new_number (config.commonpagesize);
       else
-	einfo (_("%F%pS: unknown constant `%s' referenced in expression\n"),
+	einfo (_("%F%P:%pS: unknown constant `%s' referenced in expression\n"),
 	       tree, tree->name.name);
       break;
 
@@ -1049,7 +1049,7 @@  exp_fold_tree_1 (etree_type *tree)
       if (tree->assign.dst[0] == '.' && tree->assign.dst[1] == 0)
 	{
 	  if (tree->type.node_class != etree_assign)
-	    einfo (_("%F%pS can not PROVIDE assignment to"
+	    einfo (_("%F%P:%pS can not PROVIDE assignment to"
 		     " location counter\n"), tree);
 	  if (expld.phase != lang_first_phase_enum)
 	    {
@@ -1082,11 +1082,11 @@  exp_fold_tree_1 (etree_type *tree)
 		  || expld.section == bfd_und_section_ptr)
 		{
 		  if (expld.phase != lang_mark_phase_enum)
-		    einfo (_("%F%pS invalid assignment to"
+		    einfo (_("%F%P:%pS invalid assignment to"
 			     " location counter\n"), tree);
 		}
 	      else if (expld.dotp == NULL)
-		einfo (_("%F%pS assignment to location counter"
+		einfo (_("%F%P:%pS assignment to location counter"
 			 " invalid outside of SECTIONS\n"), tree);
 
 	      /* After allocation, assignment to dot should not be
@@ -1105,7 +1105,7 @@  exp_fold_tree_1 (etree_type *tree)
 		    nextdot += expld.section->vma;
 		  if (nextdot < expld.dot
 		      && expld.section != bfd_abs_section_ptr)
-		    einfo (_("%F%pS cannot move location counter backwards"
+		    einfo (_("%F%P:%pS cannot move location counter backwards"
 			     " (from %V to %V)\n"),
 			   tree, expld.dot, nextdot);
 		  else
@@ -1164,7 +1164,7 @@  exp_fold_tree_1 (etree_type *tree)
 		  h = bfd_link_hash_lookup (link_info.hash, tree->assign.dst,
 					    TRUE, FALSE, TRUE);
 		  if (h == NULL)
-		    einfo (_("%P%F:%s: hash creation failed\n"),
+		    einfo (_("%F%P:%s: hash creation failed\n"),
 			   tree->assign.dst);
 		}
 
@@ -1513,7 +1513,7 @@  exp_get_vma (etree_type *tree, bfd_vma def, char *name)
       if (expld.result.valid_p)
 	return expld.result.value;
       else if (name != NULL && expld.phase != lang_mark_phase_enum)
-	einfo (_("%F%pS: nonconstant expression for %s\n"),
+	einfo (_("%F%P:%pS: nonconstant expression for %s\n"),
 	       tree, name);
     }
   return def;
@@ -1539,7 +1539,7 @@  exp_get_fill (etree_type *tree, fill_type *def, char *name)
   if (!expld.result.valid_p)
     {
       if (name != NULL && expld.phase != lang_mark_phase_enum)
-	einfo (_("%F%pS: nonconstant expression for %s\n"),
+	einfo (_("%F%P:%pS: nonconstant expression for %s\n"),
 	       tree, name);
       return def;
     }
@@ -1599,7 +1599,7 @@  exp_get_abs_int (etree_type *tree, int def, char *name)
 	}
       else if (name != NULL && expld.phase != lang_mark_phase_enum)
 	{
-	  einfo (_("%F%pS: nonconstant expression for %s\n"),
+	  einfo (_("%F%P:%pS: nonconstant expression for %s\n"),
 		 tree, name);
 	}
     }
@@ -1625,7 +1625,7 @@  ldexp_init (void)
 			      definedness_newfunc,
 			      sizeof (struct definedness_hash_entry),
 			      13))
-    einfo (_("%P%F: can not create hash table: %E\n"));
+    einfo (_("%F%P: can not create hash table: %E\n"));
 }
 
 /* Convert absolute symbols defined by a script from "dot" (also
diff --git a/ld/ldfile.c b/ld/ldfile.c
index 6532a57..a72ff13 100644
--- a/ld/ldfile.c
+++ b/ld/ldfile.c
@@ -598,7 +598,7 @@  ldfile_open_command_file_1 (const char *name, bfd_boolean default_only)
   if (ldlex_input_stack == NULL)
     {
       bfd_set_error (bfd_error_system_call);
-      einfo (_("%P%F: cannot open linker script file %s: %E\n"), name);
+      einfo (_("%F%P: cannot open linker script file %s: %E\n"), name);
       return;
     }
 
@@ -663,5 +663,5 @@  ldfile_set_output_arch (const char *string, enum bfd_architecture defarch)
   else if (defarch != bfd_arch_unknown)
     ldfile_output_architecture = defarch;
   else
-    einfo (_("%P%F: cannot represent machine `%s'\n"), string);
+    einfo (_("%F%P: cannot represent machine `%s'\n"), string);
 }
diff --git a/ld/ldgram.y b/ld/ldgram.y
index 335624b..cba0486 100644
--- a/ld/ldgram.y
+++ b/ld/ldgram.y
@@ -206,7 +206,7 @@  mri_script_command:
 		CHIP  exp
 	|	CHIP  exp ',' exp
 	|	NAME	{
-			einfo(_("%P%F: unrecognised keyword in MRI style script '%s'\n"),$1);
+			einfo(_("%F%P: unrecognised keyword in MRI style script '%s'\n"),$1);
 			}
 	|	LIST	{
 			config.map_filename = "-";
@@ -1477,7 +1477,7 @@  yyerror(arg)
     einfo (_("%P:%s: file format not recognized; treating as linker script\n"),
 	   ldlex_filename ());
   if (error_index > 0 && error_index < ERROR_NAME_MAX)
-    einfo ("%P%F:%pS: %s in %s\n", NULL, arg, error_names[error_index - 1]);
+    einfo ("%F%P:%pS: %s in %s\n", NULL, arg, error_names[error_index - 1]);
   else
-    einfo ("%P%F:%pS: %s\n", NULL, arg);
+    einfo ("%F%P:%pS: %s\n", NULL, arg);
 }
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 5401982..35e4f1e 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -1231,7 +1231,7 @@  output_section_statement_table_init (void)
 			      output_section_statement_newfunc,
 			      sizeof (struct out_section_hash_entry),
 			      61))
-    einfo (_("%P%F: can not create hash table: %E\n"));
+    einfo (_("%F%P: can not create hash table: %E\n"));
 }
 
 static void
@@ -1435,7 +1435,7 @@  lang_output_section_statement_lookup (const char *name,
   if (entry == NULL)
     {
       if (create)
-	einfo (_("%P%F: failed creating section `%s': %E\n"), name);
+	einfo (_("%F%P: failed creating section `%s': %E\n"), name);
       return NULL;
     }
 
@@ -1474,7 +1474,7 @@  lang_output_section_statement_lookup (const char *name,
 					     name));
       if (entry == NULL)
 	{
-	  einfo (_("%P%F: failed creating section `%s': %E\n"), name);
+	  einfo (_("%F%P: failed creating section `%s': %E\n"), name);
 	  return NULL;
 	}
       entry->root = last_ent->root;
@@ -2164,7 +2164,7 @@  static void
 init_os (lang_output_section_statement_type *s, flagword flags)
 {
   if (strcmp (s->name, DISCARD_SECTION_NAME) == 0)
-    einfo (_("%P%F: Illegal use of `%s' section\n"), DISCARD_SECTION_NAME);
+    einfo (_("%F%P: illegal use of `%s' section\n"), DISCARD_SECTION_NAME);
 
   if (s->constraint != SPECIAL)
     s->bfd_section = bfd_get_section_by_name (link_info.output_bfd, s->name);
@@ -2173,7 +2173,7 @@  init_os (lang_output_section_statement_type *s, flagword flags)
 							 s->name, flags);
   if (s->bfd_section == NULL)
     {
-      einfo (_("%P%F: output format %s cannot represent section"
+      einfo (_("%F%P: output format %s cannot represent section"
 	       " called %s: %E\n"),
 	     link_info.output_bfd->xvec->name, s->name);
     }
@@ -2770,15 +2770,15 @@  load_symbols (lang_input_statement_type *entry,
 	{
 	  char **p;
 
-	  einfo (_("%pB: file not recognized: %E\n"), entry->the_bfd);
-	  einfo (_("%pB: matching formats:"), entry->the_bfd);
+	  einfo (_("%P: %pB: file not recognized: %E;"
+		   " matching formats:"), entry->the_bfd);
 	  for (p = matching; *p != NULL; p++)
 	    einfo (" %s", *p);
 	  einfo ("%F\n");
 	}
       else if (err != bfd_error_file_not_recognized
 	       || place == NULL)
-	einfo (_("%F%pB: file not recognized: %E\n"), entry->the_bfd);
+	einfo (_("%F%P: %pB: file not recognized: %E\n"), entry->the_bfd);
 
       bfd_close (entry->the_bfd);
       entry->the_bfd = NULL;
@@ -2851,7 +2851,7 @@  load_symbols (lang_input_statement_type *entry,
 
 	      if (!bfd_check_format (member, bfd_object))
 		{
-		  einfo (_("%F%pB: member %pB in archive is not an object\n"),
+		  einfo (_("%F%P: %pB: member %pB in archive is not an object\n"),
 			 entry->the_bfd, member);
 		  loaded = FALSE;
 		}
@@ -2866,7 +2866,7 @@  load_symbols (lang_input_statement_type *entry,
 		 substitute BFD for us.  */
 	      if (!bfd_link_add_symbols (subsbfd, &link_info))
 		{
-		  einfo (_("%F%pB: error adding symbols: %E\n"), member);
+		  einfo (_("%F%P: %pB: error adding symbols: %E\n"), member);
 		  loaded = FALSE;
 		}
 	    }
@@ -2880,7 +2880,7 @@  load_symbols (lang_input_statement_type *entry,
   if (bfd_link_add_symbols (entry->the_bfd, &link_info))
     entry->flags.loaded = TRUE;
   else
-    einfo (_("%F%pB: error adding symbols: %E\n"), entry->the_bfd);
+    einfo (_("%F%P: %pB: error adding symbols: %E\n"), entry->the_bfd);
 
   return entry->flags.loaded;
 }
@@ -3168,23 +3168,23 @@  open_output (const char *name)
   if (link_info.output_bfd == NULL)
     {
       if (bfd_get_error () == bfd_error_invalid_target)
-	einfo (_("%P%F: target %s not found\n"), output_target);
+	einfo (_("%F%P: target %s not found\n"), output_target);
 
-      einfo (_("%P%F: cannot open output file %s: %E\n"), name);
+      einfo (_("%F%P: cannot open output file %s: %E\n"), name);
     }
 
   delete_output_file_on_failure = TRUE;
 
   if (!bfd_set_format (link_info.output_bfd, bfd_object))
-    einfo (_("%P%F:%s: can not make object file: %E\n"), name);
+    einfo (_("%F%P: %s: can not make object file: %E\n"), name);
   if (!bfd_set_arch_mach (link_info.output_bfd,
 			   ldfile_output_architecture,
 			   ldfile_output_machine))
-    einfo (_("%P%F:%s: can not set architecture: %E\n"), name);
+    einfo (_("%F%P: %s: can not set architecture: %E\n"), name);
 
   link_info.hash = bfd_link_hash_table_create (link_info.output_bfd);
   if (link_info.hash == NULL)
-    einfo (_("%P%F: can not create hash table: %E\n"));
+    einfo (_("%F%P: can not create hash table: %E\n"));
 
   bfd_set_gp_size (link_info.output_bfd, g_switch_value);
 }
@@ -3408,7 +3408,7 @@  insert_undefined (const char *name)
 
   h = bfd_link_hash_lookup (link_info.hash, name, TRUE, FALSE, TRUE);
   if (h == NULL)
-    einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n"));
+    einfo (_("%F%P: bfd_link_hash_lookup failed: %E\n"));
   if (h->type == bfd_link_hash_new)
     {
       h->type = bfd_link_hash_undefined;
@@ -3477,7 +3477,7 @@  ldlang_check_require_defined_symbols (void)
       if (h == NULL
 	  || (h->type != bfd_link_hash_defined
 	      && h->type != bfd_link_hash_defweak))
-	einfo(_("%P%X: required symbol `%s' not defined\n"), ptr->name);
+	einfo(_("%X%P: required symbol `%s' not defined\n"), ptr->name);
     }
 }
 
@@ -5049,7 +5049,7 @@  lang_size_sections_1
 		      dot += expld.result.section->vma;
 		  }
 		else if (expld.phase != lang_mark_phase_enum)
-		  einfo (_("%F%pS: non constant or forward reference"
+		  einfo (_("%F%P:%pS: non constant or forward reference"
 			   " address expression for section %s\n"),
 			 os->addr_tree, os->name);
 	      }
@@ -5074,7 +5074,7 @@  lang_size_sections_1
 		    || os->children.head->header.next != NULL
 		    || (os->children.head->header.type
 			!= lang_input_section_enum))
-		  einfo (_("%P%X: Internal error on COFF shared library"
+		  einfo (_("%X%P: internal error on COFF shared library"
 			   " section %s\n"), os->name);
 
 		input = os->children.head->input_section.section;
@@ -5133,7 +5133,7 @@  lang_size_sections_1
 			   overridden by the using the --no-check-sections
 			   switch.  */
 			if (command_line.check_section_addresses)
-			  einfo (_("%P%F: error: no memory region specified"
+			  einfo (_("%F%P: error: no memory region specified"
 				   " for loadable section `%s'\n"),
 				 bfd_get_section_name (link_info.output_bfd,
 						       os->bfd_section));
@@ -5434,7 +5434,7 @@  lang_size_sections_1
 		bfd_boolean again;
 
 		if (!bfd_relax_section (i->owner, i, &link_info, &again))
-		  einfo (_("%P%F: can't relax section: %E\n"));
+		  einfo (_("%F%P: can't relax section: %E\n"));
 		if (again)
 		  *relax = TRUE;
 	      }
@@ -6183,7 +6183,7 @@  lang_end (void)
      --gc-sections.  */
   if (link_info.gc_sections && bfd_link_relocatable (&link_info)
       && !(entry_from_cmdline || undef_from_cmdline))
-    einfo (_("%P%F: gc-sections requires either an entry or "
+    einfo (_("%F%P: gc-sections requires either an entry or "
 	     "an undefined symbol\n"));
 
   if (entry_symbol.name == NULL)
@@ -6208,7 +6208,7 @@  lang_end (void)
 				    h->u.def.section->output_section)
 	     + h->u.def.section->output_offset);
       if (!bfd_set_start_address (link_info.output_bfd, val))
-	einfo (_("%P%F:%s: can't set start address\n"), entry_symbol.name);
+	einfo (_("%F%P: %s: can't set start address\n"), entry_symbol.name);
     }
   else
     {
@@ -6221,7 +6221,7 @@  lang_end (void)
       if (*send == '\0')
 	{
 	  if (!bfd_set_start_address (link_info.output_bfd, val))
-	    einfo (_("%P%F: can't set start address\n"));
+	    einfo (_("%F%P: can't set start address\n"));
 	}
       else
 	{
@@ -6240,7 +6240,7 @@  lang_end (void)
 	      if (!(bfd_set_start_address
 		    (link_info.output_bfd,
 		     bfd_get_section_vma (link_info.output_bfd, ts))))
-		einfo (_("%P%F: can't set start address\n"));
+		einfo (_("%F%P: can't set start address\n"));
 	    }
 	  else
 	    {
@@ -6299,7 +6299,7 @@  lang_check (void)
 		  != bfd_get_flavour (link_info.output_bfd)))
 	  && (bfd_get_file_flags (input_bfd) & HAS_RELOC) != 0)
 	{
-	  einfo (_("%P%F: Relocatable linking with relocations from"
+	  einfo (_("%F%P: relocatable linking with relocations from"
 		   " format %s (%pB) to format %s (%pB) is not supported\n"),
 		 bfd_get_target (input_bfd), input_bfd,
 		 bfd_get_target (link_info.output_bfd), link_info.output_bfd);
@@ -6309,7 +6309,7 @@  lang_check (void)
       if (compatible == NULL)
 	{
 	  if (command_line.warn_mismatch)
-	    einfo (_("%P%X: %s architecture of input file `%pB'"
+	    einfo (_("%X%P: %s architecture of input file `%pB'"
 		     " is incompatible with %s output\n"),
 		   bfd_printable_name (input_bfd), input_bfd,
 		   bfd_printable_name (link_info.output_bfd));
@@ -6331,7 +6331,7 @@  lang_check (void)
 	  if (!bfd_merge_private_bfd_data (input_bfd, &link_info))
 	    {
 	      if (command_line.warn_mismatch)
-		einfo (_("%P%X: failed to merge target specific data"
+		einfo (_("%X%P: failed to merge target specific data"
 			 " of file %pB\n"), input_bfd);
 	    }
 	  if (!command_line.warn_mismatch)
@@ -6402,7 +6402,7 @@  lang_one_common (struct bfd_link_hash_entry *h, void *info)
 
   section = h->u.c.p->section;
   if (!bfd_define_common_symbol (link_info.output_bfd, &link_info, h))
-    einfo (_("%P%F: Could not define common symbol `%pT': %E\n"),
+    einfo (_("%F%P: could not define common symbol `%pT': %E\n"),
 	   h->root.string);
 
   if (config.map_file != NULL)
@@ -6489,7 +6489,7 @@  ldlang_place_orphan (asection *s)
       int constraint = 0;
 
       if (config.orphan_handling == orphan_handling_error)
-	einfo (_("%X%P: error: unplaced orphan section `%pA' from `%pB'.\n"),
+	einfo (_("%X%P: error: unplaced orphan section `%pA' from `%pB'\n"),
 	       s, s->owner);
 
       if (config.unique_orphan_sections || unique_section_p (s, NULL))
@@ -6508,7 +6508,7 @@  ldlang_place_orphan (asection *s)
 
       if (config.orphan_handling == orphan_handling_warn)
 	einfo (_("%P: warning: orphan section `%pA' from `%pB' being "
-		 "placed in section `%s'.\n"),
+		 "placed in section `%s'\n"),
 	       s, s->owner, os->name);
     }
 }
@@ -6598,7 +6598,7 @@  lang_set_flags (lang_memory_region_type *ptr, const char *flags, int invert)
 	  break;
 
 	default:
-	  einfo (_("%P%F: invalid character %c (%d) in flags\n"),
+	  einfo (_("%F%P: invalid character %c (%d) in flags\n"),
 		 *flags, *flags);
 	  break;
 	}
@@ -7173,7 +7173,7 @@  lang_process (void)
   lang_place_undefineds ();
 
   if (!bfd_section_already_linked_table_init ())
-    einfo (_("%P%F: Failed to create hash table\n"));
+    einfo (_("%F%P: can not create hash table: %E\n"));
 
   /* Create a bfd for each input file.  */
   current_target = default_target;
@@ -7197,7 +7197,7 @@  lang_process (void)
       files = file_chain;
       inputfiles = input_file_chain;
       if (plugin_call_all_symbols_read ())
-	einfo (_("%P%F: %s: plugin reported error after all symbols read\n"),
+	einfo (_("%F%P: %s: plugin reported error after all symbols read\n"),
 	       plugin_error_plugin ());
       /* Open any newly added files, updating the file chains.  */
       open_input_bfds (*added.tail, OPEN_BFD_NORMAL);
@@ -7601,7 +7601,7 @@  lang_startup (const char *name)
 {
   if (first_file->filename != NULL)
     {
-      einfo (_("%P%F: multiple STARTUP files\n"));
+      einfo (_("%F%P: multiple STARTUP files\n"));
     }
   first_file->filename = name;
   first_file->local_sym_name = name;
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 6945654..b6914db 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -397,13 +397,13 @@  main (int argc, char **argv)
     xexit (0);
 
   if (link_info.inhibit_common_definition && !bfd_link_dll (&link_info))
-    einfo (_("%P%F: --no-define-common may not be used without -shared\n"));
+    einfo (_("%F%P: --no-define-common may not be used without -shared\n"));
 
   if (!lang_has_input_file)
     {
       if (version_printed || command_line.print_output_format)
 	xexit (0);
-      einfo (_("%P%F: no input files\n"));
+      einfo (_("%F%P: no input files\n"));
     }
 
   if (trace_files)
@@ -423,7 +423,7 @@  main (int argc, char **argv)
 	  if (config.map_file == (FILE *) NULL)
 	    {
 	      bfd_set_error (bfd_error_system_call);
-	      einfo (_("%P%F: cannot open map file %s: %E\n"),
+	      einfo (_("%F%P: cannot open map file %s: %E\n"),
 		     config.map_filename);
 	    }
 	}
@@ -481,7 +481,7 @@  main (int argc, char **argv)
   else
     {
       if (!bfd_close (link_info.output_bfd))
-	einfo (_("%F%pB: final close failed: %E\n"), link_info.output_bfd);
+	einfo (_("%F%P: %pB: final close failed: %E\n"), link_info.output_bfd);
 
       /* If the --force-exe-suffix is enabled, and we're making an
 	 executable file and it doesn't end in .exe, copy it to one
@@ -508,22 +508,22 @@  main (int argc, char **argv)
 	      dst = fopen (dst_name, FOPEN_WB);
 
 	      if (!src)
-		einfo (_("%P%F: unable to open for source of copy `%s'\n"),
+		einfo (_("%F%P: unable to open for source of copy `%s'\n"),
 		       output_filename);
 	      if (!dst)
-		einfo (_("%P%F: unable to open for destination of copy `%s'\n"),
+		einfo (_("%F%P: unable to open for destination of copy `%s'\n"),
 		       dst_name);
 	      while ((l = fread (buf, 1, bsize, src)) > 0)
 		{
 		  int done = fwrite (buf, 1, l, dst);
 
 		  if (done != l)
-		    einfo (_("%P: Error writing file `%s'\n"), dst_name);
+		    einfo (_("%P: error writing file `%s'\n"), dst_name);
 		}
 
 	      fclose (src);
 	      if (fclose (dst) == EOF)
-		einfo (_("%P: Error closing file `%s'\n"), dst_name);
+		einfo (_("%P: error closing file `%s'\n"), dst_name);
 	      free (dst_name);
 	      free (buf);
 	    }
@@ -620,7 +620,7 @@  get_emulation (int argc, char **argv)
 		  i++;
 		}
 	      else
-		einfo (_("%P%F: missing argument to -m\n"));
+		einfo (_("%F%P: missing argument to -m\n"));
 	    }
 	  else if (strcmp (argv[i], "-mips1") == 0
 		   || strcmp (argv[i], "-mips2") == 0
@@ -670,11 +670,11 @@  add_ysym (const char *name)
 				  bfd_hash_newfunc,
 				  sizeof (struct bfd_hash_entry),
 				  61))
-	einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
+	einfo (_("%F%P: bfd_hash_table_init failed: %E\n"));
     }
 
   if (bfd_hash_lookup (link_info.notice_hash, name, TRUE, TRUE) == NULL)
-    einfo (_("%P%F: bfd_hash_lookup failed: %E\n"));
+    einfo (_("%F%P: bfd_hash_lookup failed: %E\n"));
 }
 
 void
@@ -687,11 +687,11 @@  add_ignoresym (struct bfd_link_info *info, const char *name)
 				  bfd_hash_newfunc,
 				  sizeof (struct bfd_hash_entry),
 				  61))
-	einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
+	einfo (_("%F%P: bfd_hash_table_init failed: %E\n"));
     }
 
   if (bfd_hash_lookup (info->ignore_hash, name, TRUE, TRUE) == NULL)
-    einfo (_("%P%F: bfd_hash_lookup failed: %E\n"));
+    einfo (_("%F%P: bfd_hash_lookup failed: %E\n"));
 }
 
 /* Record a symbol to be wrapped, from the --wrap option.  */
@@ -707,11 +707,11 @@  add_wrap (const char *name)
 				  bfd_hash_newfunc,
 				  sizeof (struct bfd_hash_entry),
 				  61))
-	einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
+	einfo (_("%F%P: bfd_hash_table_init failed: %E\n"));
     }
 
   if (bfd_hash_lookup (link_info.wrap_hash, name, TRUE, TRUE) == NULL)
-    einfo (_("%P%F: bfd_hash_lookup failed: %E\n"));
+    einfo (_("%F%P: bfd_hash_lookup failed: %E\n"));
 }
 
 /* Handle the -retain-symbols-file option.  */
@@ -739,7 +739,7 @@  add_keepsyms_file (const char *filename)
       xmalloc (sizeof (struct bfd_hash_table));
   if (!bfd_hash_table_init (link_info.keep_hash, bfd_hash_newfunc,
 			    sizeof (struct bfd_hash_entry)))
-    einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
+    einfo (_("%F%P: bfd_hash_table_init failed: %E\n"));
 
   bufsize = 100;
   buf = (char *) xmalloc (bufsize);
@@ -769,7 +769,7 @@  add_keepsyms_file (const char *filename)
 	  buf[len] = '\0';
 
 	  if (bfd_hash_lookup (link_info.keep_hash, buf, TRUE, TRUE) == NULL)
-	    einfo (_("%P%F: bfd_hash_lookup for insertion failed: %E\n"));
+	    einfo (_("%F%P: bfd_hash_lookup for insertion failed: %E\n"));
 	}
     }
 
@@ -979,14 +979,15 @@  multiple_definition (struct bfd_link_info *info,
       nval = oval;
       obfd = NULL;
     }
-  einfo (_("%X%C: multiple definition of `%pT'\n"),
+  einfo (_("%X%P: %C: multiple definition of `%pT'"),
 	 nbfd, nsec, nval, name);
   if (obfd != NULL)
-    einfo (_("%D: first defined here\n"), obfd, osec, oval);
+    einfo (_("; %D: first defined here"), obfd, osec, oval);
+  einfo ("\n");
 
   if (RELAXATION_ENABLED_BY_USER)
     {
-      einfo (_("%P: Disabling relaxation: it will not work with multiple definitions\n"));
+      einfo (_("%P: disabling relaxation; it will not work with multiple definitions\n"));
       DISABLE_RELAXATION;
     }
 }
@@ -1038,43 +1039,60 @@  multiple_common (struct bfd_link_info *info ATTRIBUTE_UNUSED,
       || ntype == bfd_link_hash_indirect)
     {
       ASSERT (otype == bfd_link_hash_common);
-      einfo (_("%pB: warning: definition of `%pT' overriding common\n"),
-	     nbfd, name);
       if (obfd != NULL)
-	einfo (_("%pB: warning: common is here\n"), obfd);
+	einfo (_("%P: %pB: warning: definition of `%pT' overriding common"
+		 " from %pB\n"),
+	       nbfd, name, obfd);
+      else
+	einfo (_("%P: %pB: warning: definition of `%pT' overriding common\n"),
+	       nbfd, name);
     }
   else if (otype == bfd_link_hash_defined
 	   || otype == bfd_link_hash_defweak
 	   || otype == bfd_link_hash_indirect)
     {
       ASSERT (ntype == bfd_link_hash_common);
-      einfo (_("%pB: warning: common of `%pT' overridden by definition\n"),
-	     nbfd, name);
       if (obfd != NULL)
-	einfo (_("%pB: warning: defined here\n"), obfd);
+	einfo (_("%P: %pB: warning: common of `%pT' overridden by definition"
+		 " from %pB\n"),
+	       nbfd, name, obfd);
+      else
+	einfo (_("%P: %pB: warning: common of `%pT' overridden by definition\n"),
+	       nbfd, name);
     }
   else
     {
       ASSERT (otype == bfd_link_hash_common && ntype == bfd_link_hash_common);
       if (osize > nsize)
 	{
-	  einfo (_("%pB: warning: common of `%pT' overridden by larger common\n"),
-		 nbfd, name);
 	  if (obfd != NULL)
-	    einfo (_("%pB: warning: larger common is here\n"), obfd);
+	    einfo (_("%P: %pB: warning: common of `%pT' overridden"
+		     " by larger common from %pB\n"),
+		   nbfd, name, obfd);
+	  else
+	    einfo (_("%P: %pB: warning: common of `%pT' overridden"
+		     " by larger common\n"),
+		   nbfd, name);
 	}
       else if (nsize > osize)
 	{
-	  einfo (_("%pB: warning: common of `%pT' overriding smaller common\n"),
-		 nbfd, name);
 	  if (obfd != NULL)
-	    einfo (_("%pB: warning: smaller common is here\n"), obfd);
+	    einfo (_("%P: %pB: warning: common of `%pT' overriding"
+		     " smaller common from %pB\n"),
+		   nbfd, name, obfd);
+	  else
+	    einfo (_("%P: %pB: warning: common of `%pT' overriding"
+		     " smaller common\n"),
+		   nbfd, name);
 	}
       else
 	{
-	  einfo (_("%pB: warning: multiple common of `%pT'\n"), nbfd, name);
 	  if (obfd != NULL)
-	    einfo (_("%pB: warning: previous common is here\n"), obfd);
+	    einfo (_("%P: %pB and %pB: warning: multiple common of `%pT'\n"),
+		   nbfd, obfd, name);
+	  else
+	    einfo (_("%P: %pB: warning: multiple common of `%pT'\n"),
+		   nbfd, name);
 	}
     }
 }
@@ -1138,7 +1156,7 @@  constructor_callback (struct bfd_link_info *info,
   if (bfd_reloc_type_lookup (info->output_bfd, BFD_RELOC_CTOR) == NULL
       && (bfd_link_relocatable (info)
 	  || bfd_reloc_type_lookup (abfd, BFD_RELOC_CTOR) == NULL))
-    einfo (_("%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"));
+    einfo (_("%F%P: BFD backend error: BFD_RELOC_CTOR unsupported\n"));
 
   s = set_name;
   if (bfd_get_symbol_leading_char (abfd) != '\0')
@@ -1150,7 +1168,7 @@  constructor_callback (struct bfd_link_info *info,
 
   h = bfd_link_hash_lookup (info->hash, set_name, TRUE, TRUE, TRUE);
   if (h == (struct bfd_link_hash_entry *) NULL)
-    einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n"));
+    einfo (_("%F%P: bfd_link_hash_lookup failed: %E\n"));
   if (h->type == bfd_link_hash_new)
     {
       h->type = bfd_link_hash_undefined;
@@ -1183,7 +1201,7 @@  symbol_warning (const char *warning, const char *symbol, bfd *abfd)
   struct warning_callback_info cinfo;
 
   if (!bfd_generic_link_read_symbols (abfd))
-    einfo (_("%pB%F: could not read symbols: %E\n"), abfd);
+    einfo (_("%F%P: %pB: could not read symbols: %E\n"), abfd);
 
   cinfo.found = FALSE;
   cinfo.warning = warning;
@@ -1210,11 +1228,11 @@  warning_callback (struct bfd_link_info *info ATTRIBUTE_UNUSED,
     return;
 
   if (section != NULL)
-    einfo ("%C: %s%s\n", abfd, section, address, _("warning: "), warning);
+    einfo ("%P: %C: %s%s\n", abfd, section, address, _("warning: "), warning);
   else if (abfd == NULL)
     einfo ("%P: %s%s\n", _("warning: "), warning);
   else if (symbol == NULL)
-    einfo ("%pB: %s%s\n", abfd, _("warning: "), warning);
+    einfo ("%P: %pB: %s%s\n", abfd, _("warning: "), warning);
   else if (!symbol_warning (warning, symbol, abfd))
     {
       bfd *b;
@@ -1222,7 +1240,7 @@  warning_callback (struct bfd_link_info *info ATTRIBUTE_UNUSED,
       for (b = info->input_bfds; b; b = b->link.next)
 	if (b != abfd && symbol_warning (warning, symbol, b))
 	  return;
-      einfo ("%pB: %s%s\n", abfd, _("warning: "), warning);
+      einfo ("%P: %pB: %s%s\n", abfd, _("warning: "), warning);
     }
 }
 
@@ -1245,14 +1263,14 @@  warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
 
   relsize = bfd_get_reloc_upper_bound (abfd, sec);
   if (relsize < 0)
-    einfo (_("%pB%F: could not read relocs: %E\n"), abfd);
+    einfo (_("%F%P: %pB: could not read relocs: %E\n"), abfd);
   if (relsize == 0)
     return;
 
   relpp = (arelent **) xmalloc (relsize);
   relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
   if (relcount < 0)
-    einfo (_("%pB%F: could not read relocs: %E\n"), abfd);
+    einfo (_("%F%P: %pB: could not read relocs: %E\n"), abfd);
 
   p = relpp;
   pend = p + relcount;
@@ -1265,7 +1283,7 @@  warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
 	  && strcmp (bfd_asymbol_name (*q->sym_ptr_ptr), info->symbol) == 0)
 	{
 	  /* We found a reloc for the symbol we are looking for.  */
-	  einfo ("%C: %s%s\n", abfd, sec, q->address, _("warning: "),
+	  einfo ("%P: %C: %s%s\n", abfd, sec, q->address, _("warning: "),
 		 info->warning);
 	  info->found = TRUE;
 	  break;
@@ -1318,19 +1336,19 @@  undefined_symbol (struct bfd_link_info *info,
       if (error_count < MAX_ERRORS_IN_A_ROW)
 	{
 	  if (error)
-	    einfo (_("%X%C: undefined reference to `%pT'\n"),
+	    einfo (_("%X%P: %C: undefined reference to `%pT'\n"),
 		   abfd, section, address, name);
 	  else
-	    einfo (_("%C: warning: undefined reference to `%pT'\n"),
+	    einfo (_("%P: %C: warning: undefined reference to `%pT'\n"),
 		   abfd, section, address, name);
 	}
       else if (error_count == MAX_ERRORS_IN_A_ROW)
 	{
 	  if (error)
-	    einfo (_("%X%D: more undefined references to `%pT' follow\n"),
+	    einfo (_("%X%P: %D: more undefined references to `%pT' follow\n"),
 		   abfd, section, address, name);
 	  else
-	    einfo (_("%D: warning: more undefined references to `%pT' follow\n"),
+	    einfo (_("%P: %D: warning: more undefined references to `%pT' follow\n"),
 		   abfd, section, address, name);
 	}
       else if (error)
@@ -1341,19 +1359,19 @@  undefined_symbol (struct bfd_link_info *info,
       if (error_count < MAX_ERRORS_IN_A_ROW)
 	{
 	  if (error)
-	    einfo (_("%X%pB: undefined reference to `%pT'\n"),
+	    einfo (_("%X%P: %pB: undefined reference to `%pT'\n"),
 		   abfd, name);
 	  else
-	    einfo (_("%pB: warning: undefined reference to `%pT'\n"),
+	    einfo (_("%P: %pB: warning: undefined reference to `%pT'\n"),
 		   abfd, name);
 	}
       else if (error_count == MAX_ERRORS_IN_A_ROW)
 	{
 	  if (error)
-	    einfo (_("%X%pB: more undefined references to `%pT' follow\n"),
+	    einfo (_("%X%P: %pB: more undefined references to `%pT' follow\n"),
 		   abfd, name);
 	  else
-	    einfo (_("%pB: warning: more undefined references to `%pT' follow\n"),
+	    einfo (_("%P: %pB: warning: more undefined references to `%pT' follow\n"),
 		   abfd, name);
 	}
       else if (error)
@@ -1385,7 +1403,7 @@  reloc_overflow (struct bfd_link_info *info,
   if (overflow_cutoff_limit == -1)
     return;
 
-  einfo ("%X%H:", abfd, section, address);
+  einfo ("%X%P: %H:", abfd, section, address);
 
   if (overflow_cutoff_limit >= 0
       && overflow_cutoff_limit-- == 0)
@@ -1438,7 +1456,7 @@  reloc_dangerous (struct bfd_link_info *info ATTRIBUTE_UNUSED,
 		 asection *section,
 		 bfd_vma address)
 {
-  einfo (_("%X%H: dangerous relocation: %s\n"),
+  einfo (_("%X%P: %H: dangerous relocation: %s\n"),
 	 abfd, section, address, message);
 }
 
@@ -1452,7 +1470,7 @@  unattached_reloc (struct bfd_link_info *info ATTRIBUTE_UNUSED,
 		  asection *section,
 		  bfd_vma address)
 {
-  einfo (_("%X%H: reloc refers to symbol `%pT' which is not being output\n"),
+  einfo (_("%X%P: %H: reloc refers to symbol `%pT' which is not being output\n"),
 	 abfd, section, address, name);
 }
 
@@ -1486,9 +1504,9 @@  notice (struct bfd_link_info *info,
       && bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE) != NULL)
     {
       if (bfd_is_und_section (section))
-	einfo (_("%pB: reference to %s\n"), abfd, name);
+	einfo (_("%P: %pB: reference to %s\n"), abfd, name);
       else
-	einfo (_("%pB: definition of %s\n"), abfd, name);
+	einfo (_("%P: %pB: definition of %s\n"), abfd, name);
     }
 
   if (command_line.cref || nocrossref_list != NULL)
diff --git a/ld/ldmisc.c b/ld/ldmisc.c
index d201151..3e2a190 100644
--- a/ld/ldmisc.c
+++ b/ld/ldmisc.c
@@ -332,7 +332,7 @@  vfinfo (FILE *fp, const char *fmt, va_list ap, bfd_boolean is_warning)
 		if (abfd != NULL)
 		  {
 		    if (!bfd_generic_link_read_symbols (abfd))
-		      einfo (_("%pB%F: could not read symbols: %E\n"), abfd);
+		      einfo (_("%F%P: %pB: could not read symbols: %E\n"), abfd);
 
 		    asymbols = bfd_get_outsymbols (abfd);
 		  }
@@ -371,7 +371,7 @@  vfinfo (FILE *fp, const char *fmt, va_list ap, bfd_boolean is_warning)
 				&& filename_cmp (last_file, filename) != 0)
 			    || strcmp (last_function, functionname) != 0)
 			  {
-			    lfinfo (fp, _("%pB: In function `%pT':\n"),
+			    lfinfo (fp, _("%pB: in function `%pT':\n"),
 				    abfd, functionname);
 
 			    last_bfd = abfd;
@@ -700,6 +700,6 @@  ld_abort (const char *file, int line, const char *fn)
   else
     einfo (_("%P: internal error: aborting at %s:%d\n"),
 	   file, line);
-  einfo (_("%P%F: please report this bug\n"));
+  einfo (_("%F%P: please report this bug\n"));
   xexit (1);
 }
diff --git a/ld/ldwrite.c b/ld/ldwrite.c
index 23679b4..54345ab 100644
--- a/ld/ldwrite.c
+++ b/ld/ldwrite.c
@@ -57,7 +57,7 @@  build_link_order (lang_statement_union_type *statement)
 
 	link_order = bfd_new_link_order (link_info.output_bfd, output_section);
 	if (link_order == NULL)
-	  einfo (_("%P%F: bfd_new_link_order failed\n"));
+	  einfo (_("%F%P: bfd_new_link_order failed\n"));
 
 	link_order->type = bfd_data_link_order;
 	link_order->offset = statement->data_statement.output_offset;
@@ -203,7 +203,7 @@  build_link_order (lang_statement_union_type *statement)
 
 	link_order = bfd_new_link_order (link_info.output_bfd, output_section);
 	if (link_order == NULL)
-	  einfo (_("%P%F: bfd_new_link_order failed\n"));
+	  einfo (_("%F%P: bfd_new_link_order failed\n"));
 
 	link_order->offset = rs->output_offset;
 	link_order->size = bfd_get_reloc_size (rs->howto);
@@ -255,7 +255,7 @@  build_link_order (lang_statement_union_type *statement)
 	    link_order = bfd_new_link_order (link_info.output_bfd,
 					     output_section);
 	    if (link_order == NULL)
-	      einfo (_("%P%F: bfd_new_link_order failed\n"));
+	      einfo (_("%F%P: bfd_new_link_order failed\n"));
 
 	    if ((i->flags & SEC_NEVER_LOAD) != 0
 		&& (i->flags & SEC_DEBUGGING) == 0)
@@ -296,7 +296,7 @@  build_link_order (lang_statement_union_type *statement)
 	link_order = bfd_new_link_order (link_info.output_bfd,
 					 output_section);
 	if (link_order == NULL)
-	  einfo (_("%P%F: bfd_new_link_order failed\n"));
+	  einfo (_("%F%P: bfd_new_link_order failed\n"));
 	link_order->type = bfd_data_link_order;
 	link_order->size = statement->padding_statement.size;
 	link_order->offset = statement->padding_statement.output_offset;
diff --git a/ld/lexsup.c b/ld/lexsup.c
index f219160..636ce17 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -712,7 +712,7 @@  parse_args (unsigned argc, char **argv)
 	  /* Fall through.  */
 
 	default:
-	  einfo (_("%P%F: use the --help option for usage information\n"));
+	  einfo (_("%F%P: use the --help option for usage information\n"));
 	  break;
 
 	case 1:			/* File name.  */
@@ -731,7 +731,7 @@  parse_args (unsigned argc, char **argv)
 		   || strcmp (optarg, "default") == 0)
 	    input_flags.dynamic = TRUE;
 	  else
-	    einfo (_("%P%F: unrecognized -a option `%s'\n"), optarg);
+	    einfo (_("%F%P: unrecognized -a option `%s'\n"), optarg);
 	  break;
 	case OPTION_ASSERT:
 	  /* FIXME: We just ignore these, but we should handle them.  */
@@ -744,7 +744,7 @@  parse_args (unsigned argc, char **argv)
 	  else if (strcmp (optarg, "pure-text") == 0)
 	    ;
 	  else
-	    einfo (_("%P%F: unrecognized -assert option `%s'\n"), optarg);
+	    einfo (_("%F%P: unrecognized -assert option `%s'\n"), optarg);
 	  break;
 	case 'A':
 	  ldfile_add_arch (optarg);
@@ -858,7 +858,7 @@  parse_args (unsigned argc, char **argv)
 	    char *end;
 	    g_switch_value = strtoul (optarg, &end, 0);
 	    if (*end)
-	      einfo (_("%P%F: invalid number `%s'\n"), optarg);
+	      einfo (_("%F%P: invalid number `%s'\n"), optarg);
 	  }
 	  break;
 	case 'g':
@@ -959,7 +959,7 @@  parse_args (unsigned argc, char **argv)
 	      link_info.unresolved_syms_in_shared_libs = RM_IGNORE;
 	    }
 	  else
-	    einfo (_("%P%F: bad --unresolved-symbols option: %s\n"), optarg);
+	    einfo (_("%F%P: bad --unresolved-symbols option: %s\n"), optarg);
 	  break;
 	case OPTION_WARN_UNRESOLVED_SYMBOLS:
 	  how_to_report_unresolved_symbols = RM_GENERATE_WARNING;
@@ -1036,7 +1036,7 @@  parse_args (unsigned argc, char **argv)
 	  break;
 	case OPTION_PLUGIN_OPT:
 	  if (plugin_opt_plugin_arg (optarg))
-	    einfo (_("%P%F: bad -plugin-opt option\n"));
+	    einfo (_("%F%P: bad -plugin-opt option\n"));
 	  break;
 #endif /* ENABLE_PLUGINS */
 	case 'q':
@@ -1053,10 +1053,10 @@  parse_args (unsigned argc, char **argv)
 	       an error message here.  We cannot just make this a warning,
 	       increment optind, and continue because getopt is too confused
 	       and will seg-fault the next time around.  */
-	    einfo(_("%P%F: unrecognised option: %s\n"), argv[optind]);
+	    einfo(_("%F%P: unrecognised option: %s\n"), argv[optind]);
 
 	  if (bfd_link_pic (&link_info))
-	    einfo (_("%P%F: -r and %s may not be used together\n"),
+	    einfo (_("%F%P: -r and %s may not be used together\n"),
 		     bfd_link_dll (&link_info) ? "-shared" : "-pie");
 
 	  link_info.type = type_relocatable;
@@ -1163,7 +1163,8 @@  parse_args (unsigned argc, char **argv)
 	  if (config.has_shared)
 	    {
 	      if (bfd_link_relocatable (&link_info))
-		einfo (_("%P%F: -r and -shared may not be used together\n"));
+		einfo (_("%F%P: -r and %s may not be used together\n"),
+		       "-shared");
 
 	      link_info.type = type_dll;
 	      /* When creating a shared library, the default
@@ -1174,18 +1175,18 @@  parse_args (unsigned argc, char **argv)
 		link_info.unresolved_syms_in_shared_libs = RM_IGNORE;
 	    }
 	  else
-	    einfo (_("%P%F: -shared not supported\n"));
+	    einfo (_("%F%P: -shared not supported\n"));
 	  break;
 	case OPTION_PIE:
 	  if (config.has_shared)
 	    {
 	      if (bfd_link_relocatable (&link_info))
-		einfo (_("%P%F: -r and -pie may not be used together\n"));
+		einfo (_("%F%P: -r and %s may not be used together\n"), "-pie");
 
 	      link_info.type = type_pie;
 	    }
 	  else
-	    einfo (_("%P%F: -pie not supported\n"));
+	    einfo (_("%F%P: -pie not supported\n"));
 	  break;
 	case 'h':		/* Used on Solaris.  */
 	case OPTION_SONAME:
@@ -1202,7 +1203,7 @@  parse_args (unsigned argc, char **argv)
 	  else if (strcmp (optarg, N_("ascending")) == 0)
 	    config.sort_common = sort_ascending;
 	  else
-	    einfo (_("%P%F: invalid common section sorting option: %s\n"),
+	    einfo (_("%F%P: invalid common section sorting option: %s\n"),
 		   optarg);
 	  break;
 	case OPTION_SORT_SECTION:
@@ -1211,7 +1212,7 @@  parse_args (unsigned argc, char **argv)
 	  else if (strcmp (optarg, N_("alignment")) == 0)
 	    sort_section = by_alignment;
 	  else
-	    einfo (_("%P%F: invalid section sorting option: %s\n"),
+	    einfo (_("%F%P: invalid section sorting option: %s\n"),
 		   optarg);
 	  break;
 	case OPTION_STATS:
@@ -1245,14 +1246,14 @@  parse_args (unsigned argc, char **argv)
 	    /* Check for <something>=<somthing>...  */
 	    optarg2 = strchr (optarg, '=');
 	    if (optarg2 == NULL)
-	      einfo (_("%P%F: invalid argument to option"
+	      einfo (_("%F%P: invalid argument to option"
 		       " \"--section-start\"\n"));
 
 	    optarg2++;
 
 	    /* So far so good.  Are all the args present?  */
 	    if ((*optarg == '\0') || (*optarg2 == '\0'))
-	      einfo (_("%P%F: missing argument(s) to option"
+	      einfo (_("%F%P: missing argument(s) to option"
 		       " \"--section-start\"\n"));
 
 	    /* We must copy the section name as set_section_start
@@ -1296,7 +1297,7 @@  parse_args (unsigned argc, char **argv)
 	  /* Fall through.  */
 	case OPTION_UR:
 	  if (bfd_link_pic (&link_info))
-	    einfo (_("%P%F: -r and %s may not be used together\n"),
+	    einfo (_("%F%P: -r and %s may not be used together\n"),
 		     bfd_link_dll (&link_info) ? "-shared" : "-pie");
 
 	  link_info.type = type_relocatable;
@@ -1327,7 +1328,7 @@  parse_args (unsigned argc, char **argv)
 	      char *end;
 	      int level ATTRIBUTE_UNUSED = strtoul (optarg, &end, 0);
 	      if (*end)
-		einfo (_("%P%F: invalid number `%s'\n"), optarg);
+		einfo (_("%F%P: invalid number `%s'\n"), optarg);
 #ifdef ENABLE_PLUGINS
 	      report_plugin_symbols = level > 1;
 #endif /* ENABLE_PLUGINS */
@@ -1502,7 +1503,7 @@  parse_args (unsigned argc, char **argv)
 	  break;
 	case ')':
 	  if (! ingroup)
-	    einfo (_("%P%F: group ended before it began (--help for usage)\n"));
+	    einfo (_("%F%P: group ended before it began (--help for usage)\n"));
 
 	  lang_leave_group ();
 	  ingroup--;
@@ -1530,7 +1531,7 @@  parse_args (unsigned argc, char **argv)
 	    if (new_size)
 	      config.hash_table_size = new_size;
 	    else
-	      einfo (_("%P%X: --hash-size needs a numeric argument\n"));
+	      einfo (_("%X%P: --hash-size needs a numeric argument\n"));
 	  }
 	  break;
 
@@ -1542,7 +1543,7 @@  parse_args (unsigned argc, char **argv)
 
 	case OPTION_POP_STATE:
 	  if (input_flags.pushed == NULL)
-	    einfo (_("%P%F: no state pushed before popping\n"));
+	    einfo (_("%F%P: no state pushed before popping\n"));
 	  else
 	    {
 	      struct lang_input_statement_flags *oldp = input_flags.pushed;
@@ -1565,7 +1566,7 @@  parse_args (unsigned argc, char **argv)
 	  else if (strcasecmp (optarg, "discard") == 0)
 	    config.orphan_handling = orphan_handling_discard;
 	  else
-	    einfo (_("%P%F: invalid argument to option"
+	    einfo (_("%F%P: invalid argument to option"
 		     " \"--orphan-handling\"\n"));
 	  break;
 	}
@@ -1641,9 +1642,9 @@  parse_args (unsigned argc, char **argv)
   if (!bfd_link_dll (&link_info))
     {
       if (command_line.filter_shlib)
-	einfo (_("%P%F: -F may not be used without -shared\n"));
+	einfo (_("%F%P: -F may not be used without -shared\n"));
       if (command_line.auxiliary_filters)
-	einfo (_("%P%F: -f may not be used without -shared\n"));
+	einfo (_("%F%P: -f may not be used without -shared\n"));
     }
 
   /* Treat ld -r -s as ld -r -S -x (i.e., strip all local symbols).  I
@@ -1684,7 +1685,7 @@  set_section_start (char *sect, char *valstr)
   const char *end;
   bfd_vma val = bfd_scan_vma (valstr, &end, 16);
   if (*end)
-    einfo (_("%P%F: invalid hex number `%s'\n"), valstr);
+    einfo (_("%F%P: invalid hex number `%s'\n"), valstr);
   lang_section_start (sect, exp_intop (val), NULL);
 }
 
@@ -1697,7 +1698,7 @@  set_segment_start (const char *section, char *valstr)
 
   bfd_vma val = bfd_scan_vma (valstr, &end, 16);
   if (*end)
-    einfo (_("%P%F: invalid hex number `%s'\n"), valstr);
+    einfo (_("%F%P: invalid hex number `%s'\n"), valstr);
   /* If we already have an entry for this segment, update the existing
      value.  */
   name = section + 1;
@@ -1745,14 +1746,14 @@  elf_shlib_list_options (FILE *file)
   --hash-style=STYLE          Set hash style to sysv, gnu or both\n"));
   fprintf (file, _("\
   -P AUDITLIB, --depaudit=AUDITLIB\n" "\
-			      Specify a library to use for auditing dependencies\n"));
+                              Specify a library to use for auditing dependencies\n"));
   fprintf (file, _("\
   -z combreloc                Merge dynamic relocs into one section and sort\n"));
   fprintf (file, _("\
   -z nocombreloc              Don't merge dynamic relocs into one section\n"));
   fprintf (file, _("\
   -z global                   Make symbols in DSO available for subsequently\n\
-			       loaded objects\n"));
+                               loaded objects\n"));
   fprintf (file, _("\
   -z initfirst                Mark DSO to be initialized first at runtime\n"));
   fprintf (file, _("\
@@ -1775,7 +1776,7 @@  elf_shlib_list_options (FILE *file)
   -z now                      Mark object non-lazy runtime binding\n"));
   fprintf (file, _("\
   -z origin                   Mark object requiring immediate $ORIGIN\n\
-				processing at runtime\n"));
+                                processing at runtime\n"));
 #if DEFAULT_LD_Z_RELRO
   fprintf (file, _("\
   -z relro                    Create RELRO program header (default)\n"));
@@ -1825,7 +1826,7 @@  elf_static_list_options (FILE *file)
   fprintf (file, _("\
   -z max-page-size=SIZE       Set maximum page size to SIZE\n"));
   fprintf (file, _("\
-  -z defs                     Report unresolved symbols in object files.\n"));
+  -z defs                     Report unresolved symbols in object files\n"));
   fprintf (file, _("\
   -z muldefs                  Allow multiple definitions\n"));
   fprintf (file, _("\
@@ -1840,7 +1841,8 @@  static void
 elf_plt_unwind_list_options (FILE *file)
 {
   fprintf (file, _("\
-  --ld-generated-unwind-info  Generate exception handling info for PLT\n\
+  --ld-generated-unwind-info  Generate exception handling info for PLT\n"));
+  fprintf (file, _("\
   --no-ld-generated-unwind-info\n\
                               Don't generate exception handling info for PLT\n"));
 }
diff --git a/ld/mri.c b/ld/mri.c
index a2ffcaa..788ca4e 100644
--- a/ld/mri.c
+++ b/ld/mri.c
@@ -292,7 +292,7 @@  mri_format (const char *name)
     lang_add_output_format ("coff-m68k", NULL, NULL, 1);
 
   else
-    einfo (_("%P%F: unknown format type %s\n"), name);
+    einfo (_("%F%P: unknown format type %s\n"), name);
 }
 
 void
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index 5f11005..c087bf2 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -442,7 +442,7 @@  pe_dll_id_target (const char *target)
 	pe_leading_underscore = (u != 0 ? 1 : 0);
 	return;
       }
-  einfo (_("%P%X: Unsupported PEI architecture: %s\n"), target);
+  einfo (_("%X%P: unsupported PEI architecture: %s\n"), target);
   exit (1);
 }
 
@@ -722,7 +722,7 @@  process_def_file_and_drectve (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *
 
 	  if (!bfd_generic_link_read_symbols (b))
 	    {
-	      einfo (_("%pB%F: could not read symbols: %E\n"), b);
+	      einfo (_("%F%P: %pB: could not read symbols: %E\n"), b);
 	      return;
 	    }
 
@@ -811,7 +811,7 @@  process_def_file_and_drectve (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *
 	      if (tmp_at)
 		*tmp_at = 0;
 	      else
-		einfo (_("%P%X: Cannot export %s: invalid export name\n"),
+		einfo (_("%X%P: cannot export %s: invalid export name\n"),
 		       pe_def_file->exports[i].name);
 	      pe_def_file->exports[i].name = tmp;
 	      resort_needed = TRUE;
@@ -863,14 +863,14 @@  process_def_file_and_drectve (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *
 	    {
 	      if (pe_dll_warn_dup_exports)
 		/* xgettext:c-format */
-		einfo (_("%P%X: Error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"),
+		einfo (_("%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"),
 		       e[j - 1].name, e[j - 1].ordinal, e[i].ordinal);
 	    }
 	  else
 	    {
 	      if (pe_dll_warn_dup_exports)
 		/* xgettext:c-format */
-		einfo (_("%P: Warning, duplicate EXPORT: %s\n"),
+		einfo (_("%P: warning, duplicate EXPORT: %s\n"),
 		       e[j - 1].name);
 	    }
 
@@ -980,20 +980,20 @@  process_def_file_and_drectve (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *
       else if (blhe && blhe->type == bfd_link_hash_undefined)
 	{
 	  /* xgettext:c-format */
-	  einfo (_("%P%X: Cannot export %s: symbol not defined\n"),
+	  einfo (_("%X%P: cannot export %s: symbol not defined\n"),
 		 int_name);
 	}
       else if (blhe)
 	{
 	  /* xgettext:c-format */
-	  einfo (_("%P%X: Cannot export %s: symbol wrong type (%d vs %d)\n"),
+	  einfo (_("%X%P: cannot export %s: symbol wrong type (%d vs %d)\n"),
 		 int_name,
 		 blhe->type, bfd_link_hash_defined);
 	}
       else
 	{
 	  /* xgettext:c-format */
-	  einfo (_("%P%X: Cannot export %s: symbol not found\n"),
+	  einfo (_("%X%P: cannot export %s: symbol not found\n"),
 		 int_name);
 	}
       free (name);
@@ -1016,7 +1016,7 @@  build_filler_bfd (int include_edata)
 			     bfd_get_arch (link_info.output_bfd),
 			     bfd_get_mach (link_info.output_bfd)))
     {
-      einfo (_("%X%P: can not create BFD: %E\n"));
+      einfo (_("%F%P: can not create BFD: %E\n"));
       return;
     }
 
@@ -1107,7 +1107,7 @@  generate_edata (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED)
 	      if (pi != -1)
 		{
 		  /* xgettext:c-format */
-		  einfo (_("%P%X: Error: ordinal used twice: %d (%s vs %s)\n"),
+		  einfo (_("%X%P: error: ordinal used twice: %d (%s vs %s)\n"),
 			 pe_def_file->exports[i].ordinal,
 			 pe_def_file->exports[i].name,
 			 pe_def_file->exports[pi].name);
@@ -1143,7 +1143,7 @@  generate_edata (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED)
   /* PR 12969: Check for more than 1^16 ordinals.  */
   if (max_ordinal > 65535 || next_ordinal > 65535)
     /* xgettext:c-format */
-    einfo(_("%P%X: Error: export ordinal too large: %d\n"),
+    einfo(_("%X%P: error: export ordinal too large: %d\n"),
 	  max_ordinal > next_ordinal ? max_ordinal : next_ordinal);
 
   /* OK, now we can allocate some memory.  */
@@ -1301,7 +1301,7 @@  pe_walk_relocs_of_symbol (struct bfd_link_info *info,
 
       if (!bfd_generic_link_read_symbols (b))
 	{
-	  einfo (_("%pB%F: could not read symbols: %E\n"), b);
+	  einfo (_("%F%P: %pB: could not read symbols: %E\n"), b);
 	  return;
 	}
 
@@ -1388,7 +1388,7 @@  generate_reloc (bfd *abfd, struct bfd_link_info *info)
 	  if (s->output_section->vma == 0)
 	    {
 	      /* Huh?  Shouldn't happen, but punt if it does.  */
-	      einfo (_("zero vma section reloc detected: `%s' #%d f=%d\n"),
+	      einfo (_("%P: zero vma section reloc detected: `%s' #%d f=%d\n"),
 		     s->output_section->name, s->output_section->index,
 		     s->output_section->flags);
 	      continue;
@@ -1396,7 +1396,7 @@  generate_reloc (bfd *abfd, struct bfd_link_info *info)
 
 	  if (!bfd_generic_link_read_symbols (b))
 	    {
-	      einfo (_("%pB%F: could not read symbols: %E\n"), b);
+	      einfo (_("%F%P: %pB: could not read symbols: %E\n"), b);
 	      return;
 	    }
 
@@ -1503,7 +1503,7 @@  generate_reloc (bfd *abfd, struct bfd_link_info *info)
 		      /* Fall through.  */
 		    default:
 		      /* xgettext:c-format */
-		      einfo (_("%P%X: Error: %d-bit reloc in dll\n"),
+		      einfo (_("%X%P: error: %d-bit reloc in dll\n"),
 			     relocs[i]->howto->bitsize);
 		      break;
 		    }
@@ -1631,7 +1631,7 @@  pe_dll_generate_def_file (const char *pe_out_def_filename)
 
   if (out == NULL)
     /* xgettext:c-format */
-    einfo (_("%P: Can't open output def file %s\n"),
+    einfo (_("%P: can't open output def file %s\n"),
 	   pe_out_def_filename);
 
   if (pe_def_file)
@@ -1786,7 +1786,7 @@  pe_dll_generate_def_file (const char *pe_out_def_filename)
 
   if (fclose (out) == EOF)
     /* xgettext:c-format */
-    einfo (_("%P: Error closing file `%s'\n"), pe_out_def_filename);
+    einfo (_("%P: error closing file `%s'\n"), pe_out_def_filename);
 }
 
 /* Generate the import library.  */
@@ -2701,7 +2701,7 @@  pe_create_import_fixup (arelent *rel, asection *s, bfd_vma addend, char *name)
       runtime_pseudo_relocs_created++;
     }
   else if (addend != 0)
-    einfo (_("%P%X%C: variable '%pT' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"),
+    einfo (_("%X%P: %C: variable '%pT' can't be auto-imported; please read the documentation for ld's --enable-auto-import for details\n"),
 	   s->owner, s, rel->address, sym->name);
 }
 
@@ -2729,7 +2729,7 @@  pe_dll_generate_implib (def_file *def, const char *impfilename, struct bfd_link_
   if (!outarch)
     {
       /* xgettext:c-format */
-      einfo (_("%P%X: Can't open .lib file: %s\n"), impfilename);
+      einfo (_("%X%P: can't open .lib file: %s\n"), impfilename);
       return;
     }
 
@@ -2764,7 +2764,7 @@  pe_dll_generate_implib (def_file *def, const char *impfilename, struct bfd_link_
 		? ibfd->my_archive->filename : ibfd->filename, NULL);
 	  if (!newbfd)
 	    {
-	      einfo (_("%P%X: bfd_openr %s: %E\n"), ibfd->filename);
+	      einfo (_("%X%P: bfd_openr %s: %E\n"), ibfd->filename);
 	      return;
 	    }
 	  if (ibfd->my_archive)
@@ -2776,7 +2776,7 @@  pe_dll_generate_implib (def_file *def, const char *impfilename, struct bfd_link_
 	      bfd *arbfd = newbfd;
 	      if (!bfd_check_format_matches (arbfd, bfd_archive, NULL))
 		{
-		  einfo (_("%P%X: %s(%s): can't find member in non-archive file"),
+		  einfo (_("%X%P: %s(%s): can't find member in non-archive file"),
 		    ibfd->my_archive->filename, ibfd->filename);
 		  return;
 		}
@@ -2788,7 +2788,7 @@  pe_dll_generate_implib (def_file *def, const char *impfilename, struct bfd_link_
 		}
 	      if (!newbfd)
 		{
-		  einfo (_("%P%X: %s(%s): can't find member in archive"),
+		  einfo (_("%X%P: %s(%s): can't find member in archive"),
 		    ibfd->my_archive->filename, ibfd->filename);
 		  return;
 		}
@@ -2863,10 +2863,10 @@  pe_dll_generate_implib (def_file *def, const char *impfilename, struct bfd_link_
   head = ar_tail;
 
   if (! bfd_set_archive_head (outarch, head))
-    einfo ("%P%X: bfd_set_archive_head: %E\n");
+    einfo ("%X%P: bfd_set_archive_head: %E\n");
 
   if (! bfd_close (outarch))
-    einfo ("%P%X: bfd_close %s: %E\n", impfilename);
+    einfo ("%X%P: bfd_close %s: %E\n", impfilename);
 
   while (head != NULL)
     {
@@ -3050,7 +3050,7 @@  add_bfd_to_link (bfd *abfd, const char *name, struct bfd_link_info *linfo)
   ldlang_add_file (fake_file);
 
   if (!bfd_link_add_symbols (abfd, linfo))
-    einfo (_("%P%X: add symbols %s: %E\n"), name);
+    einfo (_("%X%P: add symbols %s: %E\n"), name);
 }
 
 void
@@ -3236,14 +3236,14 @@  pe_implied_import_dll (const char *filename)
   dll = bfd_openr (filename, pe_details->target_name);
   if (!dll)
     {
-      einfo (_("%P%X: open %s: %E\n"), filename);
+      einfo (_("%X%P: open %s: %E\n"), filename);
       return FALSE;
     }
 
   /* PEI dlls seem to be bfd_objects.  */
   if (!bfd_check_format (dll, bfd_object))
     {
-      einfo (_("%P%X: %s: this doesn't appear to be a DLL\n"), filename);
+      einfo (_("%X%P: %s: this doesn't appear to be a DLL\n"), filename);
       return FALSE;
     }
 
@@ -3414,7 +3414,7 @@  pe_output_file_set_long_section_names (bfd *abfd)
   if (pe_use_coff_long_section_names < 0)
     return;
   if (!bfd_coff_set_long_section_names (abfd, pe_use_coff_long_section_names))
-    einfo (_("%P%X: Error: can't use long section names on this arch\n"));
+    einfo (_("%X%P: error: can't use long section names on this arch\n"));
 }
 
 /* These are the main functions, called from the emulation.  The first
diff --git a/ld/plugin.c b/ld/plugin.c
index 0fb51c2..fad8bc0 100644
--- a/ld/plugin.c
+++ b/ld/plugin.c
@@ -243,7 +243,7 @@  plugin_opt_plugin (const char *plugin)
   newplug->name = plugin;
   newplug->dlhandle = dlopen (plugin, RTLD_NOW);
   if (!newplug->dlhandle)
-    einfo (_("%P%F: %s: error loading plugin: %s\n"), plugin, dlerror ());
+    einfo (_("%F%P: %s: error loading plugin: %s\n"), plugin, dlerror ());
 
   /* Check if plugin has been loaded already.  */
   while (curplug)
@@ -336,7 +336,7 @@  plugin_get_ir_dummy_bfd (const char *name, bfd *srctemplate)
 	}
     }
 report_error:
-  einfo (_("could not create dummy IR bfd: %F%E\n"));
+  einfo (_("%F%P: could not create dummy IR bfd: %E\n"));
   return NULL;
 }
 
@@ -424,11 +424,11 @@  asymbol_from_plugin_symbol (bfd *abfd, asymbol *asym,
       unsigned char visibility;
 
       if (!elfsym)
-	einfo (_("%P%F: %s: non-ELF symbol in ELF BFD!\n"), asym->name);
+	einfo (_("%F%P: %s: non-ELF symbol in ELF BFD!\n"), asym->name);
       switch (ldsym->visibility)
 	{
 	default:
-	  einfo (_("%P%F: unknown ELF symbol visibility: %d!\n"),
+	  einfo (_("%F%P: unknown ELF symbol visibility: %d!\n"),
 		 ldsym->visibility);
 	  return LDPS_ERR;
 
@@ -539,7 +539,7 @@  get_view (const void *handle, const void **viewp)
 
   /* FIXME: einfo should support %lld.  */
   if ((off_t) size != input->filesize)
-    einfo (_("%P%F: unsupported input file size: %s (%ld bytes)\n"),
+    einfo (_("%F%P: unsupported input file size: %s (%ld bytes)\n"),
 	   input->name, (long) input->filesize);
 
   /* Check the cached view buffer.  */
@@ -723,7 +723,7 @@  get_symbols (const void *handle, int nsyms, struct ld_plugin_symbol *syms,
 	  && blhe->type != bfd_link_hash_common)
 	{
 	  /* We should not have a new, indirect or warning symbol here.  */
-	  einfo (_("%P%F: %s: plugin symbol table corrupt (sym type %d)\n"),
+	  einfo (_("%F%P: %s: plugin symbol table corrupt (sym type %d)\n"),
 		 called_plugin->name, blhe->type);
 	}
 
@@ -858,7 +858,7 @@  message (int level, const char *format, ...)
       break;
     case LDPL_WARNING:
       {
-	char *newfmt = concat ("%P: warning: ", format, "\n",
+	char *newfmt = concat (_("%P: warning: "), format, "\n",
 			       (const char *) NULL);
 	vfinfo (stdout, newfmt, args, TRUE);
 	free (newfmt);
@@ -868,8 +868,8 @@  message (int level, const char *format, ...)
     case LDPL_ERROR:
     default:
       {
-	char *newfmt = concat (level == LDPL_FATAL ? "%P%F" : "%P%X",
-			       ": error: ", format, "\n",
+	char *newfmt = concat (level == LDPL_FATAL ? "%F" : "%X",
+			       _("%P: error: "), format, "\n",
 			       (const char *) NULL);
 	fflush (stdout);
 	vfinfo (stderr, newfmt, args, TRUE);
@@ -1014,14 +1014,14 @@  plugin_load_plugins (void)
       if (!onloadfn)
 	onloadfn = (ld_plugin_onload) dlsym (curplug->dlhandle, "_onload");
       if (!onloadfn)
-	einfo (_("%P%F: %s: error loading plugin: %s\n"),
+	einfo (_("%F%P: %s: error loading plugin: %s\n"),
 	       curplug->name, dlerror ());
       set_tv_plugin_args (curplug, &my_tv[tv_header_size]);
       called_plugin = curplug;
       rv = (*onloadfn) (my_tv);
       called_plugin = NULL;
       if (rv != LDPS_OK)
-	einfo (_("%P%F: %s: plugin error: %d\n"), curplug->name, rv);
+	einfo (_("%F%P: %s: plugin error: %d\n"), curplug->name, rv);
       curplug = curplug->next;
     }
 
@@ -1080,7 +1080,7 @@  plugin_strdup (bfd *abfd, const char *str)
   strlength = strlen (str) + 1;
   copy = bfd_alloc (abfd, strlength);
   if (copy == NULL)
-    einfo (_("%P%F: plugin_strdup failed to allocate memory: %s\n"),
+    einfo (_("%F%P: plugin_strdup failed to allocate memory: %s\n"),
 	   bfd_get_error ());
   memcpy (copy, str, strlength);
   return copy;
@@ -1112,7 +1112,7 @@  plugin_object_p (bfd *ibfd)
 
   input = bfd_alloc (abfd, sizeof (*input));
   if (input == NULL)
-    einfo (_("%P%F: plugin failed to allocate memory for input: %s\n"),
+    einfo (_("%F%P: plugin failed to allocate memory for input: %s\n"),
 	   bfd_get_error ());
 
   if (!bfd_plugin_open_input (ibfd, &file))
@@ -1145,7 +1145,7 @@  plugin_object_p (bfd *ibfd)
   claimed = 0;
 
   if (plugin_call_claim_file (&file, &claimed))
-    einfo (_("%P%F: %s: plugin reported error claiming file\n"),
+    einfo (_("%F%P: %s: plugin reported error claiming file\n"),
 	   plugin_error_plugin ());
 
   if (input->fd != -1 && !bfd_plugin_target_p (ibfd->xvec))
diff --git a/ld/testsuite/ld-arc/jli-overflow.err b/ld/testsuite/ld-arc/jli-overflow.err
index 022434e..e0c1ccf 100644
--- a/ld/testsuite/ld-arc/jli-overflow.err
+++ b/ld/testsuite/ld-arc/jli-overflow.err
@@ -1,3 +1,3 @@ 
-.*\.o: In function `test_1025':
+.*\.o: in function `test_1025':
 .*: relocation truncated to fit: R_ARC_JLI_SECTOFF against symbol.*
 #...
diff --git a/ld/testsuite/ld-arm/cmse-implib-errors.out b/ld/testsuite/ld-arm/cmse-implib-errors.out
index 8f9ecc2..e458be2 100644
--- a/ld/testsuite/ld-arm/cmse-implib-errors.out
+++ b/ld/testsuite/ld-arm/cmse-implib-errors.out
@@ -1,5 +1,5 @@ 
 .*: .*: absent standard symbol `not_exported_fct2'
 .*: .*: invalid special symbol `__acle_se_not_exported_pseudoentry_var'; it must be a global or weak function symbol
 .*: .*: invalid standard symbol `not_exported_pseudoentry_var'; it must be a global or weak function symbol
-.* cannot size stub section: invalid operation
+.* can not size stub section: invalid operation
 #...
diff --git a/ld/testsuite/ld-arm/cmse-new-earlier-later-implib.out b/ld/testsuite/ld-arm/cmse-new-earlier-later-implib.out
index d7cd73f..2e88ca4 100644
--- a/ld/testsuite/ld-arm/cmse-new-earlier-later-implib.out
+++ b/ld/testsuite/ld-arm/cmse-new-earlier-later-implib.out
@@ -1,3 +1,3 @@ 
 .*: entry function `exported_entry_veneer3' disappeared from secure code
 .*: start address of `.gnu.sgstubs' is different from previous link
-.*: cannot size stub section: invalid operation
+.*: can not size stub section: invalid operation
diff --git a/ld/testsuite/ld-arm/cmse-new-implib-not-sg-in-implib.out b/ld/testsuite/ld-arm/cmse-new-implib-not-sg-in-implib.out
index 12c254c..d13a182 100644
--- a/ld/testsuite/ld-arm/cmse-new-implib-not-sg-in-implib.out
+++ b/ld/testsuite/ld-arm/cmse-new-implib-not-sg-in-implib.out
@@ -1,2 +1,2 @@ 
 .*: --in-implib only supported for Secure Gateway import libraries
-.*: cannot size stub section: invalid operation
+.*: can not size stub section: invalid operation
diff --git a/ld/testsuite/ld-arm/cmse-new-wrong-implib.out b/ld/testsuite/ld-arm/cmse-new-wrong-implib.out
index 065dd37..f6498d2 100644
--- a/ld/testsuite/ld-arm/cmse-new-wrong-implib.out
+++ b/ld/testsuite/ld-arm/cmse-new-wrong-implib.out
@@ -1,3 +1,3 @@ 
 .*: .*: visibility of symbol `exported_entry_veneer2' has changed
 .*: `exported_entry_fct2' refers to a non entry function
-.*: cannot size stub section: invalid operation
+.*: can not size stub section: invalid operation
diff --git a/ld/testsuite/ld-arm/cmse-veneers-no-gnu_sgstubs.out b/ld/testsuite/ld-arm/cmse-veneers-no-gnu_sgstubs.out
index 197566b..a25ca1a 100644
--- a/ld/testsuite/ld-arm/cmse-veneers-no-gnu_sgstubs.out
+++ b/ld/testsuite/ld-arm/cmse-veneers-no-gnu_sgstubs.out
@@ -1,3 +1,3 @@ 
 .*: no address assigned to the veneers output section .gnu.sgstubs
-.*: cannot size stub section: invalid operation
+.*: can not size stub section: invalid operation
 #...
diff --git a/ld/testsuite/ld-arm/cmse-veneers-wrong-entryfct.out b/ld/testsuite/ld-arm/cmse-veneers-wrong-entryfct.out
index dad7790..694023e 100644
--- a/ld/testsuite/ld-arm/cmse-veneers-wrong-entryfct.out
+++ b/ld/testsuite/ld-arm/cmse-veneers-wrong-entryfct.out
@@ -8,5 +8,5 @@ 
 .*: .*: invalid standard symbol `obj_entry_veneer1'; it must be a global or weak function symbol
 .*: .*: invalid special symbol `__acle_se_obj_entry_veneer2'; it must be a global or weak function symbol
 .*: .*: `fake_entry_veneer2' and its special symbol are in different sections
-.*: cannot size stub section: invalid operation
+.*: can not size stub section: invalid operation
 #...
diff --git a/ld/testsuite/ld-arm/vxworks1-static.d b/ld/testsuite/ld-arm/vxworks1-static.d
index 88c0baf..275e20e 100644
--- a/ld/testsuite/ld-arm/vxworks1-static.d
+++ b/ld/testsuite/ld-arm/vxworks1-static.d
@@ -1,4 +1,4 @@ 
 #name: VxWorks executable test 1 (static)
 #source: vxworks1.s
 #ld: tmpdir/libvxworks1.so -Tvxworks1.ld
-#error: Dynamic sections created in non-dynamic link
+#error: dynamic sections created in non-dynamic link
diff --git a/ld/testsuite/ld-cris/tls-err-20x.d b/ld/testsuite/ld-cris/tls-err-20x.d
index d12e4ee..9a3af03 100644
--- a/ld/testsuite/ld-cris/tls-err-20x.d
+++ b/ld/testsuite/ld-cris/tls-err-20x.d
@@ -5,7 +5,7 @@ 
 #source: tls-hx.s --pic
 #as: --no-underscore --em=criself
 #ld: -m crislinux
-#error: \A[^\n]*: warning: cannot find entry symbol _start; defaulting to [0-9a-f]*\n[^\n]*: In function `tlsdsofn9':\n[^\n]*: undefined reference to `x1'\n[^\n]*: undefined reference to `x2'\Z
+#error: \A[^\n]*: warning: cannot find entry symbol _start; defaulting to [0-9a-f]*\n[^\n]*: in function `tlsdsofn9':\n[^\n]*: undefined reference to `x1'\n[^\n]*: undefined reference to `x2'\Z
 
 # Code coverage case similar to tls-e-20.d, except with an undefined
 # reference.
diff --git a/ld/testsuite/ld-cris/tls-err-29.d b/ld/testsuite/ld-cris/tls-err-29.d
index 1024ea8..e0d7327 100644
--- a/ld/testsuite/ld-cris/tls-err-29.d
+++ b/ld/testsuite/ld-cris/tls-err-29.d
@@ -2,6 +2,6 @@ 
 #source: tls-gdgotrelm.s --defsym r=8192
 #as: --no-underscore --em=criself --pic
 #ld: --shared -m crislinux
-#error: \A[^\n]*\.o: In function[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\Z
+#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\Z
 
 # Check that overflow for R_CRIS_16_GOT_GD is flagged as an error.
diff --git a/ld/testsuite/ld-cris/tls-err-31.d b/ld/testsuite/ld-cris/tls-err-31.d
index b95fa54..b7484ad 100644
--- a/ld/testsuite/ld-cris/tls-err-31.d
+++ b/ld/testsuite/ld-cris/tls-err-31.d
@@ -1,6 +1,6 @@ 
 #source: tls-dtprelm.s --defsym r=32768
 #as: --no-underscore --em=criself --pic
 #ld: --shared -m crislinux
-#error: \A[^\n]*\.o: In function[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too big[^\n]*\Z
+#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too big[^\n]*\Z
 
 # Check that overflow for R_CRIS_16_DTPREL is flagged as an error.
diff --git a/ld/testsuite/ld-cris/tls-err-33.d b/ld/testsuite/ld-cris/tls-err-33.d
index 6872bbd..329fae1 100644
--- a/ld/testsuite/ld-cris/tls-err-33.d
+++ b/ld/testsuite/ld-cris/tls-err-33.d
@@ -1,6 +1,6 @@ 
 #source: tls-gottprelm.s --defsym r=8190
 #as: --no-underscore --em=criself --pic
 #ld: --shared -m crislinux
-#error: \A[^\n]*\.o: In function[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\Z
+#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\Z
 
 # Check that overflow for R_CRIS_16_GOT_TPREL is flagged as an error.
diff --git a/ld/testsuite/ld-cris/tls-err-35.d b/ld/testsuite/ld-cris/tls-err-35.d
index 9aa7b87..b203e35 100644
--- a/ld/testsuite/ld-cris/tls-err-35.d
+++ b/ld/testsuite/ld-cris/tls-err-35.d
@@ -2,6 +2,6 @@ 
 #source: tls-tprelm.s --defsym r=32768
 #as: --no-underscore --em=criself
 #ld: -m crislinux
-#error: \A[^\n]*\.o: In function[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too big[^\n]*\Z
+#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too big[^\n]*\Z
 
 # Check that overflow for R_CRIS_16_TPREL is flagged as an error.
diff --git a/ld/testsuite/ld-cris/tls-err-37.d b/ld/testsuite/ld-cris/tls-err-37.d
index e2efff1..a41dd0a 100644
--- a/ld/testsuite/ld-cris/tls-err-37.d
+++ b/ld/testsuite/ld-cris/tls-err-37.d
@@ -2,6 +2,6 @@ 
 #source: tls-gd-2.s --pic
 #as: --no-underscore --em=criself
 #ld: -m crislinux
-#error: \A[^\n]*\.o: In function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
+#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
 
 # Undefined reference for a R_CRIS_32_GOT_GD in an executable.
diff --git a/ld/testsuite/ld-cris/tls-err-39.d b/ld/testsuite/ld-cris/tls-err-39.d
index dab70f2..fbdc698 100644
--- a/ld/testsuite/ld-cris/tls-err-39.d
+++ b/ld/testsuite/ld-cris/tls-err-39.d
@@ -2,6 +2,6 @@ 
 #source: tls-ld-6.s --pic
 #as: --no-underscore --em=criself
 #ld: -m crislinux
-#error: \A[^\n]*\.o: In function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
+#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
 
 # Undefined reference for a R_CRIS_32_DTPREL in an executable.
diff --git a/ld/testsuite/ld-cris/tls-err-41.d b/ld/testsuite/ld-cris/tls-err-41.d
index b751f0a..0c4705f 100644
--- a/ld/testsuite/ld-cris/tls-err-41.d
+++ b/ld/testsuite/ld-cris/tls-err-41.d
@@ -2,6 +2,6 @@ 
 #source: tls-ie-10.s --pic
 #as: --no-underscore --em=criself
 #ld: -m crislinux
-#error: \A[^\n]*\.o: In function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
+#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
 
 # Undefined reference for a R_CRIS_32_GOT_TPREL in an executable.
diff --git a/ld/testsuite/ld-cris/tls-err-43.d b/ld/testsuite/ld-cris/tls-err-43.d
index f516c6f..bb3abb4 100644
--- a/ld/testsuite/ld-cris/tls-err-43.d
+++ b/ld/testsuite/ld-cris/tls-err-43.d
@@ -2,6 +2,6 @@ 
 #source: tls-le-12.s
 #as: --no-underscore --em=criself
 #ld: -m crislinux
-#error: \A[^\n]*\.o: In function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
+#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
 
 # Undefined reference for a R_CRIS_32_TPREL in an executable.
diff --git a/ld/testsuite/ld-cris/tls-err-45.d b/ld/testsuite/ld-cris/tls-err-45.d
index be847ba..28faa30 100644
--- a/ld/testsuite/ld-cris/tls-err-45.d
+++ b/ld/testsuite/ld-cris/tls-err-45.d
@@ -2,6 +2,6 @@ 
 #source: tls-gd-1.s --pic
 #as: --no-underscore --em=criself
 #ld: -m crislinux
-#error: \A[^\n]*\.o: In function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
+#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
 
 # Undefined reference for a R_CRIS_16_GOT_GD in an executable.
diff --git a/ld/testsuite/ld-cris/tls-err-47.d b/ld/testsuite/ld-cris/tls-err-47.d
index d9a1a30..4f7139b 100644
--- a/ld/testsuite/ld-cris/tls-err-47.d
+++ b/ld/testsuite/ld-cris/tls-err-47.d
@@ -2,6 +2,6 @@ 
 #source: tls-ld-4.s --pic
 #as: --no-underscore --em=criself
 #ld: -m crislinux
-#error: \A[^\n]*\.o: In function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
+#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
 
 # Undefined reference for a R_CRIS_16_DTPREL in an executable.
diff --git a/ld/testsuite/ld-cris/tls-err-49.d b/ld/testsuite/ld-cris/tls-err-49.d
index 6ff4ba5..5d8a9c9 100644
--- a/ld/testsuite/ld-cris/tls-err-49.d
+++ b/ld/testsuite/ld-cris/tls-err-49.d
@@ -2,6 +2,6 @@ 
 #source: tls-ie-8.s --pic
 #as: --no-underscore --em=criself
 #ld: -m crislinux
-#error: \A[^\n]*\.o: In function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
+#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
 
 # Undefined reference for a R_CRIS_16_GOT_TPREL in an executable.
diff --git a/ld/testsuite/ld-cris/tls-err-51.d b/ld/testsuite/ld-cris/tls-err-51.d
index 8e71cc5..3891aac 100644
--- a/ld/testsuite/ld-cris/tls-err-51.d
+++ b/ld/testsuite/ld-cris/tls-err-51.d
@@ -2,6 +2,6 @@ 
 #source: tls-le-12s.s
 #as: --no-underscore --em=criself
 #ld: -m crislinux
-#error: \A[^\n]*\.o: In function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
+#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
 
 # Undefined reference for a R_CRIS_16_TPREL in an executable.
diff --git a/ld/testsuite/ld-cris/tls-err-67.d b/ld/testsuite/ld-cris/tls-err-67.d
index 0a0020b..6a010e1 100644
--- a/ld/testsuite/ld-cris/tls-err-67.d
+++ b/ld/testsuite/ld-cris/tls-err-67.d
@@ -2,7 +2,7 @@ 
 #source: tls-gdgotrelm.s --defsym r=8203
 #as: --no-underscore --em=criself --pic
 #ld: --shared -m crislinux
-#error: \A[^\n]*\.o: In[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: In[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: In[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: In[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: In[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: In[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: In[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: In[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: In[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: In[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: In[^\n]*\n[^\n]*omitted[^\n]*\Z
+#error: \A[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*omitted[^\n]*\Z
 
 # Check that the error messages get the right number of appended
 # explanations with default values when bailing out and omitting
diff --git a/ld/testsuite/ld-elf/dwarf2.err b/ld/testsuite/ld-elf/dwarf2.err
index b3d301f..82d3651 100644
--- a/ld/testsuite/ld-elf/dwarf2.err
+++ b/ld/testsuite/ld-elf/dwarf2.err
@@ -1,6 +1,4 @@ 
-tmpdir/dwarf2b\.o:.*dwarf2b\.c:1: multiple definition of `global_var'
-tmpdir/dwarf2a\.o:.*dwarf2a\.c:1: first defined here
+.*: tmpdir/dwarf2b\.o:.*dwarf2b\.c:1: multiple definition of `global_var'; tmpdir/dwarf2a\.o:.*dwarf2a\.c:1: first defined here
 #...
-tmpdir/dwarf2b\.o:.*dwarf2b\.c:2: multiple definition of `other_var'
-tmpdir/dwarf2a\.o:.*dwarf2a\.c:2: first defined here
+.*: tmpdir/dwarf2b\.o:.*dwarf2b\.c:2: multiple definition of `other_var'; tmpdir/dwarf2a\.o:.*dwarf2a\.c:2: first defined here
 #...
diff --git a/ld/testsuite/ld-elf/dwarf3.err b/ld/testsuite/ld-elf/dwarf3.err
index 6f5a8cc..8d1f0d5 100644
--- a/ld/testsuite/ld-elf/dwarf3.err
+++ b/ld/testsuite/ld-elf/dwarf3.err
@@ -1,4 +1,4 @@ 
-.*/dwarf3\.o: In function `main':
+.*/dwarf3\.o: in function `main':
 .*\(\.text.*\+0x[0-9a-f]+\): undefined reference to `bar'
 .*\(\.text.*\+0x[0-9a-f]+\): undefined reference to `bar'
 #...
diff --git a/ld/testsuite/ld-elf/orphan-5.l b/ld/testsuite/ld-elf/orphan-5.l
index 765c8ff..53cf257 100644
--- a/ld/testsuite/ld-elf/orphan-5.l
+++ b/ld/testsuite/ld-elf/orphan-5.l
@@ -1,5 +1,5 @@ 
 #...
-.*warning: orphan section `\.notbad' from `tmpdir/.*\.o' being placed in section `\.notbad'\.
+.*warning: orphan section `\.notbad' from `tmpdir/.*\.o' being placed in section `\.notbad'
 #...
-.*warning: orphan section `\.note\.bar' from `tmpdir/.*\.o' being placed in section `\.note\.bar'\.
+.*warning: orphan section `\.note\.bar' from `tmpdir/.*\.o' being placed in section `\.note\.bar'
 #...
diff --git a/ld/testsuite/ld-elf/orphan-6.l b/ld/testsuite/ld-elf/orphan-6.l
index 9936140..b1e6937 100644
--- a/ld/testsuite/ld-elf/orphan-6.l
+++ b/ld/testsuite/ld-elf/orphan-6.l
@@ -1,5 +1,5 @@ 
 #...
-.*error: unplaced orphan section `\.notbad' from `tmpdir/.*\.o'\.
+.*error: unplaced orphan section `\.notbad' from `tmpdir/.*\.o'
 #...
-.*error: unplaced orphan section `\.note\.bar' from `tmpdir/.*\.o'\.
+.*error: unplaced orphan section `\.note\.bar' from `tmpdir/.*\.o'
 #...
diff --git a/ld/testsuite/ld-elf/warn1.d b/ld/testsuite/ld-elf/warn1.d
index da1173a..1ee4a5d 100644
--- a/ld/testsuite/ld-elf/warn1.d
+++ b/ld/testsuite/ld-elf/warn1.d
@@ -2,7 +2,7 @@ 
 #source: symbol1ref.s
 #source: symbol1w.s
 #ld: -T group.ld
-#warning: ^[^\\n]*\): warning: witty one-liner$
+#warning: ^[^\n]*\): warning: witty one-liner$
 #readelf: -s
 #notarget: "sparc64-*-solaris2*" "sparcv9-*-solaris2*"
 #xfail: "d30v-*-*" "dlx-*-*" "i960-*-*" "pj-*-*"
diff --git a/ld/testsuite/ld-elf/warn2.d b/ld/testsuite/ld-elf/warn2.d
index cfeb8ce..4e723dd 100644
--- a/ld/testsuite/ld-elf/warn2.d
+++ b/ld/testsuite/ld-elf/warn2.d
@@ -2,7 +2,7 @@ 
 #source: symbol2ref.s
 #source: symbol2w.s
 #ld: -T group.ld
-#warning: ^[^\\n]*\.[obj]+: warning: function 'Foo' used$
+#warning: ^[^\n]*\.[obj]+: warning: function 'Foo' used$
 #readelf: -s
 #notarget: "sparc64-*-solaris2*" "sparcv9-*-solaris2*"
 #xfail: d30v-*-* dlx-*-* fr30-*-* frv-*-elf ft32-*-* i860-*-* i960-*-*
diff --git a/ld/testsuite/ld-i386/vxworks1-static.d b/ld/testsuite/ld-i386/vxworks1-static.d
index 88c0baf..275e20e 100644
--- a/ld/testsuite/ld-i386/vxworks1-static.d
+++ b/ld/testsuite/ld-i386/vxworks1-static.d
@@ -1,4 +1,4 @@ 
 #name: VxWorks executable test 1 (static)
 #source: vxworks1.s
 #ld: tmpdir/libvxworks1.so -Tvxworks1.ld
-#error: Dynamic sections created in non-dynamic link
+#error: dynamic sections created in non-dynamic link
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n32.d b/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n32.d
index 32734b9..abfb2ab 100644
--- a/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n32.d
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n32.d
@@ -2,5 +2,5 @@ 
 #source: ../../../gas/testsuite/gas/mips/branch-addend-micromips.s
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 -shared
-#error: \A[^\n]*: In function `bar':\n
+#error: \A[^\n]*: in function `bar':\n
 #error:   \(\.text\+0x1014\): unsupported branch between ISA modes\Z
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n64.d b/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n64.d
index b05c608..e73b5de 100644
--- a/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n64.d
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n64.d
@@ -2,5 +2,5 @@ 
 #source: ../../../gas/testsuite/gas/mips/branch-addend-micromips.s
 #as: -EB -64 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 -shared
-#error: \A[^\n]*: In function `bar':\n
+#error: \A[^\n]*: in function `bar':\n
 #error:   \(\.text\+0x1014\): unsupported branch between ISA modes\Z
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips.d b/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips.d
index f9df557..cadbda0 100644
--- a/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips.d
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips.d
@@ -2,5 +2,5 @@ 
 #source: ../../../gas/testsuite/gas/mips/branch-addend-micromips.s
 #as: -EB -32
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 -shared
-#error: \A[^\n]*: In function `bar':\n
+#error: \A[^\n]*: in function `bar':\n
 #error:   \(\.text\+0x1014\): unsupported branch between ISA modes\Z
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-pic-n32.d b/ld/testsuite/ld-mips-elf/bal-jalx-pic-n32.d
index bf3f3ff..e995683 100644
--- a/ld/testsuite/ld-mips-elf/bal-jalx-pic-n32.d
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-pic-n32.d
@@ -2,5 +2,5 @@ 
 #source: ../../../gas/testsuite/gas/mips/branch-addend.s
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 -shared
-#error: \A[^\n]*: In function `bar':\n
+#error: \A[^\n]*: in function `bar':\n
 #error:   \(\.text\+0x1014\): unsupported branch between ISA modes\Z
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-pic-n64.d b/ld/testsuite/ld-mips-elf/bal-jalx-pic-n64.d
index 9d9bf4a..a82a866 100644
--- a/ld/testsuite/ld-mips-elf/bal-jalx-pic-n64.d
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-pic-n64.d
@@ -2,5 +2,5 @@ 
 #source: ../../../gas/testsuite/gas/mips/branch-addend.s
 #as: -EB -64 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 -shared
-#error: \A[^\n]*: In function `bar':\n
+#error: \A[^\n]*: in function `bar':\n
 #error:   \(\.text\+0x1014\): unsupported branch between ISA modes\Z
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-pic.d b/ld/testsuite/ld-mips-elf/bal-jalx-pic.d
index 0cd4f09..6967023 100644
--- a/ld/testsuite/ld-mips-elf/bal-jalx-pic.d
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-pic.d
@@ -2,5 +2,5 @@ 
 #source: ../../../gas/testsuite/gas/mips/branch-addend.s
 #as: -EB -32
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 -shared
-#error: \A[^\n]*: In function `bar':\n
+#error: \A[^\n]*: in function `bar':\n
 #error:   \(\.text\+0x1014\): unsupported branch between ISA modes\Z
diff --git a/ld/testsuite/ld-mips-elf/jal-global-overflow-1.d b/ld/testsuite/ld-mips-elf/jal-global-overflow-1.d
index da6e750..2ee5a76 100644
--- a/ld/testsuite/ld-mips-elf/jal-global-overflow-1.d
+++ b/ld/testsuite/ld-mips-elf/jal-global-overflow-1.d
@@ -2,7 +2,7 @@ 
 #source: jal-global-overflow.s
 #as: -EB -32
 #ld: -EB -Ttext 0x1fffd000 -e 0x1fffd000
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x2000\): relocation truncated to fit: R_MIPS_26 against `abar'\n
-#error:   [^\n]*: In function `bar':\n
+#error:   [^\n]*: in function `bar':\n
 #error:   \(\.text\+0x4000\): relocation truncated to fit: R_MIPS_26 against `afoo'\Z
diff --git a/ld/testsuite/ld-mips-elf/jal-local-overflow-1.d b/ld/testsuite/ld-mips-elf/jal-local-overflow-1.d
index 869df0e..c4deb8b 100644
--- a/ld/testsuite/ld-mips-elf/jal-local-overflow-1.d
+++ b/ld/testsuite/ld-mips-elf/jal-local-overflow-1.d
@@ -2,7 +2,7 @@ 
 #source: jal-local-overflow.s
 #as: -EB -32
 #ld: -EB -Ttext 0x1fffd000 -e 0x1fffd000
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x2000\): relocation truncated to fit: R_MIPS_26 against `.text'\n
-#error:   [^\n]*: In function `bar':\n
+#error:   [^\n]*: in function `bar':\n
 #error:   \(\.text\+0x4000\): relocation truncated to fit: R_MIPS_26 against `.text'\Z
diff --git a/ld/testsuite/ld-mips-elf/mode-change-error-1.d b/ld/testsuite/ld-mips-elf/mode-change-error-1.d
index c81b401..afa54d8 100644
--- a/ld/testsuite/ld-mips-elf/mode-change-error-1.d
+++ b/ld/testsuite/ld-mips-elf/mode-change-error-1.d
@@ -2,6 +2,6 @@ 
 #source: mode-change-error-1a.s
 #source: mode-change-error-1b.s
 #ld: -e 0x8000000
-#error: \A[^\n]*: In function `main':\n
+#error: \A[^\n]*: in function `main':\n
 #error:   \(\.text\+0x0\): unsupported jump between ISA modes; consider recompiling with interlinking enabled\n
 #error:   \(\.text\+0x8\): unsupported jump between ISA modes; consider recompiling with interlinking enabled\Z
diff --git a/ld/testsuite/ld-mips-elf/unaligned-branch-2.d b/ld/testsuite/ld-mips-elf/unaligned-branch-2.d
index 8f81cba..8ee279e 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-branch-2.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-branch-2.d
@@ -2,7 +2,7 @@ 
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
 #source: ../../../gas/testsuite/gas/mips/unaligned-branch-2.s
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x101c\): branch to a non-instruction-aligned address\n
 #error:   \(\.text\+0x1024\): branch to a non-instruction-aligned address\n
 #error:   \(\.text\+0x102c\): branch to a non-instruction-aligned address\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-2.d b/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-2.d
index 2881be3..89a5e17 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-2.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-2.d
@@ -2,7 +2,7 @@ 
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 --ignore-branch-isa
 #source: ../../../gas/testsuite/gas/mips/unaligned-branch-2.s
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x101c\): branch to a non-instruction-aligned address\n
 #error:   \(\.text\+0x1024\): branch to a non-instruction-aligned address\n
 #error:   \(\.text\+0x102c\): branch to a non-instruction-aligned address\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-micromips.d b/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-micromips.d
index 21e2c3e..7d9feb8 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-micromips.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-micromips.d
@@ -2,7 +2,7 @@ 
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 --ignore-branch-isa
 #source: ../../../gas/testsuite/gas/mips/unaligned-branch-micromips-2.s
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x100a\): cannot convert a branch to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x1012\): cannot convert a branch to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x101a\): cannot convert a branch to JALX for a non-word-aligned address\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-mips16.d b/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-mips16.d
index a2b62dd..657f475 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-mips16.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-mips16.d
@@ -2,7 +2,7 @@ 
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 --ignore-branch-isa
 #source: ../../../gas/testsuite/gas/mips/unaligned-branch-mips16-2.s
-#error:   [^\n]*: In function `foo':\n
+#error:   [^\n]*: in function `foo':\n
 #error:   \(\.text\+0x1008\): cannot convert a branch to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x100e\): cannot convert a branch to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x1014\): cannot convert a branch to JALX for a non-word-aligned address\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-r6-1.d b/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-r6-1.d
index 4a09001..cef0302 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-r6-1.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-branch-ignore-r6-1.d
@@ -2,7 +2,7 @@ 
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 --ignore-branch-isa
 #source: ../../../gas/testsuite/gas/mips/unaligned-branch-r6-3.s
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x101c\): branch to a non-instruction-aligned address\n
 #error:   \(\.text\+0x1024\): branch to a non-instruction-aligned address\n
 #error:   \(\.text\+0x102c\): branch to a non-instruction-aligned address\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-branch-micromips.d b/ld/testsuite/ld-mips-elf/unaligned-branch-micromips.d
index 2a1ae34..fbedebc 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-branch-micromips.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-branch-micromips.d
@@ -2,7 +2,7 @@ 
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
 #source: ../../../gas/testsuite/gas/mips/unaligned-branch-micromips-2.s
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x100a\): cannot convert a branch to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x1012\): cannot convert a branch to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x101a\): cannot convert a branch to JALX for a non-word-aligned address\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-branch-mips16.d b/ld/testsuite/ld-mips-elf/unaligned-branch-mips16.d
index b9ec2a6..c10f49a 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-branch-mips16.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-branch-mips16.d
@@ -2,7 +2,7 @@ 
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
 #source: ../../../gas/testsuite/gas/mips/unaligned-branch-mips16-2.s
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x1002\): unsupported branch between ISA modes\n
 #error:   \(\.text\+0x1008\): cannot convert a branch to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x1008\): unsupported branch between ISA modes\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-branch-r6-1.d b/ld/testsuite/ld-mips-elf/unaligned-branch-r6-1.d
index 608e52c..d3c9231 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-branch-r6-1.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-branch-r6-1.d
@@ -2,7 +2,7 @@ 
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
 #source: ../../../gas/testsuite/gas/mips/unaligned-branch-r6-3.s
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x101c\): branch to a non-instruction-aligned address\n
 #error:   \(\.text\+0x1024\): branch to a non-instruction-aligned address\n
 #error:   \(\.text\+0x102c\): branch to a non-instruction-aligned address\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-branch-r6-2.d b/ld/testsuite/ld-mips-elf/unaligned-branch-r6-2.d
index 85da8ce..c2a7a79 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-branch-r6-2.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-branch-r6-2.d
@@ -2,7 +2,7 @@ 
 #as: -EB -n32 -mips64r6
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
 #source: ../../../gas/testsuite/gas/mips/unaligned-branch-r6-4.s
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x101c\): branch to a non-instruction-aligned address\n
 #error:   \(\.text\+0x1024\): branch to a non-instruction-aligned address\n
 #error:   \(\.text\+0x102c\): branch to a non-instruction-aligned address\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-branch.d b/ld/testsuite/ld-mips-elf/unaligned-branch.d
index 95b3360..4c7c137 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-branch.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-branch.d
@@ -3,7 +3,7 @@ 
 #source: unaligned-text.s
 #as: -EB -32 -mips32r6
 #ld: -EB -Ttext 0x10000000 -e 0x10000000
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x14\): branch to a non-instruction-aligned address\n
 #error:   \(\.text\+0x1c\): branch to a non-instruction-aligned address\n
 #error:   \(\.text\+0x24\): branch to a non-instruction-aligned address\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-1.d b/ld/testsuite/ld-mips-elf/unaligned-jalx-1.d
index d70cf4c..a6cc2ed 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-jalx-1.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-1.d
@@ -3,5 +3,5 @@ 
 #source: unaligned-insn.s -mips16
 #as: -EB -32
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x[0-9a-f]+\): cannot convert a jump to JALX for a non-word-aligned address\Z
diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-3.d b/ld/testsuite/ld-mips-elf/unaligned-jalx-3.d
index fb558b7..36327f8 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-jalx-3.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-3.d
@@ -3,5 +3,5 @@ 
 #source: unaligned-insn.s -mips16
 #as: -EB -32
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x0\): cannot convert a branch to JALX for a non-word-aligned address\Z
diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-1.d b/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-1.d
index a80c871..f161ac7 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-1.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-1.d
@@ -3,7 +3,7 @@ 
 #source: unaligned-insn.s -mips16
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x[0-9a-f]+\): cannot convert a jump to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x[0-9a-f]+\): cannot convert a jump to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x[0-9a-f]+\): cannot convert a jump to JALX for a non-word-aligned address\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-3.d b/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-3.d
index 8f96c8f..5aba630 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-3.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-3.d
@@ -3,7 +3,7 @@ 
 #source: unaligned-insn.s -mips16
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x0\): cannot convert a branch to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x8\): cannot convert a branch to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x10\): cannot convert a branch to JALX for a non-word-aligned address\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-micromips-1.d b/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-micromips-1.d
index 8e11706..afca7c1 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-micromips-1.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-micromips-1.d
@@ -4,7 +4,7 @@ 
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
 #objdump: -dr --prefix-addresses --show-raw-insn
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x[0-9a-f]+\): cannot convert a jump to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x[0-9a-f]+\): cannot convert a jump to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x[0-9a-f]+\): cannot convert a jump to JALX for a non-word-aligned address\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-mips16-1.d b/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-mips16-1.d
index eec4cc1..e896268 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-mips16-1.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-addend-mips16-1.d
@@ -4,7 +4,7 @@ 
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
 #objdump: -dr --prefix-addresses --show-raw-insn
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x[0-9a-f]+\): cannot convert a jump to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x[0-9a-f]+\): cannot convert a jump to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x[0-9a-f]+\): cannot convert a jump to JALX for a non-word-aligned address\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-micromips-1.d b/ld/testsuite/ld-mips-elf/unaligned-jalx-micromips-1.d
index d63d92c..c38b2d5 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-jalx-micromips-1.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-micromips-1.d
@@ -3,5 +3,5 @@ 
 #source: unaligned-insn.s
 #as: -EB -32
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x[0-9a-f]+\): cannot convert a jump to JALX for a non-word-aligned address\Z
diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-mips16-1.d b/ld/testsuite/ld-mips-elf/unaligned-jalx-mips16-1.d
index cc8ec6a..aacf089 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-jalx-mips16-1.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-mips16-1.d
@@ -3,5 +3,5 @@ 
 #source: unaligned-insn.s
 #as: -EB -32
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x[0-9a-f]+\): cannot convert a jump to JALX for a non-word-aligned address\Z
diff --git a/ld/testsuite/ld-mips-elf/unaligned-jump-micromips.d b/ld/testsuite/ld-mips-elf/unaligned-jump-micromips.d
index 1723b9c..d07c6b9 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-jump-micromips.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-jump-micromips.d
@@ -2,7 +2,7 @@ 
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
 #source: ../../../gas/testsuite/gas/mips/unaligned-jump-micromips-2.s
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x1012\): unsupported jump between ISA modes; consider recompiling with interlinking enabled\n
 #error:   \(\.text\+0x1018\): unsupported jump between ISA modes; consider recompiling with interlinking enabled\n
 #error:   \(\.text\+0x101e\): cannot convert a jump to JALX for a non-word-aligned address\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-jump-mips16.d b/ld/testsuite/ld-mips-elf/unaligned-jump-mips16.d
index 38b56a2..bd09a13 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-jump-mips16.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-jump-mips16.d
@@ -2,7 +2,7 @@ 
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
 #source: ../../../gas/testsuite/gas/mips/unaligned-jump-mips16-2.s
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x100e\): cannot convert a jump to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x1014\): cannot convert a jump to JALX for a non-word-aligned address\n
 #error:   \(\.text\+0x101a\): cannot convert a jump to JALX for a non-word-aligned address\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-jump.d b/ld/testsuite/ld-mips-elf/unaligned-jump.d
index 2518457..53de3d0 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-jump.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-jump.d
@@ -2,7 +2,7 @@ 
 #as: -EB -n32 -march=from-abi
 #ld: -EB -Ttext 0x1c000000 -e 0x1c000000
 #source: ../../../gas/testsuite/gas/mips/unaligned-jump-2.s
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x1004\): unsupported JALX to the same ISA mode\n
 #error:   \(\.text\+0x101c\): jump to a non-instruction-aligned address\n
 #error:   \(\.text\+0x101c\): unsupported JALX to the same ISA mode\n
diff --git a/ld/testsuite/ld-mips-elf/unaligned-ldpc-1.d b/ld/testsuite/ld-mips-elf/unaligned-ldpc-1.d
index 3af5cee..9f8aeeb 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-ldpc-1.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-ldpc-1.d
@@ -3,7 +3,7 @@ 
 #source: unaligned-data.s
 #as: -EB -32 -mips64r6
 #ld: -EB -Ttext 0x1c000000 -Tdata 0x1c080000 -e 0x1c000000
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x[0-9a-f]+\): PC-relative load from unaligned address\n
 #error:   \(\.text\+0x[0-9a-f]+\): PC-relative load from unaligned address\n
 #error:   \(\.text\+0x[0-9a-f]+\): PC-relative load from unaligned address\Z
diff --git a/ld/testsuite/ld-mips-elf/unaligned-lwpc-1.d b/ld/testsuite/ld-mips-elf/unaligned-lwpc-1.d
index bddff01..fd543f4 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-lwpc-1.d
+++ b/ld/testsuite/ld-mips-elf/unaligned-lwpc-1.d
@@ -3,6 +3,6 @@ 
 #source: unaligned-data.s
 #as: -EB -32 -mips32r6
 #ld: -EB -Ttext 0x1c000000 -Tdata 0x1c080000 -e 0x1c000000
-#error: \A[^\n]*: In function `foo':\n
+#error: \A[^\n]*: in function `foo':\n
 #error:   \(\.text\+0x[0-9a-f]+\): PC-relative load from unaligned address\n
 #error:   \(\.text\+0x[0-9a-f]+\): PC-relative load from unaligned address\Z
diff --git a/ld/testsuite/ld-mips-elf/undefined.d b/ld/testsuite/ld-mips-elf/undefined.d
index e5231df..994582e 100644
--- a/ld/testsuite/ld-mips-elf/undefined.d
+++ b/ld/testsuite/ld-mips-elf/undefined.d
@@ -1,4 +1,4 @@ 
 #name: MIPS undefined reference
 #source: undefined.s
 #ld: -e foo
-#error: \A[^\n]*\.o: In function `foo':\n\(\.text\+0x0\): undefined reference to `bar'\Z
+#error: \A[^\n]*\.o: in function `foo':\n\(\.text\+0x0\): undefined reference to `bar'\Z
diff --git a/ld/testsuite/ld-mips-elf/vxworks1-static.d b/ld/testsuite/ld-mips-elf/vxworks1-static.d
index 69765ae..daa69a1 100644
--- a/ld/testsuite/ld-mips-elf/vxworks1-static.d
+++ b/ld/testsuite/ld-mips-elf/vxworks1-static.d
@@ -1,4 +1,4 @@ 
 #name: VxWorks executable test 1 (static)
 #source: vxworks1.s
 #ld: tmpdir/libvxworks1.so -Tvxworks1.ld [big_or_little_endian]
-#error: Dynamic sections created in non-dynamic link
+#error: dynamic sections created in non-dynamic link
diff --git a/ld/testsuite/ld-mmix/bpo-20.d b/ld/testsuite/ld-mmix/bpo-20.d
index f05edfb..46ff6fa 100644
--- a/ld/testsuite/ld-mmix/bpo-20.d
+++ b/ld/testsuite/ld-mmix/bpo-20.d
@@ -2,7 +2,7 @@ 
 #source: bpo-10.s
 #as: -linker-allocated-gregs
 #ld: -m elf64mmix
-#error: Too many global registers
+#error: too many global registers
 
 # Check that many too many gregs are recognized (and not signed/unsigned
 # bugs with checks for < 32 appear).
diff --git a/ld/testsuite/ld-mmix/bpo-20m.d b/ld/testsuite/ld-mmix/bpo-20m.d
index 91126b4..8264fd0 100644
--- a/ld/testsuite/ld-mmix/bpo-20m.d
+++ b/ld/testsuite/ld-mmix/bpo-20m.d
@@ -2,7 +2,7 @@ 
 #source: bpo-10.s
 #as: -linker-allocated-gregs
 #ld: -m mmo
-#error: Too many global registers
+#error: too many global registers
 
 # Check that many too many gregs are recognized (and not signed/unsigned
 # bugs with checks for < 32 appear).
diff --git a/ld/testsuite/ld-mmix/bpo-7.d b/ld/testsuite/ld-mmix/bpo-7.d
index 693a502..0247736a6 100644
--- a/ld/testsuite/ld-mmix/bpo-7.d
+++ b/ld/testsuite/ld-mmix/bpo-7.d
@@ -3,4 +3,4 @@ 
 #source: greg-1.s
 #as: -linker-allocated-gregs
 #ld: -m elf64mmix
-#error: Too many global registers: 224
+#error: too many global registers: 224
diff --git a/ld/testsuite/ld-mmix/bpo-7m.d b/ld/testsuite/ld-mmix/bpo-7m.d
index 21c4659..2ba0dd8 100644
--- a/ld/testsuite/ld-mmix/bpo-7m.d
+++ b/ld/testsuite/ld-mmix/bpo-7m.d
@@ -3,4 +3,4 @@ 
 #source: greg-1.s
 #as: -linker-allocated-gregs
 #ld: -m mmo
-#error: Too many global registers: 224
+#error: too many global registers: 224
diff --git a/ld/testsuite/ld-mmix/bpo-8.d b/ld/testsuite/ld-mmix/bpo-8.d
index 438b072..6dbfbd6 100644
--- a/ld/testsuite/ld-mmix/bpo-8.d
+++ b/ld/testsuite/ld-mmix/bpo-8.d
@@ -4,4 +4,4 @@ 
 #source: bpo-1.s
 #as: -linker-allocated-gregs
 #ld: -m elf64mmix
-#error: Too many global registers: 224
+#error: too many global registers: 224
diff --git a/ld/testsuite/ld-mmix/bpo-8m.d b/ld/testsuite/ld-mmix/bpo-8m.d
index 9187672..3c93f32 100644
--- a/ld/testsuite/ld-mmix/bpo-8m.d
+++ b/ld/testsuite/ld-mmix/bpo-8m.d
@@ -4,4 +4,4 @@ 
 #source: bpo-1.s
 #as: -linker-allocated-gregs
 #ld: -m mmo
-#error: Too many global registers: 224
+#error: too many global registers: 224
diff --git a/ld/testsuite/ld-mmix/greg-17.d b/ld/testsuite/ld-mmix/greg-17.d
index e1af4b5..d068e70 100644
--- a/ld/testsuite/ld-mmix/greg-17.d
+++ b/ld/testsuite/ld-mmix/greg-17.d
@@ -32,6 +32,6 @@ 
 #source: start.s
 #as: -x
 #ld: -m mmo
-#error: Too many global registers: 224, max 223
+#error: too many global registers: 224, max 223
 
 # Allocating the maximum number of gregs *plus one* is an error, mmo.
diff --git a/ld/testsuite/ld-mmix/greg-18.d b/ld/testsuite/ld-mmix/greg-18.d
index ed1bbaf..94b72a3 100644
--- a/ld/testsuite/ld-mmix/greg-18.d
+++ b/ld/testsuite/ld-mmix/greg-18.d
@@ -33,7 +33,7 @@ 
 #as: -x
 #ld: -m mmo
 #objdump: -dt
-#error: Too many global registers: 224, max 223
+#error: too many global registers: 224, max 223
 
 # Allocating the maximum number of gregs *plus one* is an error; other end
 # of the stick, mmo.
diff --git a/ld/testsuite/ld-mmix/greg-8.d b/ld/testsuite/ld-mmix/greg-8.d
index cb6b776..2dfd19b 100644
--- a/ld/testsuite/ld-mmix/greg-8.d
+++ b/ld/testsuite/ld-mmix/greg-8.d
@@ -32,6 +32,6 @@ 
 #source: start.s
 #as: -x
 #ld: -m elf64mmix
-#error: Too many global registers: 224, max 223
+#error: too many global registers: 224, max 223
 
 # Allocating the maximum number of gregs *plus one* is an error.
diff --git a/ld/testsuite/ld-mmix/greg-9.d b/ld/testsuite/ld-mmix/greg-9.d
index c9d9fcd..959471c 100644
--- a/ld/testsuite/ld-mmix/greg-9.d
+++ b/ld/testsuite/ld-mmix/greg-9.d
@@ -33,7 +33,7 @@ 
 #as: -x
 #ld: -m elf64mmix
 #objdump: -dt
-#error: Too many global registers: 224, max 223
+#error: too many global registers: 224, max 223
 
 # Allocating the maximum number of gregs *plus one* is an error; other end
 # of the stick.
diff --git a/ld/testsuite/ld-plugin/plugin-14.d b/ld/testsuite/ld-plugin/plugin-14.d
index c9dc5f2..81365af 100644
--- a/ld/testsuite/ld-plugin/plugin-14.d
+++ b/ld/testsuite/ld-plugin/plugin-14.d
@@ -27,7 +27,7 @@  hook called: claim_file .*/ld/testsuite/ld-plugin/func.c \[@0/.* CLAIMED
 hook called: claim_file tmpdir/text.o \[@0/.* not claimed
 #...
 hook called: all symbols read.
-tmpdir/main.o: In function `main':
+.*: tmpdir/main.o: in function `main':
 .*main.c.*: undefined reference to `\.?func'
 hook called: cleanup.
 #...
diff --git a/ld/testsuite/ld-plugin/plugin-15.d b/ld/testsuite/ld-plugin/plugin-15.d
index 0481c5f..02c5e60 100644
--- a/ld/testsuite/ld-plugin/plugin-15.d
+++ b/ld/testsuite/ld-plugin/plugin-15.d
@@ -28,7 +28,7 @@  hook called: claim_file .*/ld/testsuite/ld-plugin/func.c \[@0/.* CLAIMED
 hook called: claim_file tmpdir/text.o \[@0/.* not claimed
 #...
 hook called: all symbols read.
-tmpdir/main.o: In function `main':
+.*: tmpdir/main.o: in function `main':
 .*main.c.*: undefined reference to `\.?func'
 hook called: cleanup.
 #...
diff --git a/ld/testsuite/ld-plugin/plugin-16.d b/ld/testsuite/ld-plugin/plugin-16.d
index ae54f0c..504fbdb 100644
--- a/ld/testsuite/ld-plugin/plugin-16.d
+++ b/ld/testsuite/ld-plugin/plugin-16.d
@@ -32,7 +32,7 @@  hook called: claim_file tmpdir/text.o \[@0/.* not claimed
 hook called: all symbols read.
 Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
 Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
-tmpdir/main.o: In function `main':
+.*: tmpdir/main.o: in function `main':
 .*main.c.*: undefined reference to `\.?func'
 hook called: cleanup.
 #...
diff --git a/ld/testsuite/ld-plugin/plugin-20.d b/ld/testsuite/ld-plugin/plugin-20.d
index 373a3ff..31bc376 100644
--- a/ld/testsuite/ld-plugin/plugin-20.d
+++ b/ld/testsuite/ld-plugin/plugin-20.d
@@ -2,6 +2,6 @@  hook called: all symbols read.
 Input: func.c \(tmpdir/libfunc.a\)
 Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
 Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
-tmpdir/main.o: In function `main':
+.*: tmpdir/main.o: in function `main':
 .*main.c.*: undefined reference to `\.?func'
 hook called: cleanup.
diff --git a/ld/testsuite/ld-plugin/plugin-21.d b/ld/testsuite/ld-plugin/plugin-21.d
index 7b922c1..0b85f71 100644
--- a/ld/testsuite/ld-plugin/plugin-21.d
+++ b/ld/testsuite/ld-plugin/plugin-21.d
@@ -2,6 +2,6 @@  hook called: all symbols read.
 Input: .*/ld/testsuite/ld-plugin/func.c \(.*/ld/testsuite/ld-plugin/func.c\)
 Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
 Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
-tmpdir/main.o: In function `main':
+.*: tmpdir/main.o: in function `main':
 .*main.c.*: undefined reference to `\.?func'
 hook called: cleanup.
diff --git a/ld/testsuite/ld-plugin/plugin-22.d b/ld/testsuite/ld-plugin/plugin-22.d
index 1512676..1084a0b 100644
--- a/ld/testsuite/ld-plugin/plugin-22.d
+++ b/ld/testsuite/ld-plugin/plugin-22.d
@@ -2,6 +2,6 @@  Claimed: tmpdir/libfunc.a \[@.*
 hook called: all symbols read.
 Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
 Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
-tmpdir/main.o: In function `main':
+.*: tmpdir/main.o: in function `main':
 .*main.c.*: undefined reference to `\.?func'
 hook called: cleanup.
diff --git a/ld/testsuite/ld-plugin/plugin-23.d b/ld/testsuite/ld-plugin/plugin-23.d
index e05f7bd..0b6c25c 100644
--- a/ld/testsuite/ld-plugin/plugin-23.d
+++ b/ld/testsuite/ld-plugin/plugin-23.d
@@ -2,6 +2,6 @@  Claimed: .*/ld/testsuite/ld-plugin/func.c \[@0.*
 hook called: all symbols read.
 Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
 Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
-tmpdir/main.o: In function `main':
+.*: tmpdir/main.o: in function `main':
 .*main.c.*: undefined reference to `\.?func'
 hook called: cleanup.
diff --git a/ld/testsuite/ld-plugin/plugin-6.d b/ld/testsuite/ld-plugin/plugin-6.d
index b4a1e9c..b1854ac 100644
--- a/ld/testsuite/ld-plugin/plugin-6.d
+++ b/ld/testsuite/ld-plugin/plugin-6.d
@@ -27,7 +27,7 @@  hook called: claim_file tmpdir/func.o \[@0/.* CLAIMED
 hook called: claim_file tmpdir/text.o \[@0/.* not claimed
 #...
 hook called: all symbols read.
-tmpdir/main.o: In function `main':
+.*: tmpdir/main.o: in function `main':
 .*main.c.*: undefined reference to `\.?func'
 hook called: cleanup.
 #...
diff --git a/ld/testsuite/ld-plugin/plugin-7.d b/ld/testsuite/ld-plugin/plugin-7.d
index 54259db..c77b66f 100644
--- a/ld/testsuite/ld-plugin/plugin-7.d
+++ b/ld/testsuite/ld-plugin/plugin-7.d
@@ -28,7 +28,7 @@  hook called: claim_file tmpdir/func.o \[@0/.* CLAIMED
 hook called: claim_file tmpdir/text.o \[@0/.* not claimed
 #...
 hook called: all symbols read.
-tmpdir/main.o: In function `main':
+.*: tmpdir/main.o: in function `main':
 .*main.c.*: undefined reference to `\.?func'
 hook called: cleanup.
 #...
diff --git a/ld/testsuite/ld-plugin/plugin-8.d b/ld/testsuite/ld-plugin/plugin-8.d
index c1dd25a..ca24227 100644
--- a/ld/testsuite/ld-plugin/plugin-8.d
+++ b/ld/testsuite/ld-plugin/plugin-8.d
@@ -32,7 +32,7 @@  hook called: claim_file tmpdir/text.o \[@0/.* not claimed
 hook called: all symbols read.
 Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
 Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
-tmpdir/main.o: In function `main':
+.*: tmpdir/main.o: in function `main':
 .*main.c.*: undefined reference to `\.?func'
 hook called: cleanup.
 #...
diff --git a/ld/testsuite/ld-powerpc/aix-weak-3-32.d b/ld/testsuite/ld-powerpc/aix-weak-3-32.d
index 45976c9..498ab9a 100644
--- a/ld/testsuite/ld-powerpc/aix-weak-3-32.d
+++ b/ld/testsuite/ld-powerpc/aix-weak-3-32.d
@@ -2,4 +2,4 @@ 
 #source: aix-weak-3b.s
 #as: -a32 --defsym size=32
 #ld: -b32 -e.main -bnoautoimp tmpdir/aix-weak-3a.so
-#error: .*multiple definition of `x1'\n[^\n]*first defined here
+#error: .*multiple definition of `x1';[^\n]*first defined here
diff --git a/ld/testsuite/ld-powerpc/aix-weak-3-64.d b/ld/testsuite/ld-powerpc/aix-weak-3-64.d
index 4673175..fa192d9 100644
--- a/ld/testsuite/ld-powerpc/aix-weak-3-64.d
+++ b/ld/testsuite/ld-powerpc/aix-weak-3-64.d
@@ -2,4 +2,4 @@ 
 #source: aix-weak-3b.s
 #as: -a64 --defsym size=64
 #ld: -b64 -e.main -bnoautoimp tmpdir/aix64-weak-3a.so
-#error: .*multiple definition of `x1'\n[^\n]*first defined here
+#error: .*multiple definition of `x1';[^\n]*first defined here
diff --git a/ld/testsuite/ld-powerpc/vxworks1-static.d b/ld/testsuite/ld-powerpc/vxworks1-static.d
index 4c2d1fd..4f616e7 100644
--- a/ld/testsuite/ld-powerpc/vxworks1-static.d
+++ b/ld/testsuite/ld-powerpc/vxworks1-static.d
@@ -1,4 +1,4 @@ 
 #name: VxWorks executable test 1 (static)
 #source: vxworks1.s -mregnames
 #ld: tmpdir/libvxworks1.so -Tvxworks1.ld
-#error: Dynamic sections created in non-dynamic link
+#error: dynamic sections created in non-dynamic link
diff --git a/ld/testsuite/ld-sh/vxworks1-static.d b/ld/testsuite/ld-sh/vxworks1-static.d
index dffc45b..9587240 100644
--- a/ld/testsuite/ld-sh/vxworks1-static.d
+++ b/ld/testsuite/ld-sh/vxworks1-static.d
@@ -1,4 +1,4 @@ 
 #name: VxWorks executable test 1 (static)
 #source: vxworks1.s
 #ld: tmpdir/libvxworks1.so -Tvxworks1.ld -EL
-#error: Dynamic sections created in non-dynamic link
+#error: dynamic sections created in non-dynamic link
diff --git a/ld/testsuite/ld-sparc/vxworks1-static.d b/ld/testsuite/ld-sparc/vxworks1-static.d
index 88c0baf..275e20e 100644
--- a/ld/testsuite/ld-sparc/vxworks1-static.d
+++ b/ld/testsuite/ld-sparc/vxworks1-static.d
@@ -1,4 +1,4 @@ 
 #name: VxWorks executable test 1 (static)
 #source: vxworks1.s
 #ld: tmpdir/libvxworks1.so -Tvxworks1.ld
-#error: Dynamic sections created in non-dynamic link
+#error: dynamic sections created in non-dynamic link
diff --git a/ld/testsuite/ld-undefined/undefined.exp b/ld/testsuite/ld-undefined/undefined.exp
index 2c69db3..f97db1c 100644
--- a/ld/testsuite/ld-undefined/undefined.exp
+++ b/ld/testsuite/ld-undefined/undefined.exp
@@ -70,7 +70,7 @@  if { ![is_remote host] && [which $CC] == 0 } {
     # "undefined function" and "undefined line" tests fail.
     setup_xfail xtensa*-*-linux*
 
-    set mf "tmpdir/undefined.o* In function `function':"
+    set mf "tmpdir/undefined.o* in function `function':"
     checkund $mf $testfn
 
     if ![is_elf_format] {
diff --git a/ld/testsuite/ld-x86-64/pie1.d b/ld/testsuite/ld-x86-64/pie1.d
index 6373eea..3e64c15 100644
--- a/ld/testsuite/ld-x86-64/pie1.d
+++ b/ld/testsuite/ld-x86-64/pie1.d
@@ -2,7 +2,7 @@ 
 #as: --64
 #ld: -pie -melf_x86_64 --noinhibit-exec
 #readelf: -s --wide
-#warning: \A[^\n]*\.o[^\n]*In function `_start':\n[^\n]*: undefined reference to `foo'\Z
+#warning: \A[^\n]*\.o[^\n]*in function `_start':\n[^\n]*: undefined reference to `foo'\Z
 
 #failif
 #...