Address mingw32 issues.

From-SVN: r50816
This commit is contained in:
Anthony Green 2002-03-15 18:01:38 +00:00 committed by Anthony Green
parent 8d39b4476f
commit 512e32d289
4 changed files with 19 additions and 6 deletions

View File

@ -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.

10
boehm-gc/configure vendored
View File

@ -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

View File

@ -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)

View File

@ -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);