* ldmain.c (main): Flush stdout before and stderr after printing
authorAlan Modra <amodra@gmail.com>
Fri, 14 Jan 2011 12:37:17 +0000 (12:37 +0000)
committerAlan Modra <amodra@gmail.com>
Fri, 14 Jan 2011 12:37:17 +0000 (12:37 +0000)
message.
* ldmisc.c (einfo): Similarly.
* plugin.c (message): Likewise.
* emultempl/ppc64elf.em: Likewise.
* emultempl/xtensaelf.em: Likewise.
* emulparams/elf32mcore.sh: Use einfo rather than printf.
* emultempl/beos.em: Likewise.
* emultempl/pe.em: Likewise.
* emultempl/pep.em: Likewise.

ld/ChangeLog
ld/emulparams/elf32mcore.sh
ld/emultempl/beos.em
ld/emultempl/pe.em
ld/emultempl/pep.em
ld/emultempl/ppc64elf.em
ld/emultempl/xtensaelf.em
ld/ldmain.c
ld/ldmisc.c
ld/plugin.c

index 886207b0e3341d580d506820a733bb7f3f9f669b..7a00e7d14df03121e9a7f3580feb04099031a421 100644 (file)
@@ -1,3 +1,16 @@
+2011-01-14  Alan Modra  <amodra@gmail.com>
+
+       * ldmain.c (main): Flush stdout before and stderr after printing
+       message.
+       * ldmisc.c (einfo): Similarly.
+       * plugin.c (message): Likewise.
+       * emultempl/ppc64elf.em: Likewise.
+       * emultempl/xtensaelf.em: Likewise.
+       * emulparams/elf32mcore.sh: Use einfo rather than printf.
+       * emultempl/beos.em: Likewise.
+       * emultempl/pe.em: Likewise.
+       * emultempl/pep.em: Likewise.
+
 2011-01-14  Alan Modra  <amodra@gmail.com>
 
        * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
index 60479501bc974d38ba6b9c9a8560630c8beda4cf..512a9b0f3a7f614fa20fcc28cce4ecb38bb44ec6 100644 (file)
@@ -49,11 +49,6 @@ PARSE_AND_LIST_ARGS_CASES='
     case OPTION_BASE_FILE:
       link_info.base_file = fopen (optarg, FOPEN_WB);
       if (link_info.base_file == NULL)
-       {
-         /* xgettext:c-format */
-         fprintf (stderr, _("%s: Cannot open base file %s\n"),
-                  program_name, optarg);
-         xexit (1);
-       }
+       einfo (_("%F%P: cannot open base file %s\n"), optarg);
       break;
 '
index 708a2a9d3b78546f9a136f870ecb7f810869a5c2..6dc63754160440cd38daec3d90b85ad03f40b209 100644 (file)
@@ -270,11 +270,7 @@ gld${EMULATION_NAME}_handle_option (int optc)
     case OPTION_BASE_FILE:
       link_info.base_file = fopen (optarg, FOPEN_WB);
       if (link_info.base_file == NULL)
-       {
-         fprintf (stderr, "%s: Can't open base file %s\n",
-                  program_name, optarg);
-         xexit (1);
-       }
+       einfo (_("%F%P: cannot open base file %s\n"), optarg);
       break;
 
       /* PE options */
index 0231fa77a7a2a166296677819a92a8e57fe9d876..a3e4cddabf5f52bbe4fbc6ddae6b3300e4f6d75e 100644 (file)
@@ -688,12 +688,7 @@ gld${EMULATION_NAME}_handle_option (int optc)
     case OPTION_BASE_FILE:
       link_info.base_file = fopen (optarg, FOPEN_WB);
       if (link_info.base_file == NULL)
-       {
-         /* xgettext:c-format */
-         fprintf (stderr, _("%s: Can't open base file %s\n"),
-                  program_name, optarg);
-         xexit (1);
-       }
+       einfo (_("%F%P: cannot open base file %s\n"), optarg);
       break;
 
       /* PE options.  */
index 56687d673ea0042ef1733625ebd776625a2eb90e..a307c143500e8ac55c107c062fb4a6481e716fe9 100644 (file)
@@ -611,12 +611,7 @@ gld${EMULATION_NAME}_handle_option (int optc)
     case OPTION_BASE_FILE:
       link_info.base_file = fopen (optarg, FOPEN_WB);
       if (link_info.base_file == NULL)
-       {
-         /* xgettext:c-format */
-         fprintf (stderr, _("%s: Can't open base file %s\n"),
-                  program_name, optarg);
-         xexit (1);
-       }
+       einfo (_("%F%P: cannot open base file %s\n"), optarg);
       break;
 
       /* PE options.  */
index cb8e7841e8dafacb4544614b36dd1e1ae21fdc7a..0c995920f4e9ee1a81c617f1b1bd4f74ce8a3d82 100644 (file)
@@ -1,5 +1,5 @@
 # This shell script emits a C file. -*- C -*-
-# Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+# Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 # Free Software Foundation, Inc.
 #
 # This file is part of the GNU Binutils.
@@ -545,6 +545,7 @@ gld${EMULATION_NAME}_finish (void)
                                  config.stats ? &msg : NULL))
        einfo ("%X%P: can not build stubs: %E\n");
 
+      fflush (stdout);
       for (line = msg; line != NULL; line = endline)
        {
          endline = strchr (line, '\n');
@@ -552,6 +553,7 @@ gld${EMULATION_NAME}_finish (void)
            *endline++ = '\0';
          fprintf (stderr, "%s: %s\n", program_name, line);
        }
+      fflush (stderr);
       if (msg != NULL)
        free (msg);
     }
index ed015a23c6ae775efa4192964adc9733d813cd66..b37a67b2fe79d91d9e9e795f12d141fcc7a92d66 100644 (file)
@@ -1817,8 +1817,10 @@ ld_local_file_relocations_fit (lang_statement_union_type *statement,
                  bfd_vma target_addr = e->tgt->output_offset & ~3;
                  if (l32r_addr < target_addr)
                    {
+                     fflush (stdout);
                      fprintf (stderr, "Warning: "
                               "l32r target section before l32r\n");
+                     fflush (stderr);
                      return FALSE;
                    }
 
index 5530dcaed1f05a844df4974a91fc8b12353539a1..19c42d98ac34cb1d1bfb0233714b928ad95c0fd1 100644 (file)
@@ -1,6 +1,6 @@
 /* Main program of GNU linker.
    Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
    Written by Steve Chamberlain steve@cygnus.com
 
@@ -551,12 +551,14 @@ main (int argc, char **argv)
 #endif
       long run_time = get_run_time () - start_time;
 
+      fflush (stdout);
       fprintf (stderr, _("%s: total time in link: %ld.%06ld\n"),
               program_name, run_time / 1000000, run_time % 1000000);
 #ifdef HAVE_SBRK
       fprintf (stderr, _("%s: data size %ld\n"), program_name,
               (long) (lim - (char *) &environ));
 #endif
+      fflush (stderr);
     }
 
   /* Prevent remove_output from doing anything, after a successful link.  */
index 74baa9858391c18f2061abdca99ec9fa41c51e50..369580001d0238a50c0f66cc6117ff71dde3ae25 100644 (file)
@@ -1,6 +1,6 @@
 /* ldmisc.c
    Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011
    Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support.
 
@@ -440,9 +440,11 @@ einfo (const char *fmt, ...)
 {
   va_list arg;
 
+  fflush (stdout);
   va_start (arg, fmt);
   vfinfo (stderr, fmt, arg, TRUE);
   va_end (arg);
+  fflush (stderr);
 }
 
 void
index 10314a4d485fc4d22a30a67d9bce1af0ee72e594..05379b8e61052e785f1780583cd4e9ed314ff5ae 100644 (file)
@@ -1,5 +1,5 @@
 /* Plugin control for the GNU linker.
-   Copyright 2010 Free Software Foundation, Inc.
+   Copyright 2010, 2011 Free Software Foundation, Inc.
 
    This file is part of the GNU Binutils.
 
@@ -596,7 +596,9 @@ message (int level, const char *format, ...)
          char *newfmt = ACONCAT ((level == LDPL_FATAL
                                   ? "%P%F: " : "%P%X: ",
                                   format, "\n", NULL));
+         fflush (stdout);
          vfinfo (stderr, newfmt, args, TRUE);
+         fflush (stderr);
        }
       break;
     }