nginx-0.0.7-2004-07-05-10:55:54 import
diff --git a/auto/lib/md5/conf b/auto/lib/md5/conf index 3fc1af6..383821e 100644 --- a/auto/lib/md5/conf +++ b/auto/lib/md5/conf
@@ -65,7 +65,7 @@ ngx_lib="rsaref md library" ngx_lib_test="MD5_CTX md5; MD5Init(&md5)" - #ngx_libs=-lmd + ngx_libs=-lmd . auto/lib/test fi
diff --git a/auto/os/freebsd b/auto/os/freebsd index 5fa8e33..2d3353e 100644 --- a/auto/os/freebsd +++ b/auto/os/freebsd
@@ -54,11 +54,29 @@ -o $version -ge 500018 ] then echo " + using kqueue's NOTE_LOWAT" - have=HAVE_LOWAT_EVENT . auto/have fi +if [ $USE_THREADS = "rfork" ]; then + + echo " + using rfork()" + + # kqueue's EVFILT_SIGNAL is safe + + if [ $version -gt 460101 ]; then + echo " + kqueue's EVFILT_SIGNAL is safe" + have=HAVE_SAFE_EVFILT_SIGNAL . auto/have + else + echo "$0: error: the kqueue's EVFILT_SIGNAL is unsafe on this" + echo "FreeBSD version, so --with-threads=rfork could not be used" + echo + + exit 1 + fi +fi + + if [ $EVENT_AIO = YES ]; then have=HAVE_AIO . auto/have EVENT_MODULES="$EVENT_MODULES $AIO_MODULE"
diff --git a/auto/sources b/auto/sources index 3fcf58e..041b23d 100644 --- a/auto/sources +++ b/auto/sources
@@ -135,9 +135,12 @@ FREEBSD_DEPS=src/os/unix/ngx_freebsd_config.h FREEBSD_SRCS=src/os/unix/ngx_freebsd_init.c FREEBSD_SENDFILE_SRCS=src/os/unix/ngx_freebsd_sendfile_chain.c +FREEBSD_RFORK_DEPS="src/os/unix/ngx_freebsd_rfork_thread.h" FREEBSD_RFORK_SRCS="src/os/unix/ngx_freebsd_rfork_thread.c" FREEBSD_RFORK_THREAD_SRCS="src/os/unix/rfork_thread.S" +PTHREAD_SRCS="src/os/unix/ngx_pthread_thread.c" + LINUX_DEPS=src/os/unix/ngx_linux_config.h LINUX_SRCS=src/os/unix/ngx_linux_init.c LINUX_SENDFILE_SRCS=src/os/unix/ngx_linux_sendfile_chain.c
diff --git a/auto/threads b/auto/threads index 0c5fd56..8f7e10b 100644 --- a/auto/threads +++ b/auto/threads
@@ -1,13 +1,51 @@ -if [ $USE_THREADS = "rfork" ]; then +case $USE_THREADS in + rfork) + have=NGX_THREADS . auto/have + have=NGX_USE_RFORK . auto/have + CORE_DEPS="$CORE_DEPS $FREEBSD_RFORK_DEPS" + CORE_SRCS="$CORE_SRCS $FREEBSD_RFORK_SRCS" - have=NGX_THREADS . auto/have - have=NGX_USE_RFORK . auto/have - CORE_DEPS="$CORE_DEPS $UNIX_THREADS_DEPS" - CORE_SRCS="$CORE_SRCS $FREEBSD_RFORK_SRCS" + case $PLATFORM in + *:i386) + if [ \( $version -gt 500000 -a $version -lt 501000 \) \ + -o $version -lt 491000 ] + then + CORE_SRCS="$CORE_SRCS $FREEBSD_RFORK_THREAD_SRCS" + fi + ;; + esac + ;; - if [ $version -lt 501000 ]; then - CORE_SRCS="$CORE_SRCS $FREEBSD_RFORK_THREAD_SRCS" - fi + pthread) + have=NGX_THREADS . auto/have + CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" + CORE_LIBS="$CORE_LIBS -lpthread" + ;; -fi + freebsd4) + have=NGX_THREADS . auto/have + CFLAGS="$CFLAGS -pthread" + CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" + CORE_LIBS="$CORE_LIBS -pthread" + ;; + + lc_r) + have=NGX_THREADS . auto/have + CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" + CORE_LIBS="$CORE_LIBS -lc_r" + ;; + + lthr) + have=NGX_THREADS . auto/have + CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" + CORE_LIBS="$CORE_LIBS -lthr" + ;; + + lkse) + have=NGX_THREADS . auto/have + CORE_SRCS="$CORE_SRCS $PTHREAD_SRCS" + CORE_LIBS="$CORE_LIBS -lkse" + ;; + +esac