exit.c.patch   [plain text]


--- 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);
 }