daily update
[deliverable/binutils-gdb.git] / binutils / od-xcoff.c
index 47d0248847b2edd5635c932dacd4839cdff23a3b..41f8ba3306c376251a4ce644a6115268172febf7 100644 (file)
@@ -1,5 +1,5 @@
 /* od-xcoff.c -- dump information about an xcoff object file.
-   Copyright 2011 Free Software Foundation, Inc.
+   Copyright 2011, 2012 Free Software Foundation, Inc.
    Written by Tristan Gingold, Adacore.
 
    This file is part of GNU Binutils.
@@ -19,9 +19,9 @@
    Foundation, 51 Franklin Street - Fifth Floor, Boston,
    MA 02110-1301, USA.  */
 
+#include "sysdep.h"
 #include <stddef.h>
 #include <time.h>
-#include "sysdep.h"
 #include "safe-ctype.h"
 #include "bfd.h"
 #include "objdump.h"
@@ -459,52 +459,53 @@ dump_xcoff32_aout_header (bfd *abfd, struct xcoff_dump *data)
     }
 
   magic = bfd_h_get_16 (abfd, auxhdr.magic);
-  printf (_("  o_mflag (magic): 0x%04x 0%04o\n"), magic, magic);
-  printf (_("  o_vstamp:        0x%04x\n"),
+  /* We don't translate these strings as they are fields name.  */
+  printf ("  o_mflag (magic): 0x%04x 0%04o\n", magic, magic);
+  printf ("  o_vstamp:        0x%04x\n",
           (unsigned short)bfd_h_get_16 (abfd, auxhdr.vstamp));
-  printf (_("  o_tsize:         0x%08x\n"),
+  printf ("  o_tsize:         0x%08x\n",
           (unsigned int)bfd_h_get_32 (abfd, auxhdr.tsize));
-  printf (_("  o_dsize:         0x%08x\n"),
+  printf ("  o_dsize:         0x%08x\n",
           (unsigned int)bfd_h_get_32 (abfd, auxhdr.dsize));
-  printf (_("  o_entry:         0x%08x\n"),
+  printf ("  o_entry:         0x%08x\n",
           (unsigned int)bfd_h_get_32 (abfd, auxhdr.entry));
-  printf (_("  o_text_start:    0x%08x\n"),
+  printf ("  o_text_start:    0x%08x\n",
           (unsigned int)bfd_h_get_32 (abfd, auxhdr.text_start));
-  printf (_("  o_data_start:    0x%08x\n"),
+  printf ("  o_data_start:    0x%08x\n",
           (unsigned int)bfd_h_get_32 (abfd, auxhdr.data_start));
   if (sz == offsetof (AOUTHDR, o_toc))
     return;
-  printf (_("  o_toc:           0x%08x\n"),
+  printf ("  o_toc:           0x%08x\n",
           (unsigned int)bfd_h_get_32 (abfd, auxhdr.o_toc));
-  printf (_("  o_snentry:       0x%04x\n"),
+  printf ("  o_snentry:       0x%04x\n",
           (unsigned int)bfd_h_get_16 (abfd, auxhdr.o_snentry));
-  printf (_("  o_sntext:        0x%04x\n"),
+  printf ("  o_sntext:        0x%04x\n",
           (unsigned int)bfd_h_get_16 (abfd, auxhdr.o_sntext));
-  printf (_("  o_sndata:        0x%04x\n"),
+  printf ("  o_sndata:        0x%04x\n",
           (unsigned int)bfd_h_get_16 (abfd, auxhdr.o_sndata));
-  printf (_("  o_sntoc:         0x%04x\n"),
+  printf ("  o_sntoc:         0x%04x\n",
           (unsigned int)bfd_h_get_16 (abfd, auxhdr.o_sntoc));
-  printf (_("  o_snloader:      0x%04x\n"),
+  printf ("  o_snloader:      0x%04x\n",
           (unsigned int)bfd_h_get_16 (abfd, auxhdr.o_snloader));
-  printf (_("  o_snbss:         0x%04x\n"),
+  printf ("  o_snbss:         0x%04x\n",
           (unsigned int)bfd_h_get_16 (abfd, auxhdr.o_snbss));
-  printf (_("  o_algntext:      %u\n"),
+  printf ("  o_algntext:      %u\n",
           (unsigned int)bfd_h_get_16 (abfd, auxhdr.o_algntext));
-  printf (_("  o_algndata:      %u\n"),
+  printf ("  o_algndata:      %u\n",
           (unsigned int)bfd_h_get_16 (abfd, auxhdr.o_algndata));
-  printf (_("  o_modtype:       0x%04x"),
+  printf ("  o_modtype:       0x%04x",
           (unsigned int)bfd_h_get_16 (abfd, auxhdr.o_modtype));
   if (ISPRINT (auxhdr.o_modtype[0]) && ISPRINT (auxhdr.o_modtype[1]))
     printf (" (%c%c)", auxhdr.o_modtype[0], auxhdr.o_modtype[1]);
   putchar ('\n');
-  printf (_("  o_cputype:       0x%04x\n"),
+  printf ("  o_cputype:       0x%04x\n",
           (unsigned int)bfd_h_get_16 (abfd, auxhdr.o_cputype));
-  printf (_("  o_maxstack:      0x%08x\n"),
+  printf ("  o_maxstack:      0x%08x\n",
           (unsigned int)bfd_h_get_32 (abfd, auxhdr.o_maxstack));
-  printf (_("  o_maxdata:       0x%08x\n"),
+  printf ("  o_maxdata:       0x%08x\n",
           (unsigned int)bfd_h_get_32 (abfd, auxhdr.o_maxdata));
 #if 0
-  printf (_("  o_debugger:      0x%08x\n"),
+  printf ("  o_debugger:      0x%08x\n",
           (unsigned int)bfd_h_get_32 (abfd, auxhdr.o_debugger));
 #endif
 }
@@ -531,7 +532,8 @@ dump_xcoff32_sections_header (bfd *abfd, struct xcoff_dump *data)
       non_fatal (_("cannot read section header"));
       return;
     }
-  printf (_(" # Name     paddr    vaddr    size     scnptr   relptr   lnnoptr  nrel  nlnno\n"));
+  /* We don't translate this string as it consists in fields name.  */
+  printf (" # Name     paddr    vaddr    size     scnptr   relptr   lnnoptr  nrel  nlnno\n");
   for (i = 0; i < data->nscns; i++)
     {
       struct external_scnhdr scn;
@@ -543,8 +545,7 @@ dump_xcoff32_sections_header (bfd *abfd, struct xcoff_dump *data)
           return;
         }
       flags = bfd_h_get_32 (abfd, scn.s_flags);
-      printf (_("%2d %-8.8s %08x %08x %08x %08x %08x %08x "
-                "%-5d %-5d\n"),
+      printf ("%2d %-8.8s %08x %08x %08x %08x %08x %08x %-5d %-5d\n",
               i + 1, scn.s_name,
               (unsigned int)bfd_h_get_32 (abfd, scn.s_paddr),
               (unsigned int)bfd_h_get_32 (abfd, scn.s_vaddr),
@@ -639,17 +640,14 @@ xcoff32_read_symbols (bfd *abfd, struct xcoff_dump *data)
     + data->nsyms * (unsigned)sizeof (struct external_syment);
 
   /* Read string table.  */
-  if (bfd_seek (abfd, stptr, SEEK_SET) != 0)
+  if (bfd_seek (abfd, stptr, SEEK_SET) != 0
+      || bfd_bread (&stsz_arr, sizeof (stsz_arr), abfd) != sizeof (stsz_arr))
     {
+      non_fatal (_("cannot read strings table length"));
       data->strings_size = 0;
     }
   else
     {
-      if (bfd_bread (&stsz_arr, sizeof (stsz_arr), abfd) != sizeof (stsz_arr))
-        {
-          non_fatal (_("cannot read strings table len"));
-          return;
-        }
       data->strings_size = bfd_h_get_32 (abfd, stsz_arr);
       if (data->strings_size > sizeof (stsz_arr))
         {
@@ -750,7 +748,7 @@ dump_xcoff32_symbols (bfd *abfd, struct xcoff_dump *data)
       return;
     }
 
-  /* Read string table.  */
+  /* Read strings table.  */
   if (data->strings_size == 0)
     printf (_(" (no strings):\n"));
   else
@@ -767,6 +765,7 @@ dump_xcoff32_symbols (bfd *abfd, struct xcoff_dump *data)
       bfd_get_section_contents (abfd, debugsec, debug, 0, size);
     }
 
+  /* Translators: 'sc' is for storage class, 'off' for offset.  */
   printf (_("  # sc         value    section  type aux name/off\n"));
   for (i = 0; i < data->nsyms; i++)
     {
@@ -818,12 +817,14 @@ dump_xcoff32_symbols (bfd *abfd, struct xcoff_dump *data)
           switch (s->sym.sclass)
             {
             case C_STAT:
+              /* Section length, number of relocs and line number.  */
               printf (_("  scnlen: %08x  nreloc: %-6u  nlinno: %-6u\n"),
                       (unsigned)bfd_h_get_32 (abfd, aux->x_scn.x_scnlen),
                       (unsigned)bfd_h_get_16 (abfd, aux->x_scn.x_nreloc),
                       (unsigned)bfd_h_get_16 (abfd, aux->x_scn.x_nlinno));
               break;
             case C_DWARF:
+              /* Section length and number of relocs.  */
               printf (_("  scnlen: %08x  nreloc: %-6u\n"),
                       (unsigned)bfd_h_get_32 (abfd, aux->x_scn.x_scnlen),
                       (unsigned)bfd_h_get_16 (abfd, aux->x_scn.x_nreloc));
@@ -833,8 +834,8 @@ dump_xcoff32_symbols (bfd *abfd, struct xcoff_dump *data)
             case C_HIDEXT:
               if (j == 0 && s->sym.numaux > 1)
                 {
-                  /* Function aux entry.  */
-                  printf (_("  exptr: %08x fsize: %08x lnnoptr: %08x endndx: %u\n"),
+                  /* Function aux entry  (Do not translate).  */
+                  printf ("  exptr: %08x fsize: %08x lnnoptr: %08x endndx: %u\n",
                           (unsigned)bfd_h_get_32 (abfd, aux->x_sym.x_tagndx),
                           (unsigned)bfd_h_get_32
                             (abfd, aux->x_sym.x_misc.x_fsize),
@@ -853,38 +854,39 @@ dump_xcoff32_symbols (bfd *abfd, struct xcoff_dump *data)
                   scnlen = bfd_h_get_32 (abfd, aux->x_csect.x_scnlen);
 
                   if (smtyp == XTY_LD)
-                    printf (_("  scnsym: %-8u"), scnlen);
+                    printf ("  scnsym: %-8u", scnlen);
                   else
-                    printf (_("  scnlen: %08x"), scnlen);
-                  printf (_(" h: parm=%08x sn=%04x al: 2**%u"),
+                    printf ("  scnlen: %08x", scnlen);
+                  printf (" h: parm=%08x sn=%04x al: 2**%u",
                           (unsigned)bfd_h_get_32 (abfd, aux->x_csect.x_parmhash),
                           (unsigned)bfd_h_get_16 (abfd, aux->x_csect.x_snhash),
                           SMTYP_ALIGN (smtyp));
-                  printf (_(" typ: "));
+                  printf (" typ: ");
                   dump_value (smtyp_xlat, SMTYP_SMTYP (smtyp), 2);
-                  printf (_(" cl: "));
+                  printf (" cl: ");
                   dump_value
                     (smclas_xlat,
                      (unsigned)bfd_h_get_8 (abfd, aux->x_csect.x_smclas), 6);
                   putchar ('\n');
                 }
               else
+                /* Do not translate - generic field name.  */
                 printf ("aux\n");
               break;
             case C_FILE:
               {
                 unsigned int off;
 
-                printf (_(" ftype: %02x "),
+                printf (" ftype: %02x ",
                         (unsigned)bfd_h_get_8 (abfd, aux->x_file.x_ftype));
                 if (aux->x_file.x_n.x_fname[0] != 0)
-                  printf (_("fname: %.14s"), aux->x_file.x_n.x_fname);
+                  printf ("fname: %.14s", aux->x_file.x_n.x_fname);
                 else
                   {
                     off = (unsigned)bfd_h_get_32
                       (abfd, aux->x_file.x_n.x_n.x_offset);
                     if (data->strings != NULL && off < data->strings_size)
-                      printf (_(" %s"), data->strings + off);
+                      printf (" %s", data->strings + off);
                     else
                       printf (_("offset: %08x"), off);
                   }
@@ -893,11 +895,12 @@ dump_xcoff32_symbols (bfd *abfd, struct xcoff_dump *data)
               break;
             case C_BLOCK:
             case C_FCN:
-              printf (_("  lnno: %u\n"),
+              printf ("  lnno: %u\n",
                       (unsigned)bfd_h_get_16
                       (abfd, aux->x_sym.x_misc.x_lnsz.x_lnno));
               break;
             default:
+              /* Do not translate - generic field name.  */
               printf ("aux\n");
               break;
             }
@@ -934,7 +937,8 @@ dump_xcoff32_relocs (bfd *abfd, struct xcoff_dump *data)
           non_fatal (_("cannot read relocations"));
           continue;
         }
-      printf (_("vaddr    sgn mod sz type  symndx symbol\n"));
+      /* Do not translate: fields name.  */
+      printf ("vaddr    sgn mod sz type  symndx symbol\n");
       for (j = 0; j < nrel; j++)
         {
           struct external_reloc rel;
@@ -947,7 +951,7 @@ dump_xcoff32_relocs (bfd *abfd, struct xcoff_dump *data)
               return;
             }
           rsize = bfd_h_get_8 (abfd, rel.r_size);
-          printf (_("%08x  %c   %c  %-2u "),
+          printf ("%08x  %c   %c  %-2u ",
                   (unsigned int)bfd_h_get_32 (abfd, rel.r_vaddr),
                   rsize & 0x80 ? 'S' : 'U',
                   rsize & 0x40 ? 'm' : ' ',
@@ -989,6 +993,7 @@ dump_xcoff32_lineno (bfd *abfd, struct xcoff_dump *data)
           non_fatal (_("cannot read line numbers"));
           continue;
         }
+      /* Line number, symbol index and physical address.  */
       printf (_("lineno  symndx/paddr\n"));
       for (j = 0; j < nlnno; j++)
         {
@@ -1001,7 +1006,7 @@ dump_xcoff32_lineno (bfd *abfd, struct xcoff_dump *data)
               return;
             }
           no = bfd_h_get_16 (abfd, ln.l_lnno);
-          printf (_(" %-6u "), no);
+          printf (" %-6u ", no);
           if (no == 0)
             {
               unsigned int symndx = bfd_h_get_32 (abfd, ln.l_addr.l_symndx);
@@ -1066,6 +1071,7 @@ dump_xcoff32_loader (bfd *abfd)
   printf (_("  nbr symbols:       %u\n"), ndsyms);
   ndrel = bfd_h_get_32 (abfd, lhdr->l_nreloc);
   printf (_("  nbr relocs:        %u\n"), ndrel);
+  /* Import string table length.  */
   printf (_("  import strtab len: %u\n"),
           (unsigned) bfd_h_get_32 (abfd, lhdr->l_istlen));
   nimpid = bfd_h_get_32 (abfd, lhdr->l_nimpid);
@@ -1079,7 +1085,8 @@ dump_xcoff32_loader (bfd *abfd)
 
   ldsym = (struct external_ldsym *)(ldr_data + sizeof (*lhdr));
   printf (_("Dynamic symbols:\n"));
-  printf (_("     # value     sc IFEW ty class file  pa name\n"));
+  /* Do not translate: field names.  */
+  printf ("     # value     sc IFEW ty class file  pa name\n");
   for (i = 0; i < ndsyms; i++, ldsym++)
     {
       unsigned char smtype;
@@ -1114,7 +1121,8 @@ dump_xcoff32_loader (bfd *abfd)
     }
 
   printf (_("Dynamic relocs:\n"));
-  printf (_("  vaddr    sec    sz typ   sym\n"));
+  /* Do not translate fields name.  */
+  printf ("  vaddr    sec    sz typ   sym\n");
   ldrel = (struct external_ldrel *)(ldr_data + sizeof (*lhdr)
                                     + ndsyms * sizeof (*ldsym));
   for (i = 0; i < ndrel; i++, ldrel++)
@@ -1126,7 +1134,7 @@ dump_xcoff32_loader (bfd *abfd)
       rsize = bfd_h_get_8 (abfd, ldrel->l_rtype + 0);
       rtype = bfd_h_get_8 (abfd, ldrel->l_rtype + 1);
 
-      printf (_("  %08x %3u %c%c %2u "),
+      printf ("  %08x %3u %c%c %2u ",
               (unsigned)bfd_h_get_32 (abfd, ldrel->l_vaddr),
               (unsigned)bfd_h_get_16 (abfd, ldrel->l_rsecnm),
               rsize & 0x80 ? 'S' : 'U',
@@ -1137,16 +1145,16 @@ dump_xcoff32_loader (bfd *abfd)
       switch (symndx)
         {
         case 0:
-          printf (_(".text"));
+          printf (".text");
           break;
         case 1:
-          printf (_(".data"));
+          printf (".data");
           break;
         case 2:
-          printf (_(".bss"));
+          printf (".bss");
           break;
         default:
-          printf (_("%u"), symndx - 3);
+          printf ("%u", symndx - 3);
           break;
         }
       putchar ('\n');
@@ -1193,7 +1201,8 @@ dump_xcoff32_except (bfd *abfd, struct xcoff_dump *data)
   exceptab = (struct external_exceptab *)excp_data;
 
   printf (_("Exception table:\n"));
-  printf (_("lang reason sym/addr\n"));
+  /* Do not translate fields name.  */
+  printf ("lang reason sym/addr\n");
   for (i = 0; i * sizeof (*exceptab) < size; i++, exceptab++)
     {
       unsigned int reason;
@@ -1201,12 +1210,12 @@ dump_xcoff32_except (bfd *abfd, struct xcoff_dump *data)
 
       addr = bfd_get_32 (abfd, exceptab->e_addr.e_paddr);
       reason = bfd_get_8 (abfd, exceptab->e_reason);
-      printf (_("  %02x     %02x "),
+      printf ("  %02x     %02x ",
               (unsigned) bfd_get_8 (abfd, exceptab->e_lang), reason);
       if (reason == 0)
         xcoff32_print_symbol (data, addr);
       else
-        printf (_("@%08x"), addr);
+        printf ("@%08x", addr);
       putchar ('\n');
     }
   free (excp_data);
@@ -1234,7 +1243,8 @@ dump_xcoff32_typchk (bfd *abfd)
   bfd_get_section_contents (abfd, sec, data, 0, size);
 
   printf (_("Type-check section:\n"));
-  printf (_("offset    len  lang-id general-hash language-hash\n"));
+  /* Do not translate field names.  */
+  printf ("offset    len  lang-id general-hash language-hash\n");
   for (i = 0; i < size;)
     {
       unsigned int len;
@@ -1296,32 +1306,32 @@ dump_xcoff32_tbtags (bfd *abfd,
         tb1 = bfd_get_32 (abfd, text + i + 4);
         tb2 = bfd_get_32 (abfd, text + i + 8);
         off = i + 12;
-        printf (_(" version: %u, lang: %u, global_link: %u, is_eprol: %u, has_tboff: %u, int_proc: %u\n"),
+        printf (" version: %u, lang: %u, global_link: %u, is_eprol: %u, has_tboff: %u, int_proc: %u\n",
                 (tb1 >> 24) & 0xff,
                 (tb1 >> 16) & 0xff,
                 (tb1 >> 15) & 1,
                 (tb1 >> 14) & 1,
                 (tb1 >> 13) & 1,
                 (tb1 >> 12) & 1);
-        printf (_(" has_ctl: %u, tocless: %u, fp_pres: %u, log_abort: %u, int_hndl: %u\n"),
+        printf (" has_ctl: %u, tocless: %u, fp_pres: %u, log_abort: %u, int_hndl: %u\n",
                 (tb1 >> 11) & 1,
                 (tb1 >> 10) & 1,
                 (tb1 >> 9) & 1,
                 (tb1 >> 8) & 1,
                 (tb1 >> 7) & 1);
-        printf (_(" name_pres: %u, uses_alloca: %u, cl_dis_inv: %u, saves_cr: %u, saves_lr: %u\n"),
+        printf (" name_pres: %u, uses_alloca: %u, cl_dis_inv: %u, saves_cr: %u, saves_lr: %u\n",
                 (tb1 >> 6) & 1,
                 (tb1 >> 5) & 1,
                 (tb1 >> 2) & 7,
                 (tb1 >> 1) & 1,
                 (tb1 >> 0) & 1);
-        printf (_(" stores_bc: %u, fixup: %u, fpr_saved: %-2u, spare3: %u, gpr_saved: %-2u\n"),
+        printf (" stores_bc: %u, fixup: %u, fpr_saved: %-2u, spare3: %u, gpr_saved: %-2u\n",
                 (tb2 >> 31) & 1,
                 (tb2 >> 30) & 1,
                 (tb2 >> 24) & 63,
                 (tb2 >> 22) & 3,
                 (tb2 >> 16) & 63);
-        printf (_(" fixparms: %-3u  floatparms: %-3u  parm_on_stk: %u\n"),
+        printf (" fixparms: %-3u  floatparms: %-3u  parm_on_stk: %u\n",
                 (tb2 >> 8) & 0xff,
                 (tb2 >> 1) & 0x7f,
                 (tb2 >> 0) & 1);
@@ -1334,7 +1344,7 @@ dump_xcoff32_tbtags (bfd *abfd,
               goto truncated;
             parminfo = bfd_get_32 (abfd, text + off);
             off += 4;
-            printf (_(" parminfo: 0x%08x\n"), parminfo);
+            printf (" parminfo: 0x%08x\n", parminfo);
           }
 
         if ((tb1 >> 13) & 1)
@@ -1345,7 +1355,7 @@ dump_xcoff32_tbtags (bfd *abfd,
               goto truncated;
             tboff = bfd_get_32 (abfd, text + off);
             off += 4;
-            printf (_(" tb_offset: 0x%08x (start=0x%08x)\n"),
+            printf (" tb_offset: 0x%08x (start=0x%08x)\n",
                     tboff, text_start + i - tboff);
           }
         if ((tb1 >> 7) & 1)
@@ -1356,7 +1366,7 @@ dump_xcoff32_tbtags (bfd *abfd,
               goto truncated;
             hand_mask = bfd_get_32 (abfd, text + off);
             off += 4;
-            printf (_(" hand_mask_offset: 0x%08x\n"), hand_mask);
+            printf (" hand_mask_offset: 0x%08x\n", hand_mask);
           }
         if ((tb1 >> 11) & 1)
           {
@@ -1372,8 +1382,8 @@ dump_xcoff32_tbtags (bfd *abfd,
               {
                 if (off >= text_size)
                   goto truncated;
-                printf (_("  CTL[%u]: %08x\n"),
-                          j, (unsigned)bfd_get_32 (abfd, text + off));
+                printf ("  CTL[%u]: %08x\n",
+                        j, (unsigned)bfd_get_32 (abfd, text + off));
                 off += 4;
               }
           }
@@ -1404,7 +1414,7 @@ dump_xcoff32_tbtags (bfd *abfd,
           {
             if (off >= text_size)
               goto truncated;
-            printf (_(" alloca reg: %u\n"),
+            printf (" alloca reg: %u\n",
                     (unsigned) bfd_get_8 (abfd, text + off));
             off++;
           }
This page took 0.030025 seconds and 4 git commands to generate.