diff --git a/changes/bug17819 b/changes/bug17819 new file mode 100644 index 0000000000..45c55f74b6 --- /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 c723257ea3..25edbaf1d9 100644 --- a/configure.ac +++ b/configure.ac @@ -422,6 +422,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 4b32fc93d2..b1d87d38f2 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)) {