From d3a49aa80b8a6eab1c684deddad3542c4cdaa497 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 7 Nov 2017 11:18:29 +1030 Subject: readelf ngettext fixes This patch is a first pass at fixing readelf message pluralization. I've deliberately not fixed the "out of memory" errors since it's very unlikely that they will ever be complaining about not being able to allocate for a single entry, and a few others where the size is very unlikely to be 1 byte. Then there are messages like this one: "Out of %lu items there are %zu bucket clashes (longest of %zu entries).\n" I suppose this could be split into three parts, "Of %lu items ", "there are %zu bucket clashes ", and "(longest of %zu entries).\n", each part being printed separately, but that might not be ideal for sentence construction in other languages. For now I'm punting on this one. Changes to readelf output require lots of testsuite adjustment.. binutils/ * dwarf.c (read_uleb128): Properly pluralize messages. (display_debug_lines_raw, display_debug_loc): Likewise. (display_debug_names, process_cu_tu_index): Likewise. * od-macho.c (dump_code_signature_superblob): Likewise. * readelf.c (process_program_headers): Likewise. (process_section_header, process_relocs): Likewise. (hppa_process_unwind, arm_process_unwind): Likewise. (process_dynamic_section, process_version_sections): Likewise. (process_symbol_table, process_syminfo): Likewise. (apply_relocations, process_mips_specific): Likewise. (process_gnu_liblist, process_notes_at): Likewise. (process_archive): Likewise. * testsuite/binutils-all/dw2-1.W, * testsuite/binutils-all/dw2-3.W, * testsuite/binutils-all/dw2-3gabi.W, * testsuite/binutils-all/dw5.S, * testsuite/binutils-all/dw5.W, * testsuite/binutils-all/i386/compressed-1a.d, * testsuite/binutils-all/libdw2-compressedgabi.out, * testsuite/binutils-all/objdump.W, * testsuite/binutils-all/readelf.r, * testsuite/binutils-all/readelf.r-64, * testsuite/binutils-all/x86-64/compressed-1a.d: Update for pluralization fixes. gas/ * testsuite/gas/arm/got_prel.d, * testsuite/gas/elf/dwarf2-1.d, * testsuite/gas/elf/dwarf2-2.d, * testsuite/gas/elf/dwarf2-3.d, * testsuite/gas/elf/dwarf2-5.d, * testsuite/gas/elf/dwarf2-6.d, * testsuite/gas/i386/debug1.d, * testsuite/gas/i386/dw2-compress-1.d, * testsuite/gas/i386/dw2-compress-3a.d, * testsuite/gas/i386/dw2-compress-3b.d, * testsuite/gas/i386/dw2-compressed-1.d, * testsuite/gas/i386/dw2-compressed-3a.d, * testsuite/gas/i386/dw2-compressed-3b.d, * testsuite/gas/i386/ilp32/x86-64-localpic.d, * testsuite/gas/i386/localpic.d, * testsuite/gas/i386/x86-64-localpic.d, * testsuite/gas/ia64/pr13167.d, * testsuite/gas/mips/loc-swap-2.d, * testsuite/gas/mips/loc-swap.d, * testsuite/gas/mips/micromips@loc-swap-2.d, * testsuite/gas/mips/micromips@loc-swap.d, * testsuite/gas/mips/mips16-dwarf2-n32.d, * testsuite/gas/mips/mips16-dwarf2.d, * testsuite/gas/mips/mips16@loc-swap-2.d, * testsuite/gas/mips/mips16@loc-swap.d, * testsuite/gas/mips/mips16e@loc-swap.d, * testsuite/gas/mmix/bspec-1.d, * testsuite/gas/mmix/bspec-2.d, * testsuite/gas/tic6x/unwind-1.d, * testsuite/gas/tic6x/unwind-2.d, * testsuite/gas/tic6x/unwind-3.d: Update for pluralization fixes. ld/ * testsuite/ld-aarch64/ifunc-13.d, * testsuite/ld-aarch64/ifunc-15.d, * testsuite/ld-aarch64/ifunc-20.d, * testsuite/ld-alpha/tlsbin.rd, * testsuite/ld-alpha/tlspic.rd, * testsuite/ld-arm/ifunc-3.rd, * testsuite/ld-arm/ifunc-9.rd, * testsuite/ld-arm/unwind-mix.d, * testsuite/ld-arm/unwind-rel.d, * testsuite/ld-cris/hiddef1.d, * testsuite/ld-cris/libdso-13.d, * testsuite/ld-cris/libdso-2.d, * testsuite/ld-cris/pr16044.d, * testsuite/ld-cris/tls-local-63.d, * testsuite/ld-cris/tls-local-64.d, * testsuite/ld-cris/tls-und-38.d, * testsuite/ld-cris/tls-und-42.d, * testsuite/ld-cris/tls-und-46.d, * testsuite/ld-cris/tls-und-50.d, * testsuite/ld-cris/weakref3.d, * testsuite/ld-cris/weakref4.d, * testsuite/ld-elf/comm-data2r.rd, * testsuite/ld-elf/discard1.d, * testsuite/ld-elf/discard2.d, * testsuite/ld-elf/pr19539.d, * testsuite/ld-elf/pr22374-1.r, * testsuite/ld-elf/pr22374-2.r, * testsuite/ld-i386/combreloc.d, * testsuite/ld-i386/emit-relocs-nacl.rd, * testsuite/ld-i386/emit-relocs.rd, * testsuite/ld-i386/pr13302.d, * testsuite/ld-i386/pr17709-nacl.rd, * testsuite/ld-i386/pr17709.rd, * testsuite/ld-i386/pr19539.d, * testsuite/ld-i386/pr19615.d, * testsuite/ld-i386/pr19636-1a.d, * testsuite/ld-i386/pr19636-1e.d, * testsuite/ld-i386/pr19636-1f.d, * testsuite/ld-i386/pr19636-2a.d, * testsuite/ld-i386/pr19636-2b.d, * testsuite/ld-i386/pr19636-2d-nacl.d, * testsuite/ld-i386/pr19636-2e-nacl.d, * testsuite/ld-i386/pr19636-3a.d, * testsuite/ld-i386/pr19636-3d.d, * testsuite/ld-i386/pr19636-3e.d, * testsuite/ld-i386/pr19636-4a.d, * testsuite/ld-i386/pr19645.d, * testsuite/ld-i386/pr19827-nacl.rd, * testsuite/ld-i386/pr19827.rd, * testsuite/ld-i386/pr20253-4a.d, * testsuite/ld-i386/pr20253-4b.d, * testsuite/ld-i386/pr20253-5.d, * testsuite/ld-i386/tlsbin-nacl.rd, * testsuite/ld-i386/tlsbin.rd, * testsuite/ld-i386/tlspic-nacl.rd, * testsuite/ld-i386/tlspic.rd, * testsuite/ld-i386/undefweakb.d, * testsuite/ld-ia64/tlsbin.rd, * testsuite/ld-ia64/tlspic.rd, * testsuite/ld-ifunc/ifunc-13-i386.d, * testsuite/ld-ifunc/ifunc-13-x86-64.d, * testsuite/ld-ifunc/ifunc-15-i386.d, * testsuite/ld-ifunc/ifunc-15-x86-64.d, * testsuite/ld-ifunc/ifunc-20-i386.d, * testsuite/ld-ifunc/ifunc-20-x86-64.d, * testsuite/ld-ifunc/ifunc-23a-x86.d, * testsuite/ld-ifunc/ifunc-23b-x86.d, * testsuite/ld-ifunc/ifunc-23c-x86.d, * testsuite/ld-ifunc/ifunc-24a-x86.d, * testsuite/ld-ifunc/ifunc-24b-x86.d, * testsuite/ld-ifunc/ifunc-24c-x86.d, * testsuite/ld-ifunc/ifunc-25a-x86.d, * testsuite/ld-ifunc/ifunc-25b-x86.d, * testsuite/ld-ifunc/ifunc-25c-x86.d, * testsuite/ld-m68k/got-1.d, * testsuite/ld-mips-elf/vxworks1.rd, * testsuite/ld-powerpc/ambiguousv1.d, * testsuite/ld-powerpc/ambiguousv1b.d, * testsuite/ld-powerpc/ambiguousv2.d, * testsuite/ld-powerpc/ambiguousv2b.d, * testsuite/ld-powerpc/tlsexe.r, * testsuite/ld-powerpc/tlsexe32.r, * testsuite/ld-powerpc/tlsexetoc.r, * testsuite/ld-powerpc/tlsso.r, * testsuite/ld-powerpc/tlsso32.r, * testsuite/ld-powerpc/tlstocso.r, * testsuite/ld-powerpc/vle-multiseg-1.d, * testsuite/ld-powerpc/vle-multiseg-2.d, * testsuite/ld-powerpc/vle-multiseg-3.d, * testsuite/ld-s390/tlsbin.rd, * testsuite/ld-s390/tlsbin_64.rd, * testsuite/ld-s390/tlspic.rd, * testsuite/ld-s390/tlspic_64.rd, * testsuite/ld-sh/ld-r-1.d, * testsuite/ld-sh/sh64/gotplt.d, * testsuite/ld-sh/shared-1.d, * testsuite/ld-sh/tlsbin-2.d, * testsuite/ld-sh/tlspic-2.d, * testsuite/ld-sparc/gotop32.rd, * testsuite/ld-sparc/gotop64.rd, * testsuite/ld-sparc/tlssunpic32.rd, * testsuite/ld-sparc/tlssunpic64.rd, * testsuite/ld-sparc/vxworks1-lib.rd, * testsuite/ld-tic6x/shlib-app-1.rd, * testsuite/ld-tic6x/shlib-app-1b.rd, * testsuite/ld-tic6x/shlib-app-1r.rd, * testsuite/ld-tic6x/shlib-app-1rb.rd, * testsuite/ld-tic6x/shlib-noindex.rd, * testsuite/ld-vax-elf/export-class-data.rd, * testsuite/ld-x86-64/pr13082-1a.d, * testsuite/ld-x86-64/pr13082-1b.d, * testsuite/ld-x86-64/pr13082-2a.d, * testsuite/ld-x86-64/pr13082-2b.d, * testsuite/ld-x86-64/pr13082-3a.d, * testsuite/ld-x86-64/pr13082-3c.d, * testsuite/ld-x86-64/pr13082-4a.d, * testsuite/ld-x86-64/pr13082-5a.d, * testsuite/ld-x86-64/pr13082-5b.d, * testsuite/ld-x86-64/pr13082-6a.d, * testsuite/ld-x86-64/pr13082-6b.d, * testsuite/ld-x86-64/pr17709-nacl.rd, * testsuite/ld-x86-64/pr17709.rd, * testsuite/ld-x86-64/pr19539a.d, * testsuite/ld-x86-64/pr19539b.d, * testsuite/ld-x86-64/pr19615.d, * testsuite/ld-x86-64/pr19636-1a.d, * testsuite/ld-x86-64/pr19636-1d.d, * testsuite/ld-x86-64/pr19636-1e.d, * testsuite/ld-x86-64/pr19636-2a.d, * testsuite/ld-x86-64/pr19636-2e.d, * testsuite/ld-x86-64/pr19636-2f.d, * testsuite/ld-x86-64/pr19636-3a.d, * testsuite/ld-x86-64/pr19645.d, * testsuite/ld-x86-64/pr19807-2b.d, * testsuite/ld-x86-64/pr19807-2d.d, * testsuite/ld-x86-64/pr19827-nacl.rd, * testsuite/ld-x86-64/pr19827.rd, * testsuite/ld-x86-64/pr20253-4a.d, * testsuite/ld-x86-64/pr20253-4b.d, * testsuite/ld-x86-64/pr20253-4d.d, * testsuite/ld-x86-64/pr20253-4e.d, * testsuite/ld-x86-64/pr20253-5a.d, * testsuite/ld-x86-64/pr20253-5b.d, * testsuite/ld-x86-64/tlsbin-nacl.rd, * testsuite/ld-x86-64/tlsbin.rd, * testsuite/ld-x86-64/tlspic-nacl.rd, * testsuite/ld-x86-64/tlspic.rd, * testsuite/ld-x86-64/tlspic2-nacl.rd: Update for pluralization fixes. --- binutils/ChangeLog | 27 ++++ binutils/dwarf.c | 25 +++- binutils/od-macho.c | 5 +- binutils/readelf.c | 143 ++++++++++++++++----- binutils/testsuite/binutils-all/dw2-1.W | 12 +- binutils/testsuite/binutils-all/dw2-3.W | 12 +- binutils/testsuite/binutils-all/dw2-3gabi.W | 12 +- binutils/testsuite/binutils-all/dw5.S | 12 +- binutils/testsuite/binutils-all/dw5.W | 12 +- .../testsuite/binutils-all/i386/compressed-1a.d | 12 +- .../binutils-all/libdw2-compressedgabi.out | 36 +++--- binutils/testsuite/binutils-all/objdump.W | 12 +- binutils/testsuite/binutils-all/readelf.r | 2 +- binutils/testsuite/binutils-all/readelf.r-64 | 2 +- .../testsuite/binutils-all/x86-64/compressed-1a.d | 12 +- 15 files changed, 226 insertions(+), 110 deletions(-) (limited to 'binutils') diff --git a/binutils/ChangeLog b/binutils/ChangeLog index caf17a9..01d5921 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,5 +1,32 @@ 2017-11-07 Alan Modra + * dwarf.c (read_uleb128): Properly pluralize messages. + (display_debug_lines_raw, display_debug_loc): Likewise. + (display_debug_names, process_cu_tu_index): Likewise. + * od-macho.c (dump_code_signature_superblob): Likewise. + * readelf.c (process_program_headers): Likewise. + (process_section_header, process_relocs): Likewise. + (hppa_process_unwind, arm_process_unwind): Likewise. + (process_dynamic_section, process_version_sections): Likewise. + (process_symbol_table, process_syminfo): Likewise. + (apply_relocations, process_mips_specific): Likewise. + (process_gnu_liblist, process_notes_at): Likewise. + (process_archive): Likewise. + * testsuite/binutils-all/dw2-1.W, + * testsuite/binutils-all/dw2-3.W, + * testsuite/binutils-all/dw2-3gabi.W, + * testsuite/binutils-all/dw5.S, + * testsuite/binutils-all/dw5.W, + * testsuite/binutils-all/i386/compressed-1a.d, + * testsuite/binutils-all/libdw2-compressedgabi.out, + * testsuite/binutils-all/objdump.W, + * testsuite/binutils-all/readelf.r, + * testsuite/binutils-all/readelf.r-64, + * testsuite/binutils-all/x86-64/compressed-1a.d: Update + for pluralization fixes. + +2017-11-07 Alan Modra + * sysdep.h (textdomain, bindtextdomain): Use safer "do nothing". (ngettext, dngettext, dcngettext): Define when !ENABLE_NLS. diff --git a/binutils/dwarf.c b/binutils/dwarf.c index fd9341a..140a988 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -380,7 +380,11 @@ read_uleb128 (unsigned char * data, unsigned int amount = (AMOUNT); \ if (sizeof (VAL) < amount) \ { \ - error (_("internal error: attempt to read %d bytes of data in to %d sized variable"),\ + error (ngettext ("internal error: attempt to read %d byte " \ + "of data in to %d sized variable", \ + "internal error: attempt to read %d bytes " \ + "of data in to %d sized variable", \ + amount), \ amount, (int) sizeof (VAL)); \ amount = sizeof (VAL); \ } \ @@ -3402,7 +3406,10 @@ display_debug_lines_raw (struct dwarf_section *section, printf (_("\n Opcodes:\n")); for (i = 1; i < linfo.li_opcode_base; i++) - printf (_(" Opcode %d has %d args\n"), i, standard_opcodes[i - 1]); + printf (ngettext (" Opcode %d has %d arg\n", + " Opcode %d has %d args\n", + standard_opcodes[i - 1]), + i, standard_opcodes[i - 1]); /* Display the contents of the Directory table. */ data = standard_opcodes + linfo.li_opcode_base - 1; @@ -5981,7 +5988,9 @@ display_debug_loc (struct dwarf_section *section, void *file) } if (start < section->start + section->size) - warn (_("There are %ld unused bytes at the end of section %s\n"), + warn (ngettext ("There is %ld unused byte at the end of section %s\n", + "There are %ld unused bytes at the end of section %s\n", + (long) (section->start + section->size - start)), (long) (section->start + section->size - start), section->name); putchar ('\n'); free (array); @@ -8246,8 +8255,10 @@ display_debug_names (struct dwarf_section *section, void *file) if (bucket != 0) ++buckets_filled; } - printf (_("Used %zu of %lu buckets.\n"), buckets_filled, - (unsigned long) bucket_count); + printf (ngettext ("Used %zu of %lu bucket.\n", + "Used %zu of %lu buckets.\n", + bucket_count), + buckets_filled, (unsigned long) bucket_count); uint32_t hash_prev = 0; size_t hash_clash_count = 0; @@ -8790,7 +8801,9 @@ process_cu_tu_index (struct dwarf_section *section, int do_display) /* PR 17531: file: 45d69832. */ if (pindex < phash || ppool < phdr || (pindex == phash && nslots != 0)) { - warn (_("Section %s is too small for %d slots\n"), + warn (ngettext ("Section %s is too small for %d slot\n", + "Section %s is too small for %d slots\n", + nslots), section->name, nslots); return 0; } diff --git a/binutils/od-macho.c b/binutils/od-macho.c index f5d2cf5..9288655 100644 --- a/binutils/od-macho.c +++ b/binutils/od-macho.c @@ -1074,7 +1074,10 @@ dump_code_signature_superblob (bfd *abfd ATTRIBUTE_UNUSED, return; } count = bfd_getb32 (buf + 8); - printf (_(" %u index entries:\n"), count); + printf (ngettext (" %u index entry:\n", + " %u index entries:\n", + count), + count); if (len < 12 + 8 * count) { printf (_(" [bad block length]\n")); diff --git a/binutils/readelf.c b/binutils/readelf.c index cfd37eb..5e7cbef 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -4915,12 +4915,12 @@ process_program_headers (FILE * file) if (do_segments && !do_header) { printf (_("\nElf file type is %s\n"), get_file_type (elf_header.e_type)); - printf (_("Entry point ")); - print_vma ((bfd_vma) elf_header.e_entry, PREFIX_HEX); - printf (_("\nThere are %d program headers, starting at offset "), - elf_header.e_phnum); - print_vma ((bfd_vma) elf_header.e_phoff, DEC); - printf ("\n"); + printf (_("Entry point 0x%s\n"), bfd_vmatoa ("x", elf_header.e_entry)); + printf (ngettext ("There is %d program header, starting at offset %s\n", + "There are %d program headers, starting at offset %s\n", + elf_header.e_phnum), + elf_header.e_phnum, + bfd_vmatoa ("u", elf_header.e_phoff)); } if (! get_program_headers (file)) @@ -5895,7 +5895,11 @@ process_section_headers (FILE * file) } if (do_sections && !do_header) - printf (_("There are %d section headers, starting at offset 0x%lx:\n"), + printf (ngettext ("There is %d section header, " + "starting at offset 0x%lx:\n", + "There are %d section headers, " + "starting at offset 0x%lx:\n", + elf_header.e_shnum), elf_header.e_shnum, (unsigned long) elf_header.e_shoff); if (is_32bit_elf) @@ -7089,6 +7093,7 @@ process_relocs (FILE * file) { Elf_Internal_Shdr * strsec; int is_rela; + unsigned long num_rela; printf (_("\nRelocation section ")); @@ -7097,8 +7102,11 @@ process_relocs (FILE * file) else printf ("'%s'", printable_section_name (section)); - printf (_(" at offset 0x%lx contains %lu entries:\n"), - rel_offset, (unsigned long) (rel_size / section->sh_entsize)); + num_rela = rel_size / section->sh_entsize; + printf (ngettext (" at offset 0x%lx contains %lu entry:\n", + " at offset 0x%lx contains %lu entries:\n", + num_rela), + rel_offset, num_rela); is_rela = section->sh_type == SHT_RELA; @@ -7992,10 +8000,15 @@ hppa_process_unwind (FILE * file) { if (streq (SECTION_NAME (sec), ".PARISC.unwind")) { - printf (_("\nUnwind section '%s' at offset 0x%lx contains %lu entries:\n"), + unsigned long num_unwind = sec->sh_size / (2 * eh_addr_size + 8); + printf (ngettext ("\nUnwind section '%s' at offset 0x%lx " + "contains %lu entry:\n", + "\nUnwind section '%s' at offset 0x%lx " + "contains %lu entries:\n", + num_unwind), printable_section_name (sec), (unsigned long) sec->sh_offset, - (unsigned long) (sec->sh_size / (2 * eh_addr_size + 8))); + num_unwind); if (! slurp_hppa_unwind_table (file, &aux, sec)) res = FALSE; @@ -9082,10 +9095,15 @@ arm_process_unwind (FILE *file) { if (sec->sh_type == sec_type) { - printf (_("\nUnwind table index '%s' at offset 0x%lx contains %lu entries:\n"), + unsigned long num_unwind = sec->sh_size / (2 * eh_addr_size); + printf (ngettext ("\nUnwind section '%s' at offset 0x%lx " + "contains %lu entry:\n", + "\nUnwind section '%s' at offset 0x%lx " + "contains %lu entries:\n", + num_unwind), printable_section_name (sec), (unsigned long) sec->sh_offset, - (unsigned long) (sec->sh_size / (2 * eh_addr_size))); + num_unwind); if (! dump_arm_unwind (&aux, sec)) res = FALSE; @@ -9666,7 +9684,11 @@ process_dynamic_section (FILE * file) } if (do_dynamic && dynamic_addr) - printf (_("\nDynamic section at offset 0x%lx contains %lu entries:\n"), + printf (ngettext ("\nDynamic section at offset 0x%lx " + "contains %lu entry:\n", + "\nDynamic section at offset 0x%lx " + "contains %lu entries:\n", + dynamic_nent), dynamic_addr, (unsigned long) dynamic_nent); if (do_dynamic) printf (_(" Tag Type Name/Value\n")); @@ -10207,7 +10229,11 @@ process_version_sections (FILE * file) found = TRUE; - printf (_("\nVersion definition section '%s' contains %u entries:\n"), + printf (ngettext ("\nVersion definition section '%s' " + "contains %u entry:\n", + "\nVersion definition section '%s' " + "contains %u entries:\n", + section->sh_info), printable_section_name (section), section->sh_info); @@ -10340,7 +10366,11 @@ process_version_sections (FILE * file) found = TRUE; - printf (_("\nVersion needs section '%s' contains %u entries:\n"), + printf (ngettext ("\nVersion needs section '%s' " + "contains %u entry:\n", + "\nVersion needs section '%s' " + "contains %u entries:\n", + section->sh_info), printable_section_name (section), section->sh_info); printf (_(" Addr: 0x")); @@ -10492,7 +10522,11 @@ process_version_sections (FILE * file) break; } - printf (_("\nVersion symbols section '%s' contains %lu entries:\n"), + printf (ngettext ("\nVersion symbols section '%s' " + "contains %lu entry:\n", + "\nVersion symbols section '%s' " + "contains %lu entries:\n", + total), printable_section_name (section), (unsigned long) total); printf (_(" Addr: ")); @@ -11528,9 +11562,12 @@ process_symbol_table (FILE * file) continue; } - printf (_("\nSymbol table '%s' contains %lu entries:\n"), + num_syms = section->sh_size / section->sh_entsize; + printf (ngettext ("\nSymbol table '%s' contains %lu entry:\n", + "\nSymbol table '%s' contains %lu entries:\n", + num_syms), printable_section_name (section), - (unsigned long) (section->sh_size / section->sh_entsize)); + num_syms); if (is_32bit_elf) printf (_(" Num: Value Size Type Bind Vis Ndx Name\n")); @@ -11634,7 +11671,11 @@ process_symbol_table (FILE * file) unsigned long nsyms = 0; char *visited; - printf (_("\nHistogram for bucket list length (total of %lu buckets):\n"), + printf (ngettext ("\nHistogram for bucket list length " + "(total of %lu bucket):\n", + "\nHistogram for bucket list length " + "(total of %lu buckets):\n", + (unsigned long) nbuckets), (unsigned long) nbuckets); lengths = (unsigned long *) calloc (nbuckets, sizeof (*lengths)); @@ -11708,7 +11749,11 @@ process_symbol_table (FILE * file) unsigned long nzero_counts = 0; unsigned long nsyms = 0; - printf (_("\nHistogram for `.gnu.hash' bucket list length (total of %lu buckets):\n"), + printf (ngettext ("\nHistogram for `.gnu.hash' bucket list length " + "(total of %lu bucket):\n", + "\nHistogram for `.gnu.hash' bucket list length " + "(total of %lu buckets):\n", + (unsigned long) ngnubuckets), (unsigned long) ngnubuckets); lengths = (unsigned long *) calloc (ngnubuckets, sizeof (*lengths)); @@ -11785,7 +11830,11 @@ process_syminfo (FILE * file ATTRIBUTE_UNUSED) return FALSE; if (dynamic_addr) - printf (_("\nDynamic info segment at offset 0x%lx contains %d entries:\n"), + printf (ngettext ("\nDynamic info segment at offset 0x%lx " + "contains %d entry:\n", + "\nDynamic info segment at offset 0x%lx " + "contains %d entries:\n", + dynamic_syminfo_nent), dynamic_syminfo_offset, dynamic_syminfo_nent); printf (_(" Num: Name BoundTo Flags\n")); @@ -12750,10 +12799,10 @@ apply_relocations (void * file, && ELF_ST_TYPE (sym->st_info) != STT_COMMON && ELF_ST_TYPE (sym->st_info) > STT_SECTION) { - warn (_("skipping unexpected symbol type %s in %ld'th relocation in section %s\n"), + warn (_("skipping unexpected symbol type %s in section %s relocation %ld\n"), get_symbol_type (ELF_ST_TYPE (sym->st_info)), - (long int)(rp - relocs), - printable_section_name (relsec)); + printable_section_name (relsec), + (long int)(rp - relocs)); res = FALSE; continue; } @@ -15455,7 +15504,9 @@ process_mips_specific (FILE * file) _("liblist section data")); if (elib) { - printf (_("\nSection '.liblist' contains %lu entries:\n"), + printf (ngettext ("\nSection '.liblist' contains %lu entry:\n", + "\nSection '.liblist' contains %lu entries:\n", + (unsigned long) liblistno), (unsigned long) liblistno); fputs (_(" Library Time Stamp Checksum Version Flags\n"), stdout); @@ -15584,7 +15635,9 @@ process_mips_specific (FILE * file) ++cnt; } - printf (_("\nSection '%s' contains %d entries:\n"), + printf (ngettext ("\nSection '%s' contains %d entry:\n", + "\nSection '%s' contains %d entries:\n", + cnt), printable_section_name (sect), cnt); option = iopt; @@ -15804,7 +15857,9 @@ process_mips_specific (FILE * file) free (econf64); } - printf (_("\nSection '.conflict' contains %lu entries:\n"), + printf (ngettext ("\nSection '.conflict' contains %lu entry:\n", + "\nSection '.conflict' contains %lu entries:\n", + (unsigned long) conflictsno), (unsigned long) conflictsno); puts (_(" Num: Index Value Name")); @@ -16094,6 +16149,7 @@ process_gnu_liblist (FILE * file) char * strtab; size_t strtab_size; size_t cnt; + unsigned long num_liblist; unsigned i; bfd_boolean res = TRUE; @@ -16134,9 +16190,12 @@ process_gnu_liblist (FILE * file) } strtab_size = string_sec->sh_size; - printf (_("\nLibrary list section '%s' contains %lu entries:\n"), + num_liblist = section->sh_size / sizeof (Elf32_External_Lib); + printf (ngettext ("\nLibrary list section '%s' contains %lu entries:\n", + "\nLibrary list section '%s' contains %lu entries:\n", + num_liblist), printable_section_name (section), - (unsigned long) (section->sh_size / sizeof (Elf32_External_Lib))); + num_liblist); puts (_(" Library Time Stamp Checksum Version Flags")); @@ -17672,8 +17731,12 @@ process_notes_at (FILE * file, min_notesz = offsetof (Elf_External_Note, name); if (data_remaining < min_notesz) { - warn (_("Corrupt note: only %d bytes remain, not enough for a full note\n"), - (int) data_remaining); + warn (ngettext ("Corrupt note: only %ld byte remains, " + "not enough for a full note\n", + "Corrupt note: only %ld bytes remain, " + "not enough for a full note\n", + data_remaining), + (long) data_remaining); break; } data_remaining -= min_notesz; @@ -17695,8 +17758,12 @@ process_notes_at (FILE * file, min_notesz = offsetof (Elf64_External_VMS_Note, name); if (data_remaining < min_notesz) { - warn (_("Corrupt note: only %d bytes remain, not enough for a full note\n"), - (int) data_remaining); + warn (ngettext ("Corrupt note: only %ld byte remains, " + "not enough for a full note\n", + "Corrupt note: only %ld bytes remain, " + "not enough for a full note\n", + data_remaining), + (long) data_remaining); break; } data_remaining -= min_notesz; @@ -18363,7 +18430,13 @@ process_archive (char * file_name, FILE * file, bfd_boolean is_thin_archive) if (l < arch.sym_size) { - error (_("%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"), + error (ngettext ("%s: %ld byte remains in the symbol table, " + "but without corresponding entries in " + "the index table\n", + "%s: %ld bytes remain in the symbol table, " + "but without corresponding entries in " + "the index table\n", + arch.sym_size - l), file_name, arch.sym_size - l); ret = FALSE; } diff --git a/binutils/testsuite/binutils-all/dw2-1.W b/binutils/testsuite/binutils-all/dw2-1.W index fb9c798..dba0483 100644 --- a/binutils/testsuite/binutils-all/dw2-1.W +++ b/binutils/testsuite/binutils-all/dw2-1.W @@ -44,17 +44,17 @@ Raw dump of debug contents of section .z?debug_line: Opcodes: Opcode 1 has 0 args - Opcode 2 has 1 args - Opcode 3 has 1 args - Opcode 4 has 1 args - Opcode 5 has 1 args + Opcode 2 has 1 arg + Opcode 3 has 1 arg + Opcode 4 has 1 arg + Opcode 5 has 1 arg Opcode 6 has 0 args Opcode 7 has 0 args Opcode 8 has 0 args - Opcode 9 has 1 args + Opcode 9 has 1 arg Opcode 10 has 0 args Opcode 11 has 0 args - Opcode 12 has 1 args + Opcode 12 has 1 arg Opcode 13 has 0 args Opcode 14 has 0 args Opcode 15 has 0 args diff --git a/binutils/testsuite/binutils-all/dw2-3.W b/binutils/testsuite/binutils-all/dw2-3.W index af77f87..37fd418 100644 --- a/binutils/testsuite/binutils-all/dw2-3.W +++ b/binutils/testsuite/binutils-all/dw2-3.W @@ -124,17 +124,17 @@ Raw dump of debug contents of section .z?debug_line: Opcodes: Opcode 1 has 0 args - Opcode 2 has 1 args - Opcode 3 has 1 args - Opcode 4 has 1 args - Opcode 5 has 1 args + Opcode 2 has 1 arg + Opcode 3 has 1 arg + Opcode 4 has 1 arg + Opcode 5 has 1 arg Opcode 6 has 0 args Opcode 7 has 0 args Opcode 8 has 0 args - Opcode 9 has 1 args + Opcode 9 has 1 arg Opcode 10 has 0 args Opcode 11 has 0 args - Opcode 12 has 1 args + Opcode 12 has 1 arg Opcode 13 has 0 args Opcode 14 has 0 args Opcode 15 has 0 args diff --git a/binutils/testsuite/binutils-all/dw2-3gabi.W b/binutils/testsuite/binutils-all/dw2-3gabi.W index 4a79260..5663517 100644 --- a/binutils/testsuite/binutils-all/dw2-3gabi.W +++ b/binutils/testsuite/binutils-all/dw2-3gabi.W @@ -124,17 +124,17 @@ Raw dump of debug contents of section .debug_line: Opcodes: Opcode 1 has 0 args - Opcode 2 has 1 args - Opcode 3 has 1 args - Opcode 4 has 1 args - Opcode 5 has 1 args + Opcode 2 has 1 arg + Opcode 3 has 1 arg + Opcode 4 has 1 arg + Opcode 5 has 1 arg Opcode 6 has 0 args Opcode 7 has 0 args Opcode 8 has 0 args - Opcode 9 has 1 args + Opcode 9 has 1 arg Opcode 10 has 0 args Opcode 11 has 0 args - Opcode 12 has 1 args + Opcode 12 has 1 arg Opcode 13 has 0 args Opcode 14 has 0 args Opcode 15 has 0 args diff --git a/binutils/testsuite/binutils-all/dw5.S b/binutils/testsuite/binutils-all/dw5.S index 2f75461..8c8d37e 100644 --- a/binutils/testsuite/binutils-all/dw5.S +++ b/binutils/testsuite/binutils-all/dw5.S @@ -550,17 +550,17 @@ xvar: .byte 0xf2 /* Line Range Value (Special Opcodes) */ .byte 0xd /* Special Opcode Base */ .byte 0 /* opcode: 0x1 has 0 args */ - .byte 0x1 /* opcode: 0x2 has 1 args */ - .byte 0x1 /* opcode: 0x3 has 1 args */ - .byte 0x1 /* opcode: 0x4 has 1 args */ - .byte 0x1 /* opcode: 0x5 has 1 args */ + .byte 0x1 /* opcode: 0x2 has 1 arg */ + .byte 0x1 /* opcode: 0x3 has 1 arg */ + .byte 0x1 /* opcode: 0x4 has 1 arg */ + .byte 0x1 /* opcode: 0x5 has 1 arg */ .byte 0 /* opcode: 0x6 has 0 args */ .byte 0 /* opcode: 0x7 has 0 args */ .byte 0 /* opcode: 0x8 has 0 args */ - .byte 0x1 /* opcode: 0x9 has 1 args */ + .byte 0x1 /* opcode: 0x9 has 1 arg */ .byte 0 /* opcode: 0xa has 0 args */ .byte 0 /* opcode: 0xb has 0 args */ - .byte 0x1 /* opcode: 0xc has 1 args */ + .byte 0x1 /* opcode: 0xc has 1 arg */ .byte 0x1 /* Directory entry format count */ .uleb128 0x1 /* DW_LNCT_path */ .uleb128 0x1f /* DW_FORM_line_strp */ diff --git a/binutils/testsuite/binutils-all/dw5.W b/binutils/testsuite/binutils-all/dw5.W index 1fa0d5d..977a0c8 100644 --- a/binutils/testsuite/binutils-all/dw5.W +++ b/binutils/testsuite/binutils-all/dw5.W @@ -301,17 +301,17 @@ Raw dump of debug contents of section .debug_line: Opcodes: Opcode 1 has 0 args - Opcode 2 has 1 args - Opcode 3 has 1 args - Opcode 4 has 1 args - Opcode 5 has 1 args + Opcode 2 has 1 arg + Opcode 3 has 1 arg + Opcode 4 has 1 arg + Opcode 5 has 1 arg Opcode 6 has 0 args Opcode 7 has 0 args Opcode 8 has 0 args - Opcode 9 has 1 args + Opcode 9 has 1 arg Opcode 10 has 0 args Opcode 11 has 0 args - Opcode 12 has 1 args + Opcode 12 has 1 arg The Directory Table \(offset 0x22\): Entry Name diff --git a/binutils/testsuite/binutils-all/i386/compressed-1a.d b/binutils/testsuite/binutils-all/i386/compressed-1a.d index a45c6b8..b6c6ecc 100644 --- a/binutils/testsuite/binutils-all/i386/compressed-1a.d +++ b/binutils/testsuite/binutils-all/i386/compressed-1a.d @@ -74,17 +74,17 @@ Raw dump of debug contents of section .[z]?debug_line: Opcodes: Opcode 1 has 0 args - Opcode 2 has 1 args - Opcode 3 has 1 args - Opcode 4 has 1 args - Opcode 5 has 1 args + Opcode 2 has 1 arg + Opcode 3 has 1 arg + Opcode 4 has 1 arg + Opcode 5 has 1 arg Opcode 6 has 0 args Opcode 7 has 0 args Opcode 8 has 0 args - Opcode 9 has 1 args + Opcode 9 has 1 arg Opcode 10 has 0 args Opcode 11 has 0 args - Opcode 12 has 1 args + Opcode 12 has 1 arg The Directory Table is empty. diff --git a/binutils/testsuite/binutils-all/libdw2-compressedgabi.out b/binutils/testsuite/binutils-all/libdw2-compressedgabi.out index ab456d5..7bc4629 100644 --- a/binutils/testsuite/binutils-all/libdw2-compressedgabi.out +++ b/binutils/testsuite/binutils-all/libdw2-compressedgabi.out @@ -45,17 +45,17 @@ Raw dump of debug contents of section .debug_line: Opcodes: Opcode 1 has 0 args - Opcode 2 has 1 args - Opcode 3 has 1 args - Opcode 4 has 1 args - Opcode 5 has 1 args + Opcode 2 has 1 arg + Opcode 3 has 1 arg + Opcode 4 has 1 arg + Opcode 5 has 1 arg Opcode 6 has 0 args Opcode 7 has 0 args Opcode 8 has 0 args - Opcode 9 has 1 args + Opcode 9 has 1 arg Opcode 10 has 0 args Opcode 11 has 0 args - Opcode 12 has 1 args + Opcode 12 has 1 arg Opcode 13 has 0 args Opcode 14 has 0 args Opcode 15 has 0 args @@ -147,17 +147,17 @@ Raw dump of debug contents of section .debug_line: Opcodes: Opcode 1 has 0 args - Opcode 2 has 1 args - Opcode 3 has 1 args - Opcode 4 has 1 args - Opcode 5 has 1 args + Opcode 2 has 1 arg + Opcode 3 has 1 arg + Opcode 4 has 1 arg + Opcode 5 has 1 arg Opcode 6 has 0 args Opcode 7 has 0 args Opcode 8 has 0 args - Opcode 9 has 1 args + Opcode 9 has 1 arg Opcode 10 has 0 args Opcode 11 has 0 args - Opcode 12 has 1 args + Opcode 12 has 1 arg Opcode 13 has 0 args Opcode 14 has 0 args Opcode 15 has 0 args @@ -330,17 +330,17 @@ Raw dump of debug contents of section .debug_line: Opcodes: Opcode 1 has 0 args - Opcode 2 has 1 args - Opcode 3 has 1 args - Opcode 4 has 1 args - Opcode 5 has 1 args + Opcode 2 has 1 arg + Opcode 3 has 1 arg + Opcode 4 has 1 arg + Opcode 5 has 1 arg Opcode 6 has 0 args Opcode 7 has 0 args Opcode 8 has 0 args - Opcode 9 has 1 args + Opcode 9 has 1 arg Opcode 10 has 0 args Opcode 11 has 0 args - Opcode 12 has 1 args + Opcode 12 has 1 arg Opcode 13 has 0 args Opcode 14 has 0 args Opcode 15 has 0 args diff --git a/binutils/testsuite/binutils-all/objdump.W b/binutils/testsuite/binutils-all/objdump.W index 5f977ee..8d21505 100644 --- a/binutils/testsuite/binutils-all/objdump.W +++ b/binutils/testsuite/binutils-all/objdump.W @@ -44,17 +44,17 @@ Raw dump of debug contents of section .z?debug_line: Opcodes: Opcode 1 has 0 args - Opcode 2 has 1 args - Opcode 3 has 1 args - Opcode 4 has 1 args - Opcode 5 has 1 args + Opcode 2 has 1 arg + Opcode 3 has 1 arg + Opcode 4 has 1 arg + Opcode 5 has 1 arg Opcode 6 has 0 args Opcode 7 has 0 args Opcode 8 has 0 args - Opcode 9 has 1 args + Opcode 9 has 1 arg Opcode 10 has 0 args Opcode 11 has 0 args - Opcode 12 has 1 args + Opcode 12 has 1 arg Opcode 13 has 0 args Opcode 14 has 0 args Opcode 15 has 0 args diff --git a/binutils/testsuite/binutils-all/readelf.r b/binutils/testsuite/binutils-all/readelf.r index db23dcd..7ce5810 100644 --- a/binutils/testsuite/binutils-all/readelf.r +++ b/binutils/testsuite/binutils-all/readelf.r @@ -1,5 +1,5 @@ -Relocation section '.rel.*' at offset 0x.* contains . entries: +Relocation section '.rel.*' at offset 0x.* contains . entr(y|ies): Offset Info Type Sym.Value Sym. Name.* # NDS32 targets puts R_NDS32_RELAX_ENT here #... diff --git a/binutils/testsuite/binutils-all/readelf.r-64 b/binutils/testsuite/binutils-all/readelf.r-64 index 3e3b0a4..e7487f1 100644 --- a/binutils/testsuite/binutils-all/readelf.r-64 +++ b/binutils/testsuite/binutils-all/readelf.r-64 @@ -1,4 +1,4 @@ -Relocation section '.rel.*text' at offset 0x.* contains 1 entries: +Relocation section '.rel.*text' at offset 0x.* contains 1 entry: Offset Info Type Sym. Value Sym. Name.* 0+04 [0-9A-Fa-f]+ *R_.*0+00 external_symbol.* diff --git a/binutils/testsuite/binutils-all/x86-64/compressed-1a.d b/binutils/testsuite/binutils-all/x86-64/compressed-1a.d index 75b8ce5..23151ef 100644 --- a/binutils/testsuite/binutils-all/x86-64/compressed-1a.d +++ b/binutils/testsuite/binutils-all/x86-64/compressed-1a.d @@ -74,17 +74,17 @@ Raw dump of debug contents of section .[z]?debug_line: Opcodes: Opcode 1 has 0 args - Opcode 2 has 1 args - Opcode 3 has 1 args - Opcode 4 has 1 args - Opcode 5 has 1 args + Opcode 2 has 1 arg + Opcode 3 has 1 arg + Opcode 4 has 1 arg + Opcode 5 has 1 arg Opcode 6 has 0 args Opcode 7 has 0 args Opcode 8 has 0 args - Opcode 9 has 1 args + Opcode 9 has 1 arg Opcode 10 has 0 args Opcode 11 has 0 args - Opcode 12 has 1 args + Opcode 12 has 1 arg The Directory Table is empty. -- cgit v1.1