summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rwxr-xr-xconfigure56
-rw-r--r--configure.ac6
-rw-r--r--include/private/gcconfig.h4
-rw-r--r--sparc_mach_dep.S2
-rw-r--r--win32_threads.c25
6 files changed, 60 insertions, 44 deletions
diff --git a/ChangeLog b/ChangeLog
index e1fc871b..c7244732 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2007-05-01 Hans Boehm <Hans.Boehm@hp.com>
+ (and Manuel Serrano, Craig McDaniel)
+
+ * configure.ac: Comment out redundant
+ AC_DEFINE(NO_EXECUTE_PERMISSION).
+ * configure: Regenerate.
+ * sparc_mach_dep.S: Remove single quote in comment.
+ * include/private/gcconfig.h: Fix DATAEND for NONSTOP.
+ * win32_threads.c: Include stdint.h for Mingw. Add GC_API for DllMain.
+ (GC_use_DllMain): Fix assertion.
+
2007-02-14 Andreas Tobler <a.tobler@schweiz.org>
* configure.ac: Introduce extra_ldflags_libgc. Use it for Darwin.
diff --git a/configure b/configure
index 38c84724..02449995 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
#! /bin/sh
-# From configure.ac Revision: 1.20 .
+# From configure.ac Revision: 1.21 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61 for gc 7.0alpha8.
#
@@ -6000,7 +6000,7 @@ esac
# extra LD Flags which are required for targets
case "${host}" in
-*-*-darwin*)
+ *-*-darwin*)
extra_ldflags_libgc=-Wl,-single_module
;;
esac
@@ -6135,11 +6135,7 @@ _ACEOF
;;
mips-*-*)
machdep="mach_dep.lo"
- cat >>confdefs.h <<\_ACEOF
-#define NO_EXECUTE_PERMISSION 1
-_ACEOF
-
- ;;
+ ;;
sparc-*-netbsd*)
machdep="mach_dep.lo sparc_netbsd_mach_dep.lo"
;;
@@ -6854,7 +6850,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 6857 "configure"' > conftest.$ac_ext
+ echo '#line 6853 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -9117,11 +9113,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:9120: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:9116: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:9124: \$? = $ac_status" >&5
+ echo "$as_me:9120: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -9385,11 +9381,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:9388: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:9384: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:9392: \$? = $ac_status" >&5
+ echo "$as_me:9388: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -9489,11 +9485,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:9492: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:9488: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:9496: \$? = $ac_status" >&5
+ echo "$as_me:9492: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -11797,7 +11793,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 11800 "configure"
+#line 11796 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11897,7 +11893,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 11900 "configure"
+#line 11896 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -14237,11 +14233,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:14240: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14236: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:14244: \$? = $ac_status" >&5
+ echo "$as_me:14240: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -14341,11 +14337,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:14344: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14340: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:14348: \$? = $ac_status" >&5
+ echo "$as_me:14344: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -15911,11 +15907,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15914: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15910: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15918: \$? = $ac_status" >&5
+ echo "$as_me:15914: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -16015,11 +16011,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16018: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16014: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16022: \$? = $ac_status" >&5
+ echo "$as_me:16018: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -18217,11 +18213,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:18220: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:18216: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:18224: \$? = $ac_status" >&5
+ echo "$as_me:18220: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -18485,11 +18481,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:18488: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:18484: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:18492: \$? = $ac_status" >&5
+ echo "$as_me:18488: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -18589,11 +18585,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:18592: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:18588: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:18596: \$? = $ac_status" >&5
+ echo "$as_me:18592: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
diff --git a/configure.ac b/configure.ac
index f7d98283..6855e7e3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@ AC_INIT(gc,7.0alpha8,Hans.Boehm@hp.com)
AC_CONFIG_SRCDIR(gcj_mlc.c)
AC_CANONICAL_TARGET
AC_PREREQ(2.53)
-AC_REVISION($Revision: 1.21 $)
+AC_REVISION($Revision: 1.22 $)
GC_SET_VERSION
AM_INIT_AUTOMAKE([foreign dist-bzip2 subdir-objects nostdinc])
AM_MAINTAINER_MODE
@@ -387,7 +387,9 @@ case "$host" in
;;
mips-*-*)
machdep="mach_dep.lo"
- AC_DEFINE(NO_EXECUTE_PERMISSION)
+ dnl AC_DEFINE(NO_EXECUTE_PERMISSION)
+ dnl This is now redundant, but it is also important for incremental GC
+ dnl performance under Irix.
;;
sparc-*-netbsd*)
machdep="mach_dep.lo sparc_netbsd_mach_dep.lo"
diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h
index 191c9915..e8c03222 100644
--- a/include/private/gcconfig.h
+++ b/include/private/gcconfig.h
@@ -1405,8 +1405,8 @@
# define OS_TYPE "NONSTOP"
# define ALIGNMENT 4
# define DATASTART ((ptr_t) 0x08000000)
- extern int _end[];
-# define DATAEND (_end)
+ extern char **environ;
+# define DATAEND ((ptr_t)(environ - 0x10))
# define STACKBOTTOM ((ptr_t) 0x4fffffff)
# endif
# endif
diff --git a/sparc_mach_dep.S b/sparc_mach_dep.S
index 431caa2d..e8ad6556 100644
--- a/sparc_mach_dep.S
+++ b/sparc_mach_dep.S
@@ -25,7 +25,7 @@ GC_save_regs_in_stack:
! GC_clear_stack_inner(arg, limit) clears stack area up to limit and
! returns arg. Stack clearing is crucial on SPARC, so we supply
-! an assembly version that's more careful. Assumes limit is hotter
+! an assembly version that s more careful. Assumes limit is hotter
! than sp, and limit is 8 byte aligned.
.globl GC_clear_stack_inner
GC_clear_stack_inner:
diff --git a/win32_threads.c b/win32_threads.c
index 4fbfca51..1215f91d 100644
--- a/win32_threads.c
+++ b/win32_threads.c
@@ -2,6 +2,13 @@
#if defined(GC_WIN32_THREADS)
+#if defined( _MINGW_VER )
+# include <stdint.h>
+ /* We mention uintptr_t. */
+ /* Perhaps this should be included in pure msft environments */
+ /* as well? */
+#endif
+
#include <windows.h>
#ifdef THREAD_LOCAL_ALLOC
@@ -83,6 +90,13 @@
# define GC_win32_dll_threads FALSE
#endif
+/* We have two versions of the thread table. Which one */
+/* we us depends on whether or not GC_win32_dll_threads */
+/* is set. The one complication is that at process */
+/* startup, we use both, since the client hasn't yet */
+/* had a chance to tell us which one (s)he wants. */
+static GC_bool client_has_run = FALSE;
+
/* The type of the first argument to InterlockedExchange. */
/* Documented to be LONG volatile *, but at least gcc likes */
/* this better. */
@@ -108,7 +122,7 @@ void GC_init_parallel(void);
# endif
GC_need_to_lock = TRUE;
/* Cannot intercept thread creation. */
- GC_ASSERT(GC_gc_no == 0);
+ GC_ASSERT(!client_has_run);
GC_win32_dll_threads = TRUE;
}
#else
@@ -167,13 +181,6 @@ typedef volatile struct GC_Thread_Rep * GC_vthread;
volatile GC_bool GC_please_stop = FALSE;
-/* We have two versions of the thread table. Which one */
-/* we us depends on whether or not GC_win32_dll_threads */
-/* is set. The one complication is that at process */
-/* startup, we use both, since the client hasn't yet */
-/* had a chance to tell us which one (s)he wants. */
-static GC_bool client_has_run = FALSE;
-
/* Thread table used if GC_win32_dll_threads is set. */
/* This is a fixed size array. */
/* Since we use runtime conditionals, both versions */
@@ -1284,7 +1291,7 @@ int GC_pthread_detach(pthread_t thread)
* we do in other places.
*/
#ifdef GC_DLL
-BOOL WINAPI DllMain(HINSTANCE inst, ULONG reason, LPVOID reserved)
+GC_API BOOL WINAPI DllMain(HINSTANCE inst, ULONG reason, LPVOID reserved)
{
struct GC_stack_base sb;
DWORD thread_id;