From d1fee1ba835c9b78011d65864468ce7c92522043 Mon Sep 17 00:00:00 2001
From: green <green@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 15 Mar 2002 18:01:38 +0000
Subject: [PATCH] Address mingw32 issues.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50816 138bc75d-0d04-0410-961f-82ee72b054a4
---
 boehm-gc/ChangeLog    |  7 +++++++
 boehm-gc/configure    | 10 +++++++---
 boehm-gc/configure.in |  1 +
 boehm-gc/misc.c       |  7 ++++---
 4 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index c132c031cf32..bf564944e84f 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,10 @@
+2002-03-15  Anthony Green  <green@redhat.com>
+
+	* misc.c (GC_init_inner): Initialize GC_write_cs before use.
+	* configure.in: Disable use of getenv for win32 targets (some of
+	which have broken implementations).
+	* configure: Rebuilt.
+
 2002-03-12  Adam Megacz  <adam@xwt.org>
 
         * dyn_load.c: Renamed GC_win32s to GC_no_win32_dlls.
diff --git a/boehm-gc/configure b/boehm-gc/configure
index e2b4840c9d53..edfd4f116a99 100755
--- a/boehm-gc/configure
+++ b/boehm-gc/configure
@@ -2725,6 +2725,10 @@ EOF
  win32)
     cat >> confdefs.h <<\EOF
 #define GC_WIN32_THREADS 1
+EOF
+
+    cat >> confdefs.h <<\EOF
+#define NO_GETENV 1
 EOF
 
     ;;
@@ -2738,7 +2742,7 @@ esac
 
 
 echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:2742: checking for dlopen in -ldl" >&5
+echo "configure:2746: checking for dlopen in -ldl" >&5
 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2746,7 +2750,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2750 "configure"
+#line 2754 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2757,7 +2761,7 @@ int main() {
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:2761: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
diff --git a/boehm-gc/configure.in b/boehm-gc/configure.in
index 155653dbf26f..b3a785186c7f 100644
--- a/boehm-gc/configure.in
+++ b/boehm-gc/configure.in
@@ -109,6 +109,7 @@ case "$THREADS" in
     ;;
  win32)
     AC_DEFINE(GC_WIN32_THREADS)
+    AC_DEFINE(NO_GETENV)
     ;;
  decosf1 | irix | mach | os2 | solaris | dce | vxworks)
     AC_MSG_ERROR(thread package $THREADS not yet supported)
diff --git a/boehm-gc/misc.c b/boehm-gc/misc.c
index a89f04407b4c..50955f458cc4 100644
--- a/boehm-gc/misc.c
+++ b/boehm-gc/misc.c
@@ -499,6 +499,10 @@ void GC_init_inner()
 #   ifdef PRINTSTATS
       GC_print_stats = 1;
 #   endif
+#   if defined(MSWIN32) || defined(MSWINCE)
+	InitializeCriticalSection(&GC_write_cs);
+#   endif
+
     if (0 != GETENV("GC_PRINT_STATS")) {
       GC_print_stats = 1;
     } 
@@ -536,9 +540,6 @@ void GC_init_inner()
     if (ALIGNMENT > GC_DS_TAGS && EXTRA_BYTES != 0) {
       GC_obj_kinds[NORMAL].ok_descriptor = ((word)(-ALIGNMENT) | GC_DS_LENGTH);
     }
-#   if defined(MSWIN32) || defined(MSWINCE)
-	InitializeCriticalSection(&GC_write_cs);
-#   endif
     GC_setpagesize();
     GC_exclude_static_roots(beginGC_arrays, endGC_arrays);
     GC_exclude_static_roots(beginGC_obj_kinds, endGC_obj_kinds);
-- 
GitLab