From 6f9dff07e17b829b8becf9fcb9b34b4711f4ceb1 Mon Sep 17 00:00:00 2001 From: David MacKenzie Date: Thu, 3 Feb 1994 13:08:29 +0000 Subject: [PATCH] More changes to print ambiguous matches and use the abstracting macros. --- binutils/ChangeLog | 5 +++-- binutils/nm.c | 12 ++++++++++-- binutils/size.c | 4 ++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index bc2bddc..ac72e0a 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -2,7 +2,7 @@ Wed Feb 2 13:42:23 1994 David J. Mackenzie (djm@thepub.cygnus.com) * nlmconv.c (main): Use bfd_get_flavour instead of struct member. * ar.c (print_contents, extract_file), size.c - (print_berkeley_format): Use bfd_get_filename and + (print_berkeley_format, print_sysv_format): Use bfd_get_filename and bfd_my_archive instead of dereferencing the structs directly. * ar.c: Use bfd_fatal and bfd_nonfatal instead of bfd_perror and exit. @@ -10,7 +10,8 @@ Wed Feb 2 13:42:23 1994 David J. Mackenzie (djm@thepub.cygnus.com) * nlmconv.c (main), objcopy.c (copy_file): Print matching formats if ambiguous match. - * nm.c (display_file), size.c (display_bfd): Eliminate gotos. + * nm.c (display_file, display_archive), size.c (display_bfd): + Eliminate gotos. Print matching formats if there is an ambiguous match. Use bfd_nonfatal instead of hardcoded error message if nothing matches. diff --git a/binutils/nm.c b/binutils/nm.c index c3045ee..6580e7b 100644 --- a/binutils/nm.c +++ b/binutils/nm.c @@ -368,6 +368,7 @@ display_archive (file) bfd *file; { bfd *arfile = NULL; + char **matching; (*format->print_archive_filename) (bfd_get_filename (file)); @@ -385,14 +386,21 @@ display_archive (file) break; } - if (bfd_check_format (arfile, bfd_object)) + if (bfd_check_format_matches (arfile, bfd_object, &matching)) { (*format->print_archive_member) (bfd_get_filename (file), bfd_get_filename (arfile)); display_rel_file (arfile, file); } else - printf ("%s: not an object file\n", arfile->filename); + { + bfd_nonfatal (bfd_get_filename (arfile)); + if (bfd_error == file_ambiguously_recognized) + { + list_matching_formats (matching); + free (matching); + } + } } } diff --git a/binutils/size.c b/binutils/size.c index 936747a..175e3ff 100644 --- a/binutils/size.c +++ b/binutils/size.c @@ -404,8 +404,8 @@ print_sysv_format (file) svi_total = 0; printf ("%s ", bfd_get_filename (file)); - if (file->my_archive) - printf (" (ex %s)", file->my_archive->filename); + if (bfd_my_archive (file)) + printf (" (ex %s)", bfd_get_filename (bfd_my_archive (file))); puts (":\nsection\t\tsize\t addr"); bfd_map_over_sections (file, sysv_internal_printer, (PTR) NULL); -- 2.7.4