From fb3f84c77393f3d73f22ebd1eb4007a90ef50fd7 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 24 Mar 1995 16:49:14 +0000 Subject: [PATCH] * strings.c: Include "bfd.h" before other headers. Include "sysdep.h". * bucomm.c (print_arelt_descr): Cast st_uid and st_gid to long, and print them with %ld. --- binutils/ChangeLog | 27 ++++++++++++++++++ binutils/bucomm.c | 69 ++++++++++++++++++++++++++++++---------------- 2 files changed, 73 insertions(+), 23 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 92d02cefec..d16733409c 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,30 @@ +Fri Mar 24 11:47:42 1995 Ian Lance Taylor + + * strings.c: Include "bfd.h" before other headers. Include + "sysdep.h". + * bucomm.c (print_arelt_descr): Cast st_uid and st_gid to long, + and print them with %ld. + +Fri Mar 10 13:09:42 1995 Ian Lance Taylor + + * objcopy.c (strip_options): Add --keep-symbol. + (copy_options): Likewise. + (copy_usage): Mention --keep-symbol and -K. + (strip_usage): Likewise. + (keep_symbols): New static variable. + (is_strip_symbol): Adjust the return value according to + keep_symbols. + (strip_main): Handle -K. For -N, check that -K was not given. + (copy_main): Likewise. + * binutils.texi, objcopy.1, strip.1: Document -K. + +Mon Mar 6 13:33:47 1995 Stan Shebs + + * objcopy.c (copy_archive): Check result of mkdir. + (copy_main): Cast an xmalloc result. + + * objdump.c (usage): Break long format string into shorter ones. + Mon Mar 6 13:46:12 1995 Ian Lance Taylor * bucomm.c (list_supported_targets): New function. diff --git a/binutils/bucomm.c b/binutils/bucomm.c index c76e544d43..24d5707d09 100644 --- a/binutils/bucomm.c +++ b/binutils/bucomm.c @@ -1,5 +1,5 @@ /* bucomm.c -- Bin Utils COMmon code. - Copyright (C) 1991 Free Software Foundation, Inc. + Copyright (C) 1991, 92, 93, 94 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -22,21 +22,17 @@ #include "bfd.h" #include "sysdep.h" +#include "libiberty.h" #include "bucomm.h" -#ifdef __STDC__ +#ifdef ANSI_PROTOTYPES #include #else #include #endif char *target = NULL; /* default as late as possible */ - -/* Yes, this is what atexit is for, but that isn't guaranteed yet. - And yes, I know this isn't as good, but it does what is needed just fine. */ -void (*exit_handler) (); - - + /* Error reporting */ char *program_name; @@ -45,7 +41,7 @@ void bfd_nonfatal (string) CONST char *string; { - CONST char *errmsg = bfd_errmsg (bfd_error); + CONST char *errmsg = bfd_errmsg (bfd_get_error ()); if (string) fprintf (stderr, "%s: %s: %s\n", program_name, string, errmsg); @@ -58,13 +54,10 @@ bfd_fatal (string) CONST char *string; { bfd_nonfatal (string); - - if (NULL != exit_handler) - (*exit_handler) (); - exit (1); + xexit (1); } -#ifdef __STDC__ +#ifdef ANSI_PROTOTYPES void fatal (const char *format, ...) { @@ -75,9 +68,7 @@ fatal (const char *format, ...) vfprintf (stderr, format, args); va_end (args); putc ('\n', stderr); - if (NULL != exit_handler) - (*exit_handler) (); - exit (1); + xexit (1); } #else void @@ -93,11 +84,42 @@ fatal (va_alist) vfprintf (stderr, Format, args); va_end (args); putc ('\n', stderr); - if (NULL != exit_handler) - (*exit_handler) (); - exit (1); + xexit (1); } #endif + +/* After a false return from bfd_check_format_matches with + bfd_get_error () == bfd_error_file_ambiguously_recognized, print the possible + matching targets. */ + +void +list_matching_formats (p) + char **p; +{ + fprintf(stderr, "%s: Matching formats:", program_name); + while (*p) + fprintf(stderr, " %s", *p++); + fprintf(stderr, "\n"); +} + +/* List the supported targets. */ + +void +list_supported_targets (name, f) + const char *name; + FILE *f; +{ + extern bfd_target *bfd_target_vector[]; + int t; + + if (name == NULL) + fprintf (f, "Supported targets:"); + else + fprintf (f, "%s: supported targets:", name); + for (t = 0; bfd_target_vector[t] != NULL; t++) + fprintf (f, " %s", bfd_target_vector[t]->name); + fprintf (f, "\n"); +} /* Display the archive header for an element as if it were an ls -l listing: @@ -126,10 +148,11 @@ print_arelt_descr (file, abfd, verbose) mode_string (buf.st_mode, modebuf); modebuf[10] = '\0'; /* POSIX 1003.2/D11 says to skip first character (entry type). */ - fprintf (file, "%s %d/%d %6ld %s ", modebuf + 1, - buf.st_uid, buf.st_gid, buf.st_size, timebuf); + fprintf (file, "%s %ld/%ld %6ld %s ", modebuf + 1, + (long) buf.st_uid, (long) buf.st_gid, + (long) buf.st_size, timebuf); } } - fprintf (file, "%s\n", abfd->filename); + fprintf (file, "%s\n", bfd_get_filename (abfd)); }