Hi Frédéric,

Several untranlated strings exist in binutils 2.20 in function
process_mips_specific of readelf.c.

Actually there seems to be a lot of places in the binutils code that need translation macros added. I am going to check in the attached patch in order to address this problem.

Cheers
  Nick

binutils/ChangeLog
2010-04-20  Nick Clifton  <ni...@redhat.com>

        * readelf.c: Add _() macros to constant strings that are
        translatable.
Index: binutils/readelf.c
===================================================================
RCS file: /cvs/src/src/binutils/readelf.c,v
retrieving revision 1.493
diff -c -3 -p -r1.493 readelf.c
*** binutils/readelf.c	15 Apr 2010 10:56:36 -0000	1.493
--- binutils/readelf.c	20 Apr 2010 07:11:11 -0000
*************** static void (* byte_put) (unsigned char 
*** 263,272 ****
  
  #define UNKNOWN -1
  
! #define SECTION_NAME(X)	\
!   ((X) == NULL ? "<none>" \
!   : string_table == NULL ? "<no-name>" \
!   : ((X)->sh_name >= string_table_length ? "<corrupt>" \
    : string_table + (X)->sh_name))
  
  #define DT_VERSIONTAGIDX(tag)	(DT_VERNEEDNUM - (tag))	/* Reverse order!  */
--- 263,272 ----
  
  #define UNKNOWN -1
  
! #define SECTION_NAME(X)						\
!   ((X) == NULL ? _("<none>")					\
!    : string_table == NULL ? _("<no-name>")			\
!    : ((X)->sh_name >= string_table_length ? _("<corrupt>")	\
    : string_table + (X)->sh_name))
  
  #define DT_VERSIONTAGIDX(tag)	(DT_VERNEEDNUM - (tag))	/* Reverse order!  */
*************** dump_relocations (FILE * file,
*** 1302,1308 ****
        else if (symtab_index)
  	{
  	  if (symtab == NULL || symtab_index >= nsyms)
! 	    printf (" bad symbol index: %08lx", (unsigned long) symtab_index);
  	  else
  	    {
  	      Elf_Internal_Sym * psym;
--- 1302,1308 ----
        else if (symtab_index)
  	{
  	  if (symtab == NULL || symtab_index >= nsyms)
! 	    printf (_(" bad symbol index: %08lx"), (unsigned long) symtab_index);
  	  else
  	    {
  	      Elf_Internal_Sym * psym;
*************** decode_ARM_machine_flags (unsigned e_fla
*** 2200,2206 ****
      }
  
    if (unknown)
!     strcat (buf,", <unknown>");
  }
  
  static char *
--- 2200,2206 ----
      }
  
    if (unknown)
!     strcat (buf,_(", <unknown>"));
  }
  
  static char *
*************** get_machine_flags (unsigned e_flags, uns
*** 2326,2335 ****
  	    strcat (buf, ", emb");
  
  	  if (e_flags & EF_PPC_RELOCATABLE)
! 	    strcat (buf, ", relocatable");
  
  	  if (e_flags & EF_PPC_RELOCATABLE_LIB)
! 	    strcat (buf, ", relocatable-lib");
  	  break;
  
  	case EM_V850:
--- 2326,2335 ----
  	    strcat (buf, ", emb");
  
  	  if (e_flags & EF_PPC_RELOCATABLE)
! 	    strcat (buf, _(", relocatable"));
  
  	  if (e_flags & EF_PPC_RELOCATABLE_LIB)
! 	    strcat (buf, _(", relocatable-lib"));
  	  break;
  
  	case EM_V850:
*************** get_machine_flags (unsigned e_flags, uns
*** 2346,2352 ****
  	      strcat (buf, ", v850");
  	      break;
  	    default:
! 	      strcat (buf, ", unknown v850 architecture variant");
  	      break;
  	    }
  	  break;
--- 2346,2352 ----
  	      strcat (buf, ", v850");
  	      break;
  	    default:
! 	      strcat (buf, _(", unknown v850 architecture variant"));
  	      break;
  	    }
  	  break;
*************** get_machine_flags (unsigned e_flags, uns
*** 2402,2408 ****
  	       MIPS ELF does not specify EF_MIPS_MACH, it is a GNU
  	       extension.  */
  	      break;
! 	    default: strcat (buf, ", unknown CPU"); break;
  	    }
  
  	  switch ((e_flags & EF_MIPS_ABI))
--- 2402,2408 ----
  	       MIPS ELF does not specify EF_MIPS_MACH, it is a GNU
  	       extension.  */
  	      break;
! 	    default: strcat (buf, _(", unknown CPU")); break;
  	    }
  
  	  switch ((e_flags & EF_MIPS_ABI))
*************** get_machine_flags (unsigned e_flags, uns
*** 2417,2423 ****
  	       This means it is likely to be an o32 file, but not for
  	       sure.  */
  	      break;
! 	    default: strcat (buf, ", unknown ABI"); break;
  	    }
  
  	  if (e_flags & EF_MIPS_ARCH_ASE_MDMX)
--- 2417,2423 ----
  	       This means it is likely to be an o32 file, but not for
  	       sure.  */
  	      break;
! 	    default: strcat (buf, _(", unknown ABI")); break;
  	    }
  
  	  if (e_flags & EF_MIPS_ARCH_ASE_MDMX)
*************** get_machine_flags (unsigned e_flags, uns
*** 2437,2443 ****
  	    case E_MIPS_ARCH_32R2: strcat (buf, ", mips32r2"); break;
  	    case E_MIPS_ARCH_64: strcat (buf, ", mips64"); break;
  	    case E_MIPS_ARCH_64R2: strcat (buf, ", mips64r2"); break;
! 	    default: strcat (buf, ", unknown ISA"); break;
  	    }
  
  	  break;
--- 2437,2443 ----
  	    case E_MIPS_ARCH_32R2: strcat (buf, ", mips32r2"); break;
  	    case E_MIPS_ARCH_64: strcat (buf, ", mips64"); break;
  	    case E_MIPS_ARCH_64R2: strcat (buf, ", mips64r2"); break;
! 	    default: strcat (buf, _(", unknown ISA")); break;
  	    }
  
  	  break;
*************** get_machine_flags (unsigned e_flags, uns
*** 2466,2472 ****
  	    case EF_SH2A_SH3_NOFPU: strcat (buf, ", sh2a-nofpu-or-sh3-nommu"); break;
  	    case EF_SH2A_SH4: strcat (buf, ", sh2a-or-sh4"); break;
  	    case EF_SH2A_SH3E: strcat (buf, ", sh2a-or-sh3e"); break;
! 	    default: strcat (buf, ", unknown ISA"); break;
  	    }
  
  	  break;
--- 2466,2472 ----
  	    case EF_SH2A_SH3_NOFPU: strcat (buf, ", sh2a-nofpu-or-sh3-nommu"); break;
  	    case EF_SH2A_SH4: strcat (buf, ", sh2a-or-sh4"); break;
  	    case EF_SH2A_SH3E: strcat (buf, ", sh2a-or-sh3e"); break;
! 	    default: strcat (buf, _(", unknown ISA")); break;
  	    }
  
  	  break;
*************** process_file_header (void)
*** 3455,3461 ****
  	      (elf_header.e_ident[EI_VERSION] == EV_CURRENT
  	       ? "(current)"
  	       : (elf_header.e_ident[EI_VERSION] != EV_NONE
! 		  ? "<unknown: %lx>"
  		  : "")));
        printf (_("  OS/ABI:                            %s\n"),
  	      get_osabi_name (elf_header.e_ident[EI_OSABI]));
--- 3455,3461 ----
  	      (elf_header.e_ident[EI_VERSION] == EV_CURRENT
  	       ? "(current)"
  	       : (elf_header.e_ident[EI_VERSION] != EV_NONE
! 		  ? _("<unknown: %lx>")
  		  : "")));
        printf (_("  OS/ABI:                            %s\n"),
  	      get_osabi_name (elf_header.e_ident[EI_OSABI]));
*************** process_file_header (void)
*** 3504,3510 ****
  	printf (" (%u)", section_headers[0].sh_link);
        else if (elf_header.e_shstrndx != SHN_UNDEF
  	       && elf_header.e_shstrndx >= elf_header.e_shnum)
! 	printf (" <corrupt: out of range>");
        putc ('\n', stdout);
      }
  
--- 3504,3510 ----
  	printf (" (%u)", section_headers[0].sh_link);
        else if (elf_header.e_shstrndx != SHN_UNDEF
  	       && elf_header.e_shstrndx >= elf_header.e_shnum)
! 	printf (_(" <corrupt: out of range>"));
        putc ('\n', stdout);
      }
  
*************** get_elf_section_flags (bfd_vma sh_flags)
*** 4328,4334 ****
  	      *p++ = ',';
  	      *p++ = ' ';
  	    }
! 	  sprintf (p, "UNKNOWN (%*.*lx)", field_size, field_size,
  		   (unsigned long) unknown_flags);
  	  p += 10 + field_size;
  	}
--- 4328,4334 ----
  	      *p++ = ',';
  	      *p++ = ' ';
  	    }
! 	  sprintf (p, _("UNKNOWN (%*.*lx)"), field_size, field_size,
  		   (unsigned long) unknown_flags);
  	  p += 10 + field_size;
  	}
*************** process_section_groups (FILE * file)
*** 4925,4931 ****
  		  strtab_size = strtab != NULL ? strtab_sec->sh_size : 0;
  		}
  	      group_name = sym->st_name < strtab_size
! 			   ? strtab + sym->st_name : "<corrupt>";
  	    }
  
  	  start = (unsigned char *) get_data (NULL, file, section->sh_offset,
--- 4925,4931 ----
  		  strtab_size = strtab != NULL ? strtab_sec->sh_size : 0;
  		}
  	      group_name = sym->st_name < strtab_size
! 		? strtab + sym->st_name : _("<corrupt>");
  	    }
  
  	  start = (unsigned char *) get_data (NULL, file, section->sh_offset,
*************** process_section_groups (FILE * file)
*** 4939,4945 ****
  
  	  if (do_section_groups)
  	    {
! 	      printf ("\n%sgroup section [%5u] `%s' [%s] contains %u sections:\n",
  		      get_group_flags (entry), i, name, group_name, size);
  
  	      printf (_("   [Index]    Name\n"));
--- 4939,4945 ----
  
  	  if (do_section_groups)
  	    {
! 	      printf (_("\n%sgroup section [%5u] `%s' [%s] contains %u sections:\n"),
  		      get_group_flags (entry), i, name, group_name, size);
  
  	      printf (_("   [Index]    Name\n"));
*************** find_symbol_for_address (Elf_Internal_Sy
*** 5251,5257 ****
    if (best)
      {
        *symname = (best->st_name >= strtab_size
! 		  ? "<corrupt>" : strtab + best->st_name);
        *offset = dist;
        return;
      }
--- 5251,5257 ----
    if (best)
      {
        *symname = (best->st_name >= strtab_size
! 		  ? _("<corrupt>") : strtab + best->st_name);
        *offset = dist;
        return;
      }
*************** dump_ia64_unwind (struct ia64_unw_aux_in
*** 5305,5311 ****
  
        if (UNW_VER (stamp) != 1)
  	{
! 	  printf ("\tUnknown version.\n");
  	  continue;
  	}
  
--- 5305,5311 ----
  
        if (UNW_VER (stamp) != 1)
  	{
! 	  printf (_("\tUnknown version.\n"));
  	  continue;
  	}
  
*************** decode_arm_unwind (struct arm_unw_aux_in
*** 6120,6126 ****
      }					\
    else					\
      {					\
!       printf ("[Truncated opcode]\n");	\
        return;				\
      }					\
    printf (_("0x%02x "), OP)
--- 6120,6126 ----
      }					\
    else					\
      {					\
!       printf (_("[Truncated opcode]\n"));	\
        return;				\
      }					\
    printf (_("0x%02x "), OP)
*************** decode_arm_unwind (struct arm_unw_aux_in
*** 6232,6237 ****
--- 6232,6238 ----
  	      unsigned int mask = ((op & 0x0f) << 8) | op2;
  	      int first = 1;
  	      int i;
+ 
  	      printf ("pop {");
  	      for (i = 0; i < 12; i++)
  		if (mask & (1 << i))
*************** dynamic_section_mips_val (Elf_Internal_D
*** 6513,6519 ****
      {
      case DT_MIPS_FLAGS:
        if (entry->d_un.d_val == 0)
! 	printf ("NONE\n");
        else
  	{
  	  static const char * opts[] =
--- 6514,6520 ----
      {
      case DT_MIPS_FLAGS:
        if (entry->d_un.d_val == 0)
! 	printf (_("NONE\n"));
        else
  	{
  	  static const char * opts[] =
*************** dynamic_section_mips_val (Elf_Internal_D
*** 6526,6531 ****
--- 6527,6533 ----
  	  };
  	  unsigned int cnt;
  	  int first = 1;
+ 
  	  for (cnt = 0; cnt < ARRAY_SIZE (opts); ++cnt)
  	    if (entry->d_un.d_val & (1 << cnt))
  	      {
*************** dynamic_section_mips_val (Elf_Internal_D
*** 6538,6546 ****
  
      case DT_MIPS_IVERSION:
        if (VALID_DYNAMIC_NAME (entry->d_un.d_val))
! 	printf ("Interface Version: %s\n", GET_DYNAMIC_NAME (entry->d_un.d_val));
        else
! 	printf ("<corrupt: %ld>\n", (long) entry->d_un.d_ptr);
        break;
  
      case DT_MIPS_TIME_STAMP:
--- 6540,6548 ----
  
      case DT_MIPS_IVERSION:
        if (VALID_DYNAMIC_NAME (entry->d_un.d_val))
! 	printf (_("Interface Version: %s\n"), GET_DYNAMIC_NAME (entry->d_un.d_val));
        else
! 	printf (_("<corrupt: %ld>\n"), (long) entry->d_un.d_ptr);
        break;
  
      case DT_MIPS_TIME_STAMP:
*************** dynamic_section_mips_val (Elf_Internal_D
*** 6553,6559 ****
  	snprintf (timebuf, sizeof (timebuf), "%04u-%02u-%02uT%02u:%02u:%02u",
  		  tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
  		  tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
! 	printf ("Time Stamp: %s\n", timebuf);
        }
        break;
  
--- 6555,6561 ----
  	snprintf (timebuf, sizeof (timebuf), "%04u-%02u-%02uT%02u:%02u:%02u",
  		  tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
  		  tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
! 	printf (_("Time Stamp: %s\n"), timebuf);
        }
        break;
  
*************** dynamic_section_mips_val (Elf_Internal_D
*** 6578,6584 ****
      }
  }
  
- 
  static void
  dynamic_section_parisc_val (Elf_Internal_Dyn * entry)
  {
--- 6580,6585 ----
*************** print_dynamic_flags (bfd_vma flags)
*** 6776,6782 ****
  	case DF_TEXTREL:	fputs ("TEXTREL", stdout); break;
  	case DF_BIND_NOW:	fputs ("BIND_NOW", stdout); break;
  	case DF_STATIC_TLS:	fputs ("STATIC_TLS", stdout); break;
! 	default:		fputs ("unknown", stdout); break;
  	}
      }
    puts ("");
--- 6777,6783 ----
  	case DF_TEXTREL:	fputs ("TEXTREL", stdout); break;
  	case DF_BIND_NOW:	fputs ("BIND_NOW", stdout); break;
  	case DF_STATIC_TLS:	fputs ("STATIC_TLS", stdout); break;
! 	default:		fputs (_("unknown"), stdout); break;
  	}
      }
    puts ("");
*************** process_dynamic_section (FILE * file)
*** 7253,7259 ****
  	  if (do_dynamic)
  	    {
  	      print_vma (entry->d_un.d_val, UNSIGNED);
! 	      printf (" (bytes)\n");
  	    }
  	  break;
  
--- 7254,7260 ----
  	  if (do_dynamic)
  	    {
  	      print_vma (entry->d_un.d_val, UNSIGNED);
! 	      printf (_(" (bytes)\n"));
  	    }
  	  break;
  
*************** get_ver_flags (unsigned int flags)
*** 7383,7389 ****
      }
  
    if (flags & ~(VER_FLG_BASE | VER_FLG_WEAK | VER_FLG_INFO))
!     strcat (buff, "| <unknown>");
  
    return buff;
  }
--- 7384,7390 ----
      }
  
    if (flags & ~(VER_FLG_BASE | VER_FLG_WEAK | VER_FLG_INFO))
!     strcat (buff, _("| <unknown>"));
  
    return buff;
  }
*************** process_version_sections (FILE * file)
*** 7425,7431 ****
  		    (unsigned long) section->sh_offset, section->sh_link,
  		    section->sh_link < elf_header.e_shnum
  		    ? SECTION_NAME (section_headers + section->sh_link)
! 		    : "<corrupt>");
  
  	    edefs = (Elf_External_Verdef *)
                  get_data (NULL, file, section->sh_offset, 1,section->sh_size,
--- 7426,7432 ----
  		    (unsigned long) section->sh_offset, section->sh_link,
  		    section->sh_link < elf_header.e_shnum
  		    ? SECTION_NAME (section_headers + section->sh_link)
! 		    : _("<corrupt>"));
  
  	    edefs = (Elf_External_Verdef *)
                  get_data (NULL, file, section->sh_offset, 1,section->sh_size,
*************** process_version_sections (FILE * file)
*** 7527,7533 ****
  		    (unsigned long) section->sh_offset, section->sh_link,
  		    section->sh_link < elf_header.e_shnum
  		    ? SECTION_NAME (section_headers + section->sh_link)
! 		    : "<corrupt>");
  
  	    eneed = (Elf_External_Verneed *) get_data (NULL, file,
                                                         section->sh_offset, 1,
--- 7528,7534 ----
  		    (unsigned long) section->sh_offset, section->sh_link,
  		    section->sh_link < elf_header.e_shnum
  		    ? SECTION_NAME (section_headers + section->sh_link)
! 		    : _("<corrupt>"));
  
  	    eneed = (Elf_External_Verneed *) get_data (NULL, file,
                                                         section->sh_offset, 1,
*************** print_dynamic_symbol (bfd_vma si, unsign
*** 8075,8081 ****
    if (VALID_DYNAMIC_NAME (psym->st_name))
      print_symbol (25, GET_DYNAMIC_NAME (psym->st_name));
    else
!     printf (" <corrupt: %14ld>", psym->st_name);
    putchar ('\n');
  }
  
--- 8076,8082 ----
    if (VALID_DYNAMIC_NAME (psym->st_name))
      print_symbol (25, GET_DYNAMIC_NAME (psym->st_name));
    else
!     printf (_(" <corrupt: %14ld>"), psym->st_name);
    putchar ('\n');
  }
  
*************** process_symbol_table (FILE * file)
*** 8382,8388 ****
  		printf (" [%s] ", get_symbol_other (psym->st_other ^ ELF_ST_VISIBILITY (psym->st_other)));
  	      printf (" %4s ", get_symbol_index_type (psym->st_shndx));
  	      print_symbol (25, psym->st_name < strtab_size
! 			    ? strtab + psym->st_name : "<corrupt>");
  
  	      if (section->sh_type == SHT_DYNSYM &&
  		  version_info[DT_VERSIONTAGIDX (DT_VERSYM)] != 0)
--- 8383,8389 ----
  		printf (" [%s] ", get_symbol_other (psym->st_other ^ ELF_ST_VISIBILITY (psym->st_other)));
  	      printf (" %4s ", get_symbol_index_type (psym->st_shndx));
  	      print_symbol (25, psym->st_name < strtab_size
! 			    ? strtab + psym->st_name : _("<corrupt>"));
  
  	      if (section->sh_type == SHT_DYNSYM &&
  		  version_info[DT_VERSIONTAGIDX (DT_VERSYM)] != 0)
*************** process_symbol_table (FILE * file)
*** 8462,8468 ****
  			    {
  			      printf ("@%s (%d)",
  				      ivna.vna_name < strtab_size
! 				      ? strtab + ivna.vna_name : "<corrupt>",
  				      ivna.vna_other);
  			      check_def = 0;
  			    }
--- 8463,8469 ----
  			    {
  			      printf ("@%s (%d)",
  				      ivna.vna_name < strtab_size
! 				      ? strtab + ivna.vna_name : _("<corrupt>"),
  				      ivna.vna_other);
  			      check_def = 0;
  			    }
*************** process_symbol_table (FILE * file)
*** 8515,8521 ****
  				printf ((vers_data & VERSYM_HIDDEN)
  					? "@%s" : "@@%s",
  					ivda.vda_name < strtab_size
! 					? strtab + ivda.vda_name : "<corrupt>");
  			    }
  			}
  		    }
--- 8516,8522 ----
  				printf ((vers_data & VERSYM_HIDDEN)
  					? "@%s" : "@@%s",
  					ivda.vda_name < strtab_size
! 					? strtab + ivda.vda_name : _("<corrupt>"));
  			    }
  			}
  		    }
*************** process_syminfo (FILE * file ATTRIBUTE_U
*** 8691,8697 ****
        if (VALID_DYNAMIC_NAME (dynamic_symbols[i].st_name))
  	print_symbol (30, GET_DYNAMIC_NAME (dynamic_symbols[i].st_name));
        else
! 	printf ("<corrupt: %19ld>", dynamic_symbols[i].st_name);
        putchar (' ');
  
        switch (dynamic_syminfo[i].si_boundto)
--- 8692,8698 ----
        if (VALID_DYNAMIC_NAME (dynamic_symbols[i].st_name))
  	print_symbol (30, GET_DYNAMIC_NAME (dynamic_symbols[i].st_name));
        else
! 	printf (_("<corrupt: %19ld>"), dynamic_symbols[i].st_name);
        putchar (' ');
  
        switch (dynamic_syminfo[i].si_boundto)
*************** display_arm_attribute (unsigned char * p
*** 9939,9949 ****
  	      p += len;
  	      switch (val)
  		{
! 		case 0: printf ("None\n"); break;
! 		case 'A': printf ("Application\n"); break;
! 		case 'R': printf ("Realtime\n"); break;
! 		case 'M': printf ("Microcontroller\n"); break;
! 		case 'S': printf ("Application or Realtime\n"); break;
  		default: printf ("??? (%d)\n", val); break;
  		}
  	      break;
--- 9940,9950 ----
  	      p += len;
  	      switch (val)
  		{
! 		case 0: printf (_("None\n")); break;
! 		case 'A': printf (_("Application\n")); break;
! 		case 'R': printf (_("Realtime\n")); break;
! 		case 'M': printf (_("Microcontroller\n")); break;
! 		case 'S': printf (_("Application or Realtime\n")); break;
  		default: printf ("??? (%d)\n", val); break;
  		}
  	      break;
*************** display_arm_attribute (unsigned char * p
*** 9953,9965 ****
  	      p += len;
  	      switch (val)
  		{
! 		case 0: printf ("None\n"); break;
! 		case 1: printf ("8-byte\n"); break;
! 		case 2: printf ("4-byte\n"); break;
  		case 3: printf ("??? 3\n"); break;
  		default:
  		  if (val <= 12)
! 		    printf ("8-byte and up to %d-byte extended\n", 
  			    1 << val);
  		  else
  		    printf ("??? (%d)\n", val);
--- 9954,9966 ----
  	      p += len;
  	      switch (val)
  		{
! 		case 0: printf (_("None\n")); break;
! 		case 1: printf (_("8-byte\n")); break;
! 		case 2: printf (_("4-byte\n")); break;
  		case 3: printf ("??? 3\n"); break;
  		default:
  		  if (val <= 12)
! 		    printf (_("8-byte and up to %d-byte extended\n"), 
  			    1 << val);
  		  else
  		    printf ("??? (%d)\n", val);
*************** display_arm_attribute (unsigned char * p
*** 9972,9984 ****
  	      p += len;
  	      switch (val)
  		{
! 		case 0: printf ("None\n"); break;
! 		case 1: printf ("8-byte, except leaf SP\n"); break;
! 		case 2: printf ("8-byte\n"); break;
  		case 3: printf ("??? 3\n"); break;
  		default:
  		  if (val <= 12)
! 		    printf ("8-byte and up to %d-byte extended\n", 
  			    1 << val);
  		  else
  		    printf ("??? (%d)\n", val);
--- 9973,9985 ----
  	      p += len;
  	      switch (val)
  		{
! 		case 0: printf (_("None\n")); break;
! 		case 1: printf (_("8-byte, except leaf SP\n")); break;
! 		case 2: printf (_("8-byte\n")); break;
  		case 3: printf ("??? 3\n"); break;
  		default:
  		  if (val <= 12)
! 		    printf (_("8-byte and up to %d-byte extended\n"), 
  			    1 << val);
  		  else
  		    printf ("??? (%d)\n", val);
*************** display_arm_attribute (unsigned char * p
*** 9989,10001 ****
  	    case 32: /* Tag_compatibility.  */
  	      val = read_uleb128 (p, &len);
  	      p += len;
! 	      printf ("flag = %d, vendor = %s\n", val, p);
  	      p += strlen ((char *) p) + 1;
  	      break;
  
  	    case 64: /* Tag_nodefaults.  */
  	      p++;
! 	      printf ("True\n");
  	      break;
  
  	    case 65: /* Tag_also_compatible_with.  */
--- 9990,10002 ----
  	    case 32: /* Tag_compatibility.  */
  	      val = read_uleb128 (p, &len);
  	      p += len;
! 	      printf (_("flag = %d, vendor = %s\n"), val, p);
  	      p += strlen ((char *) p) + 1;
  	      break;
  
  	    case 64: /* Tag_nodefaults.  */
  	      p++;
! 	      printf (_("True\n"));
  	      break;
  
  	    case 65: /* Tag_also_compatible_with.  */
*************** display_gnu_attribute (unsigned char * p
*** 10079,10085 ****
      {
        val = read_uleb128 (p, &len);
        p += len;
!       printf ("flag = %d, vendor = %s\n", val, p);
        p += strlen ((char *) p) + 1;
        return p;
      }
--- 10080,10086 ----
      {
        val = read_uleb128 (p, &len);
        p += len;
!       printf (_("flag = %d, vendor = %s\n"), val, p);
        p += strlen ((char *) p) + 1;
        return p;
      }
*************** display_power_gnu_attribute (unsigned ch
*** 10124,10139 ****
        switch (val)
  	{
  	case 0:
! 	  printf ("Hard or soft float\n");
  	  break;
  	case 1:
! 	  printf ("Hard float\n");
  	  break;
  	case 2:
! 	  printf ("Soft float\n");
  	  break;
  	case 3:
! 	  printf ("Single-precision hard float\n");
  	  break;
  	default:
  	  printf ("??? (%d)\n", val);
--- 10125,10140 ----
        switch (val)
  	{
  	case 0:
! 	  printf (_("Hard or soft float\n"));
  	  break;
  	case 1:
! 	  printf (_("Hard float\n"));
  	  break;
  	case 2:
! 	  printf (_("Soft float\n"));
  	  break;
  	case 3:
! 	  printf (_("Single-precision hard float\n"));
  	  break;
  	default:
  	  printf ("??? (%d)\n", val);
*************** display_power_gnu_attribute (unsigned ch
*** 10150,10159 ****
        switch (val)
  	{
  	case 0:
! 	  printf ("Any\n");
  	  break;
  	case 1:
! 	  printf ("Generic\n");
  	  break;
  	case 2:
  	  printf ("AltiVec\n");
--- 10151,10160 ----
        switch (val)
  	{
  	case 0:
! 	  printf (_("Any\n"));
  	  break;
  	case 1:
! 	  printf (_("Generic\n"));
  	  break;
  	case 2:
  	  printf ("AltiVec\n");
*************** display_power_gnu_attribute (unsigned ch
*** 10176,10188 ****
        switch (val)
         {
         case 0:
!          printf ("Any\n");
           break;
         case 1:
           printf ("r3/r4\n");
           break;
         case 2:
!          printf ("Memory\n");
           break;
         default:
           printf ("??? (%d)\n", val);
--- 10177,10189 ----
        switch (val)
         {
         case 0:
!          printf (_("Any\n"));
           break;
         case 1:
           printf ("r3/r4\n");
           break;
         case 2:
!          printf (_("Memory\n"));
           break;
         default:
           printf ("??? (%d)\n", val);
*************** display_mips_gnu_attribute (unsigned cha
*** 10228,10246 ****
        switch (val)
  	{
  	case 0:
! 	  printf ("Hard or soft float\n");
  	  break;
  	case 1:
! 	  printf ("Hard float (-mdouble-float)\n");
  	  break;
  	case 2:
! 	  printf ("Hard float (-msingle-float)\n");
  	  break;
  	case 3:
! 	  printf ("Soft float\n");
  	  break;
  	case 4:
! 	  printf ("64-bit float (-mips32r2 -mfp64)\n");
  	  break;
  	default:
  	  printf ("??? (%d)\n", val);
--- 10229,10247 ----
        switch (val)
  	{
  	case 0:
! 	  printf (_("Hard or soft float\n"));
  	  break;
  	case 1:
! 	  printf (_("Hard float (double precision)\n"));
  	  break;
  	case 2:
! 	  printf (_("Hard float (single precision)\n"));
  	  break;
  	case 3:
! 	  printf (_("Soft float\n"));
  	  break;
  	case 4:
! 	  printf (_("64-bit float (-mips32r2 -mfp64)\n"));
  	  break;
  	default:
  	  printf ("??? (%d)\n", val);
*************** process_attributes (FILE * file,
*** 10321,10327 ****
  		}
  
  	      len -= section_len;
! 	      printf ("Attribute Section: %s\n", p);
  
  	      if (public_name && streq ((char *) p, public_name))
  		public_section = TRUE;
--- 10322,10328 ----
  		}
  
  	      len -= section_len;
! 	      printf (_("Attribute Section: %s\n"), p);
  
  	      if (public_name && streq ((char *) p, public_name))
  		public_section = TRUE;
*************** process_attributes (FILE * file,
*** 10358,10370 ****
  		  switch (tag)
  		    {
  		    case 1:
! 		      printf ("File Attributes\n");
  		      break;
  		    case 2:
! 		      printf ("Section Attributes:");
  		      goto do_numlist;
  		    case 3:
! 		      printf ("Symbol Attributes:");
  		    do_numlist:
  		      for (;;)
  			{
--- 10359,10371 ----
  		  switch (tag)
  		    {
  		    case 1:
! 		      printf (_("File Attributes\n"));
  		      break;
  		    case 2:
! 		      printf (_("Section Attributes:"));
  		      goto do_numlist;
  		    case 3:
! 		      printf (_("Symbol Attributes:"));
  		    do_numlist:
  		      for (;;)
  			{
*************** process_attributes (FILE * file,
*** 10379,10385 ****
  		      printf ("\n");
  		      break;
  		    default:
! 		      printf ("Unknown tag: %d\n", tag);
  		      public_section = FALSE;
  		      break;
  		    }
--- 10380,10386 ----
  		      printf ("\n");
  		      break;
  		    default:
! 		      printf (_("Unknown tag: %d\n"), tag);
  		      public_section = FALSE;
  		      break;
  		    }
*************** process_attributes (FILE * file,
*** 10398,10404 ****
  		  else
  		    {
  		      /* ??? Do something sensible, like dump hex.  */
! 		      printf ("  Unknown section contexts\n");
  		      p = end;
  		    }
  		}
--- 10399,10405 ----
  		  else
  		    {
  		      /* ??? Do something sensible, like dump hex.  */
! 		      printf (_("  Unknown section contexts\n"));
  		      p = end;
  		    }
  		}
*************** print_mips_got_entry (unsigned char * da
*** 10442,10448 ****
      printf ("%10s", "");
    printf (" ");
    if (data == NULL)
!     printf ("%*s", is_32bit_elf ? 8 : 16, "<unknown>");
    else
      {
        bfd_vma entry;
--- 10443,10449 ----
      printf ("%10s", "");
    printf (" ");
    if (data == NULL)
!     printf ("%*s", is_32bit_elf ? 8 : 16, _("<unknown>"));
    else
      {
        bfd_vma entry;
*************** print_mips_pltgot_entry (unsigned char *
*** 10464,10470 ****
    print_vma (addr, LONG_HEX);
    printf (" ");
    if (data == NULL)
!     printf ("%*s", is_32bit_elf ? 8 : 16, "<unknown>");
    else
      {
        bfd_vma entry;
--- 10465,10471 ----
    print_vma (addr, LONG_HEX);
    printf (" ");
    if (data == NULL)
!     printf ("%*s", is_32bit_elf ? 8 : 16, _("<unknown>"));
    else
      {
        bfd_vma entry;
*************** process_mips_specific (FILE * file)
*** 10562,10570 ****
                                                _("liblist"));
        if (elib)
  	{
! 	  printf ("\nSection '.liblist' contains %lu entries:\n",
  		  (unsigned long) liblistno);
! 	  fputs ("     Library              Time Stamp          Checksum   Version Flags\n",
  		 stdout);
  
  	  for (cnt = 0; cnt < liblistno; ++cnt)
--- 10563,10571 ----
                                                _("liblist"));
        if (elib)
  	{
! 	  printf (_("\nSection '.liblist' contains %lu entries:\n"),
  		  (unsigned long) liblistno);
! 	  fputs (_("     Library              Time Stamp          Checksum   Version Flags\n"),
  		 stdout);
  
  	  for (cnt = 0; cnt < liblistno; ++cnt)
*************** process_mips_specific (FILE * file)
*** 10590,10601 ****
  	      if (VALID_DYNAMIC_NAME (liblist.l_name))
  		print_symbol (20, GET_DYNAMIC_NAME (liblist.l_name));
  	      else
! 		printf ("<corrupt: %9ld>", liblist.l_name);
  	      printf (" %s %#10lx %-7ld", timebuf, liblist.l_checksum,
  		      liblist.l_version);
  
  	      if (liblist.l_flags == 0)
! 		puts (" NONE");
  	      else
  		{
  		  static const struct
--- 10591,10602 ----
  	      if (VALID_DYNAMIC_NAME (liblist.l_name))
  		print_symbol (20, GET_DYNAMIC_NAME (liblist.l_name));
  	      else
! 		printf (_("<corrupt: %9ld>"), liblist.l_name);
  	      printf (" %s %#10lx %-7ld", timebuf, liblist.l_checksum,
  		      liblist.l_version);
  
  	      if (liblist.l_flags == 0)
! 		puts (_(" NONE"));
  	      else
  		{
  		  static const struct
*************** process_mips_specific (FILE * file)
*** 10894,10900 ****
  	  if (VALID_DYNAMIC_NAME (psym->st_name))
  	    print_symbol (25, GET_DYNAMIC_NAME (psym->st_name));
  	  else
! 	    printf ("<corrupt: %14ld>", psym->st_name);
  	  putchar ('\n');
  	}
  
--- 10895,10901 ----
  	  if (VALID_DYNAMIC_NAME (psym->st_name))
  	    print_symbol (25, GET_DYNAMIC_NAME (psym->st_name));
  	  else
! 	    printf (_("<corrupt: %14ld>"), psym->st_name);
  	  putchar ('\n');
  	}
  
*************** process_mips_specific (FILE * file)
*** 10923,10938 ****
  
        printf (_(" Reserved entries:\n"));
        printf (_("  %*s %10s %*s Purpose\n"),
! 	      addr_size * 2, "Address", "Access",
! 	      addr_size * 2, "Initial");
        ent = print_mips_got_entry (data, pltgot, ent);
!       printf (" Lazy resolver\n");
        if (data
  	  && (byte_get (data + ent - pltgot, addr_size)
  	      >> (addr_size * 8 - 1)) != 0)
  	{
  	  ent = print_mips_got_entry (data, pltgot, ent);
! 	  printf (" Module pointer (GNU extension)\n");
  	}
        printf ("\n");
  
--- 10924,10939 ----
  
        printf (_(" Reserved entries:\n"));
        printf (_("  %*s %10s %*s Purpose\n"),
! 	      addr_size * 2, _("Address"), _("Access"),
! 	      addr_size * 2, _("Initial"));
        ent = print_mips_got_entry (data, pltgot, ent);
!       printf (_(" Lazy resolver\n"));
        if (data
  	  && (byte_get (data + ent - pltgot, addr_size)
  	      >> (addr_size * 8 - 1)) != 0)
  	{
  	  ent = print_mips_got_entry (data, pltgot, ent);
! 	  printf (_(" Module pointer (GNU extension)\n"));
  	}
        printf ("\n");
  
*************** process_mips_specific (FILE * file)
*** 10940,10947 ****
  	{
  	  printf (_(" Local entries:\n"));
  	  printf (_("  %*s %10s %*s\n"),
! 		  addr_size * 2, "Address", "Access",
! 		  addr_size * 2, "Initial");
  	  while (ent < local_end)
  	    {
  	      ent = print_mips_got_entry (data, pltgot, ent);
--- 10941,10948 ----
  	{
  	  printf (_(" Local entries:\n"));
  	  printf (_("  %*s %10s %*s\n"),
! 		  addr_size * 2, _("Address"), _("Access"),
! 		  addr_size * 2, _("Initial"));
  	  while (ent < local_end)
  	    {
  	      ent = print_mips_got_entry (data, pltgot, ent);
*************** process_mips_specific (FILE * file)
*** 10956,10964 ****
  
  	  printf (_(" Global entries:\n"));
  	  printf (_("  %*s %10s %*s %*s %-7s %3s %s\n"),
! 		  addr_size * 2, "Address", "Access",
! 		  addr_size * 2, "Initial",
! 		  addr_size * 2, "Sym.Val.", "Type", "Ndx", "Name");
  	  sym_width = (is_32bit_elf ? 80 : 160) - 28 - addr_size * 6 - 1;
  	  for (i = gotsym; i < symtabno; i++)
  	    {
--- 10957,10965 ----
  
  	  printf (_(" Global entries:\n"));
  	  printf (_("  %*s %10s %*s %*s %-7s %3s %s\n"),
! 		  addr_size * 2, _("Address"), _("Access"),
! 		  addr_size * 2, _("Initial"),
! 		  addr_size * 2, _("Sym.Val."), _("Type"), _("Ndx"), _("Name"));
  	  sym_width = (is_32bit_elf ? 80 : 160) - 28 - addr_size * 6 - 1;
  	  for (i = gotsym; i < symtabno; i++)
  	    {
*************** process_mips_specific (FILE * file)
*** 10974,10980 ****
  	      if (VALID_DYNAMIC_NAME (psym->st_name))
  		print_symbol (sym_width, GET_DYNAMIC_NAME (psym->st_name));
  	      else
! 		printf ("<corrupt: %14ld>", psym->st_name);
  	      printf ("\n");
  	    }
  	  printf ("\n");
--- 10975,10981 ----
  	      if (VALID_DYNAMIC_NAME (psym->st_name))
  		print_symbol (sym_width, GET_DYNAMIC_NAME (psym->st_name));
  	      else
! 		printf (_("<corrupt: %14ld>"), psym->st_name);
  	      printf ("\n");
  	    }
  	  printf ("\n");
*************** process_mips_specific (FILE * file)
*** 11015,11032 ****
        printf (_("\nPLT GOT:\n\n"));
        printf (_(" Reserved entries:\n"));
        printf (_("  %*s %*s Purpose\n"),
! 	      addr_size * 2, "Address", addr_size * 2, "Initial");
        ent = print_mips_pltgot_entry (data, mips_pltgot, ent);
!       printf (" PLT lazy resolver\n");
        ent = print_mips_pltgot_entry (data, mips_pltgot, ent);
!       printf (" Module pointer\n");
        printf ("\n");
  
        printf (_(" Entries:\n"));
        printf (_("  %*s %*s %*s %-7s %3s %s\n"),
! 	      addr_size * 2, "Address",
! 	      addr_size * 2, "Initial",
! 	      addr_size * 2, "Sym.Val.", "Type", "Ndx", "Name");
        sym_width = (is_32bit_elf ? 80 : 160) - 17 - addr_size * 6 - 1;
        for (i = 0; i < count; i++)
  	{
--- 11016,11033 ----
        printf (_("\nPLT GOT:\n\n"));
        printf (_(" Reserved entries:\n"));
        printf (_("  %*s %*s Purpose\n"),
! 	      addr_size * 2, _("Address"), addr_size * 2, _("Initial"));
        ent = print_mips_pltgot_entry (data, mips_pltgot, ent);
!       printf (_(" PLT lazy resolver\n"));
        ent = print_mips_pltgot_entry (data, mips_pltgot, ent);
!       printf (_(" Module pointer\n"));
        printf ("\n");
  
        printf (_(" Entries:\n"));
        printf (_("  %*s %*s %*s %-7s %3s %s\n"),
! 	      addr_size * 2, _("Address"),
! 	      addr_size * 2, _("Initial"),
! 	      addr_size * 2, _("Sym.Val."), _("Type"), _("Ndx"), _("Name"));
        sym_width = (is_32bit_elf ? 80 : 160) - 17 - addr_size * 6 - 1;
        for (i = 0; i < count; i++)
  	{
*************** process_mips_specific (FILE * file)
*** 11042,11048 ****
  	  if (VALID_DYNAMIC_NAME (psym->st_name))
  	    print_symbol (sym_width, GET_DYNAMIC_NAME (psym->st_name));
  	  else
! 	    printf ("<corrupt: %14ld>", psym->st_name);
  	  printf ("\n");
  	}
        printf ("\n");
--- 11043,11049 ----
  	  if (VALID_DYNAMIC_NAME (psym->st_name))
  	    print_symbol (sym_width, GET_DYNAMIC_NAME (psym->st_name));
  	  else
! 	    printf (_("<corrupt: %14ld>"), psym->st_name);
  	  printf ("\n");
  	}
        printf ("\n");
*************** process_gnu_liblist (FILE * file)
*** 11103,11109 ****
  		  SECTION_NAME (section),
  		  (unsigned long) (section->sh_size / sizeof (Elf32_External_Lib)));
  
! 	  puts ("     Library              Time Stamp          Checksum   Version Flags");
  
  	  for (cnt = 0; cnt < section->sh_size / sizeof (Elf32_External_Lib);
  	       ++cnt)
--- 11104,11110 ----
  		  SECTION_NAME (section),
  		  (unsigned long) (section->sh_size / sizeof (Elf32_External_Lib)));
  
! 	  puts (_("     Library              Time Stamp          Checksum   Version Flags"));
  
  	  for (cnt = 0; cnt < section->sh_size / sizeof (Elf32_External_Lib);
  	       ++cnt)
*************** process_gnu_liblist (FILE * file)
*** 11128,11137 ****
  	      printf ("%3lu: ", (unsigned long) cnt);
  	      if (do_wide)
  		printf ("%-20s", liblist.l_name < strtab_size
! 				 ? strtab + liblist.l_name : "<corrupt>");
  	      else
  		printf ("%-20.20s", liblist.l_name < strtab_size
! 				    ? strtab + liblist.l_name : "<corrupt>");
  	      printf (" %s %#010lx %-7ld %-7ld\n", timebuf, liblist.l_checksum,
  		      liblist.l_version, liblist.l_flags);
  	    }
--- 11129,11138 ----
  	      printf ("%3lu: ", (unsigned long) cnt);
  	      if (do_wide)
  		printf ("%-20s", liblist.l_name < strtab_size
! 			? strtab + liblist.l_name : _("<corrupt>"));
  	      else
  		printf ("%-20.20s", liblist.l_name < strtab_size
! 			? strtab + liblist.l_name : _("<corrupt>"));
  	      printf (" %s %#010lx %-7ld %-7ld\n", timebuf, liblist.l_checksum,
  		      liblist.l_version, liblist.l_flags);
  	    }
*************** get_netbsd_elfcore_note_type (unsigned e
*** 11268,11276 ****
      case EM_SPARCV9:
        switch (e_type)
  	{
! 	case NT_NETBSDCORE_FIRSTMACH+0:
  	  return _("PT_GETREGS (reg structure)");
! 	case NT_NETBSDCORE_FIRSTMACH+2:
  	  return _("PT_GETFPREGS (fpreg structure)");
  	default:
  	  break;
--- 11269,11277 ----
      case EM_SPARCV9:
        switch (e_type)
  	{
! 	case NT_NETBSDCORE_FIRSTMACH + 0:
  	  return _("PT_GETREGS (reg structure)");
! 	case NT_NETBSDCORE_FIRSTMACH + 2:
  	  return _("PT_GETFPREGS (fpreg structure)");
  	default:
  	  break;
*************** get_netbsd_elfcore_note_type (unsigned e
*** 11282,11290 ****
      default:
        switch (e_type)
  	{
! 	case NT_NETBSDCORE_FIRSTMACH+1:
  	  return _("PT_GETREGS (reg structure)");
! 	case NT_NETBSDCORE_FIRSTMACH+3:
  	  return _("PT_GETFPREGS (fpreg structure)");
  	default:
  	  break;
--- 11283,11291 ----
      default:
        switch (e_type)
  	{
! 	case NT_NETBSDCORE_FIRSTMACH + 1:
  	  return _("PT_GETREGS (reg structure)");
! 	case NT_NETBSDCORE_FIRSTMACH + 3:
  	  return _("PT_GETFPREGS (fpreg structure)");
  	default:
  	  break;
_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to