Browse Source

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

Nick Mathewson 19 years ago
parent
commit
09a2ec0192
2 changed files with 27 additions and 22 deletions
  1. 3 0
      ChangeLog
  2. 24 22
      configure.in

+ 3 - 0
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
     - Just because your DirPort is open doesn't mean people should be
       able to remotely teach you about hidden service descriptors. Now
       able to remotely teach you about hidden service descriptors. Now
       only accept rendezvous posts if you've got HSAuthoritativeDir set.
       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:
   o Major bugfixes, other:
     - Avoiding crashing on race condition in dns.c:
     - Avoiding crashing on race condition in dns.c:

+ 24 - 22
configure.in

@@ -19,6 +19,26 @@ AC_ARG_ENABLE(debug,
     CFLAGS="$CFLAGS -g"
     CFLAGS="$CFLAGS -g"
 fi])
 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_ARG_ENABLE(threads,
      AC_HELP_STRING(--disable-threads, disable multi-threading support))
      AC_HELP_STRING(--disable-threads, disable multi-threading support))
 
 
@@ -27,9 +47,11 @@ if test x$enable_threads = x; then
     *-*-netbsd* | *-*-openbsd* )
     *-*-netbsd* | *-*-openbsd* )
      # Don't try multithreading on netbsd -- there is no threadsafe DNS
      # Don't try multithreading on netbsd -- there is no threadsafe DNS
      # lookup function there.
      # 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.])
 getaddrinfo is not threadsafe here, so I will disable threads.])
-     enable_threads="no";;
+        enable_threads="no"
+    fi ;;
     *-*-solaris* )
     *-*-solaris* )
      # Don't try multithreading on solaris -- cpuworkers seem to lock.
      # Don't try multithreading on solaris -- cpuworkers seem to lock.
      AC_MSG_NOTICE([You are running Solaris; Sometimes threading makes
      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])
   AC_DEFINE(ENABLE_THREADS, 1, [Defined if we will try to use multithreading])
 fi
 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
 case $host in
    *-*-solaris* )
    *-*-solaris* )
      AC_DEFINE(_REENTRANT, 1, [Define on some platforms to activate x_r() functions in time.h])
      AC_DEFINE(_REENTRANT, 1, [Define on some platforms to activate x_r() functions in time.h])