summaryrefslogtreecommitdiffstats
path: root/newlib/libc/stdlib/cxa_atexit.c
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/stdlib/cxa_atexit.c')
-rw-r--r--newlib/libc/stdlib/cxa_atexit.c11
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);
}