* 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 886207b..7a00e7d 100644 (file)
@@ -1,5 +1,18 @@
 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
        attempt to put non-alloc orphans before debug sections, just place
        them after .comment.
index 6047950..512a9b0 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 708a2a9..6dc6375 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 0231fa7..a3e4cdd 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 56687d6..a307c14 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 cb8e784..0c99592 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 ed015a2..b37a67b 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 5530dca..19c42d9 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 74baa98..3695800 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 10314a4..05379b8 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;
     }