]> granicus.if.org Git - gc/commitdiff
Define GC_THREADS instead of GC_x_THREADS in Makefiles
authorIvan Maidanski <ivmai@mail.ru>
Fri, 12 May 2017 20:32:23 +0000 (23:32 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Fri, 12 May 2017 20:33:24 +0000 (23:33 +0300)
(code refactoring)

* CMakeLists.txt [CMAKE_USE_PTHREADS_INIT] (SRC): Add
thread_local_alloc.c in a single place.
* CMakeLists.txt [CMAKE_USE_PTHREADS_INIT]: Define GC_THREADS macro
instead of GC_LINUX_THREADS, GC_AIX_THREADS, GC_HPUX_THREADS,
GC_OPENBSD_THREADS, GC_FREEBSD_THREADS, GC_NETBSD_THREADS,
GC_SOLARIS_THREADS, GC_IRIX_THREADS, GC_DARWIN_THREADS, GC_OSF1_THREADS.
* configure.ac [THREADS=posix]: Likewise.
* CMakeLists.txt [CMAKE_USE_PTHREADS_INIT]: Handle
*-*-aix*, *-*-*freebsd* (including kfreebsd), *-*-gnu*, *-*-irix*,
*-*-openbsd*, *-*-osf*, *-*-solaris* targets in the same ways as
*-*-*linux*.
* Makefile.direct (CFLAGS): Do not mention GC_HPUX_THREADS in comment.
* README.QUICK: Refine documentation about macro and configure option
for builds with (and without) threads support.
* configure.ac (GC_AIX_THREADS, GC_DARWIN_THREADS, GC_FREEBSD_THREADS,
GC_HPUX_THREADS, GC_IRIX_THREADS, GC_LINUX_THREADS, GC_NETBSD_THREADS,
GC_OPENBSD_THREADS, GC_OSF1_THREADS, GC_SOLARIS_THREADS,
GC_WIN32_THREADS, GC_RTEMS_PTHREADS): Remove AH_TEMPLATE.
* configure.ac [THREADS=posix]: Handle *-*-aix*, *-*-irix* targets in
the same ways as *-*-*linux*.
* configure.ac [THREADS=win32 || THREADS=dgux386 || THREADS=aix
|| THREADS=rtems]: Define GC_THREADS macro instead of GC_WIN32_THREADS,
GC_DGUX386_THREADS, GC_AIX_THREADS, GC_RTEMS_PTHREADS.
* doc/README.darwin: Replace GC_MACOSX_THREADS with GC_THREADS.
* doc/README.environment (doc/README.environment): Replace
GC_OSF1_THREADS with OSF1.
* doc/README.hp: Replace GC_HPUX_THREADS with GC_THREADS.
* doc/README.linux: Replace GC_LINUX_THREADS with GC_THREADS.
* doc/scale.html: Likewise.
* doc/README.macros (GC_SOLARIS_THREADS, GC_IRIX_THREADS,
GC_HPUX_THREADS, GC_LINUX_THREADS, GC_OSF1_THREADS, GC_FREEBSD_THREADS,
GC_NETBSD_THREADS, GC_OPENBSD_THREADS, GC_DARWIN_THREADS,
GC_AIX_THREADS, GC_DGUX386_THREADS, GC_WIN32_THREADS): Add note that
the macro is deprecated (GC_THREADS one should be used instead).
* doc/README.sgi: Replace GC_IRIX_THREADS with GC_THREADS.
* doc/README.solaris2: Do not mention GC_SOLARIS_THREADS.
* doc/gcinterface.html: Do not mention GC_XXXX_THREADS.

13 files changed:
CMakeLists.txt
Makefile.direct
README.QUICK
configure.ac
doc/README.darwin
doc/README.environment
doc/README.hp
doc/README.linux
doc/README.macros
doc/README.sgi
doc/README.solaris2
doc/gcinterface.html
doc/scale.html

index a4fda356d0b11579c3db1e4bc5950da1fc0514a4..15c630f2b60f491228935f648387113af2195235 100644 (file)
@@ -79,29 +79,19 @@ MESSAGE("HOST = ${HOST}")
 #Thread Detection. Relying on cmake for lib an includes.
 #TODO check cmake detection
 IF(CMAKE_USE_PTHREADS_INIT)
-        SET(SRC ${SRC} pthread_start.c pthread_support.c pthread_stop_world.c)
-        IF( HOST MATCHES .*-.*-.*linux.*|.*-.*-nacl.*)
-                ADD_DEFINITIONS("-DGC_LINUX_THREADS")
+        SET(SRC ${SRC} pthread_start.c pthread_support.c pthread_stop_world.c thread_local_alloc.c)
+        IF( HOST MATCHES .*-.*-aix.*|.*-.*-.*freebsd.*|.*-.*-gnu.*|.*-.*-irix.*|.*-.*-.*linux.*|.*-.*-nacl.*|.*-.*-openbsd.*|.*-.*-osf.*|.*-.*-solaris.*)
+                ADD_DEFINITIONS("-DGC_THREADS")
                 ADD_DEFINITIONS("-D_REENTRANT")
                 IF(enable_parallel_mark)
                     ADD_DEFINITIONS("-DPARALLEL_MARK")
                 ENDIF(enable_parallel_mark)
                 ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
-                SET(SRC ${SRC} thread_local_alloc.c)
                 MESSAGE("Explicit GC_INIT() calls may be required.")
         ENDIF()
-        IF ( HOST MATCHES .*-.*-aix.*)
-                ADD_DEFINITIONS("-DGC_AIX_THREADS")
-                ADD_DEFINITIONS("-D_REENTRANT")
-                IF(enable_parallel_mark)
-                    ADD_DEFINITIONS("-DPARALLEL_MARK")
-                ENDIF(enable_parallel_mark)
-                ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
-                SET(SRC ${SRC} thread_local_alloc.c)
-        ENDIF()
         IF ( HOST MATCHES .*-.*-hpux11.*)
                 MESSAGE("Only HP/UX 11 POSIX threads are supported.")
-                ADD_DEFINITIONS("-DGC_HPUX_THREADS")
+                ADD_DEFINITIONS("-DGC_THREADS")
                 ADD_DEFINITIONS("-D_POSIX_C_SOURCE=199506L") #TODO test -DVAR=value. Alternative is COMPILE_DEFINITIONS property
                 MESSAGE("Explicit GC_INIT() calls may be required.")
                 ADD_DEFINITIONS("-D_REENTRANT") #TODO
@@ -109,78 +99,19 @@ IF(CMAKE_USE_PTHREADS_INIT)
                     ADD_DEFINITIONS("-DPARALLEL_MARK")
                 ENDIF(enable_parallel_mark)
                 ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
-                SET(SRC ${SRC} thread_local_alloc.c)
         ENDIF()
         IF ( HOST MATCHES .*-.*-hpux10.*)
                 MESSAGE("Only HP/UX 11 POSIX threads are supported.")
         ENDIF()
-        IF ( HOST MATCHES .*-.*-openbsd.*)
-                ADD_DEFINITIONS("-DGC_OPENBSD_THREADS")
-                IF(enable_parallel_mark)
-                    ADD_DEFINITIONS("-DPARALLEL_MARK")
-                ENDIF(enable_parallel_mark)
-                ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
-                SET(SRC ${SRC} thread_local_alloc.c)
-        ENDIF()
-        IF ( HOST MATCHES .*-.*-freebsd.*)
-                ADD_DEFINITIONS("-DGC_FREEBSD_THREADS")
-                IF(enable_parallel_mark)
-                    ADD_DEFINITIONS("-DPARALLEL_MARK")
-                ENDIF(enable_parallel_mark)
-                ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
-                SET(SRC ${SRC} thread_local_alloc.c)
-        ENDIF()
-        IF ( HOST MATCHES .*-.*-kfreebsd.*-gnu)
-                ADD_DEFINITIONS("-DGC_FREEBSD_THREADS")
-                ADD_DEFINITIONS("-D_REENTRANT")
-                IF(enable_parallel_mark)
-                    ADD_DEFINITIONS("-DPARALLEL_MARK")
-                ENDIF(enable_parallel_mark)
-                ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
-                ADD_DEFINITIONS("-DUSE_COMPILER_TLS")
-                SET(SRC ${SRC} thread_local_alloc.c)
-        ENDIF()
-        IF ( HOST MATCHES .*-.*-gnu.*)
-                ADD_DEFINITIONS("-DGC_THREADS")
-                ADD_DEFINITIONS("-D_REENTRANT")
-                IF(enable_parallel_mark)
-                    ADD_DEFINITIONS("-DPARALLEL_MARK")
-                ENDIF(enable_parallel_mark)
-                ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
-                SET(SRC ${SRC} thread_local_alloc.c)
-        ENDIF()
         IF ( HOST MATCHES .*-.*-netbsd.*)
                 MESSAGE("Only on NetBSD 2.0 or later.")
-                ADD_DEFINITIONS("-DGC_NETBSD_THREADS")
+                ADD_DEFINITIONS("-DGC_THREADS")
                 ADD_DEFINITIONS("-D_REENTRANT")
                 ADD_DEFINITIONS("-D_PTHREADS")
                 IF(enable_parallel_mark)
                     ADD_DEFINITIONS("-DPARALLEL_MARK")
                 ENDIF(enable_parallel_mark)
                 ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
-                SET(SRC ${SRC} thread_local_alloc.c)
-        ENDIF()
-        IF ( HOST MATCHES .*-.*-solaris.*)
-                ADD_DEFINITIONS("-DGC_SOLARIS_THREADS")
-                IF(enable_parallel_mark)
-                    ADD_DEFINITIONS("-DPARALLEL_MARK")
-                ENDIF(enable_parallel_mark)
-                ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
-                SET(SRC ${SRC} thread_local_alloc.c)
-#TODO
-#       if test "$GCC" != yes; then
-#          CFLAGS="$CFLAGS -O"
-#          need_atomic_ops_asm=true
-#        fi
-
-        ENDIF()
-        IF ( HOST MATCHES .*-.*-irix.*)
-                ADD_DEFINITIONS("-DGC_IRIX_THREADS")
-                IF(enable_parallel_mark)
-                    ADD_DEFINITIONS("-DPARALLEL_MARK")
-                ENDIF(enable_parallel_mark)
-                ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
-                SET(SRC ${SRC} thread_local_alloc.c)
         ENDIF()
         IF ( HOST MATCHES .*-.*-cygwin.*)
                 ADD_DEFINITIONS("-DGC_THREADS")
@@ -188,28 +119,19 @@ IF(CMAKE_USE_PTHREADS_INIT)
                     ADD_DEFINITIONS("-DPARALLEL_MARK")
                 ENDIF(enable_parallel_mark)
                 ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
-                SET(SRC ${SRC} thread_local_alloc.c win32_threads.c)
+                SET(SRC ${SRC} win32_threads.c)
         ENDIF()
         IF ( HOST MATCHES .*-.*-darwin.*)
-                ADD_DEFINITIONS("-DGC_DARWIN_THREADS")
+                ADD_DEFINITIONS("-DGC_THREADS")
                 IF(enable_parallel_mark)
                     ADD_DEFINITIONS("-DPARALLEL_MARK")
                 ENDIF(enable_parallel_mark)
                 ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
                 MESSAGE("Explicit GC_INIT() calls may be required.")
-                SET(SRC ${SRC} darwin_stop_world.c thread_local_alloc.c)
+                SET(SRC ${SRC} darwin_stop_world.c)
                 #TODO
                 #darwin_threads=true
         ENDIF()
-        IF ( HOST MATCHES .*-.*-osf.*)
-                ADD_DEFINITIONS("-DGC_OSF1_THREADS")
-                IF(enable_parallel_mark)
-                        ADD_DEFINITIONS("-DPARALLEL_MARK")
-                ENDIF()
-                ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
-                SET(SRC ${SRC} thread_local_alloc.c)
-                MESSAGE("Explicit GC_INIT() calls may be required.")
-        ENDIF()
 ENDIF(CMAKE_USE_PTHREADS_INIT)
 
 IF(CMAKE_USE_WIN32_THREADS_INIT)
index 579b888b9799d2da89c9f3e3e3b90e3ac5f3839c..9eec9aaa207adf9487685331202359c178ace75f 100644 (file)
@@ -51,16 +51,8 @@ CFLAGS= -O -I$(srcdir)/include -I$(AO_SRC_DIR)/src \
 # To build the collector with threads support, add to the above:
 # -DGC_THREADS -DPARALLEL_MARK -DTHREAD_LOCAL_ALLOC
 #
-# To build the thread-capable preload library that intercepts
-# malloc, add -DGC_USE_DLOPEN_WRAP -DREDIRECT_MALLOC=GC_malloc -fpic
-#
-# To build the parallel collector in a static library on HP/UX,
-# add to the above:
-# -DGC_HPUX_THREADS -DTHREAD_LOCAL_ALLOC -D_POSIX_C_SOURCE=199506L -mt
-# FIXME: PARALLEL_MARK currently broken on HP/UX.
-#
-# To build the thread-safe collector on Tru64, add to the above:
-# -pthread -DGC_OSF1_THREADS
+# To build the preload library that intercepts malloc, add:
+# -DGC_USE_DLOPEN_WRAP -DREDIRECT_MALLOC=GC_malloc -fpic
 
 # HOSTCC and HOSTCFLAGS are used to build executables that will be run as
 # part of the build process, i.e. on the build machine.  These will usually
index 7f4c9e21e91e19dd4c5ced0a2427a85dd18bb758..d702817d1ed003bbc3ea459caa68a39df7b948ff 100644 (file)
@@ -40,10 +40,9 @@ copy the appropriate makefile to MAKEFILE, read it, and type "nmake test".
 installed, and suitably configured.)
 Read the machine specific README.XXX in the doc directory if one exists.
 
-If you need thread support, you will need to follow the special
-platform-dependent instructions (win32), or define GC_THREADS
-as described in doc/README.macros, or possibly use
---enable-threads=posix when running the configure script.
+If you need thread support, you should define GC_THREADS as described in
+doc/README.macros (configure defines this implicitly unless --disable-threads
+option is given).
 
 If you wish to use the cord (structured string) library with the stand-alone
 Makefile.direct, type "make -f Makefile.direct cords".  (You may need to
index 7ea157d0fe2814902e448169555688f15185b661..3d61cf9766cfee7aa943e433a8fc4a2d2b048e7e 100644 (file)
@@ -136,20 +136,8 @@ AH_TEMPLATE([USE_COMPILER_TLS],
 dnl Thread selection macros.
 AH_TEMPLATE([GC_THREADS],           [Define to support platform-specific
                                      threads.])
-AH_TEMPLATE([GC_AIX_THREADS],       [Define to support IBM AIX threads.])
-AH_TEMPLATE([GC_DARWIN_THREADS],    [Define to support Darwin pthreads.])
-AH_TEMPLATE([GC_FREEBSD_THREADS],   [Define to support FreeBSD pthreads.])
-AH_TEMPLATE([GC_HPUX_THREADS],      [Define to support HP/UX 11 pthreads.])
-AH_TEMPLATE([GC_IRIX_THREADS],      [Define to support Irix pthreads.])
-AH_TEMPLATE([GC_LINUX_THREADS],     [Define to support pthreads on Linux.])
-AH_TEMPLATE([GC_NETBSD_THREADS],    [Define to support NetBSD pthreads.])
-AH_TEMPLATE([GC_OPENBSD_THREADS],   [Define to support OpenBSD pthreads.])
-AH_TEMPLATE([GC_OSF1_THREADS],      [Define to support Tru64 pthreads.])
-AH_TEMPLATE([GC_SOLARIS_THREADS],   [Define to support Solaris pthreads.])
-AH_TEMPLATE([GC_WIN32_THREADS],     [Define to support Win32 threads.])
 AH_TEMPLATE([GC_WIN32_PTHREADS],
                 [Define to support pthreads-win32 or winpthreads.])
-AH_TEMPLATE([GC_RTEMS_PTHREADS],    [Define to support rtems-pthreads.])
 
 dnl System header feature requests.
 AH_TEMPLATE([_POSIX_C_SOURCE], [The POSIX feature macro.])
@@ -182,8 +170,8 @@ case "$THREADS" in
     THREADS=posix
     AC_CHECK_LIB(pthread, pthread_self, THREADDLLIBS="-lpthread",,)
     case "$host" in
-     *-*-*linux* | *-*-nacl*)
-        AC_DEFINE(GC_LINUX_THREADS)
+     *-*-aix* | *-*-irix* | *-*-*linux* | *-*-nacl*)
+        AC_DEFINE(GC_THREADS)
         AC_DEFINE(_REENTRANT)
         if test "${enable_parallel_mark}" != no; then
           AC_DEFINE(PARALLEL_MARK)
@@ -191,17 +179,9 @@ case "$THREADS" in
         AC_DEFINE(THREAD_LOCAL_ALLOC)
         AC_MSG_WARN("Explicit GC_INIT() calls may be required.");
         ;;
-     *-*-aix*)
-        AC_DEFINE(GC_AIX_THREADS)
-        AC_DEFINE(_REENTRANT)
-        if test "${enable_parallel_mark}" != no; then
-          AC_DEFINE(PARALLEL_MARK)
-        fi
-        AC_DEFINE(THREAD_LOCAL_ALLOC)
-        ;;
      *-*-hpux11*)
         AC_MSG_WARN("Only HP/UX 11 POSIX threads are supported.")
-        AC_DEFINE(GC_HPUX_THREADS)
+        AC_DEFINE(GC_THREADS)
         AC_DEFINE(_POSIX_C_SOURCE,199506L)
         if test "${enable_parallel_mark}" != no; then
           AC_DEFINE(PARALLEL_MARK)
@@ -216,7 +196,7 @@ case "$THREADS" in
         AC_MSG_WARN("Only HP-UX 11 POSIX threads are supported.")
         ;;
      *-*-openbsd*)
-        AC_DEFINE(GC_OPENBSD_THREADS)
+        AC_DEFINE(GC_THREADS)
         if test "${enable_parallel_mark}" != no; then
           AC_DEFINE(PARALLEL_MARK)
         fi
@@ -225,7 +205,7 @@ case "$THREADS" in
         AM_CFLAGS="$AM_CFLAGS -pthread"
         ;;
      *-*-freebsd*)
-        AC_DEFINE(GC_FREEBSD_THREADS)
+        AC_DEFINE(GC_THREADS)
         AM_CFLAGS="$AM_CFLAGS -pthread"
         if test "${enable_parallel_mark}" != no; then
           AC_DEFINE(PARALLEL_MARK)
@@ -233,7 +213,7 @@ case "$THREADS" in
         AC_DEFINE(THREAD_LOCAL_ALLOC)
         ;;
      *-*-kfreebsd*-gnu)
-        AC_DEFINE(GC_FREEBSD_THREADS)
+        AC_DEFINE(GC_THREADS)
         AM_CFLAGS="$AM_CFLAGS -pthread"
         THREADDLLIBS=-pthread
         AC_DEFINE(_REENTRANT)
@@ -243,7 +223,7 @@ case "$THREADS" in
         AC_DEFINE(THREAD_LOCAL_ALLOC)
         AC_DEFINE(USE_COMPILER_TLS)
         ;;
-     *-*-gnu*)
+     *-*-gnu*) # Excluding kfreebsd.
         AC_DEFINE(GC_THREADS)
         AC_DEFINE(_REENTRANT)
         if test "${enable_parallel_mark}" != no; then
@@ -253,7 +233,7 @@ case "$THREADS" in
         ;;
      *-*-netbsd*)
         AC_MSG_WARN("Only on NetBSD 2.0 or later.")
-        AC_DEFINE(GC_NETBSD_THREADS)
+        AC_DEFINE(GC_THREADS)
         AC_DEFINE(_REENTRANT)
         AC_DEFINE(_PTHREADS)
         if test "${enable_parallel_mark}" != no; then
@@ -263,7 +243,7 @@ case "$THREADS" in
         THREADDLLIBS="-lpthread -lrt"
         ;;
      *-*-solaris*)
-        AC_DEFINE(GC_SOLARIS_THREADS)
+        AC_DEFINE(GC_THREADS)
         if test "${enable_parallel_mark}" != no; then
           AC_DEFINE(PARALLEL_MARK)
         fi
@@ -274,15 +254,8 @@ case "$THREADS" in
         THREADDLLIBS="-L/usr/lib/lwp/$multi_os_directory \
                       -R/usr/lib/lwp/$multi_os_directory -lpthread -lrt"
         ;;
-     *-*-irix*)
-        AC_DEFINE(GC_IRIX_THREADS)
-        if test "${enable_parallel_mark}" != no; then
-          AC_DEFINE(PARALLEL_MARK)
-        fi
-        AC_DEFINE(THREAD_LOCAL_ALLOC)
-        ;;
      *-*-cygwin*)
-        AC_DEFINE(GC_WIN32_THREADS)
+        AC_DEFINE(GC_THREADS)
         if test "${enable_parallel_mark}" != no; then
           AC_DEFINE(PARALLEL_MARK)
         fi
@@ -303,7 +276,7 @@ case "$THREADS" in
         win32_threads=true
         ;;
      *-*-darwin*)
-        AC_DEFINE(GC_DARWIN_THREADS)
+        AC_DEFINE(GC_THREADS)
         AC_MSG_WARN("Explicit GC_INIT() calls may be required.");
         # Parallel-mark is not well-tested on Darwin
         if test "${enable_parallel_mark}" != no; then
@@ -313,7 +286,7 @@ case "$THREADS" in
         darwin_threads=true
         ;;
      *-*-osf*)
-        AC_DEFINE(GC_OSF1_THREADS)
+        AC_DEFINE(GC_THREADS)
         if test "${enable_parallel_mark}" != no; then
           AC_DEFINE(PARALLEL_MARK)
         fi
@@ -335,7 +308,7 @@ case "$THREADS" in
     esac
     ;;
  win32)
-    AC_DEFINE(GC_WIN32_THREADS)
+    AC_DEFINE(GC_THREADS)
     if test "${enable_parallel_mark}" != no; then
       AC_DEFINE(PARALLEL_MARK)
       AC_DEFINE(THREAD_LOCAL_ALLOC)
@@ -354,6 +327,7 @@ case "$THREADS" in
               [Wine getenv may not return NULL for missing entry.])
     ;;
  dgux386)
+    AC_DEFINE(GC_THREADS)
     THREADS=dgux386
     AC_MSG_RESULT($THREADDLLIBS)
     # Use pthread GCC switch
@@ -363,15 +337,12 @@ case "$THREADS" in
     fi
     AC_DEFINE(THREAD_LOCAL_ALLOC)
     AC_MSG_WARN("Explicit GC_INIT() calls may be required.");
-    AC_DEFINE([GC_DGUX386_THREADS], 1,
-              [Define to enable support for DB/UX threads on i386.])
-    # Enable _POSIX4A_DRAFT10_SOURCE with flag -pthread
     AM_CFLAGS="-pthread $AM_CFLAGS"
     ;;
  aix)
     THREADS=posix
     THREADDLLIBS=-lpthread
-    AC_DEFINE(GC_AIX_THREADS)
+    AC_DEFINE(GC_THREADS)
     AC_DEFINE(_REENTRANT)
     if test "${enable_parallel_mark}" != no; then
       AC_DEFINE(PARALLEL_MARK)
@@ -380,7 +351,7 @@ case "$THREADS" in
     ;;
  rtems)
     THREADS=posix
-    AC_DEFINE(GC_RTEMS_PTHREADS)
+    AC_DEFINE(GC_THREADS)
     if test "${enable_parallel_mark}" != no; then
       AC_DEFINE(PARALLEL_MARK)
     fi
index 11bb7e2e69b9d7fd5f70160cdb15f0b4418b10db..2727d0b155fe5994327ee9f7b6875383b76cbc70 100644 (file)
@@ -133,7 +133,7 @@ work and doesn't mess up the garbage collector's functionality).
 Feb 26, 2003
 
 Jeff Sturm and Jesse Rosenstock provided a patch that adds thread support.
-GC_MACOSX_THREADS should be defined in the build and in clients.  Real
+GC_THREADS should be defined in the build and in clients.  Real
 dynamic library support is still missing, i.e. dynamic library data segments
 are still not scanned.  Code that stores pointers to the garbage collected
 heap in statically allocated variables should not reside in a dynamic
index 7d4d96c40b8c3093562d74ac165d12a6b1b35f08..9721bb6fa08c741371151d8d138df6ba2cf35d3f 100644 (file)
@@ -98,7 +98,7 @@ GC_PRINT_BACK_HEIGHT - Print max length of chain through unreachable objects
 
 GC_RETRY_SIGNALS, GC_NO_RETRY_SIGNALS - Try to compensate for lost
                      thread suspend signals (Pthreads only).  On by
-                     default for GC_OSF1_THREADS, off otherwise.  Note
+                     default for OSF1, off otherwise.  Note
                      that this does not work around a possible loss of
                      thread restart signals.  This seems to be necessary for
                      some versions of Tru64.  Since we've previously seen
index bb583bbc0d18fa5e8e7c3d9640bf4bf9fbb20e51..83708ea07d104ef3e201bb4244accd0342d48901 100644 (file)
@@ -11,7 +11,7 @@ correctly.
 Incremental collection support was added recently, and should now work.
 
 In spite of past claims, pthread support under HP/UX 11 should now work.
-Define GC_HPUX_THREADS for the build.  Incremental collection still does not
+Define GC_THREADS macro for the build.  Incremental collection still does not
 work in combination with it.
 
 The stack finding code can be confused by putenv calls before collector
index f490365ca442f49d668bc5084f7d5142d6d5e1b2..0d4bb6c3c2766a21467ad28ff43fe6fdcfe12b02 100644 (file)
@@ -26,13 +26,12 @@ To use threads, you need to abide by the following requirements:
    pthread implementations (in particular it will *not* work with
    MIT pthreads).
 
-2) You must compile the collector with -DGC_LINUX_THREADS (or
-   just -DGC_THREADS) and -D_REENTRANT specified in the Makefile.
+2) You must compile the collector with "-DGC_THREADS -D_REENTRANT" specified
+   in the Makefile.
 
-3a) Every file that makes thread calls should define GC_LINUX_THREADS and
-   _REENTRANT and then include gc.h.  Gc.h redefines some of the
-   pthread primitives as macros which also provide the collector with
-   information it requires.
+3a) Every file that makes thread calls should define GC_THREADS, and then
+   include gc.h.  Gc.h redefines some of the pthread primitives as macros
+   which also provide the collector with information it requires.
 
 3b) A new alternative to (3a) is to build the collector and compile GC clients
    with -DGC_USE_LD_WRAP, and to link the final program with
@@ -54,7 +53,7 @@ To use threads, you need to abide by the following requirements:
    user startup code may run as part of dlopen().)  Under unusual
    conditions, this may cause unexpected heap growth.
 
-5) The combination of GC_LINUX_THREADS, REDIRECT_MALLOC, and incremental
+5) The combination of GC_THREADS, REDIRECT_MALLOC, and incremental
    collection is probably not fully reliable, though it now seems to work
    in simple cases.
 
index 86533f2412d36b56102dcf064e3688fd689085cf..3040f3e88b09eaa9955e637bbd0dd60d4123308f 100644 (file)
@@ -120,34 +120,44 @@ GC_THREADS      Should set the appropriate one of the below macros,
   except GC_WIN32_PTHREADS, which must be set explicitly.  Tested by gc.h.
 
 GC_SOLARIS_THREADS      Enables support for Solaris pthreads.
-  Must also define _REENTRANT.
+  Must also define _REENTRANT.  Deprecated, use GC_THREADS instead.
 
 GC_IRIX_THREADS         Enables support for Irix pthreads.  See README.sgi.
+  Deprecated, use GC_THREADS instead.
 
 GC_HPUX_THREADS         Enables support for HP/UX 11 pthreads.
   Also requires _REENTRANT or _POSIX_C_SOURCE=199506L. See README.hp.
+  Deprecated, use GC_THREADS instead.
 
 GC_LINUX_THREADS        Enables support for Xavier Leroy's Linux threads
-  or NPTL threads. See README.linux.  _REENTRANT may also be required.
+  or NPTL threads.  See README.linux.  _REENTRANT may also be required.
+  Deprecated, use GC_THREADS instead.
 
-GC_OSF1_THREADS         Enables support for Tru64 pthreads.
+GC_OSF1_THREADS         Enables support for Tru64 pthreads.  Deprecated, use
+  GC_THREADS instead.
 
-GC_FREEBSD_THREADS      Enables support for FreeBSD pthreads.
-  Appeared to run into some underlying thread problems.
+GC_FREEBSD_THREADS      Enables support for FreeBSD pthreads.  Appeared to run
+  into some underlying thread problems.  Deprecated, use GC_THREADS instead.
 
-GC_NETBSD_THREADS       Enables support for NetBSD pthreads.
+GC_NETBSD_THREADS       Enables support for NetBSD pthreads.  Deprecated, use
+  GC_THREADS instead.
 
-GC_OPENBSD_THREADS      Enables support for OpenBSD pthreads.
+GC_OPENBSD_THREADS      Enables support for OpenBSD pthreads.  Deprecated,
+  use GC_THREADS instead.
 
-GC_DARWIN_THREADS       Enables support for Mac OS X pthreads.
+GC_DARWIN_THREADS       Enables support for Mac OS X pthreads.  Deprecated,
+  use GC_THREADS instead.
 
-GC_AIX_THREADS  Enables support for IBM AIX threads.
+GC_AIX_THREADS  Enables support for IBM AIX threads.  Deprecated, use
+  GC_THREADS instead.
 
 GC_DGUX386_THREADS      Enables support for DB/UX on I386 threads.
-  See README.DGUX386.  (Probably has not been tested recently.)
+  See README.DGUX386.  (Probably has not been tested recently.)  Deprecated,
+  use GC_THREADS instead.
 
 GC_WIN32_THREADS        Enables support for Win32 threads.  That makes sense
-  for this Makefile only under Cygwin.
+  for Makefile (and Makefile.direct) only under Cygwin or MinGW.  Deprecated,
+  use GC_THREADS instead.
 
 GC_WIN32_PTHREADS       Enables support for pthreads-win32 (or other
   non-Cygwin pthreads library for Windows).  This cannot be enabled
index d9e989388ff77912bdb78b58e3656cb6f73f9636..98c79011a3d8cd038a48fc5adf86edf5756f2e19 100644 (file)
@@ -13,7 +13,7 @@ ports.
 
 Pthreads support is provided.  This requires that:
 
-1) You compile the collector with -DGC_IRIX_THREADS specified in the Makefile.
+1) You compile the collector with -DGC_THREADS specified in the Makefile.
 
 2) You have the latest pthreads patches installed.
 
@@ -22,7 +22,7 @@ it relies on signal/threads interactions working just right in ways
 that are not required by the standard.  It is unlikely that this code
 will run on other pthreads platforms.  But please tell me if it does.)
 
-3) Every file that makes thread calls should define IRIX_THREADS and then
+3) Every file that makes thread calls should define GC_THREADS and then
 include gc.h.  Gc.h redefines some of the pthread primitives as macros which
 also provide the collector with information it requires.
 
index 1a9d09f5f6001cc7192957031788864c2eafb26b..cd2d9f671e35c567d2cae7cbfcd1102accffe175 100644 (file)
@@ -26,9 +26,8 @@ SOLARIS THREADS:
 
 Unless --disable-threads option is given, threads support is on by default in
 configure.  This causes the collector to be compiled with -D GC_THREADS
-(or -D GC_SOLARIS_THREADS) ensuring thread safety.
-This assumes use of the pthread_ interface.  Old style Solaris threads
-are no longer supported.
+ensuring thread safety.  This assumes use of the pthread_ interface; old-style
+Solaris threads are no longer supported.
 Thread-local allocation is now on by default.  Parallel marking is on by
 default starting from GC v7.3 but it could be disabled manually
 by configure --disable-parallel-mark option.
index 9d94541cc42b72f2a8791c71f887914c708c6f79..57729549ffa6a8e34575ed7ab2dbfd0ad65a18f3 100644 (file)
@@ -32,8 +32,7 @@ Clients should include <TT>gc.h</tt>.
 <P>
 In the case of multi-threaded code,
 <TT>gc.h</tt> should be included after the threads header file, and
-after defining the appropriate <TT>GC_</tt><I>XXXX</i><TT>_THREADS</tt> macro.
-(For 6.2alpha4 and later, simply defining <TT>GC_THREADS</tt> should suffice.)
+after defining <TT>GC_THREADS</tt> macro.
 The header file <TT>gc.h</tt> must be included
 in files that use either GC or threads primitives, since threads primitives
 will be redefined to cooperate with the GC on many platforms.
index 6792827718d4651e2c806cabce6019ad7a328803..4d4fc7cb9547150ac1702ca3358ade31b47f6366 100644 (file)
@@ -132,7 +132,7 @@ under Linux 2.2.12.
 <P>
 Running with a thread-unsafe collector,  the benchmark ran in 9
 seconds.  With the simple thread-safe collector,
-built with <TT>-DLINUX_THREADS</tt>, the execution time
+built with <TT>-DGC_THREADS</tt>, the execution time
 increased to 10.3 seconds, or 23.5 elapsed seconds with two clients.
 (The times for the <TT>malloc</tt>/i<TT>free</tt> version
 with glibc <TT>malloc</tt>
@@ -143,7 +143,7 @@ garbage collector, since most objects are small.)
 <P>
 The following table gives execution times for the collector built
 with parallel marking and thread-local allocation support
-(<TT>-DGC_LINUX_THREADS -DPARALLEL_MARK -DTHREAD_LOCAL_ALLOC</tt>).  We tested
+(<TT>-DGC_THREADS -DPARALLEL_MARK -DTHREAD_LOCAL_ALLOC</tt>).  We tested
 the client using either one or two marker threads, and running
 one or two client threads.  Note that the client uses thread local
 allocation exclusively.  With -DTHREAD_LOCAL_ALLOC the collector