| # Copyright (C) Igor Sysoev | |
| have=NGX_LINUX . auto/have_headers | |
| CORE_INCS="$UNIX_INCS" | |
| CORE_DEPS="$UNIX_DEPS $LINUX_DEPS" | |
| CORE_SRCS="$UNIX_SRCS $LINUX_SRCS" | |
| ngx_spacer=' | |
| ' | |
| CC_AUX_FLAGS="$CC_AUX_FLAGS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64" | |
| # Linux kernel version | |
| version=$((`uname -r \ | |
| | sed 's/^\([^.]*\)\.\([^.]*\)\.\([^.-]*\).*/\1*256*256+\2*256+\3/'`)) | |
| version=${version:-0} | |
| # enable the rt signals on Linux between 2.2.19 and 2.6.17 | |
| if [ \( $version -ge 131603 -a $version -lt 132626 \) -o $EVENT_RTSIG = YES ] | |
| then | |
| echo " + rt signals found" | |
| have=NGX_HAVE_RTSIG . auto/have | |
| EVENT_MODULES="$EVENT_MODULES $RTSIG_MODULE" | |
| CORE_SRCS="$CORE_SRCS $RTSIG_SRCS" | |
| EVENT_FOUND=YES | |
| fi | |
| # epoll, EPOLLET version | |
| ngx_feature="epoll" | |
| ngx_feature_name="NGX_HAVE_EPOLL" | |
| ngx_feature_run=yes | |
| ngx_feature_incs="#include <sys/epoll.h>" | |
| ngx_feature_path= | |
| 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 | |
| if [ $ngx_found = yes ]; then | |
| have=NGX_HAVE_CLEAR_EVENT . auto/have | |
| CORE_SRCS="$CORE_SRCS $EPOLL_SRCS" | |
| EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE" | |
| EVENT_FOUND=YES | |
| fi | |
| # sendfile() | |
| CC_AUX_FLAGS="$CC_AUX_FLAGS -D_GNU_SOURCE" | |
| ngx_feature="sendfile()" | |
| ngx_feature_name="NGX_HAVE_SENDFILE" | |
| ngx_feature_run=yes | |
| ngx_feature_incs="#include <sys/sendfile.h> | |
| #include <errno.h>" | |
| ngx_feature_path= | |
| ngx_feature_libs= | |
| ngx_feature_test="int s = 0, fd = 1; | |
| ssize_t n; off_t off = 0; | |
| n = sendfile(s, fd, &off, 1); | |
| if (n == -1 && errno == ENOSYS) return 1" | |
| . auto/feature | |
| if [ $ngx_found = yes ]; then | |
| CORE_SRCS="$CORE_SRCS $LINUX_SENDFILE_SRCS" | |
| fi | |
| # sendfile64() | |
| CC_AUX_FLAGS="$CC_AUX_FLAGS -D_FILE_OFFSET_BITS=64" | |
| ngx_feature="sendfile64()" | |
| ngx_feature_name="NGX_HAVE_SENDFILE64" | |
| ngx_feature_run=yes | |
| ngx_feature_incs="#include <sys/sendfile.h> | |
| #include <errno.h>" | |
| ngx_feature_path= | |
| ngx_feature_libs= | |
| ngx_feature_test="int s = 0, fd = 1; | |
| ssize_t n; off_t off = 0; | |
| n = sendfile(s, fd, &off, 1); | |
| if (n == -1 && errno == ENOSYS) return 1" | |
| . auto/feature | |
| ngx_include="sys/prctl.h"; . auto/include | |
| # prctl(PR_SET_DUMPABLE) | |
| ngx_feature="prctl(PR_SET_DUMPABLE)" | |
| ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE" | |
| ngx_feature_run=yes | |
| ngx_feature_incs="#include <sys/prctl.h>" | |
| ngx_feature_path= | |
| ngx_feature_libs= | |
| ngx_feature_test="if (prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) == -1) return 1" | |
| . auto/feature | |
| # sched_setaffinity() | |
| ngx_feature="sched_setaffinity()" | |
| ngx_feature_name="NGX_HAVE_SCHED_SETAFFINITY" | |
| ngx_feature_run=no | |
| ngx_feature_incs="#include <sched.h>" | |
| ngx_feature_path= | |
| ngx_feature_libs= | |
| ngx_feature_test="long mask = 0; | |
| sched_setaffinity(0, 32, (cpu_set_t *) &mask)" | |
| . auto/feature |