X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=binutils%2Fbucomm.c;h=06fbc462e242467fe6f15f46e8515d8ddf6b1456;hb=59fb7612ddee9219817a0c33b7d533b3d1c2aa41;hp=508790ffa3c3069537b46faa960148810191edf9;hpb=d25576aadbe87e00dc7702b1d0a9c69c61d511d4;p=deliverable%2Fbinutils-gdb.git diff --git a/binutils/bucomm.c b/binutils/bucomm.c index 508790ffa3..06fbc462e2 100644 --- a/binutils/bucomm.c +++ b/binutils/bucomm.c @@ -1,7 +1,5 @@ /* bucomm.c -- Bin Utils COMmon code. - Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002, - 2003, 2006, 2007 - Free Software Foundation, Inc. + Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -29,7 +27,6 @@ #include "filenames.h" #include "libbfd.h" -#include #include /* ctime, maybe time_t */ #include #include "bucomm.h" @@ -52,8 +49,10 @@ char *program_name; void bfd_nonfatal (const char *string) { - const char *errmsg = bfd_errmsg (bfd_get_error ()); + const char *errmsg; + errmsg = bfd_errmsg (bfd_get_error ()); + fflush (stdout); if (string) fprintf (stderr, "%s: %s: %s\n", program_name, string, errmsg); else @@ -70,27 +69,30 @@ bfd_nonfatal (const char *string) PROGRAM:file: bfd-error-message PROGRAM:file[section]: bfd-error-message PROGRAM:file: printf-message: bfd-error-message - PROGRAM:file[section]: printf-message: bfd-error-message -*/ + PROGRAM:file[section]: printf-message: bfd-error-message. */ void bfd_nonfatal_message (const char *filename, - const bfd *bfd, const asection *section, + const bfd *abfd, + const asection *section, const char *format, ...) { - const char *errmsg = bfd_errmsg (bfd_get_error ()); - const char *section_name = NULL; + const char *errmsg; + const char *section_name; va_list args; + errmsg = bfd_errmsg (bfd_get_error ()); + fflush (stdout); + section_name = NULL; va_start (args, format); fprintf (stderr, "%s", program_name); - if (bfd) + if (abfd) { if (!filename) - filename = bfd_get_filename (bfd); + filename = bfd_get_archive_filename (abfd); if (section) - section_name = bfd_get_section_name (bfd, section); + section_name = bfd_get_section_name (abfd, section); } if (section_name) fprintf (stderr, ":%s[%s]", filename, section_name); @@ -116,30 +118,33 @@ bfd_fatal (const char *string) void report (const char * format, va_list args) { + fflush (stdout); fprintf (stderr, "%s: ", program_name); vfprintf (stderr, format, args); putc ('\n', stderr); } void -fatal VPARAMS ((const char *format, ...)) +fatal (const char *format, ...) { - VA_OPEN (args, format); - VA_FIXEDARG (args, const char *, format); + va_list args; + + va_start (args, format); report (format, args); - VA_CLOSE (args); + va_end (args); xexit (1); } void -non_fatal VPARAMS ((const char *format, ...)) +non_fatal (const char *format, ...) { - VA_OPEN (args, format); - VA_FIXEDARG (args, const char *, format); + va_list args; + + va_start (args, format); report (format, args); - VA_CLOSE (args); + va_end (args); } /* Set the default BFD target based on the configured target. Doing @@ -165,6 +170,7 @@ set_default_bfd_target (void) void list_matching_formats (char **p) { + fflush (stdout); fprintf (stderr, _("%s: Matching formats:"), program_name); while (*p) fprintf (stderr, " %s", *p++); @@ -177,13 +183,14 @@ void list_supported_targets (const char *name, FILE *f) { int t; - const char **targ_names = bfd_target_list (); + const char **targ_names; if (name == NULL) fprintf (f, _("Supported targets:")); else fprintf (f, _("%s: supported targets:"), name); + targ_names = bfd_target_list (); for (t = 0; targ_names[t] != NULL; t++) fprintf (f, " %s", targ_names[t]); fprintf (f, "\n"); @@ -217,9 +224,9 @@ endian_string (enum bfd_endian endian) { switch (endian) { - case BFD_ENDIAN_BIG: return "big endian"; - case BFD_ENDIAN_LITTLE: return "little endian"; - default: return "endianness unknown"; + case BFD_ENDIAN_BIG: return _("big endian"); + case BFD_ENDIAN_LITTLE: return _("little endian"); + default: return _("endianness unknown"); } } @@ -238,9 +245,9 @@ display_target_list (void) { const bfd_target *p = bfd_target_vector[t]; bfd *abfd = bfd_openw (dummy_name, p->name); - enum bfd_architecture a; + int a; - printf ("%s\n (header %s, data %s)\n", p->name, + printf (_("%s\n (header %s, data %s)\n"), p->name, endian_string (p->header_byteorder), endian_string (p->byteorder)); @@ -284,7 +291,7 @@ display_info_table (int first, int last) int t; int ret = 1; char *dummy_name; - enum bfd_architecture a; + int a; /* Print heading of target names. */ printf ("\n%*s", (int) LONGEST_ARCH, " "); @@ -294,10 +301,11 @@ display_info_table (int first, int last) dummy_name = make_temp_file (NULL); for (a = bfd_arch_obscure + 1; a < bfd_arch_last; a++) - if (strcmp (bfd_printable_arch_mach (a, 0), "UNKNOWN!") != 0) + if (strcmp (bfd_printable_arch_mach ((enum bfd_architecture) a, 0), + "UNKNOWN!") != 0) { printf ("%*s ", (int) LONGEST_ARCH - 1, - bfd_printable_arch_mach (a, 0)); + bfd_printable_arch_mach ((enum bfd_architecture) a, 0)); for (t = first; t < last && bfd_target_vector[t]; t++) { const bfd_target *p = bfd_target_vector[t]; @@ -326,7 +334,7 @@ display_info_table (int first, int last) if (ok) { - if (! bfd_set_arch_mach (abfd, a, 0)) + if (! bfd_set_arch_mach (abfd, (enum bfd_architecture) a, 0)) ok = FALSE; } @@ -419,16 +427,22 @@ print_arelt_descr (FILE *file, bfd *abfd, bfd_boolean verbose) char timebuf[40]; time_t when = buf.st_mtime; const char *ctime_result = (const char *) ctime (&when); + bfd_size_type size; - /* POSIX format: skip weekday and seconds from ctime output. */ - sprintf (timebuf, "%.12s %.4s", ctime_result + 4, ctime_result + 20); + /* PR binutils/17605: Check for corrupt time values. */ + if (ctime_result == NULL) + sprintf (timebuf, _("