Loading...
stdlib/FreeBSD/exit.c.patch Libc-320 Libc-763.11
--- Libc/Libc-320/stdlib/FreeBSD/exit.c.patch
+++ Libc/Libc-763.11/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 @@
- void (*__cleanup)();
+--- 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)
@@ -11,20 +13,22 @@
 - * processes.
 - */
 -int	__isthreaded	= 0;
--
--/*
++extern void __exit(int);
+ 
+ /*
   * Exit, flushing stdio buffers if necessary.
-  */
- void
-@@ -63,11 +54,6 @@
+@@ -59,13 +51,8 @@ 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;)
+-
+ 	__cxa_finalize(NULL);
+ 	if (__cleanup)
+ 		(*__cleanup)();
+-	_exit(status);
++	__exit(status);
+ }