From 33b5bfb94824a55254f1ffcddf38ac17589a2744 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 16 Dec 2015 09:23:44 -0500 Subject: [PATCH] Don't call pthread_condattr_setclock() unless it exists Fixes bug 17819; bugfix on 0.2.6.3-alpha (specifically, d684dbb0). --- changes/bug17819 | 4 ++++ configure.ac | 1 + src/common/compat_pthreads.c | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 changes/bug17819 diff --git a/changes/bug17819 b/changes/bug17819 new file mode 100644 index 000000000..45c55f74b --- /dev/null +++ b/changes/bug17819 @@ -0,0 +1,4 @@ + o Minor bugfixes (compilation): + - Don't try to use the pthrad_condattr_setclock() function unless + it actually exists. Fixes compilation on NetBSD-6.x. Fixes bug + 17819; bugfix on 0.2.6.3-alpha. diff --git a/configure.ac b/configure.ac index d37c34daa..2f7556838 100644 --- a/configure.ac +++ b/configure.ac @@ -425,6 +425,7 @@ AC_CHECK_FUNCS( if test "$bwin32" != true; then AC_CHECK_HEADERS(pthread.h) AC_CHECK_FUNCS(pthread_create) + AC_CHECK_FUNCS(pthread_condattr_setclock) fi if test "$bwin32" = true; then diff --git a/src/common/compat_pthreads.c b/src/common/compat_pthreads.c index 4b32fc93d..b1d87d38f 100644 --- a/src/common/compat_pthreads.c +++ b/src/common/compat_pthreads.c @@ -185,7 +185,8 @@ tor_cond_init(tor_cond_t *cond) return -1; } -#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) +#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) \ + && defined(HAVE_PTHREAD_CONDATTR_SETCLOCK) /* Use monotonic time so when we timedwait() on it, any clock adjustment * won't affect the timeout value. */ if (pthread_condattr_setclock(&condattr, CLOCK_MONOTONIC)) {