From 1b7ad41e50ce327c3258d5a33e2cb86f2c855192 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Wed, 8 May 2013 23:13:51 +0000 Subject: 2013-05-07 Sebastian Huber * libc/include/sys/config.h (_REENT_GLOBAL_ATEXIT): Define for RTEMS. * libc/include/sys/reent.h (_reent): Use _REENT_GLOBAL_ATEXIT. (_global_atexit): Declare if _REENT_GLOBAL_ATEXIT is defined. * libc/reent/reent.c (_reclaim_reent): Remove atexit cleanup if _REENT_GLOBAL_ATEXIT is defined. (_wrapup_reent): Remove atexit handling if _REENT_GLOBAL_ATEXIT is defined. * libc/stdlib/__atexit.c (_global_atexit0): Define if _REENT_GLOBAL_ATEXIT is defined. * libc/stdlib/__call_atexit.c (_global_atexit): Define if _REENT_GLOBAL_ATEXIT is defined. --- newlib/libc/stdlib/__atexit.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'newlib/libc/stdlib/__atexit.c') diff --git a/newlib/libc/stdlib/__atexit.c b/newlib/libc/stdlib/__atexit.c index a095313d3..f04f00d8e 100644 --- a/newlib/libc/stdlib/__atexit.c +++ b/newlib/libc/stdlib/__atexit.c @@ -15,7 +15,12 @@ void * malloc(size_t) _ATTRIBUTE((__weak__)); extern _LOCK_RECURSIVE_T __atexit_lock; #endif -#define _GLOBAL_ATEXIT0 (&_GLOBAL_REENT->_atexit0) +#ifdef _REENT_GLOBAL_ATEXIT +static struct _atexit _global_atexit0 = _ATEXIT_INIT; +# define _GLOBAL_ATEXIT0 (&_global_atexit0) +#else +# define _GLOBAL_ATEXIT0 (&_GLOBAL_REENT->_atexit0) +#endif /* * Register a function to be performed at exit or on shared library unload. -- cgit v1.2.3