aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorDavid MacKenzie <djm@cygnus>1994-02-03 13:08:29 +0000
committerDavid MacKenzie <djm@cygnus>1994-02-03 13:08:29 +0000
commit6f9dff07e17b829b8becf9fcb9b34b4711f4ceb1 (patch)
tree90acc7d8c89467404be984a13a5dbd77d2cef4b4 /binutils
parent139c8857be582c3e05fecd3b0f91368632fd9b12 (diff)
downloadgdb-6f9dff07e17b829b8becf9fcb9b34b4711f4ceb1.zip
gdb-6f9dff07e17b829b8becf9fcb9b34b4711f4ceb1.tar.gz
gdb-6f9dff07e17b829b8becf9fcb9b34b4711f4ceb1.tar.bz2
More changes to print ambiguous matches and use the
abstracting macros.
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog5
-rw-r--r--binutils/nm.c12
-rw-r--r--binutils/size.c4
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);