2010-04-09 Ivan Maidanski <ivmai@mail.ru>
authorivmai <ivmai>
Fri, 9 Apr 2010 08:32:48 +0000 (08:32 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 26 Jul 2011 17:06:53 +0000 (21:06 +0400)
* 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).

ChangeLog
NT_MAKEFILE
NT_STATIC_THREADS_MAKEFILE
NT_X64_STATIC_THREADS_MAKEFILE
NT_X64_THREADS_MAKEFILE
doc/README.win32
win32_threads.c

index b43001d..39ccf2e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+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
index e4100b5..e454b0b 100644 (file)
@@ -1,11 +1,15 @@
 # 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
@@ -26,8 +30,8 @@ gctest.exe: tests\test.obj gc.lib
 #      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
@@ -40,21 +44,18 @@ cord\de_win.res: cord\de_win.rc cord\de_win.h cord\de_cmds.h
 
 # 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)
index 69a9c5b..dfcc7c6 100644 (file)
@@ -1,5 +1,4 @@
 # 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
@@ -23,7 +22,7 @@ OBJS= alloc.obj reclaim.obj allchblk.obj misc.obj mach_dep.obj os_dep.obj mark_r
 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
@@ -38,8 +37,8 @@ gctest.exe: tests\test.obj gc.lib
 #      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
@@ -52,22 +51,21 @@ cord\de_win.res: cord\de_win.rc cord\de_win.h cord\de_cmds.h
 
 # 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;
-
index 611604b..7b31bfd 100644 (file)
@@ -1,5 +1,4 @@
 # 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
@@ -37,10 +36,9 @@ gc.lib: $(OBJS)
        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
@@ -57,17 +55,16 @@ cord\de.exe: cord\cordbscs.obj cord\cordxtra.obj cord\de.obj cord\de_win.obj cor
 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;
-
index ee851a6..eadd616 100644 (file)
@@ -27,7 +27,7 @@ AO_INCLUDE_DIR=$(AO_SRC_DIR)
 
 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
@@ -43,19 +43,17 @@ $(OBJS) tests\test.obj: include\private\gc_priv.h include\private\gc_hdrs.h incl
 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
@@ -72,13 +70,13 @@ cord\de.exe: cord\cordbscs.obj cord\cordxtra.obj cord\de.obj cord\de_win.obj cor
 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)
 
@@ -86,4 +84,4 @@ AO_SCR_DIR:
        tar xvfz $(AO_SRC_DIR).tar.gz;
 
 clean:
-       del *.obj gc64_dll.lib gc64_dll.dll
+       del *.obj gc64_dll.lib gc64.dll
index 47699e1..e93df25 100644 (file)
@@ -49,7 +49,7 @@ client code should include gc_cpp.h.
 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.
index b70b5ec..3863582 100644 (file)
@@ -1360,7 +1360,6 @@ GC_INNER void GC_push_all_stacks(void)
 
 #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        */
@@ -1463,7 +1462,6 @@ GC_INNER void GC_get_next_stack(char *start, char *limit,
   }
   *plast_stack_min = *lo;
 }
-#endif /* DYNAMIC_LOADING || CYGWIN32 */
 
 #ifdef PARALLEL_MARK