diff options
Diffstat (limited to 'lib/libc')
| -rw-r--r-- | lib/libc/stdlib/atexit.h | 8 | ||||
| -rw-r--r-- | lib/libc/stdlib/exit.c | 7 | 
2 files changed, 2 insertions, 13 deletions
| diff --git a/lib/libc/stdlib/atexit.h b/lib/libc/stdlib/atexit.h index 96ef95f8bb02..704c2e168939 100644 --- a/lib/libc/stdlib/atexit.h +++ b/lib/libc/stdlib/atexit.h @@ -37,10 +37,4 @@  /* must be at least 32 to guarantee ANSI conformance */  #define	ATEXIT_SIZE	32 -struct atexit { -	struct atexit *next;		/* next in list */ -	int ind;			/* next index in this table */ -	void (*fns[ATEXIT_SIZE])();	/* the table itself */ -}; - -extern struct atexit *__atexit;	/* points to head of LIFO stack */ +void __cxa_finalize(void *dso); diff --git a/lib/libc/stdlib/exit.c b/lib/libc/stdlib/exit.c index 78c5f36c29e5..83abdbd5d506 100644 --- a/lib/libc/stdlib/exit.c +++ b/lib/libc/stdlib/exit.c @@ -61,17 +61,12 @@ void  exit(status)  	int status;  { -	struct atexit *p; -	int n; -  	/* Ensure that the auto-initialization routine is linked in: */  	extern int _thread_autoinit_dummy_decl;  	_thread_autoinit_dummy_decl = 1; -	for (p = __atexit; p; p = p->next) -		for (n = p->ind; --n >= 0;) -			(*p->fns[n])(); +	__cxa_finalize(NULL);  	if (__cleanup)  		(*__cleanup)();  	_exit(status); | 
