* NT_MAKEFILE: Remove the comment about DLL and Win32S.
* NT_STATIC_THREADS_MAKEFILE: Ditto.
* NT_X64_STATIC_THREADS_MAKEFILE: Ditto.
* NT_MAKEFILE: Add ".SUFFIXES" directive (to handle gc_cpp.cc
properly on VS 2005+).
* NT_MAKEFILE: Update GC log file name in comments.
* NT_STATIC_THREADS_MAKEFILE: Ditto.
* NT_X64_STATIC_THREADS_MAKEFILE: Ditto.
* NT_X64_THREADS_MAKEFILE: Ditto.
* doc/README.win32: Ditto.
* NT_MAKEFILE: Remove ":full" for "-debug" option (since no
longer supported by VS).
* NT_STATIC_THREADS_MAKEFILE: Ditto.
* NT_MAKEFILE: Commented out copying of gc_cpp.cc to gc_cpp.cpp.
* NT_STATIC_THREADS_MAKEFILE: Ditto.
* NT_X64_STATIC_THREADS_MAKEFILE: Ditto.
* NT_X64_THREADS_MAKEFILE: Ditto.
* NT_STATIC_THREADS_MAKEFILE: Add -D PARALLEL_MARK option.
* NT_STATIC_THREADS_MAKEFILE: Increase stack size for gctest.exe.
* NT_X64_STATIC_THREADS_MAKEFILE: Remove "-stack" option (use the
default stack size limit).
* NT_X64_THREADS_MAKEFILE: Rename "gc64_dll.dll" to "gc64.dll".
* win32_threads.c (GC_get_next_stack): Always define (since it is
also used for Cygwin now).
+2010-04-09 Ivan Maidanski <ivmai@mail.ru>
+
+ * NT_MAKEFILE: Remove the comment about DLL and Win32S.
+ * NT_STATIC_THREADS_MAKEFILE: Ditto.
+ * NT_X64_STATIC_THREADS_MAKEFILE: Ditto.
+ * NT_MAKEFILE: Add ".SUFFIXES" directive (to handle gc_cpp.cc
+ properly on VS 2005+).
+ * NT_MAKEFILE: Update GC log file name in comments.
+ * NT_STATIC_THREADS_MAKEFILE: Ditto.
+ * NT_X64_STATIC_THREADS_MAKEFILE: Ditto.
+ * NT_X64_THREADS_MAKEFILE: Ditto.
+ * doc/README.win32: Ditto.
+ * NT_MAKEFILE: Remove ":full" for "-debug" option (since no
+ longer supported by VS).
+ * NT_STATIC_THREADS_MAKEFILE: Ditto.
+ * NT_MAKEFILE: Commented out copying of gc_cpp.cc to gc_cpp.cpp.
+ * NT_STATIC_THREADS_MAKEFILE: Ditto.
+ * NT_X64_STATIC_THREADS_MAKEFILE: Ditto.
+ * NT_X64_THREADS_MAKEFILE: Ditto.
+ * NT_STATIC_THREADS_MAKEFILE: Add -D PARALLEL_MARK option.
+ * NT_STATIC_THREADS_MAKEFILE: Increase stack size for gctest.exe.
+ * NT_X64_STATIC_THREADS_MAKEFILE: Remove "-stack" option (use the
+ default stack size limit).
+ * NT_X64_THREADS_MAKEFILE: Rename "gc64_dll.dll" to "gc64.dll".
+ * win32_threads.c (GC_get_next_stack): Always define (since it is
+ also used for Cygwin now).
+
2010-03-26 Ivan Maidanski <ivmai@mail.ru> (really Hans Boehm)
* alloc.c (GC_maybe_gc): Move GC_notify_full_gc() call upper to
# Makefile for Windows NT. Assumes Microsoft compiler, and a single thread.
-# DLLs are included in the root set under NT, but not under win32S.
# Use "nmake nodebug=1 all" for optimized versions of library, gctest and editor.
MY_CPU=X86
CPU=$(MY_CPU)
!include <ntwin32.mak>
+# Make sure that .cc is not viewed as a suffix. It is for VC++2005, but
+# not earlier versions. We can deal with either, but not inconsistency.
+.SUFFIXES:
+.SUFFIXES: .obj .cpp .c
+
OBJS= alloc.obj reclaim.obj allchblk.obj misc.obj mach_dep.obj os_dep.obj mark_rts.obj headers.obj mark.obj obj_map.obj blacklst.obj finalize.obj new_hblk.obj dbg_mlc.obj malloc.obj stubborn.obj dyn_load.obj typd_mlc.obj ptr_chck.obj gc_cpp.obj mallocx.obj extra\msvc_dbg.obj
all: gctest.exe cord\de.exe test_cpp.exe
# The following works for win32 debugging. For win32s debugging use debugtype:coff
# and add mapsympe line.
# This produces a "GUI" applications that opens no windows and writes to the log file
-# "gc.log". This is done to make the result runnable under win32s.
- $(link) -debug:full -debugtype:cv $(guiflags) -stack:131072 -out:$*.exe tests\test.obj $(guilibs) gc.lib
+# "gctest.gc.log". This is done to make the result runnable under win32s.
+ $(link) -debug -debugtype:cv $(guiflags) -stack:131072 -out:$*.exe tests\test.obj $(guilibs) gc.lib
# mapsympe -n -o gctest.sym gctest.exe
cord\de_win.rbj: cord\de_win.res
# Cord/de is a real win32 gui application.
cord\de.exe: cord\cordbscs.obj cord\cordxtra.obj cord\de.obj cord\de_win.obj cord\de_win.rbj gc.lib
- $(link) -debug:full -debugtype:cv $(guiflags) -stack:16384 -out:cord\de.exe cord\cordbscs.obj cord\cordxtra.obj cord\de.obj cord\de_win.obj cord\de_win.rbj gc.lib $(guilibs)
+ $(link) -debug -debugtype:cv $(guiflags) -stack:16384 -out:cord\de.exe cord\cordbscs.obj cord\cordxtra.obj cord\de.obj cord\de_win.obj cord\de_win.rbj gc.lib $(guilibs)
gc_cpp.obj: include\gc_cpp.h include\gc.h
gc_cpp.cpp: gc_cpp.cc
- copy gc_cpp.cc gc_cpp.cpp
+# copy gc_cpp.cc gc_cpp.cpp
test_cpp.cpp: tests\test_cpp.cc
copy tests\test_cpp.cc test_cpp.cpp
# This generates the C++ test executable. The executable expects
# a single numeric argument, which is the number of iterations.
-# The output appears in the file "gc.log".
+# The output appears in the file "test_cpp.gc.log".
test_cpp.exe: test_cpp.obj include\gc_cpp.h include\gc.h gc.lib
- $(link) -debug:full -debugtype:cv $(guiflags) -stack:16384 -out:test_cpp.exe test_cpp.obj gc.lib $(guilibs)
-
-
-
+ $(link) -debug -debugtype:cv $(guiflags) -stack:16384 -out:test_cpp.exe test_cpp.obj gc.lib $(guilibs)
# Makefile for Windows NT. Assumes Microsoft compiler.
-# DLLs are included in the root set under NT, but not under win32S.
# Use "nmake nodebug=1 all" for optimized versions of library, gctest and editor.
MY_CPU=X86
all: gctest.exe cord\de.exe test_cpp.exe
.c.obj:
- $(cc) $(cdebug) $(cflags) $(cvarsmt) -Iinclude -I$(AO_INCLUDE_DIR) -DALL_INTERIOR_POINTERS -DGC_NOT_DLL -DGC_THREADS -DTHREAD_LOCAL_ALLOC -D_CRT_SECURE_NO_DEPRECATE $*.c /Fo$*.obj
+ $(cc) $(cdebug) $(cflags) $(cvarsmt) -Iinclude -I$(AO_INCLUDE_DIR) -DALL_INTERIOR_POINTERS -DGC_NOT_DLL -DGC_THREADS -DTHREAD_LOCAL_ALLOC -DPARALLEL_MARK -D_CRT_SECURE_NO_DEPRECATE $*.c /Fo$*.obj
.cpp.obj:
$(cc) $(cdebug) $(cflags) $(cvarsmt) -Iinclude -I$(AO_INCLUDE_DIR) -DALL_INTERIOR_POINTERS -DGC_NOT_DLL $*.CPP -DGC_THREADS -DTHREAD_LOCAL_ALLOC /Fo$*.obj
# The following works for win32 debugging. For win32s debugging use debugtype:coff
# and add mapsympe line.
# This produces a "GUI" applications that opens no windows and writes to the log file
-# "gc.log". This is done to make the result runnable under win32s.
- $(link) -debug:full -debugtype:cv $(guiflags) -stack:131072 -out:$*.exe tests\test.obj $(guilibs) gc.lib
+# "gctest.gc.log". This is done to make the result runnable under win32s.
+ $(link) -debug -debugtype:cv $(guiflags) -stack:262144 -out:$*.exe tests\test.obj $(guilibs) gc.lib
# mapsympe -n -o gctest.sym gctest.exe
cord\de_win.rbj: cord\de_win.res
# Cord/de is a real win32 gui application.
cord\de.exe: cord\cordbscs.obj cord\cordxtra.obj cord\de.obj cord\de_win.obj cord\de_win.rbj gc.lib
- $(link) -debug:full -debugtype:cv $(guiflags) -stack:16384 -out:cord\de.exe cord\cordbscs.obj cord\cordxtra.obj cord\de.obj cord\de_win.obj cord\de_win.rbj gc.lib $(guilibs)
+ $(link) -debug -debugtype:cv $(guiflags) -stack:16384 -out:cord\de.exe cord\cordbscs.obj cord\cordxtra.obj cord\de.obj cord\de_win.obj cord\de_win.rbj gc.lib $(guilibs)
gc_cpp.obj: include\gc_cpp.h include\gc.h
gc_cpp.cpp: gc_cpp.cc
- copy gc_cpp.cc gc_cpp.cpp
+# copy gc_cpp.cc gc_cpp.cpp
test_cpp.cpp: tests\test_cpp.cc
copy tests\test_cpp.cc test_cpp.cpp
# This generates the C++ test executable. The executable expects
# a single numeric argument, which is the number of iterations.
-# The output appears in the file "gc.log".
+# The output appears in the file "test_cpp.gc.log".
test_cpp.exe: test_cpp.obj include\gc_cpp.h include\gc.h gc.lib
- $(link) -debug:full -debugtype:cv $(guiflags) -stack:16384 -out:test_cpp.exe test_cpp.obj gc.lib $(guilibs)
+ $(link) -debug -debugtype:cv $(guiflags) -stack:16384 -out:test_cpp.exe test_cpp.obj gc.lib $(guilibs)
AO_SCR_DIR:
tar xvfz $(AO_SRC_DIR).tar.gz;
-
# Makefile for Windows NT. Assumes Microsoft compiler.
-# DLLs are included in the root set.
# Use "nmake nodebug=1 all" for optimized versions of library, gctest and editor.
MY_CPU=AMD64
lib /MACHINE:X64 /out:gc.lib $(OBJS)
gctest.exe: tests\test.obj gc.lib
-# This produces a "GUI" applications that opens no windows and writes to the log file
-# "gc.log". This was done to make the result runnable under win32s and
-# should be fixed.
- $(link) $(ldebug) $(guiflags) -stack:131072 -out:$*.exe tests\test.obj $(guilibs) gc.lib
+# This produces a "GUI" applications that opens no windows and writes to
+# the log file "gctest.gc.log".
+ $(link) $(ldebug) $(guiflags) -out:$*.exe tests\test.obj $(guilibs) gc.lib
cord\de_win.rbj: cord\de_win.res
cvtres /MACHINE:$(MY_CPU) /OUT:cord\de_win.rbj cord\de_win.res
gc_cpp.obj: include\gc_cpp.h include\gc.h
gc_cpp.cpp: gc_cpp.cc
- copy gc_cpp.cc gc_cpp.cpp
+# copy gc_cpp.cc gc_cpp.cpp
test_cpp.cpp: tests\test_cpp.cc
copy tests\test_cpp.cc test_cpp.cpp
# This generates the C++ test executable. The executable expects
# a single numeric argument, which is the number of iterations.
-# The output appears in the file "gc.log".
+# The output appears in the file "test_cpp.gc.log".
test_cpp.exe: test_cpp.obj include\gc_cpp.h include\gc.h gc.lib
$(link) $(ldebug) $(guiflags) -stack:16384 -out:test_cpp.exe test_cpp.obj gc.lib $(guilibs)
AO_SCR_DIR:
tar xvfz $(AO_SRC_DIR).tar.gz;
-
OBJS= alloc.obj reclaim.obj allchblk.obj misc.obj mach_dep.obj os_dep.obj mark_rts.obj headers.obj mark.obj obj_map.obj blacklst.obj finalize.obj new_hblk.obj dbg_mlc.obj malloc.obj stubborn.obj dyn_load.obj typd_mlc.obj ptr_chck.obj gc_cpp.obj mallocx.obj win32_threads.obj extra\msvc_dbg.obj thread_local_alloc.obj
-all: gc64_dll.dll gctest.exe cord\de.exe test_cpp.exe
+all: gc64.dll gctest.exe cord\de.exe test_cpp.exe
.c.obj:
$(cc) $(cdebug) $(cflags) $(cvarsmt) -Iinclude -I$(AO_INCLUDE_DIR) -DALL_INTERIOR_POINTERS -DGC_DLL -DGC_THREADS -D_CRT_SECURE_NO_DEPRECATE $*.c /Fo$*.obj /wd4701
LINK64=link.exe
LINK64_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib \
shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo \
-/subsystem:windows /dll /incremental:no /pdb:"gc.pdb" /machine:X64 /out:"gc64_dll.dll" \
+/subsystem:windows /dll /incremental:no /pdb:"gc.pdb" /machine:X64 /out:"gc64.dll" \
/implib:"gc64_dll.lib"
-gc64_dll.dll : $(OBJS)
+gc64.dll : $(OBJS)
$(LINK64) $(ldebug) $(LINK64_FLAGS) $(OBJS)
-
gctest.exe: tests\test.obj gc64_dll.lib
-# This produces a "GUI" applications that opens no windows and writes to the log file
-# "gc.log". This was done to make the result runnable under win32s and
-# should be fixed.
- $(link) $(ldebug) $(guiflags) -stack:131072 -out:$*.exe tests\test.obj $(guilibs) gc64_dll.lib
+# This produces a "GUI" applications that opens no windows and writes to
+# the log file "gctest.gc.log".
+ $(link) $(ldebug) $(guiflags) -out:$*.exe tests\test.obj $(guilibs) gc64_dll.lib
cord\de_win.rbj: cord\de_win.res
cvtres /MACHINE:$(MY_CPU) /OUT:cord\de_win.rbj cord\de_win.res
gc_cpp.obj: include\gc_cpp.h include\gc.h
gc_cpp.cpp: gc_cpp.cc
- copy gc_cpp.cc gc_cpp.cpp
+# copy gc_cpp.cc gc_cpp.cpp
test_cpp.cpp: tests\test_cpp.cc
copy tests\test_cpp.cc test_cpp.cpp
# This generates the C++ test executable. The executable expects # a single numeric argument, which is the number of iterations.
-# The output appears in the file "gc.log".
+# The output appears in the file "test_cpp.gc.log".
test_cpp.exe: test_cpp.obj include\gc_cpp.h include\gc.h gc64_dll.lib
$(link) $(ldebug) $(guiflags) -stack:16384 -out:test_cpp.exe test_cpp.obj gc64_dll.lib $(guilibs)
tar xvfz $(AO_SRC_DIR).tar.gz;
clean:
- del *.obj gc64_dll.lib gc64_dll.dll
+ del *.obj gc64_dll.lib gc64.dll
For historical reasons,
the collector test program "gctest" is linked as a GUI application,
but does not open any windows. Its output appears in the file
-"gc.log". It may be started from the file manager. The hour glass
+"gctest.gc.log". It may be started from the file manager. The hour glass
cursor may appear as long as it's running. If it is started from the
command line, it will usually run in the background. Wait a few
minutes (a few seconds on a modern machine) before you check the output.
#endif
-#if defined(DYNAMIC_LOADING) || defined(CYGWIN32)
/* Find stack with the lowest address which overlaps the */
/* interval [start, limit). */
/* Return stack bounds in *lo and *hi. If no such stack */
}
*plast_stack_min = *lo;
}
-#endif /* DYNAMIC_LOADING || CYGWIN32 */
#ifdef PARALLEL_MARK