Loading...
stdlib/FreeBSD/exit.c.patch Libc-320 Libc-498.1.7
--- Libc/Libc-320/stdlib/FreeBSD/exit.c.patch
+++ Libc/Libc-498.1.7/stdlib/FreeBSD/exit.c.patch
@@ -1,9 +1,11 @@
---- exit.c.orig	Mon Apr 28 16:37:26 2003
-+++ exit.c	Sat May  3 14:28:31 2003
-@@ -46,15 +46,6 @@
+--- 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)
@@ -11,20 +13,22 @@
 - * processes.
 - */
 -int	__isthreaded	= 0;
--
--/*
++extern void __exit(int);
+ 
+ /*
   * Exit, flushing stdio buffers if necessary.
-  */
- void
-@@ -63,11 +54,6 @@
+@@ -61,13 +53,8 @@
+ 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;)
+-
+ 	__cxa_finalize(NULL);
+ 	if (__cleanup)
+ 		(*__cleanup)();
+-	_exit(status);
++	__exit(status);
+ }