From bb570fe79cc2ca72001c161a87bf43c1f93b0b60 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Tue, 20 Feb 2007 07:21:16 +0000 Subject: [PATCH] Better check for pthread rwlocks. --- CHANGES | 4 ++++ configure.ad | 31 +++++++++++++++++++++++++++++++ includes/silc.h.in | 18 ------------------ 3 files changed, 35 insertions(+), 18 deletions(-) diff --git a/CHANGES b/CHANGES index f9cb9afa..2cdffa99 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ +Tue Feb 20 08:31:28 EET 2007 Pekka Riikonen + + * SILC Client 1.1 beta2. + Mon Feb 19 16:06:27 EET 2007 Pekka Riikonen * Fixed client to properly abort TCP stream creation when diff --git a/configure.ad b/configure.ad index 2b2313d5..61260822 100644 --- a/configure.ad +++ b/configure.ad @@ -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 + 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" diff --git a/includes/silc.h.in b/includes/silc.h.in index 5c3f338b..accf5225 100644 --- a/includes/silc.h.in +++ b/includes/silc.h.in @@ -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 #include #include @@ -194,11 +181,6 @@ extern "C" { #ifdef SILC_HAVE_PTHREAD #include -#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 -- 2.24.0