This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] gas and ld pluralization fixes


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=992a06eea4acfb674659a0ce19b5fb9c985e9bc1

commit 992a06eea4acfb674659a0ce19b5fb9c985e9bc1
Author: Alan Modra <amodra@gmail.com>
Date:   Mon Nov 6 19:44:02 2017 +1030

    gas and ld pluralization fixes
    
    gas/
    	* as.c (main): Properly pluralize messages.
    	* frags.c (frag_grow): Likewise.
    	* read.c (emit_expr_with_reloc, emit_expr_fix): Likewise.
    	(parse_bitfield_cons): Likewise.
    	* write.c (fixup_segment, compress_debug, write_contents): Likewise.
    	(relax_segment): Likewise.
    	* config/tc-arm.c (s_arm_elf_cons): Likewise.
    	* config/tc-cr16.c (l_cons): Likewise.
    	* config/tc-i370.c (i370_elf_cons): Likewise.
    	* config/tc-m68k.c (m68k_elf_cons): Likewise.
    	* config/tc-msp430.c (msp430_operands): Likewise.
    	* config/tc-s390.c (s390_elf_cons, s390_literals): Likewise.
    	* config/tc-mcore.c (md_apply_fix): Likewise.
    	* config/tc-tic54x.c (md_assemble): Likewise.
    	* config/tc-xtensa.c (xtensa_elf_cons): Likewise.
    	(xg_expand_assembly_insn): Likewise.
    	* config/xtensa-relax.c (build_transition): Likewise.
    ld/
    	* ldlang.c (lang_size_sections_1): Properly pluralize messages.
    	(lang_check_section_addresses): Likewise.

Diff:
---
 gas/ChangeLog             | 20 ++++++++++++++++++++
 gas/as.c                  | 13 ++++---------
 gas/config/tc-arm.c       |  4 +++-
 gas/config/tc-cr16.c      |  7 ++++++-
 gas/config/tc-i370.c      |  4 +++-
 gas/config/tc-m68k.c      |  4 +++-
 gas/config/tc-mcore.c     |  5 ++++-
 gas/config/tc-msp430.c    |  4 +++-
 gas/config/tc-s390.c      |  8 ++++++--
 gas/config/tc-tic54x.c    | 17 ++++++++++++-----
 gas/config/tc-xtensa.c    | 12 +++++++++---
 gas/config/xtensa-relax.c |  4 +++-
 gas/frags.c               |  5 ++++-
 gas/read.c                | 15 ++++++++++++---
 gas/write.c               | 47 +++++++++++++++++++++++++++++++++++------------
 ld/ChangeLog              |  5 +++++
 ld/ldlang.c               | 16 ++++++++++++----
 17 files changed, 144 insertions(+), 46 deletions(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index 7ad6938..ee42ab5 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,25 @@
 2017-11-07  Alan Modra  <amodra@gmail.com>
 
+	* as.c (main): Properly pluralize messages.
+	* frags.c (frag_grow): Likewise.
+	* read.c (emit_expr_with_reloc, emit_expr_fix): Likewise.
+	(parse_bitfield_cons): Likewise.
+	* write.c (fixup_segment, compress_debug, write_contents): Likewise.
+	(relax_segment): Likewise.
+	* config/tc-arm.c (s_arm_elf_cons): Likewise.
+	* config/tc-cr16.c (l_cons): Likewise.
+	* config/tc-i370.c (i370_elf_cons): Likewise.
+	* config/tc-m68k.c (m68k_elf_cons): Likewise.
+	* config/tc-msp430.c (msp430_operands): Likewise.
+	* config/tc-s390.c (s390_elf_cons, s390_literals): Likewise.
+	* config/tc-mcore.c (md_apply_fix): Likewise.
+	* config/tc-tic54x.c (md_assemble): Likewise.
+	* config/tc-xtensa.c (xtensa_elf_cons): Likewise.
+	(xg_expand_assembly_insn): Likewise.
+	* config/xtensa-relax.c (build_transition): Likewise.
+
+2017-11-07  Alan Modra  <amodra@gmail.com>
+
 	* asintl.h (textdomain, bindtextdomain): Use safer "do nothing".
 	(ngettext, dngettext, dcngettext): Define when !ENABLE_NLS.
 
diff --git a/gas/as.c b/gas/as.c
index 4717559..31e6280 100644
--- a/gas/as.c
+++ b/gas/as.c
@@ -1316,15 +1316,10 @@ main (int argc, char ** argv)
       n_warns = had_warnings ();
       n_errs = had_errors ();
 
-      if (n_warns == 1)
-	sprintf (warn_msg, _("%d warning"), n_warns);
-      else
-	sprintf (warn_msg, _("%d warnings"), n_warns);
-      if (n_errs == 1)
-	sprintf (err_msg, _("%d error"), n_errs);
-      else
-	sprintf (err_msg, _("%d errors"), n_errs);
-
+      sprintf (warn_msg,
+	       ngettext ("%d warning", "%d warnings", n_warns), n_warns);
+      sprintf (err_msg,
+	       ngettext ("%d error", "%d errors", n_errs), n_errs);
       if (flag_fatal_warnings && n_warns != 0)
 	{
 	  if (n_errs == 0)
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index f52cf7f..86d6ea5 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -3552,7 +3552,9 @@ s_arm_elf_cons (int nbytes)
 		}
 
 	      if (size > nbytes)
-		as_bad (_("%s relocations do not fit in %d bytes"),
+		as_bad (ngettext ("%s relocations do not fit in %d byte",
+				  "%s relocations do not fit in %d bytes",
+				  nbytes),
 			howto->name, nbytes);
 	      else
 		{
diff --git a/gas/config/tc-cr16.c b/gas/config/tc-cr16.c
index 4205a77..fce52c1 100644
--- a/gas/config/tc-cr16.c
+++ b/gas/config/tc-cr16.c
@@ -178,7 +178,12 @@ l_cons (int nbytes)
               if ((width = exp.X_add_number) >
                   (unsigned int)(BITS_PER_CHAR * nbytes))
                 {
-                  as_warn (_("field width %lu too big to fit in %d bytes: truncated to %d bits"), width, nbytes, (BITS_PER_CHAR * nbytes));
+		  as_warn (ngettext ("field width %lu too big to fit in %d"
+				     " byte: truncated to %d bits",
+				     "field width %lu too big to fit in %d"
+				     " bytes: truncated to %d bits",
+				     nbytes),
+			   width, nbytes, (BITS_PER_CHAR * nbytes));
                   width = BITS_PER_CHAR * nbytes;
                 }                   /* Too big.  */
 
diff --git a/gas/config/tc-i370.c b/gas/config/tc-i370.c
index 995aa4c..a6838b1 100644
--- a/gas/config/tc-i370.c
+++ b/gas/config/tc-i370.c
@@ -680,7 +680,9 @@ i370_elf_cons (int nbytes)   /* 1=.byte, 2=.word, 4=.long.  */
           int size = bfd_get_reloc_size (reloc_howto);
 
           if (size > nbytes)
-            as_bad (_("%s relocations do not fit in %d bytes\n"),
+	    as_bad (ngettext ("%s relocations do not fit in %u byte",
+			      "%s relocations do not fit in %u bytes",
+			      nbytes),
 		    reloc_howto->name, nbytes);
           else
             {
diff --git a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c
index 04e57f4..cba07e2 100644
--- a/gas/config/tc-m68k.c
+++ b/gas/config/tc-m68k.c
@@ -8068,7 +8068,9 @@ m68k_elf_cons (int nbytes /* 4=.long */)
 
 	  if (size > nbytes)
 	    {
-	      as_bad (_("%s relocations do not fit in %d bytes\n"),
+	      as_bad (ngettext ("%s relocations do not fit in %u byte",
+				"%s relocations do not fit in %u bytes",
+				nbytes),
 		      reloc_howto->name, nbytes);
 	    }
 	  else
diff --git a/gas/config/tc-mcore.c b/gas/config/tc-mcore.c
index 2ffb241..21fcc69 100644
--- a/gas/config/tc-mcore.c
+++ b/gas/config/tc-mcore.c
@@ -1947,7 +1947,10 @@ md_apply_fix (fixS *   fixP,
     case BFD_RELOC_MCORE_PCREL_IMM11BY2:
       if ((val & 1) != 0)
 	as_bad_where (file, fixP->fx_line,
-		      _("odd distance branch (0x%lx bytes)"), (long) val);
+		      ngettext ("odd distance branch (0x%lx byte)",
+				"odd distance branch (0x%lx bytes)",
+				(long) val),
+		      (long) val);
       val /= 2;
       if (((val & ~0x3ff) != 0) && ((val | 0x3ff) != -1))
 	as_bad_where (file, fixP->fx_line,
diff --git a/gas/config/tc-msp430.c b/gas/config/tc-msp430.c
index 6f3acdf..a56e7f2 100644
--- a/gas/config/tc-msp430.c
+++ b/gas/config/tc-msp430.c
@@ -2601,7 +2601,9 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line)
       && opcode->insn_opnumb
       && (!*line || *line == '\n'))
     {
-      as_bad (_("instruction %s requires %d operand(s)"),
+      as_bad (ngettext ("instruction %s requires %d operand",
+			"instruction %s requires %d operands",
+			opcode->insn_opnumb),
 	      opcode->name, opcode->insn_opnumb);
       return 0;
     }
diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
index 84b2e27..48a2f9b 100644
--- a/gas/config/tc-s390.c
+++ b/gas/config/tc-s390.c
@@ -1206,7 +1206,9 @@ s390_elf_cons (int nbytes /* 1=.byte, 2=.word, 4=.long */)
 	    {
 	      size = bfd_get_reloc_size (reloc_howto);
 	      if (size > nbytes)
-		as_bad (_("%s relocations do not fit in %d bytes"),
+		as_bad (ngettext ("%s relocations do not fit in %d byte",
+				  "%s relocations do not fit in %d bytes",
+				  nbytes),
 			reloc_howto->name, nbytes);
 	      where = frag_more (nbytes);
 	      md_number_to_chars (where, 0, size);
@@ -1860,7 +1862,9 @@ s390_literals (int ignore ATTRIBUTE_UNUSED)
 	  char *where;
 
 	  if (size > lpe->nbytes)
-	    as_bad (_("%s relocations do not fit in %d bytes"),
+	    as_bad (ngettext ("%s relocations do not fit in %d byte",
+			      "%s relocations do not fit in %d bytes",
+			      lpe->nbytes),
 		    reloc_howto->name, lpe->nbytes);
 	  where = frag_more (lpe->nbytes);
 	  md_number_to_chars (where, 0, size);
diff --git a/gas/config/tc-tic54x.c b/gas/config/tc-tic54x.c
index f7dc0f5..ea6c57f 100644
--- a/gas/config/tc-tic54x.c
+++ b/gas/config/tc-tic54x.c
@@ -4843,8 +4843,11 @@ md_assemble (char *line)
 	    {
 	      if (words > delay_slots)
 		{
-		  as_bad (_("Instruction does not fit in available delay "
-			    "slots (%d-word insn, %d slots left)"),
+		  as_bad (ngettext ("Instruction does not fit in available "
+				    "delay slots (%d-word insn, %d slot left)",
+				    "Instruction does not fit in available "
+				    "delay slots (%d-word insn, %d slots left)",
+				    delay_slots),
 			  words, delay_slots);
 		  delay_slots = 0;
 		  return;
@@ -4915,9 +4918,13 @@ md_assemble (char *line)
 	{
 	  if (words > delay_slots)
 	    {
-	      as_warn (_("Instruction does not fit in available delay "
-			 "slots (%d-word insn, %d slots left). "
-			 "Resulting behavior is undefined."),
+	      as_warn (ngettext ("Instruction does not fit in available "
+				 "delay slots (%d-word insn, %d slot left). "
+				 "Resulting behavior is undefined.",
+				 "Instruction does not fit in available "
+				 "delay slots (%d-word insn, %d slots left). "
+				 "Resulting behavior is undefined.",
+				 delay_slots),
 		       words, delay_slots);
 	      delay_slots = 0;
 	      return;
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
index 836b550..a73abd0 100644
--- a/gas/config/tc-xtensa.c
+++ b/gas/config/tc-xtensa.c
@@ -1660,7 +1660,9 @@ xtensa_elf_cons (int nbytes)
 	    as_bad (_("opcode-specific %s relocation used outside "
 		      "an instruction"), reloc_howto->name);
 	  else if (nbytes != (int) bfd_get_reloc_size (reloc_howto))
-	    as_bad (_("%s relocations do not fit in %d bytes"),
+	    as_bad (ngettext ("%s relocations do not fit in %d byte",
+			      "%s relocations do not fit in %d bytes",
+			      nbytes),
 		    reloc_howto->name, nbytes);
 	  else if (reloc == BFD_RELOC_XTENSA_TLS_FUNC
 		   || reloc == BFD_RELOC_XTENSA_TLS_ARG
@@ -4014,14 +4016,18 @@ xg_expand_assembly_insn (IStack *istack, TInsn *orig_insn)
 					  orig_insn->opcode);
   if (orig_insn->ntok < noperands)
     {
-      as_bad (_("found %d operands for '%s':  Expected %d"),
+      as_bad (ngettext ("found %d operand for '%s':  Expected %d",
+			"found %d operands for '%s':  Expected %d",
+			orig_insn->ntok),
 	      orig_insn->ntok,
 	      xtensa_opcode_name (xtensa_default_isa, orig_insn->opcode),
 	      noperands);
       return TRUE;
     }
   if (orig_insn->ntok > noperands)
-    as_warn (_("found too many (%d) operands for '%s':  Expected %d"),
+    as_warn (ngettext ("found %d operand for '%s':  Expected %d",
+		       "found %d operands for '%s':  Expected %d",
+		       orig_insn->ntok),
 	     orig_insn->ntok,
 	     xtensa_opcode_name (xtensa_default_isa, orig_insn->opcode),
 	     noperands);
diff --git a/gas/config/xtensa-relax.c b/gas/config/xtensa-relax.c
index 82f1d03..97939e1 100644
--- a/gas/config/xtensa-relax.c
+++ b/gas/config/xtensa-relax.c
@@ -1764,7 +1764,9 @@ build_transition (insn_pattern *initial_insn,
 	  /* Check for the right number of ops.  */
 	  if (xtensa_opcode_num_operands (isa, bi->opcode)
 	      != (int) operand_count)
-	    as_fatal (_("opcode '%s': replacement does not have %d ops"),
+	    as_fatal (ngettext ("opcode '%s': replacement does not have %d op",
+				"opcode '%s': replacement does not have %d ops",
+				xtensa_opcode_num_operands (isa, bi->opcode)),
 		      opcode_name,
 		      xtensa_opcode_num_operands (isa, bi->opcode));
 	}
diff --git a/gas/frags.c b/gas/frags.c
index 7997422..c502017 100644
--- a/gas/frags.c
+++ b/gas/frags.c
@@ -112,7 +112,10 @@ frag_grow (size_t nchars)
 
       /* Check for possible overflow.  */
       if (newc < nchars)
-        as_fatal (_("can't extend frag %lu chars"), (unsigned long) nchars);
+	as_fatal (ngettext ("can't extend frag %lu char",
+			    "can't extend frag %lu chars",
+			    (unsigned long) nchars),
+		  (unsigned long) nchars);
 
       /* Force to allocate at least NEWC bytes, but not less than the
          default.  */
diff --git a/gas/read.c b/gas/read.c
index 9f2909f..17e8162 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -4489,7 +4489,10 @@ emit_expr_with_reloc (expressionS *exp,
 	    }
 
 	  if (i < exp->X_add_number)
-	    as_warn (_("bignum truncated to %d bytes"), nbytes);
+	    as_warn (ngettext ("bignum truncated to %d byte",
+			       "bignum truncated to %d bytes",
+			       nbytes),
+		     nbytes);
 	  size = nbytes;
 	}
 
@@ -4565,7 +4568,9 @@ emit_expr_fix (expressionS *exp, unsigned int nbytes, fragS *frag, char *p,
 
       if (size > nbytes)
 	{
-	  as_bad (_("%s relocations do not fit in %u bytes\n"),
+	  as_bad (ngettext ("%s relocations do not fit in %u byte",
+			    "%s relocations do not fit in %u bytes",
+			    nbytes),
 		  reloc_howto->name, nbytes);
 	  return;
 	}
@@ -4674,7 +4679,11 @@ parse_bitfield_cons (expressionS *exp, unsigned int nbytes)
 
 	  if ((width = exp->X_add_number) > (BITS_PER_CHAR * nbytes))
 	    {
-	      as_warn (_("field width %lu too big to fit in %d bytes: truncated to %d bits"),
+	      as_warn (ngettext ("field width %lu too big to fit in %d byte:"
+				 " truncated to %d bits",
+				 "field width %lu too big to fit in %d bytes:"
+				 " truncated to %d bits",
+				 nbytes),
 		       width, nbytes, (BITS_PER_CHAR * nbytes));
 	      width = BITS_PER_CHAR * nbytes;
 	    }			/* Too big.  */
diff --git a/gas/write.c b/gas/write.c
index df88905..690852c 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -1106,7 +1106,11 @@ fixup_segment (fixS *fixP, segT this_segment)
 		  else
 		    sprintf (buf2, "%ld", (long) add_number);
 		  as_bad_where (fixP->fx_file, fixP->fx_line,
-				_("value of %s too large for field of %d bytes at %s"),
+				ngettext ("value of %s too large for field "
+					  "of %d byte at %s",
+					  "value of %s too large for field "
+					  "of %d bytes at %s",
+					  fixP->fx_size),
 				buf2, fixP->fx_size, buf);
 		} /* Generic error checking.  */
 	    }
@@ -1458,7 +1462,10 @@ compress_debug (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
   if (obstack_room (ob) < header_size)
     first_newf = frag_alloc (ob);
   if (obstack_room (ob) < header_size)
-    as_fatal (_("can't extend frag %u chars"), header_size);
+    as_fatal (ngettext ("can't extend frag %lu char",
+			"can't extend frag %lu chars",
+			(unsigned long) header_size),
+	      (unsigned long) header_size);
   last_newf = first_newf;
   obstack_blank_fast (ob, header_size);
   last_newf->fr_type = rs_fill;
@@ -1593,9 +1600,13 @@ write_contents (bfd *abfd ATTRIBUTE_UNUSED,
 					f->fr_literal, (file_ptr) offset,
 					(bfd_size_type) f->fr_fix);
 	  if (!x)
-	    as_fatal (_("can't write %ld bytes to section %s of %s because: '%s'"),
-		      (long) f->fr_fix, sec->name,
-		      stdoutput->filename,
+	    as_fatal (ngettext ("can't write %ld byte "
+				"to section %s of %s: '%s'",
+				"can't write %ld bytes "
+				"to section %s of %s: '%s'",
+				(long) f->fr_fix),
+		      (long) f->fr_fix,
+		      sec->name, stdoutput->filename,
 		      bfd_errmsg (bfd_get_error ()));
 	  offset += f->fr_fix;
 	}
@@ -1616,9 +1627,13 @@ write_contents (bfd *abfd ATTRIBUTE_UNUSED,
 						(file_ptr) offset,
 						(bfd_size_type) fill_size);
 		  if (!x)
-		    as_fatal (_("can't fill %ld bytes in section %s of %s because '%s'"),
-			      (long) fill_size, sec->name,
-			      stdoutput->filename,
+		    as_fatal (ngettext ("can't fill %ld byte "
+					"in section %s of %s: '%s'",
+					"can't fill %ld bytes "
+					"in section %s of %s: '%s'",
+					(long) fill_size),
+			      (long) fill_size,
+			      sec->name, stdoutput->filename,
 			      bfd_errmsg (bfd_get_error ()));
 		  offset += fill_size;
 		}
@@ -1648,9 +1663,13 @@ write_contents (bfd *abfd ATTRIBUTE_UNUSED,
 		    (stdoutput, sec, buf, (file_ptr) offset,
 		     (bfd_size_type) n_per_buf * fill_size);
 		  if (!x)
-		    as_fatal (_("cannot fill %ld bytes in section %s of %s because: '%s'"),
-			      (long)(n_per_buf * fill_size), sec->name,
-			      stdoutput->filename,
+		    as_fatal (ngettext ("can't fill %ld byte "
+					"in section %s of %s: '%s'",
+					"can't fill %ld bytes "
+					"in section %s of %s: '%s'",
+					(long) (n_per_buf * fill_size)),
+			      (long) (n_per_buf * fill_size),
+			      sec->name, stdoutput->filename,
 			      bfd_errmsg (bfd_get_error ()));
 		  offset += n_per_buf * fill_size;
 		}
@@ -2422,7 +2441,11 @@ relax_segment (struct frag *segment_frag_root, segT segment, int pass)
 	    if (offset % fragP->fr_var != 0)
 	      {
 		as_bad_where (fragP->fr_file, fragP->fr_line,
-			      _("alignment padding (%lu bytes) not a multiple of %ld"),
+			      ngettext ("alignment padding (%lu byte) "
+					"not a multiple of %ld",
+					"alignment padding (%lu bytes) "
+					"not a multiple of %ld",
+					(unsigned long) offset),
 			      (unsigned long) offset, (long) fragP->fr_var);
 		offset -= (offset % fragP->fr_var);
 	      }
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 48d771f..a76dde7 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,5 +1,10 @@
 2017-11-07  Alan Modra  <amodra@gmail.com>
 
+	* ldlang.c (lang_size_sections_1): Properly pluralize messages.
+	(lang_check_section_addresses): Likewise.
+
+2017-11-07  Alan Modra  <amodra@gmail.com>
+
 	* ld.h (textdomain, bindtextdomain): Use safer "do nothing".
 	(ngettext, dngettext, dcngettext): Define when !ENABLE_NLS.
 
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 3ed7078..b89c4e6 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -4929,8 +4929,13 @@ lang_check_section_addresses (void)
      a bfd_vma quantity in decimal.  */
   for (m = lang_memory_region_list; m; m = m->next)
     if (m->had_full_message)
-      einfo (_("%X%P: region `%s' overflowed by %ld bytes\n"),
-	     m->name_list.name, (long)(m->current - (m->origin + m->length)));
+      {
+	unsigned long over = m->current - (m->origin + m->length);
+	einfo (ngettext ("%X%P: region `%s' overflowed by %lu byte\n",
+			 "%X%P: region `%s' overflowed by %lu bytes\n",
+			 over),
+	       m->name_list.name, over);
+      }
 }
 
 /* Make sure the new address is within the region.  We explicitly permit the
@@ -5130,8 +5135,11 @@ lang_size_sections_1
 			&& (config.warn_section_align
 			    || os->addr_tree != NULL)
 			&& expld.phase != lang_mark_phase_enum)
-		      einfo (_("%P: warning: changing start of section"
-			       " %s by %lu bytes\n"),
+		      einfo (ngettext ("%P: warning: changing start of "
+				       "section %s by %lu byte\n",
+				       "%P: warning: changing start of "
+				       "section %s by %lu bytes\n",
+				       (unsigned long) dotdelta),
 			     os->name, (unsigned long) dotdelta);
 		  }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]