Better check for pthread rwlocks. silc.client.1.1.beta2
authorPekka Riikonen <priikone@silcnet.org>
Tue, 20 Feb 2007 07:21:16 +0000 (07:21 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Tue, 20 Feb 2007 07:21:16 +0000 (07:21 +0000)
CHANGES
configure.ad
includes/silc.h.in

diff --git a/CHANGES b/CHANGES
index f9cb9afa0dc26a080454bef16fd4db8267d744bc..2cdffa996a5aee39c85313b5dba5d9a20bbfbd73 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+Tue Feb 20 08:31:28 EET 2007  Pekka Riikonen <priikone@silcnet.org>
+
+       * SILC Client 1.1 beta2.
+
 Mon Feb 19 16:06:27 EET 2007  Pekka Riikonen <priikone@silcnet.org>
 
        * Fixed client to properly abort TCP stream creation when
index 2b2313d53a56b0fa75c4f73a421a010b09c0a94e..61260822670d8ecd779f0b13d937ca6fce15ffcc 100644 (file)
@@ -36,6 +36,9 @@ case "$target" in
   *-*-freebsd*)
     check_threads=true
     ;;
+  *-*-netbsd*)
+    check_threads=true
+    ;;
   *-*-*bsd*)
     check_threads=false
     ;;
@@ -1121,7 +1124,35 @@ if test x$has_threads = xtrue; then
       ;;
    esac
 
+  # Check for threads
   AC_CHECK_FUNC(pthread_create)
+
+  # Check for read/write locks
+  AC_CHECK_FUNC(pthread_rwlock_init,
+  [
+    AC_RUN_IFELSE(
+      [
+        #include <pthread.h>
+        int main()
+        {
+          pthread_rwlock_t rwlock;
+          pthread_rwlock_init(&rwlock, NULL);
+          pthread_rwlock_destroy(&rwlock);
+          return 0;
+        }
+      ],
+      [],
+      [
+       # Rwlock not defined
+        CFLAGS="$CFLAGS -D_XOPEN_SOURCE=600"
+      ]
+    )
+  ],
+  [
+    # Rwlock not defined
+    CFLAGS="$CFLAGS -D_XOPEN_SOURCE=600"
+  ])
+
   AC_DEFINE([SILC_HAVE_PTHREAD], [], [HAVE_PTHREAD])
   AC_DEFINE([SILC_THREADS], [], [HAVE_THREAD])
   __SILC_HAVE_PTHREAD="#define __SILC_HAVE_PTHREAD 1"
index 5c3f338b721d2e4527f2c7928f6b9d00c71e1ded..accf52253b65e52d30cbe70023af67db24c19949 100644 (file)
@@ -90,19 +90,6 @@ extern "C" {
 #define DLLAPI
 #endif
 
-#ifdef SILC_HAVE_PTHREAD
-/* For pthreads rwlock support */
-#ifndef _XOPEN_SOURCE
-#define _XOPEN_SOURCE 600
-#else
-#ifdef _XOPEN_SOURCE < 600
-#define _XOPEN_SOURCE_SAVE _XOPEN_SOURCE
-#undef _XOPEN_SOURCE
-#define _XOPEN_SOURCE 600
-#endif /* _XOPEN_SOURCE < 600 */
-#endif /* _XOPEN_SOURCE */
-#endif /* SILC_HAVE_PTHREAD */
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -194,11 +181,6 @@ extern "C" {
 
 #ifdef SILC_HAVE_PTHREAD
 #include <pthread.h>
-#ifdef _XOPEN_SOURCE_SAVE
-#undef _XOPEN_SOURCE
-#define _XOPEN_SOURCE _XOPEN_SOURCE_SAVE
-#undef _XOPEN_SOURCE_SAVE
-#endif /* _XOPEN_SOURCE_SAVE */
 #endif
 
 #ifdef HAVE_STDDEF_H