]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
print cached error messages using _bfd_error_handler
authorAlan Modra <amodra@gmail.com>
Sat, 9 Mar 2024 02:56:19 +0000 (13:26 +1030)
committerAlan Modra <amodra@gmail.com>
Sat, 9 Mar 2024 04:05:09 +0000 (14:35 +1030)
* bfd.c (bfd_print_error): Make static.  Don't print program name.
(error_handler_fprintf): Print program name here.
* format.c (print_warnmsg): Use _bfd_error_handler to print
cached messages.
* bfd-in2.h: Regenerate.

bfd/bfd-in2.h
bfd/bfd.c
bfd/format.c

index 79b24a7f6e9789422cb7f1b744e1af01a73fde52..76d450478a775700bd0e50f3910ac36fa23f3bec 100644 (file)
@@ -2558,9 +2558,6 @@ void bfd_perror (const char *message);
 typedef void (*bfd_error_handler_type) (const char *, va_list);
 
 typedef int (*bfd_print_callback) (void *, const char *, ...);
-void bfd_print_error (bfd_print_callback print_func,
-    void *stream, const char *fmt, va_list ap);
-
 void _bfd_error_handler (const char *fmt, ...) ATTRIBUTE_PRINTF_1;
 
 bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
index 71732a0f92b13d9829b65b3e7f890b8976459938..1bdfac6c24cb20e9646863276dc3101adaefe69c 100644 (file)
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -1449,31 +1449,12 @@ _bfd_doprnt_scan (const char *format, va_list ap, union _bfd_doprnt_args *args)
   return arg_count;
 }
 
-/*
-FUNCTION
-       bfd_print_error
-
-SYNOPSIS
-       void bfd_print_error (bfd_print_callback print_func,
-         void *stream, const char *fmt, va_list ap);
-
-DESCRIPTION
-
-       This formats FMT and AP according to BFD "printf" rules,
-       sending the output to STREAM by repeated calls to PRINT_FUNC.
-       PRINT_FUNC is a printf-like function; it does not need to
-       implement the BFD printf format extensions.  This can be used
-       in a callback that is set via bfd_set_error_handler to turn
-       the error into ordinary output.
-*/
-
-void
+static void
 bfd_print_error (bfd_print_callback print_func, void *stream,
                 const char *fmt, va_list ap)
 {
   union _bfd_doprnt_args args[MAX_ARGS];
 
-  print_func (stream, "%s: ", _bfd_get_error_program_name ());
   _bfd_doprnt_scan (fmt, ap, args);
   _bfd_doprnt (print_func, stream, fmt, args);
 }
@@ -1486,6 +1467,7 @@ error_handler_fprintf (const char *fmt, va_list ap)
   /* PR 4992: Don't interrupt output being sent to stdout.  */
   fflush (stdout);
 
+  fprintf (stderr, "%s: ", _bfd_get_error_program_name ());
   bfd_print_error ((bfd_print_callback) fprintf, stderr, fmt, ap);
 
   /* On AIX, putc is implemented as a macro that triggers a -Wunused-value
index 47c3e9ba35a3f4191429c50f7891174e8ca87d68..8f3fc7e7b9601aff122f6441163298f80ea8faf7 100644 (file)
@@ -255,15 +255,8 @@ bfd_preserve_finish (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_preserve *preserve)
 static void
 print_warnmsg (struct per_xvec_message **list)
 {
-  fflush (stdout);
-  fprintf (stderr, "%s: ", _bfd_get_error_program_name ());
-
   for (struct per_xvec_message *warn = *list; warn; warn = warn->next)
-    {
-      fputs (warn->message, stderr);
-      fputc ('\n', stderr);
-    }
-  fflush (stderr);
+    _bfd_error_handler ("%s", warn->message);
 }
 
 static void