--- exit.c.orig 2006-08-08 16:13:56.000000000 -0700 +++ exit.c 2006-08-11 22:12:56.000000000 -0700 @@ -44,15 +44,7 @@ #include "atexit.h" void (*__cleanup)(); - -/* - * This variable is zero until a process has created a thread. - * It is used to avoid calling locking functions in libc when they - * are not required. By default, libc is intended to be(come) - * thread-safe, but without a (significant) penalty to non-threaded - * processes. - */ -int __isthreaded = 0; +extern void __exit(int); /* * Exit, flushing stdio buffers if necessary. @@ -61,13 +53,8 @@ exit(status) int status; { - /* Ensure that the auto-initialization routine is linked in: */ - extern int _thread_autoinit_dummy_decl; - - _thread_autoinit_dummy_decl = 1; - __cxa_finalize(NULL); if (__cleanup) (*__cleanup)(); - _exit(status); + __exit(status); }