OSDN Git Service

Move display_info() function into bucomm.c
[pf3gnuchains/pf3gnuchains4x.git] / binutils / objdump.c
index 26299cf..b641fde 100644 (file)
@@ -123,21 +123,21 @@ static void usage
 static void nonfatal
   PARAMS ((const char *));
 static void display_file
-  PARAMS ((char *filename, char *target));
+  PARAMS ((char *, char *));
 static void dump_section_header
   PARAMS ((bfd *, asection *, PTR));
 static void dump_headers
   PARAMS ((bfd *));
 static void dump_data
-  PARAMS ((bfd *abfd));
+  PARAMS ((bfd *));
 static void dump_relocs
-  PARAMS ((bfd *abfd));
+  PARAMS ((bfd *));
 static void dump_dynamic_relocs
-  PARAMS ((bfd * abfd));
+  PARAMS ((bfd *));
 static void dump_reloc_set
   PARAMS ((bfd *, asection *, arelent **, long));
 static void dump_symbols
-  PARAMS ((bfd *abfd, bfd_boolean dynamic));
+  PARAMS ((bfd *, bfd_boolean));
 static void dump_bfd_header
   PARAMS ((bfd *));
 static void dump_bfd_private_header
@@ -145,15 +145,7 @@ static void dump_bfd_private_header
 static void dump_bfd
   PARAMS ((bfd *));
 static void display_bfd
-  PARAMS ((bfd *abfd));
-static void display_target_list
-  PARAMS ((void));
-static void display_info_table
-  PARAMS ((int, int));
-static void display_target_tables
-  PARAMS ((void));
-static void display_info
-  PARAMS ((void));
+  PARAMS ((bfd *));
 static void objdump_print_value
   PARAMS ((bfd_vma, struct disassemble_info *, bfd_boolean));
 static void objdump_print_symname
@@ -176,8 +168,6 @@ static void disassemble_bytes
           bfd_byte *, bfd_vma, bfd_vma, arelent ***, arelent **));
 static void disassemble_data
   PARAMS ((bfd *));
-static const char *endian_string
-  PARAMS ((enum bfd_endian));
 static asymbol ** slurp_symtab
   PARAMS ((bfd *));
 static asymbol ** slurp_dynamic_symtab
@@ -2571,183 +2561,6 @@ dump_reloc_set (abfd, sec, relpp, relcount)
     }
 }
 \f
-/* The length of the longest architecture name + 1.  */
-#define LONGEST_ARCH sizeof("powerpc:common")
-
-static const char *
-endian_string (endian)
-     enum bfd_endian endian;
-{
-  if (endian == BFD_ENDIAN_BIG)
-    return "big endian";
-  else if (endian == BFD_ENDIAN_LITTLE)
-    return "little endian";
-  else
-    return "endianness unknown";
-}
-
-/* List the targets that BFD is configured to support, each followed
-   by its endianness and the architectures it supports.  */
-
-static void
-display_target_list ()
-{
-  extern const bfd_target *const *bfd_target_vector;
-  char *dummy_name;
-  int t;
-
-  dummy_name = make_temp_file (NULL);
-  for (t = 0; bfd_target_vector[t]; t++)
-    {
-      const bfd_target *p = bfd_target_vector[t];
-      bfd *abfd = bfd_openw (dummy_name, p->name);
-      int a;
-
-      printf ("%s\n (header %s, data %s)\n", p->name,
-             endian_string (p->header_byteorder),
-             endian_string (p->byteorder));
-
-      if (abfd == NULL)
-       {
-         nonfatal (dummy_name);
-         continue;
-       }
-
-      if (! bfd_set_format (abfd, bfd_object))
-       {
-         if (bfd_get_error () != bfd_error_invalid_operation)
-           nonfatal (p->name);
-         bfd_close_all_done (abfd);
-         continue;
-       }
-
-      for (a = (int) bfd_arch_obscure + 1; a < (int) bfd_arch_last; a++)
-       if (bfd_set_arch_mach (abfd, (enum bfd_architecture) a, 0))
-         printf ("  %s\n",
-                 bfd_printable_arch_mach ((enum bfd_architecture) a, 0));
-      bfd_close_all_done (abfd);
-    }
-  unlink (dummy_name);
-  free (dummy_name);
-}
-
-/* Print a table showing which architectures are supported for entries
-   FIRST through LAST-1 of bfd_target_vector (targets across,
-   architectures down).  */
-
-static void
-display_info_table (first, last)
-     int first;
-     int last;
-{
-  extern const bfd_target *const *bfd_target_vector;
-  int t, a;
-  char *dummy_name;
-
-  /* Print heading of target names.  */
-  printf ("\n%*s", (int) LONGEST_ARCH, " ");
-  for (t = first; t < last && bfd_target_vector[t]; t++)
-    printf ("%s ", bfd_target_vector[t]->name);
-  putchar ('\n');
-
-  dummy_name = make_temp_file (NULL);
-  for (a = (int) bfd_arch_obscure + 1; a < (int) bfd_arch_last; a++)
-    if (strcmp (bfd_printable_arch_mach (a, 0), "UNKNOWN!") != 0)
-      {
-       printf ("%*s ", (int) LONGEST_ARCH - 1,
-               bfd_printable_arch_mach (a, 0));
-       for (t = first; t < last && bfd_target_vector[t]; t++)
-         {
-           const bfd_target *p = bfd_target_vector[t];
-           bfd_boolean ok = TRUE;
-           bfd *abfd = bfd_openw (dummy_name, p->name);
-
-           if (abfd == NULL)
-             {
-               nonfatal (p->name);
-               ok = FALSE;
-             }
-
-           if (ok)
-             {
-               if (! bfd_set_format (abfd, bfd_object))
-                 {
-                   if (bfd_get_error () != bfd_error_invalid_operation)
-                     nonfatal (p->name);
-                   ok = FALSE;
-                 }
-             }
-
-           if (ok)
-             {
-               if (! bfd_set_arch_mach (abfd, a, 0))
-                 ok = FALSE;
-             }
-
-           if (ok)
-             printf ("%s ", p->name);
-           else
-             {
-               int l = strlen (p->name);
-               while (l--)
-                 putchar ('-');
-               putchar (' ');
-             }
-           if (abfd != NULL)
-             bfd_close_all_done (abfd);
-         }
-       putchar ('\n');
-      }
-  unlink (dummy_name);
-  free (dummy_name);
-}
-
-/* Print tables of all the target-architecture combinations that
-   BFD has been configured to support.  */
-
-static void
-display_target_tables ()
-{
-  int t, columns;
-  extern const bfd_target *const *bfd_target_vector;
-  char *colum;
-
-  columns = 0;
-  colum = getenv ("COLUMNS");
-  if (colum != NULL)
-    columns = atoi (colum);
-  if (columns == 0)
-    columns = 80;
-
-  t = 0;
-  while (bfd_target_vector[t] != NULL)
-    {
-      int oldt = t, wid;
-
-      wid = LONGEST_ARCH + strlen (bfd_target_vector[t]->name) + 1;
-      ++t;
-      while (wid < columns && bfd_target_vector[t] != NULL)
-       {
-         int newwid;
-
-         newwid = wid + strlen (bfd_target_vector[t]->name) + 1;
-         if (newwid >= columns)
-           break;
-         wid = newwid;
-         ++t;
-       }
-      display_info_table (oldt, t);
-    }
-}
-
-static void
-display_info ()
-{
-  printf (_("BFD header file version %s\n"), BFD_VERSION_STRING);
-  display_target_list ();
-  display_target_tables ();
-}
-
 int main PARAMS ((int, char **));
 
 int
@@ -2943,7 +2756,7 @@ main (argc, argv)
     usage (stderr, 2);
 
   if (formats_info)
-    display_info ();
+    exit_status = display_info ();
   else
     {
       if (optind == argc)