+2009-09-16 Ivan Maidanski <ivmai@mail.ru>
+ (ivmai131.diff - superseding diff83, diff84 partly)
+
+ * doc/README.solaris2: Replace GC_SOLARIS_THREADS with GC_THREADS.
+ * doc/README.win32: Replace GC_WIN32_THREADS with GC_THREADS.
+ * doc/README.win64: Add info about mingw-w64; add note for VC++
+ warnings suppression.
+
2009-09-15 Hans Boehm <Hans.Boehm@hp.com> (Mostly Juan Jose Garcia-Ripoll)
(Also similar to, but not the same as, Ivan's diff104_cvs)
SOLARIS THREADS:
-The collector must be compiled with -DGC_SOLARIS_THREADS (thr_ functions)
-or -DGC_THREADS to be thread safe. This assumes use of the pthread_
-interface. Old style Solaris threads are no longer supported.
+The collector must be compiled with -DGC_THREADS to be thread safe.
+This assumes use of the pthread_ interface. Old style Solaris threads
+are no longer supported.
It is also essential that gc.h be included in files that call thr_create,
thr_join, thr_suspend, thr_continue, or dlopen. Gc.h macro defines
Since 6.3alpha2, threads are also better supported in static library builds
with Microsoft tools (use NT_STATIC_THREADS_MAKEFILE) and with the GNU
-tools. In all cases,the collector must be built with GC_WIN32_THREADS
-defined, even if the Cygwin pthreads interface is used.
+tools. The collector must be built with GC_THREADS defined.
(NT_STATIC_THREADS_MAKEFILE does this implicitly. Under Cygwin,
-./configure --enable-threads=posix defines GC_WIN32_THREADS.)
+./configure --enable-threads=posix should be used.)
For the normal, non-dll-based thread tracking to work properly,
threads should be created with GC_CreateThread or GC_beginthreadex,
64-bit Windows on AMD64/Intel EM64T is somewhat supported in the 7.0
-and later release. A collector can be built with Microsoft Visual C++ 2005.
-The resulting test programs have been known to work at least once.
+and later release. A collector can be built with Microsoft Visual C++ 2005
+or with mingw-w64 gcc.
More testing would clearly be helpful.
NT_X64_STATIC_THREADS_MAKEFILE has been used in
Note that currently a few warnings are still generated by default,
and a number of others have been explicitly turned off in the makefile.
+
+VC++ note: to suppress warnings use -D_CRT_SECURE_NO_DEPRECATE.
+
+gcc note: -fno-strict-aliasing should be used if optimizing.