diff options
Diffstat (limited to 'libc/stdlib')
-rw-r--r-- | libc/stdlib/abort.c | 10 | ||||
-rw-r--r-- | libc/stdlib/atexit.c | 12 |
2 files changed, 9 insertions, 13 deletions
diff --git a/libc/stdlib/abort.c b/libc/stdlib/abort.c index 3ff235ae3..4c9f06a11 100644 --- a/libc/stdlib/abort.c +++ b/libc/stdlib/abort.c @@ -46,8 +46,7 @@ Cambridge, MA 02139, USA. */ #define ABORT_INSTRUCTION #endif -typedef void (*vfuncp) (void); -extern vfuncp __uClibc_cleanup; +extern void __stdio_flush_buffers(void); extern void _exit __P((int __status)) __attribute__ ((__noreturn__)); static int been_there_done_that = 0; @@ -61,10 +60,9 @@ void abort(void) sigprocmask(SIG_UNBLOCK, &sigset, (sigset_t *) NULL); } - /* __uClibc_cleanup NULLs itself out after being called */ - if (__uClibc_cleanup) { - __uClibc_cleanup(); - } + /* If we are using stdio, flush all open streams */ + if (__stdio_flush_buffers) + __stdio_flush_buffers(); while (1) { /* Try to suicide with a SIGABRT. */ diff --git a/libc/stdlib/atexit.c b/libc/stdlib/atexit.c index 6c55e60ea..9164b2ac6 100644 --- a/libc/stdlib/atexit.c +++ b/libc/stdlib/atexit.c @@ -17,7 +17,7 @@ * Changed name of __cleanup to __uClibc_cleanup. * Moved declaration of __uClibc_cleanup to __uClibc_main * where it is initialized with (possibly weak alias) - * __stdio_close_all. + * __stdio_flush_buffers. * * Jul 2001 Steve Thayer * @@ -44,7 +44,7 @@ typedef enum { ef_on_exit } ef_type; /* exit function types */ -extern void __stdio_close_all(void); +extern void __stdio_flush_buffers(void); /* this is in the L_exit object */ extern void (*__exit_cleanup) (int); @@ -139,13 +139,11 @@ void __exit_handler(int status) break; } } - if (__stdio_close_all) - __stdio_close_all(); } #endif #ifdef L_exit -extern void (*__uClibc_cleanup) (void); +extern void __stdio_flush_buffers(void); void (*__exit_cleanup) (int) = 0; /* @@ -159,8 +157,8 @@ void exit(int rv) } /* Clean up everything else */ - if (__uClibc_cleanup) - __uClibc_cleanup(); + if (__stdio_flush_buffers) + __stdio_flush_buffers(); _exit(rv); } |