Add support for AIX -blibpath and -bnolibpath.
[binutils-gdb.git] / binutils / objdump.c
index 168f246454e34db17cf146eb010b248b4ef6ca9a..535e0cd7e7864da09d7e5c4abacbe6648b84f582 100644 (file)
@@ -20,10 +20,10 @@ along with this program; if not, write to the Free Software
 Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include "bfd.h"
-#include "getopt.h"
 #include "progress.h"
 #include "bucomm.h"
-#include <ctype.h>
+#include "getopt.h"
+#include "safe-ctype.h"
 #include "dis-asm.h"
 #include "libiberty.h"
 #include "demangle.h"
@@ -161,9 +161,9 @@ usage (stream, status)
      FILE *stream;
      int status;
 {
-  fprintf (stream, _("Usage: %s OPTION... FILE...\n"), program_name);
-  fprintf (stream, _("Display information from object FILE.\n"));
-  fprintf (stream, _("\n At least one of the following switches must be given:\n"));
+  fprintf (stream, _("Usage: %s <option(s)> <file(s)>\n"), program_name);
+  fprintf (stream, _(" Display information from object <file(s)>.\n"));
+  fprintf (stream, _(" At least one of the following switches must be given:\n"));
   fprintf (stream, _("\
   -a, --archive-headers    Display archive header information\n\
   -f, --file-headers       Display the contents of the overall file header\n\
@@ -180,7 +180,7 @@ usage (stream, status)
   -T, --dynamic-syms       Display the contents of the dynamic symbol table\n\
   -r, --reloc              Display the relocation entries in the file\n\
   -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n\
-  -V, --version            Display this program's version number\n\
+  -v, --version            Display this program's version number\n\
   -i, --info               List object formats and architectures supported\n\
   -H, --help               Display this information\n\
 "));
@@ -304,9 +304,6 @@ dump_section_header (abfd, section, ignored)
   PF (SEC_CONSTRUCTOR_BSS, "CONSTRUCTOR BSS");
   PF (SEC_LOAD, "LOAD");
   PF (SEC_RELOC, "RELOC");
-#ifdef SEC_BALIGN
-  PF (SEC_BALIGN, "BALIGN");
-#endif
   PF (SEC_READONLY, "READONLY");
   PF (SEC_CODE, "CODE");
   PF (SEC_DATA, "DATA");
@@ -319,6 +316,7 @@ dump_section_header (abfd, section, ignored)
   PF (SEC_CLINK, "CLINK");
   PF (SEC_SMALL_DATA, "SMALL_DATA");
   PF (SEC_SHARED, "SHARED");
+  PF (SEC_ARCH_BIT_0, "ARCH_BIT_0");
 
   if ((section->flags & SEC_LINK_ONCE) != 0)
     {
@@ -1109,35 +1107,20 @@ typedef struct
 /* sprintf to a "stream" */
 
 static int
-#ifdef ANSI_PROTOTYPES
-objdump_sprintf (SFILE *f, const char *format, ...)
-#else
-objdump_sprintf (va_alist)
-     va_dcl
-#endif
+objdump_sprintf VPARAMS ((SFILE *f, const char *format, ...))
 {
-#ifndef ANSI_PROTOTYPES
-  SFILE *f;
-  const char *format;
-#endif
   char *buf;
-  va_list args;
   size_t n;
 
-#ifdef ANSI_PROTOTYPES
-  va_start (args, format);
-#else
-  va_start (args);
-  f = va_arg (args, SFILE *);
-  format = va_arg (args, const char *);
-#endif
+  VA_OPEN (args, format);
+  VA_FIXEDARG (args, SFILE *, f);
+  VA_FIXEDARG (args, const char *, format);
 
   vasprintf (&buf, format, args);
 
-  va_end (args);
-
   if (buf == NULL)
     {
+      va_end (args);
       fatal (_("Out of virtual memory"));
     }
 
@@ -1159,6 +1142,7 @@ objdump_sprintf (va_alist)
 
   free (buf);
 
+  VA_CLOSE (args);
   return n;
 }
 
@@ -1345,7 +1329,7 @@ disassemble_bytes (info, disassemble_fn, insns, data,
 
              for (j = addr_offset * opb; j < addr_offset * opb + octets; ++j)
                {
-                 if (isprint (data[j]))
+                 if (ISPRINT (data[j]))
                    buf[j - addr_offset * opb] = data[j];
                  else
                    buf[j - addr_offset * opb] = '.';
@@ -1999,7 +1983,7 @@ dump_section_stabs (abfd, stabsect_name, strsect_name)
         match or a section followed by a number.  */
       if (strncmp (stabsect_name, s->name, len) == 0
          && (s->name[len] == '\000'
-             || isdigit ((unsigned char) s->name[len])))
+             || ISDIGIT (s->name[len])))
        {
          if (read_section_stabs (abfd, s->name, strsect_name))
            {
@@ -2286,7 +2270,7 @@ dump_data (abfd)
                      if (j >= stop_offset * opb)
                        printf (" ");
                      else
-                       printf ("%c", isprint (data[j]) ? data[j] : '.');
+                       printf ("%c", ISPRINT (data[j]) ? data[j] : '.');
                    }
                  putchar ('\n');
                }
@@ -2749,11 +2733,13 @@ display_target_tables ()
 static void
 display_info ()
 {
-  printf (_("BFD header file version %s\n"), BFD_VERSION);
+  printf (_("BFD header file version %s\n"), BFD_VERSION_STRING);
   display_target_list ();
   display_target_tables ();
 }
 
+int main PARAMS ((int, char **));
+
 int
 main (argc, argv)
      int argc;
@@ -2765,6 +2751,9 @@ main (argc, argv)
 
 #if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
   setlocale (LC_MESSAGES, "");
+#endif
+#if defined (HAVE_SETLOCALE)
+  setlocale (LC_CTYPE, "");
 #endif
   bindtextdomain (PACKAGE, LOCALEDIR);
   textdomain (PACKAGE);
@@ -2777,14 +2766,14 @@ main (argc, argv)
   bfd_init ();
   set_default_bfd_target ();
 
-  while ((c = getopt_long (argc, argv, "pib:m:M:VCdDlfahHrRtTxsSj:wE:zgG",
+  while ((c = getopt_long (argc, argv, "pib:m:M:VvCdDlfaHhrRtTxsSj:wE:zgG",
                           long_options, (int *) 0))
         != EOF)
     {
       switch (c)
        {
        case 0:
-         break;                /* we've been given a long option */
+         break;                /* We've been given a long option.  */
        case 'm':
          machine = optarg;
          break;
@@ -2805,12 +2794,12 @@ main (argc, argv)
          if (optarg != NULL)
            {
              enum demangling_styles style;
-             
+
              style = cplus_demangle_name_to_style (optarg);
              if (style == unknown_demangling) 
                fatal (_("unknown demangling style `%s'"),
                       optarg);
-             
+
              cplus_demangle_set_style (style);
            }
          break;
@@ -2848,7 +2837,7 @@ main (argc, argv)
              usage (stderr, 1);
            }
          break;
-         
+
        case 'f':
          dump_file_header = true;
          seenflag = true;
@@ -2926,6 +2915,7 @@ main (argc, argv)
        case 'H':
          usage (stdout, 0);
          seenflag = true;
+       case 'v':
        case 'V':
          show_version = true;
          seenflag = true;