From 6f76c68713a2bc3945cc4c3d27a5c266ed8284ca Mon Sep 17 00:00:00 2001
From: Christopher Faylor <me@cgf.cx>
Date: Sat, 14 Jul 2007 15:58:32 +0000
Subject: [PATCH] * init.cc (in_dllentry): Delete. (dll_entry): Remove
 assignment to deleted variable. * winsup.h (in_dllentry): Delete declaration.
 * exceptions.cc (inside_kernel): Use another method to see if we are in
 dll_entry phase.

---
 winsup/cygwin/ChangeLog     | 8 ++++++++
 winsup/cygwin/exceptions.cc | 2 +-
 winsup/cygwin/init.cc       | 4 ----
 winsup/cygwin/sigproc.cc    | 2 +-
 winsup/cygwin/winsup.h      | 1 -
 5 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 987075959..e95f15f5d 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,11 @@
+2007-07-14  Christopher Faylor  <me+cygwin@cgf.cx>
+
+	* init.cc (in_dllentry): Delete.
+	(dll_entry): Remove assignment to deleted variable.
+	* winsup.h (in_dllentry): Delete declaration.
+	* exceptions.cc (inside_kernel): Use another method to see if we are in
+	dll_entry phase.
+
 2007-07-13  Christopher Faylor  <me+cygwin@cgf.cx>
 
 	* init.cc (in_dllentry): Make NO_COPY to avoid spurious false
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 512e1bef5..efb7a5448 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -288,7 +288,7 @@ inside_kernel (CONTEXT *cx)
   int res;
   MEMORY_BASIC_INFORMATION m;
 
-  if (in_dllentry)
+  if (!_my_tls.isinitialized ())
     return true;
 
   memset (&m, 0, sizeof m);
diff --git a/winsup/cygwin/init.cc b/winsup/cygwin/init.cc
index bbbffba08..08deb5635 100644
--- a/winsup/cygwin/init.cc
+++ b/winsup/cygwin/init.cc
@@ -118,15 +118,12 @@ respawn_wow64_process ()
 extern void __stdcall dll_crt0_0 ();
 
 HMODULE NO_COPY cygwin_hmodule;
-bool NO_COPY in_dllentry;
 
 extern "C" BOOL WINAPI
 dll_entry (HANDLE h, DWORD reason, void *static_load)
 {
   BOOL wow64_test_stack_marker;
 
-  in_dllentry = true;
-
   switch (reason)
     {
     case DLL_PROCESS_ATTACH:
@@ -162,6 +159,5 @@ dll_entry (HANDLE h, DWORD reason, void *static_load)
       break;
     }
 
-  in_dllentry = false;
   return TRUE;
 }
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index 5906c3a24..dcaa0991e 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -39,7 +39,7 @@ details. */
 #define WSSC		  60000	// Wait for signal completion
 #define WPSP		  40000	// Wait for proc_subproc mutex
 
-#define no_signals_available(x) (!hwait_sig || hwait_sig == INVALID_HANDLE_VALUE || ((x) && myself->exitcode & EXITCODE_SET) || &_my_tls == _sig_tls || in_dllentry)
+#define no_signals_available(x) (!hwait_sig || hwait_sig == INVALID_HANDLE_VALUE || ((x) && myself->exitcode & EXITCODE_SET) || &_my_tls == _sig_tls)
 
 #define NPROCS	256
 
diff --git a/winsup/cygwin/winsup.h b/winsup/cygwin/winsup.h
index 58e8ef1a0..f6dc71bd4 100644
--- a/winsup/cygwin/winsup.h
+++ b/winsup/cygwin/winsup.h
@@ -353,7 +353,6 @@ extern bool display_title;
 extern bool transparent_exe;
 
 extern bool in_forkee;
-extern bool in_dllentry;
 
 extern HANDLE hMainThread;
 extern HANDLE hMainProc;