* gthr-win32.h: Protect against conflicting typedef for BOOL in windows headers
authorcgf <cgf@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 3 Feb 2002 20:58:51 +0000 (20:58 +0000)
committercgf <cgf@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 3 Feb 2002 20:58:51 +0000 (20:58 +0000)
and libobjc headers.
* gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
(_mingw.h): Remove duplicate include.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49465 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/gthr-win32.h

index 4b3d726..268c9b9 100644 (file)
@@ -1,3 +1,13 @@
+2001-02-03  Danny Smith <dannysmith@users.sourceforge.net>
+
+       * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
+       headers and libobjc headers.
+
+2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
+
+       * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
+       (_mingw.h): Remove duplicate include.
+
 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
 
        * config.gcc: Set cpu_type to m68k for 68010, as well.
index 31da7a1..97d5a82 100644 (file)
@@ -64,7 +64,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 
 #define __GTHREADS 1
 
-#include <windows.h>
 #include <errno.h>
 #ifdef __MINGW32__
 #include <_mingw.h>
@@ -72,6 +71,15 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 
 #ifdef _LIBOBJC
 
+/* This is necessary to prevent windef.h (included from windows.h) from
+   defining it's own BOOL as a typedef.  */    
+#ifndef __OBJC__
+#define __OBJC__
+#endif
+#include <windows.h>
+/* Now undef the windows BOOL.  */ 
+#undef BOOL
+
 /* Key structure for maintaining thread specific storage */
 static DWORD   __gthread_objc_data_tls = (DWORD)-1;
 
@@ -320,9 +328,7 @@ __gthread_objc_condition_signal(objc_condition_t condition)
 
 #else /* _LIBOBJC */
 
-#ifdef __MINGW32__
-#include <_mingw.h>
-#endif
+#include <windows.h>
 
 typedef DWORD __gthread_key_t;
 
@@ -339,7 +345,14 @@ typedef HANDLE __gthread_mutex_t;
 #if __MINGW32_MAJOR_VERSION >= 1 || \
   (__MINGW32_MAJOR_VERSION == 0 && __MINGW32_MINOR_VERSION > 2)
 #define MINGW32_SUPPORTS_MT_EH 1
-extern int __mingwthr_key_dtor PARAMS ((DWORD, void (*) (void *)));
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int __mingwthr_key_dtor (DWORD, void (*) (void *));
+#ifdef __cplusplus
+}
+#endif
+
 /* Mingw runtime >= v0.3 provides a magic variable that is set to non-zero
    if -mthreads option was specified, or 0 otherwise. This is to get around 
    the lack of weak symbols in PE-COFF.  */