More changes to print ambiguous matches and use the
authorDavid MacKenzie <djm@cygnus>
Thu, 3 Feb 1994 13:08:29 +0000 (13:08 +0000)
committerDavid MacKenzie <djm@cygnus>
Thu, 3 Feb 1994 13:08:29 +0000 (13:08 +0000)
abstracting macros.

binutils/ChangeLog
binutils/nm.c
binutils/size.c

index bc2bddc2b55abf78304745d4acbdf9d4c6e50b28..ac72e0abccccf2627b1284e3c4015f44330cee19 100644 (file)
@@ -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.
 
index c3045ee40f0c48463dbd3738f745e41efe6343f0..6580e7b6992dec2f512e0c2f7fa183b6388c3111 100644 (file)
@@ -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);
+           }
+       }
     }
 }
 
index 936747ac9b3fc1e978a6ffe72159a15743d17a82..175e3ff4054d4982ebbaee56348e9093f27d64b3 100644 (file)
@@ -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);