From e2ac49d3d7c6445c07467e2a4d271d5664f83830 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Tue, 2 Jul 2013 21:30:57 +0000 Subject: 2013-07-02 Joey Ye Lite exit support. * README: Add information about lite-exit. * acconfig.h (_LITE_EXIT): New macro. * configure.in (enable-lite-exit): New option. (_LITE_EXIT): Define new macro. * configure: Regenerated. * newlib.hin (_LITE_EXIT): New macro. * libc/stdlib/__atexit.c [_LITE_EXIT]: Add dummy explicit reference to __call_exitprocs. * libc/stdlib/cxa_atexit.c [_LITE_EXIT]: Make __register_exitproc a weak reference. * libc/stdlib/exit.c (exit)[_LITE_EXIT]: Remove TWS and weakly reference __call_exitprocs. --- newlib/libc/stdlib/exit.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'newlib/libc/stdlib/exit.c') diff --git a/newlib/libc/stdlib/exit.c b/newlib/libc/stdlib/exit.c index 195b72454..1dc56944a 100644 --- a/newlib/libc/stdlib/exit.c +++ b/newlib/libc/stdlib/exit.c @@ -54,11 +54,16 @@ Supporting OS subroutines required: <<_exit>>. * Exit, flushing stdio buffers if necessary. */ -void +void _DEFUN (exit, (code), int code) { - __call_exitprocs (code, NULL); +#ifdef _LITE_EXIT + /* Refer to comments in __atexit.c for more details of lite exit. */ + void __call_exitprocs _PARAMS ((int, _PTR)) __attribute__((weak)); + if (__call_exitprocs) +#endif + __call_exitprocs (code, NULL); if (_GLOBAL_REENT->__cleanup) (*_GLOBAL_REENT->__cleanup) (_GLOBAL_REENT); -- cgit v1.2.3