Skip to content

Commit

Permalink
configure: Allow disabling pthreads, fall back on Win32 threads
Browse files Browse the repository at this point in the history
When the threaded resolver option is specified for configure the default
thread library is pthreads. This change makes it possible to
--disable-pthreads and then configure can fall back on Win32 threads for
native Windows builds.

Closes #1260
  • Loading branch information
jay committed Feb 14, 2017
1 parent bde1e2e commit c107128
Showing 1 changed file with 40 additions and 4 deletions.
44 changes: 40 additions & 4 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -3407,7 +3407,28 @@ if test "x$want_thres" = xyes && test "x$want_ares" = xyes; then
[Options --enable-threaded-resolver and --enable-ares are mutually exclusive])
fi

if test "$want_thres" = "yes" && test "$dontwant_rt" = "no"; then
dnl ************************************************************
dnl disable POSIX threads
dnl
AC_MSG_CHECKING([whether to use POSIX threads for threaded resolver])
AC_ARG_ENABLE(pthreads,
AC_HELP_STRING([--enable-pthreads],
[Enable POSIX threads (default for threaded resolver)])
AC_HELP_STRING([--disable-pthreads],[Disable POSIX threads]),
[ case "$enableval" in
no) AC_MSG_RESULT(no)
want_pthreads=no
;;
*) AC_MSG_RESULT(yes)
want_pthreads=yes
;;
esac ], [
AC_MSG_RESULT(auto)
want_pthreads=auto
]
)
if test "$want_thres" = "yes" && test "$dontwant_rt" = "no" && \
test "$want_pthreads" != "no"; then
AC_CHECK_HEADER(pthread.h,
[ AC_DEFINE(HAVE_PTHREAD_H, 1, [if you have <pthread.h>])
save_CFLAGS="$CFLAGS"
Expand All @@ -3429,10 +3450,24 @@ if test "$want_thres" = "yes" && test "$dontwant_rt" = "no"; then
AC_DEFINE(USE_THREADS_POSIX, 1, [if you want POSIX threaded DNS lookup])
curl_res_msg="POSIX threaded"
fi
])
fi
if test "x$USE_THREADS_POSIX" != "x1"; then
if test "$want_pthreads" = "yes"; then
AC_MSG_ERROR([--enable-pthreads but pthreads was not found])
fi
if test "$want_thres" = "yes"; then
dnl If native Windows fallback on Win32 threads since no POSIX threads
if test "$curl_cv_native_windows" = "yes"; then
USE_THREADS_WIN32=1
AC_DEFINE(USE_THREADS_WIN32, 1, [if you want Win32 threaded DNS lookup])
curl_res_msg="Win32 threaded"
else
AC_MSG_ERROR([Threaded resolver enabled but no thread library found])
fi
fi
fi


dnl ************************************************************
dnl disable verbose text strings
Expand Down Expand Up @@ -3661,7 +3696,8 @@ fi
if test "x$HAVE_LIBZ" = "x1"; then
SUPPORT_FEATURES="$SUPPORT_FEATURES libz"
fi
if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1"; then
if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1" \
-o "x$USE_THREADS_WIN32" = "x1"; then

This comment has been minimized.

Copy link
@ssbssa

ssbssa May 10, 2023

So AsynchDNS is enabled with threads, even if ARES is disabled?

This comment has been minimized.

Copy link
@bagder

bagder May 10, 2023

Member

This commit is 6+ years old. If you have a question about curl I propose you ask it in "discussions" and not here.

SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS"
fi
if test "x$IDN_ENABLED" = "x1"; then
Expand Down

0 comments on commit c107128

Please sign in to comment.