exit.c.patch   [plain text]


--- exit.c.bsdnew	2009-11-13 14:11:48.000000000 -0800
+++ exit.c	2009-11-13 14:47:07.000000000 -0800
@@ -42,15 +42,7 @@ __FBSDID("$FreeBSD: src/lib/libc/stdlib/
 #include "libc_private.h"
 
 void (*__cleanup)(void);
-
-/*
- * 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.
@@ -59,13 +51,8 @@ void
 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);
 }