From: Ian Lance Taylor Date: Thu, 28 Oct 1999 03:30:13 +0000 (+0000) Subject: 1999-10-27 Fred Fish X-Git-Tag: gdb-1999-11-01~19 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d24de309dfc187688fee3e6f23a960ea46986f58;p=platform%2Fupstream%2Fbinutils.git 1999-10-27 Fred Fish * objdump.c (display_bfd): Break into two functions. The actual dumping code moves to dump_bfd. If bfd is not unambiguously recognized as a bfd_object, attempt to dump it as a bfd_core. (dump_bfd): New function. --- diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 9cf8511..7cf4f71 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,11 @@ +1999-10-27 Fred Fish + + * objdump.c (display_bfd): Break into two functions. The + actual dumping code moves to dump_bfd. If bfd is not + unambiguously recognized as a bfd_object, attempt to dump + it as a bfd_core. + (dump_bfd): New function. + 1999-10-26 Nick Clifton * dlltool.c (assemble_file): Remove spurious test of exp_name. diff --git a/binutils/objdump.c b/binutils/objdump.c index 92805d3..71bb65f 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -2042,23 +2042,12 @@ bfd *abfd; bfd_print_private_bfd_data (abfd, stdout); } +/* Dump selected contents of ABFD */ + static void -display_bfd (abfd) +dump_bfd (abfd) bfd *abfd; { - char **matching; - - if (!bfd_check_format_matches (abfd, bfd_object, &matching)) - { - nonfatal (bfd_get_filename (abfd)); - if (bfd_get_error () == bfd_error_file_ambiguously_recognized) - { - list_matching_formats (matching); - free (matching); - } - return; - } - /* If we are adjusting section VMA's, change them all now. Changing the BFD information is a hack. However, we must do it, or bfd_find_nearest_line will not do the right thing. */ @@ -2135,6 +2124,47 @@ display_bfd (abfd) } static void +display_bfd (abfd) + bfd *abfd; +{ + char **matching; + + if (bfd_check_format_matches (abfd, bfd_object, &matching)) + { + dump_bfd (abfd); + return; + } + + if (bfd_get_error () == bfd_error_file_ambiguously_recognized) + { + nonfatal (bfd_get_filename (abfd)); + list_matching_formats (matching); + free (matching); + return; + } + + if (bfd_get_error () != bfd_error_file_not_recognized) + { + nonfatal (bfd_get_filename (abfd)); + return; + } + + if (bfd_check_format_matches (abfd, bfd_core, &matching)) + { + dump_bfd (abfd); + return; + } + + nonfatal (bfd_get_filename (abfd)); + + if (bfd_get_error () == bfd_error_file_ambiguously_recognized) + { + list_matching_formats (matching); + free (matching); + } +} + +static void display_file (filename, target) char *filename; char *target;