Re: [PING][PATCH] Don't call fatal_error before error reporting has been initialized.

2014-11-17 Thread Jeff Law

On 11/05/14 09:03, Ilya Tocar wrote:

Ping.

On 20 Oct 19:25, Ilya Tocar wrote:

Same in collect2.

On 09 Oct 15:40, Ilya Tocar wrote:

Ping.

On 29 Sep 18:02, Ilya Tocar wrote:

Hi,

Currently if call to atexit (lto_wrapper_cleanup) fails we
won't report error as we haven't initialized error-reporting
infrastructure. This patch moves this call after diagnostic_initialize.
I hope that we can't  exit inside diagnostic_initialize. Otherwise we
won't cleanup after it.
Well, diagnostic_initialize calls xmalloc, so it can certainly fail and 
when xmalloc fails, it just dumps stuff to stderr, calls anything 
registered via xatexit and exits.


So I don't see that we're going to get back into GCC's diagnostic machinery.

OK for the trunk, assuming you've bootstrapped the change.

Thanks for your patience,

Jeff




Re: [PING][PATCH] Don't call fatal_error before error reporting has been initialized.

2014-11-05 Thread Ilya Tocar
Ping.

On 20 Oct 19:25, Ilya Tocar wrote:
 Same in collect2.
 
 On 09 Oct 15:40, Ilya Tocar wrote:
  Ping.
  
  On 29 Sep 18:02, Ilya Tocar wrote:
   Hi,
   
   Currently if call to atexit (lto_wrapper_cleanup) fails we
   won't report error as we haven't initialized error-reporting
   infrastructure. This patch moves this call after diagnostic_initialize.
   I hope that we can't  exit inside diagnostic_initialize. Otherwise we
   won't cleanup after it.
   Ok for trunk?
  
 
 ---
  gcc/collect2.c| 6 +++---
  gcc/lto-wrapper.c | 6 +++---
  2 files changed, 6 insertions(+), 6 deletions(-)
 
 diff --git a/gcc/collect2.c b/gcc/collect2.c
 index c54e6fb..b0784e8 100644
 --- a/gcc/collect2.c
 +++ b/gcc/collect2.c
 @@ -955,9 +955,6 @@ main (int argc, char **argv)
signal (SIGCHLD, SIG_DFL);
  #endif
  
 -  if (atexit (collect_atexit) != 0)
 -fatal_error (atexit failed);
 -
/* Unlock the stdio streams.  */
unlock_std_streams ();
  
 @@ -965,6 +962,9 @@ main (int argc, char **argv)
  
diagnostic_initialize (global_dc, 0);
  
 +  if (atexit (collect_atexit) != 0)
 +fatal_error (atexit failed);
 +
/* Do not invoke xcalloc before this point, since locale needs to be
   set first, in case a diagnostic is issued.  */
  
 diff --git a/gcc/lto-wrapper.c b/gcc/lto-wrapper.c
 index 8033b15..d97f617 100644
 --- a/gcc/lto-wrapper.c
 +++ b/gcc/lto-wrapper.c
 @@ -879,13 +879,13 @@ main (int argc, char *argv[])
  
xmalloc_set_program_name (progname);
  
 -  if (atexit (lto_wrapper_cleanup) != 0)
 -fatal_error (atexit failed);
 -
gcc_init_libintl ();
  
diagnostic_initialize (global_dc, 0);
  
 +  if (atexit (lto_wrapper_cleanup) != 0)
 +fatal_error (atexit failed);
 +
if (signal (SIGINT, SIG_IGN) != SIG_IGN)
  signal (SIGINT, fatal_signal);
  #ifdef SIGHUP
 -- 
 1.8.3.1