2003-11-26 15:42:18 +00:00
|
|
|
|
2004-09-29 16:00:49 +00:00
|
|
|
# Copyright (C) Igor Sysoev
|
|
|
|
|
|
|
|
|
|
|
2005-05-12 14:58:06 +00:00
|
|
|
have=NGX_LINUX . auto/have_headers
|
2004-10-21 15:34:38 +00:00
|
|
|
|
2003-11-26 15:42:18 +00:00
|
|
|
CORE_INCS="$UNIX_INCS"
|
|
|
|
|
CORE_DEPS="$UNIX_DEPS $LINUX_DEPS"
|
2004-02-03 16:43:54 +00:00
|
|
|
CORE_SRCS="$UNIX_SRCS $LINUX_SRCS"
|
2003-11-26 15:42:18 +00:00
|
|
|
|
2004-10-21 15:34:38 +00:00
|
|
|
ngx_spacer='
|
|
|
|
|
'
|
2003-11-26 15:42:18 +00:00
|
|
|
|
2009-03-23 20:30:25 +00:00
|
|
|
cc_aux_flags="$CC_AUX_FLAGS"
|
|
|
|
|
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
|
2004-02-02 21:19:52 +00:00
|
|
|
|
2004-11-11 14:07:14 +00:00
|
|
|
|
2004-06-10 18:36:57 +00:00
|
|
|
# Linux kernel version
|
|
|
|
|
|
2008-03-11 16:29:18 +00:00
|
|
|
version=$((`uname -r \
|
2011-08-13 15:15:50 +00:00
|
|
|
| sed -n -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/ \
|
|
|
|
|
\1*256*256+\2*256+\3/p' \
|
|
|
|
|
-e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\1*256*256+\2*256/p'`))
|
2004-06-10 18:36:57 +00:00
|
|
|
|
2004-12-21 12:30:30 +00:00
|
|
|
version=${version:-0}
|
|
|
|
|
|
2004-06-10 18:36:57 +00:00
|
|
|
|
2008-03-10 14:35:21 +00:00
|
|
|
# enable the rt signals on Linux between 2.2.19 and 2.6.17
|
2004-06-10 18:36:57 +00:00
|
|
|
|
2008-03-11 16:27:44 +00:00
|
|
|
if [ \( $version -ge 131603 -a $version -lt 132626 \) -o $EVENT_RTSIG = YES ]
|
2008-03-10 14:35:21 +00:00
|
|
|
then
|
2005-10-19 12:33:58 +00:00
|
|
|
echo " + rt signals found"
|
2004-11-25 16:17:31 +00:00
|
|
|
have=NGX_HAVE_RTSIG . auto/have
|
2004-06-10 18:36:57 +00:00
|
|
|
EVENT_MODULES="$EVENT_MODULES $RTSIG_MODULE"
|
|
|
|
|
CORE_SRCS="$CORE_SRCS $RTSIG_SRCS"
|
|
|
|
|
EVENT_FOUND=YES
|
|
|
|
|
fi
|
|
|
|
|
|
2004-02-02 21:19:52 +00:00
|
|
|
|
2009-11-03 16:29:47 +00:00
|
|
|
# posix_fadvise64() had been implemented in 2.5.60
|
|
|
|
|
|
|
|
|
|
if [ $version -lt 132412 ]; then
|
|
|
|
|
have=NGX_HAVE_POSIX_FADVISE . auto/nohave
|
|
|
|
|
fi
|
|
|
|
|
|
2004-02-02 21:19:52 +00:00
|
|
|
# epoll, EPOLLET version
|
2003-11-26 15:42:18 +00:00
|
|
|
|
2004-10-21 15:34:38 +00:00
|
|
|
ngx_feature="epoll"
|
2004-11-25 16:17:31 +00:00
|
|
|
ngx_feature_name="NGX_HAVE_EPOLL"
|
2005-12-18 16:02:44 +00:00
|
|
|
ngx_feature_run=yes
|
2004-10-21 15:34:38 +00:00
|
|
|
ngx_feature_incs="#include <sys/epoll.h>"
|
2006-11-27 11:07:09 +00:00
|
|
|
ngx_feature_path=
|
2004-10-21 15:34:38 +00:00
|
|
|
ngx_feature_libs=
|
|
|
|
|
ngx_feature_test="int efd = 0, fd = 1, n;
|
|
|
|
|
struct epoll_event ee;
|
|
|
|
|
ee.events = EPOLLIN|EPOLLOUT|EPOLLET;
|
|
|
|
|
ee.data.ptr = NULL;
|
|
|
|
|
efd = epoll_create(100);
|
|
|
|
|
if (efd == -1) return 1;"
|
|
|
|
|
. auto/feature
|
2004-01-29 21:45:01 +00:00
|
|
|
|
2004-02-02 21:19:52 +00:00
|
|
|
if [ $ngx_found = yes ]; then
|
2004-11-25 16:17:31 +00:00
|
|
|
have=NGX_HAVE_CLEAR_EVENT . auto/have
|
2004-01-29 21:45:01 +00:00
|
|
|
CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
|
2004-02-02 21:19:52 +00:00
|
|
|
EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
|
|
|
|
|
EVENT_FOUND=YES
|
2004-01-29 21:45:01 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
2004-02-02 21:19:52 +00:00
|
|
|
# sendfile()
|
|
|
|
|
|
2009-03-23 20:30:25 +00:00
|
|
|
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE"
|
2004-10-21 15:34:38 +00:00
|
|
|
ngx_feature="sendfile()"
|
2004-11-25 16:17:31 +00:00
|
|
|
ngx_feature_name="NGX_HAVE_SENDFILE"
|
2005-12-18 16:02:44 +00:00
|
|
|
ngx_feature_run=yes
|
|
|
|
|
ngx_feature_incs="#include <sys/sendfile.h>
|
2009-03-23 20:26:33 +00:00
|
|
|
#include <errno.h>"
|
2006-11-27 11:07:09 +00:00
|
|
|
ngx_feature_path=
|
2004-10-21 15:34:38 +00:00
|
|
|
ngx_feature_libs=
|
|
|
|
|
ngx_feature_test="int s = 0, fd = 1;
|
|
|
|
|
ssize_t n; off_t off = 0;
|
2005-12-18 16:02:44 +00:00
|
|
|
n = sendfile(s, fd, &off, 1);
|
|
|
|
|
if (n == -1 && errno == ENOSYS) return 1"
|
2004-10-21 15:34:38 +00:00
|
|
|
. auto/feature
|
2004-02-02 21:19:52 +00:00
|
|
|
|
|
|
|
|
if [ $ngx_found = yes ]; then
|
|
|
|
|
CORE_SRCS="$CORE_SRCS $LINUX_SENDFILE_SRCS"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# sendfile64()
|
2003-11-26 15:42:18 +00:00
|
|
|
|
2009-03-23 20:30:25 +00:00
|
|
|
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
|
2004-10-21 15:34:38 +00:00
|
|
|
ngx_feature="sendfile64()"
|
2004-11-25 16:17:31 +00:00
|
|
|
ngx_feature_name="NGX_HAVE_SENDFILE64"
|
2005-12-18 16:02:44 +00:00
|
|
|
ngx_feature_run=yes
|
|
|
|
|
ngx_feature_incs="#include <sys/sendfile.h>
|
2009-03-23 20:26:33 +00:00
|
|
|
#include <errno.h>"
|
2006-11-27 11:07:09 +00:00
|
|
|
ngx_feature_path=
|
2004-10-21 15:34:38 +00:00
|
|
|
ngx_feature_libs=
|
|
|
|
|
ngx_feature_test="int s = 0, fd = 1;
|
|
|
|
|
ssize_t n; off_t off = 0;
|
2005-12-18 16:02:44 +00:00
|
|
|
n = sendfile(s, fd, &off, 1);
|
|
|
|
|
if (n == -1 && errno == ENOSYS) return 1"
|
2004-10-21 15:34:38 +00:00
|
|
|
. auto/feature
|
2003-11-26 15:42:18 +00:00
|
|
|
|
2004-02-09 07:46:43 +00:00
|
|
|
|
2004-10-21 15:34:38 +00:00
|
|
|
ngx_include="sys/prctl.h"; . auto/include
|
2004-02-09 07:46:43 +00:00
|
|
|
|
2004-10-21 15:34:38 +00:00
|
|
|
# prctl(PR_SET_DUMPABLE)
|
2004-02-09 07:46:43 +00:00
|
|
|
|
2004-10-21 15:34:38 +00:00
|
|
|
ngx_feature="prctl(PR_SET_DUMPABLE)"
|
2004-11-25 16:17:31 +00:00
|
|
|
ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE"
|
2004-10-21 15:34:38 +00:00
|
|
|
ngx_feature_run=yes
|
|
|
|
|
ngx_feature_incs="#include <sys/prctl.h>"
|
2006-11-27 11:07:09 +00:00
|
|
|
ngx_feature_path=
|
2004-10-21 15:34:38 +00:00
|
|
|
ngx_feature_libs=
|
|
|
|
|
ngx_feature_test="if (prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) == -1) return 1"
|
|
|
|
|
. auto/feature
|
2005-11-15 13:30:52 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
# sched_setaffinity()
|
|
|
|
|
|
|
|
|
|
ngx_feature="sched_setaffinity()"
|
|
|
|
|
ngx_feature_name="NGX_HAVE_SCHED_SETAFFINITY"
|
|
|
|
|
ngx_feature_run=no
|
|
|
|
|
ngx_feature_incs="#include <sched.h>"
|
2006-11-27 11:07:09 +00:00
|
|
|
ngx_feature_path=
|
2005-11-15 13:30:52 +00:00
|
|
|
ngx_feature_libs=
|
|
|
|
|
ngx_feature_test="long mask = 0;
|
2005-12-05 13:18:09 +00:00
|
|
|
sched_setaffinity(0, 32, (cpu_set_t *) &mask)"
|
2005-11-15 13:30:52 +00:00
|
|
|
. auto/feature
|
2009-03-23 20:30:25 +00:00
|
|
|
|
|
|
|
|
|
2009-04-02 13:46:39 +00:00
|
|
|
# crypt_r()
|
|
|
|
|
|
|
|
|
|
ngx_feature="crypt_r()"
|
|
|
|
|
ngx_feature_name="NGX_HAVE_GNU_CRYPT_R"
|
|
|
|
|
ngx_feature_run=no
|
|
|
|
|
ngx_feature_incs="#include <crypt.h>"
|
|
|
|
|
ngx_feature_path=
|
|
|
|
|
ngx_feature_libs=-lcrypt
|
|
|
|
|
ngx_feature_test="struct crypt_data cd;
|
|
|
|
|
crypt_r(NULL, NULL, &cd);"
|
|
|
|
|
. auto/feature
|
|
|
|
|
|
|
|
|
|
|
2009-03-30 07:43:06 +00:00
|
|
|
ngx_include="sys/vfs.h"; . auto/include
|
|
|
|
|
|
|
|
|
|
|
2009-04-24 09:38:48 +00:00
|
|
|
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
|