diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2013-07-02 21:30:57 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2013-07-02 21:30:57 +0000 |
commit | e2ac49d3d7c6445c07467e2a4d271d5664f83830 (patch) | |
tree | 02ccae3e9d54922004de57e02338c1f4b77098b8 /newlib/libc/stdlib/cxa_atexit.c | |
parent | a838011d07bd7a1408619b68646d3ced78a4f25e (diff) | |
download | newlib-e2ac49d3d7c6445c07467e2a4d271d5664f83830.zip newlib-e2ac49d3d7c6445c07467e2a4d271d5664f83830.tar.gz newlib-e2ac49d3d7c6445c07467e2a4d271d5664f83830.tar.bz2 |
2013-07-02 Joey Ye <joey.ye@arm.com>
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.
Diffstat (limited to 'newlib/libc/stdlib/cxa_atexit.c')
-rw-r--r-- | newlib/libc/stdlib/cxa_atexit.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/newlib/libc/stdlib/cxa_atexit.c b/newlib/libc/stdlib/cxa_atexit.c index 8c39236..c3c0d2a 100644 --- a/newlib/libc/stdlib/cxa_atexit.c +++ b/newlib/libc/stdlib/cxa_atexit.c @@ -19,5 +19,14 @@ _DEFUN (__cxa_atexit, void *arg _AND void *d) { - return __register_exitproc (__et_cxa, (void (*)(void)) fn, arg, d); +#ifdef _LITE_EXIT + /* Refer to comments in __atexit.c for more details of lite exit. */ + int __register_exitproc _PARAMS ((int, void (*fn) (void), _PTR, _PTR)) + __attribute__ ((weak)); + + if (!__register_exitproc) + return 0; + else +#endif + return __register_exitproc (__et_cxa, (void (*)(void)) fn, arg, d); } |