aboutsummaryrefslogtreecommitdiff
path: root/binutils/objdump.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2003-03-24 11:28:35 +0000
committerNick Clifton <nickc@redhat.com>2003-03-24 11:28:35 +0000
commit06d86cf78eeb35897934df3c12e1024f305b2540 (patch)
tree7d04d067655fa4d197f365eaa09e93c3380ee268 /binutils/objdump.c
parent17c0759ec471ba99d575e0c8c25b22e1bfe8ff43 (diff)
downloadgdb-06d86cf78eeb35897934df3c12e1024f305b2540.zip
gdb-06d86cf78eeb35897934df3c12e1024f305b2540.tar.gz
gdb-06d86cf78eeb35897934df3c12e1024f305b2540.tar.bz2
Move display_info() function into bucomm.c
Diffstat (limited to 'binutils/objdump.c')
-rw-r--r--binutils/objdump.c201
1 files changed, 7 insertions, 194 deletions
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 26299cf..b641fde 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -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)
}
}
-/* 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)