diff options
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 8c39236de..c3c0d2a17 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); } |