]> granicus.if.org Git - gc/commitdiff
Group common defines for POSIX platforms in configure and CMake scripts
authorIvan Maidanski <ivmai@mail.ru>
Wed, 7 Jun 2017 08:53:14 +0000 (11:53 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Wed, 7 Jun 2017 08:53:14 +0000 (11:53 +0300)
(code refactoring)

* CMakeLists.txt [CMAKE_USE_PTHREADS_INIT]: Eliminate duplication of
ADD_DEFINITIONS of GC_THREADS, _REENTRANT, PARALLEL_MARK,
THREAD_LOCAL_ALLOC (and AC_MSG_WARN) for aix, cygwin, darwin, freebsd,
gnu (including kfreebsd), hpux11, irix, linux, nacl, netbsd, openbsd,
osf, solaris platforms; add comment.
* configure.ac [THREADS=posix]: Likewise.
* configure.ac [THREADS=posix]: Remove explicit hpux10 case handling.

CMakeLists.txt
configure.ac

index 15c630f2b60f491228935f648387113af2195235..1d46de9afb0e7cb794e016eaa4570d86c8cb4c82 100644 (file)
@@ -80,9 +80,9 @@ MESSAGE("HOST = ${HOST}")
 #TODO check cmake detection
 IF(CMAKE_USE_PTHREADS_INIT)
         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")
+        # Common defines for most POSIX platforms.
+        IF( HOST MATCHES .*-.*-aix.*|.*-.*-cygwin.*|.*-.*-darwin.*|.*-.*-.*freebsd.*|.*-.*-gnu.*|.*-.*-hpux11.*|.*-.*-irix.*|.*-.*-.*linux.*|.*-.*-nacl.*|.*-.*-netbsd.*|.*-.*-openbsd.*|.*-.*-osf.*|.*-.*-solaris.*)
+                ADD_DEFINITIONS("-DGC_THREADS -D_REENTRANT")
                 IF(enable_parallel_mark)
                     ADD_DEFINITIONS("-DPARALLEL_MARK")
                 ENDIF(enable_parallel_mark)
@@ -91,43 +91,19 @@ IF(CMAKE_USE_PTHREADS_INIT)
         ENDIF()
         IF ( HOST MATCHES .*-.*-hpux11.*)
                 MESSAGE("Only HP/UX 11 POSIX threads are supported.")
-                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
-                IF(enable_parallel_mark)
-                    ADD_DEFINITIONS("-DPARALLEL_MARK")
-                ENDIF(enable_parallel_mark)
-                ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
         ENDIF()
         IF ( HOST MATCHES .*-.*-hpux10.*)
-                MESSAGE("Only HP/UX 11 POSIX threads are supported.")
+                MESSAGE("HP/UX 10 POSIX threads are not supported.")
         ENDIF()
         IF ( HOST MATCHES .*-.*-netbsd.*)
                 MESSAGE("Only on NetBSD 2.0 or later.")
-                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")
         ENDIF()
         IF ( HOST MATCHES .*-.*-cygwin.*)
-                ADD_DEFINITIONS("-DGC_THREADS")
-                IF(enable_parallel_mark)
-                    ADD_DEFINITIONS("-DPARALLEL_MARK")
-                ENDIF(enable_parallel_mark)
-                ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
                 SET(SRC ${SRC} win32_threads.c)
         ENDIF()
         IF ( HOST MATCHES .*-.*-darwin.*)
-                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)
                 #TODO
                 #darwin_threads=true
index 32865b98472b2cf26bcc8e732b4e8234d44db459..292d6853c47fbe9a4e34831fb881e36bbcd8072f 100644 (file)
@@ -168,104 +168,66 @@ case "$THREADS" in
     ;;
  posix | pthreads)
     THREADS=posix
-    AC_CHECK_LIB(pthread, pthread_self, THREADDLLIBS="-lpthread",,)
+    # Common defines for most POSIX platforms.
     case "$host" in
-     *-*-aix* | *-*-irix* | *-*-*linux* | *-*-nacl*)
+      *-*-aix* | *-*-cygwin* | *-*-darwin* | *-*-freebsd* | *-*-hpux11* | \
+      *-*-irix* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-*linux* | *-*-nacl* | \
+      *-*-netbsd* | *-*-openbsd* | *-*-osf* | *-*-solaris*)
         AC_DEFINE(GC_THREADS)
-        AC_DEFINE(_REENTRANT)
+        AC_DEFINE([_REENTRANT], [1],
+                  [Required define if using POSIX threads.])
         if test "${enable_parallel_mark}" != no; then
           AC_DEFINE(PARALLEL_MARK)
         fi
         AC_DEFINE(THREAD_LOCAL_ALLOC)
         AC_MSG_WARN("Explicit GC_INIT() calls may be required.")
         ;;
-     *-*-hpux11*)
+    esac
+    AC_CHECK_LIB(pthread, pthread_self, THREADDLLIBS="-lpthread",,)
+    case "$host" in
+      *-*-aix* | *-*-irix* | *-*-*linux* | *-*-nacl*)
+        # The default THREADDLLIBS.
+        ;;
+      *-*-hpux11*)
         AC_MSG_WARN("Only HP/UX 11 POSIX threads are supported.")
-        AC_DEFINE(GC_THREADS)
         AC_DEFINE(_POSIX_C_SOURCE,199506L)
-        if test "${enable_parallel_mark}" != no; then
-          AC_DEFINE(PARALLEL_MARK)
-        fi
-        AC_DEFINE(THREAD_LOCAL_ALLOC)
-        AC_MSG_WARN("Explicit GC_INIT() calls may be required.")
         THREADDLLIBS="-lpthread -lrt"
         # HPUX needs REENTRANT for the _r calls.
-        AC_DEFINE(_REENTRANT, 1, [Required define if using POSIX threads.])
         ;;
-     *-*-hpux10*)
-        AC_MSG_WARN("Only HP-UX 11 POSIX threads are supported.")
-        ;;
-     *-*-openbsd*)
-        AC_DEFINE(GC_THREADS)
-        if test "${enable_parallel_mark}" != no; then
-          AC_DEFINE(PARALLEL_MARK)
-        fi
-        AC_DEFINE(THREAD_LOCAL_ALLOC)
-        THREADDLLIBS=-pthread
+      *-*-openbsd*)
         AM_CFLAGS="$AM_CFLAGS -pthread"
+        THREADDLLIBS=-pthread
         ;;
-     *-*-freebsd*)
-        AC_DEFINE(GC_THREADS)
+      *-*-freebsd*)
         AM_CFLAGS="$AM_CFLAGS -pthread"
-        if test "${enable_parallel_mark}" != no; then
-          AC_DEFINE(PARALLEL_MARK)
-        fi
-        AC_DEFINE(THREAD_LOCAL_ALLOC)
         ;;
-     *-*-kfreebsd*-gnu)
-        AC_DEFINE(GC_THREADS)
+      *-*-kfreebsd*-gnu)
         AM_CFLAGS="$AM_CFLAGS -pthread"
-        THREADDLLIBS=-pthread
-        AC_DEFINE(_REENTRANT)
-        if test "${enable_parallel_mark}" != no; then
-          AC_DEFINE(PARALLEL_MARK)
-        fi
-        AC_DEFINE(THREAD_LOCAL_ALLOC)
         AC_DEFINE(USE_COMPILER_TLS)
+        THREADDLLIBS=-pthread
         ;;
-     *-*-gnu*) # Excluding kfreebsd.
-        AC_DEFINE(GC_THREADS)
-        AC_DEFINE(_REENTRANT)
-        if test "${enable_parallel_mark}" != no; then
-          AC_DEFINE(PARALLEL_MARK)
-        fi
-        AC_DEFINE(THREAD_LOCAL_ALLOC)
+      *-*-gnu*) # Excluding kfreebsd.
+        # The default THREADDLLIBS.
         ;;
-     *-*-netbsd*)
+      *-*-netbsd*)
         AC_MSG_WARN("Only on NetBSD 2.0 or later.")
-        AC_DEFINE(GC_THREADS)
-        AC_DEFINE(_REENTRANT)
         AC_DEFINE(_PTHREADS)
-        if test "${enable_parallel_mark}" != no; then
-          AC_DEFINE(PARALLEL_MARK)
-        fi
-        AC_DEFINE(THREAD_LOCAL_ALLOC)
         THREADDLLIBS="-lpthread -lrt"
         ;;
-     *-*-solaris*)
-        AC_DEFINE(GC_THREADS)
-        if test "${enable_parallel_mark}" != no; then
-          AC_DEFINE(PARALLEL_MARK)
-        fi
-        AC_DEFINE(THREAD_LOCAL_ALLOC)
+      *-*-solaris*)
         # Need to use alternate thread library, otherwise gctest hangs
         # on Solaris 8.
         multi_os_directory=`$CC -print-multi-os-directory`
         THREADDLLIBS="-L/usr/lib/lwp/$multi_os_directory \
                       -R/usr/lib/lwp/$multi_os_directory -lpthread -lrt"
         ;;
-     *-*-cygwin*)
-        AC_DEFINE(GC_THREADS)
-        if test "${enable_parallel_mark}" != no; then
-          AC_DEFINE(PARALLEL_MARK)
-        fi
-        AC_DEFINE(THREAD_LOCAL_ALLOC)
+      *-*-cygwin*)
         # Cygwin doesn't have a real libpthread, so Libtool can't link
         # against it.
         THREADDLLIBS=""
         win32_threads=true
         ;;
-     *-*-mingw*)
+      *-*-mingw*)
         AC_DEFINE(GC_WIN32_PTHREADS)
         # Using pthreads-win32 (or other non-Cygwin pthreads) library.
         if test "${enable_parallel_mark}" != no; then
@@ -275,23 +237,10 @@ case "$THREADS" in
         THREADDLLIBS="-lpthread"
         win32_threads=true
         ;;
-     *-*-darwin*)
-        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
-          AC_DEFINE(PARALLEL_MARK)
-        fi
-        AC_DEFINE(THREAD_LOCAL_ALLOC)
+      *-*-darwin*)
         darwin_threads=true
         ;;
-     *-*-osf*)
-        AC_DEFINE(GC_THREADS)
-        if test "${enable_parallel_mark}" != no; then
-          AC_DEFINE(PARALLEL_MARK)
-        fi
-        AC_DEFINE(THREAD_LOCAL_ALLOC)
-        AC_MSG_WARN("Explicit GC_INIT() calls may be required.")
+      *-*-osf*)
         AM_CFLAGS="$AM_CFLAGS -pthread"
         THREADDLLIBS="-lpthread -lrt"
         ;;