summaryrefslogtreecommitdiff
path: root/lib/libc
diff options
context:
space:
mode:
authorAlexander Kabaev <kan@FreeBSD.org>2003-12-19 17:11:21 +0000
committerAlexander Kabaev <kan@FreeBSD.org>2003-12-19 17:11:21 +0000
commit50bcce79ff3918bdda9520e0ad631d80df66bbb0 (patch)
treeefbabd11f110e786f47c858d0d07235825295adc /lib/libc
parent61cf73b3ebdd6204f63ed93af04d4f396844e87c (diff)
Notes
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/stdlib/atexit.h8
-rw-r--r--lib/libc/stdlib/exit.c7
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);