summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2006-10-06 15:29:33 +0000
committerNick Mathewson <nickm@torproject.org>2006-10-06 15:29:33 +0000
commit09a2ec0192338fff8e75d03558e3ed8150d9444e (patch)
tree94aec6ebe167f60d8ce50ecc0a7d12fd191c3b75
parent1d4bd3990fafc62ab52dc123923d6952dd160e98 (diff)
downloadtor-09a2ec0192338fff8e75d03558e3ed8150d9444e.tar.gz
tor-09a2ec0192338fff8e75d03558e3ed8150d9444e.zip
r9107@Kushana: nickm | 2006-10-06 02:14:02 -0400
When eventdns is enabled, we can allow machines with thread-unsafe resolver functions to build multithreaded anyway. svn:r8608
-rw-r--r--ChangeLog3
-rw-r--r--configure.in46
2 files changed, 27 insertions, 22 deletions
diff --git a/ChangeLog b/ChangeLog
index ae49719207..6542975746 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -88,6 +88,9 @@ Changes in version 0.1.2.2-alpha - 2006-10-??
- Just because your DirPort is open doesn't mean people should be
able to remotely teach you about hidden service descriptors. Now
only accept rendezvous posts if you've got HSAuthoritativeDir set.
+ - When eventdns is enabled, allow multithreaded builds on NetBSD and
+ OpenBSD. (We had previously disabled threads on these platforms
+ because they didn't have working thread-safe resolver functions)
o Major bugfixes, other:
- Avoiding crashing on race condition in dns.c:
diff --git a/configure.in b/configure.in
index 860cf2abe4..2c3447a32f 100644
--- a/configure.in
+++ b/configure.in
@@ -19,6 +19,26 @@ AC_ARG_ENABLE(debug,
CFLAGS="$CFLAGS -g"
fi])
+AC_ARG_ENABLE(eventdns,
+ AC_HELP_STRING(--enable-eventdns, enable asynchronous dns module),
+ [case "${enableval}" in
+ yes) eventdns=true ;;
+ no) eventdns=false ;;
+ *) AC_MSG_ERROR(bad value for --enable-eventdns) ;;
+ esac], [eventdns=true])
+AM_CONDITIONAL(EVENTDNS, test x$eventdns = xtrue)
+if test x$eventdns = xtrue; then
+ AC_DEFINE([USE_EVENTDNS], 1, "Define to 1 if we'll be using eventdns.c")
+fi
+
+AC_ARG_ENABLE(transparent,
+ AC_HELP_STRING(--disable-transparent, disable transparent proxy support),
+ [case "${enableval}" in
+ yes) transparent=true ;;
+ no) transparent=false ;;
+ *) AC_MSG_ERROR(bad value for --enable-transparent) ;;
+ esac], [transparent=true])
+
AC_ARG_ENABLE(threads,
AC_HELP_STRING(--disable-threads, disable multi-threading support))
@@ -27,9 +47,11 @@ if test x$enable_threads = x; then
*-*-netbsd* | *-*-openbsd* )
# Don't try multithreading on netbsd -- there is no threadsafe DNS
# lookup function there.
- AC_MSG_NOTICE([You are running OpenBSD or NetBSD; I am assuming that
+ if test x$eventdns != xtrue; then
+ AC_MSG_NOTICE([You are running OpenBSD or NetBSD; I am assuming that
getaddrinfo is not threadsafe here, so I will disable threads.])
- enable_threads="no";;
+ enable_threads="no"
+ fi ;;
*-*-solaris* )
# Don't try multithreading on solaris -- cpuworkers seem to lock.
AC_MSG_NOTICE([You are running Solaris; Sometimes threading makes
@@ -44,26 +66,6 @@ if test $enable_threads = "yes"; then
AC_DEFINE(ENABLE_THREADS, 1, [Defined if we will try to use multithreading])
fi
-AC_ARG_ENABLE(eventdns,
- AC_HELP_STRING(--enable-eventdns, enable asynchronous dns module),
- [case "${enableval}" in
- yes) eventdns=true ;;
- no) eventdns=false ;;
- *) AC_MSG_ERROR(bad value for --enable-eventdns) ;;
- esac], [eventdns=true])
-AM_CONDITIONAL(EVENTDNS, test x$eventdns = xtrue)
-if test x$eventdns = xtrue; then
- AC_DEFINE([USE_EVENTDNS], 1, "Define to 1 if we'll be using eventdns.c")
-fi
-
-AC_ARG_ENABLE(transparent,
- AC_HELP_STRING(--disable-transparent, disable transparent proxy support),
- [case "${enableval}" in
- yes) transparent=true ;;
- no) transparent=false ;;
- *) AC_MSG_ERROR(bad value for --enable-transparent) ;;
- esac], [transparent=true])
-
case $host in
*-*-solaris* )
AC_DEFINE(_REENTRANT, 1, [Define on some platforms to activate x_r() functions in time.h])