2 # Copyright (C) Igor Sysoev
5 have=NGX_LINUX . auto/have_headers
8 CORE_DEPS="$UNIX_DEPS $LINUX_DEPS"
9 CORE_SRCS="$UNIX_SRCS $LINUX_SRCS"
14 CC_AUX_FLAGS="$CC_AUX_FLAGS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
17 # Linux kernel version
19 version=$((`uname -r \
20 | sed 's/^\([^.]*\)\.\([^.]*\)\.\([^.-]*\).*/\1*256*256+\2*256+\3/'`))
25 # enable the rt signals on Linux between 2.2.19 and 2.6.17
27 if [ \( $version -ge 131603 -a $version -lt 132626 \) -o $EVENT_RTSIG = YES ]
29 echo " + rt signals found"
30 have=NGX_HAVE_RTSIG . auto/have
31 EVENT_MODULES="$EVENT_MODULES $RTSIG_MODULE"
32 CORE_SRCS="$CORE_SRCS $RTSIG_SRCS"
37 # epoll, EPOLLET version
40 ngx_feature_name="NGX_HAVE_EPOLL"
42 ngx_feature_incs="#include <sys/epoll.h>"
45 ngx_feature_test="int efd = 0, fd = 1, n;
46 struct epoll_event ee;
47 ee.events = EPOLLIN|EPOLLOUT|EPOLLET;
49 efd = epoll_create(100);
50 if (efd == -1) return 1;"
53 if [ $ngx_found = yes ]; then
54 have=NGX_HAVE_CLEAR_EVENT . auto/have
55 CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
56 EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
63 CC_AUX_FLAGS="$CC_AUX_FLAGS -D_GNU_SOURCE"
64 ngx_feature="sendfile()"
65 ngx_feature_name="NGX_HAVE_SENDFILE"
67 ngx_feature_incs="#include <sys/sendfile.h>
71 ngx_feature_test="int s = 0, fd = 1;
72 ssize_t n; off_t off = 0;
73 n = sendfile(s, fd, &off, 1);
74 if (n == -1 && errno == ENOSYS) return 1"
77 if [ $ngx_found = yes ]; then
78 CORE_SRCS="$CORE_SRCS $LINUX_SENDFILE_SRCS"
84 CC_AUX_FLAGS="$CC_AUX_FLAGS -D_FILE_OFFSET_BITS=64"
85 ngx_feature="sendfile64()"
86 ngx_feature_name="NGX_HAVE_SENDFILE64"
88 ngx_feature_incs="#include <sys/sendfile.h>
92 ngx_feature_test="int s = 0, fd = 1;
93 ssize_t n; off_t off = 0;
94 n = sendfile(s, fd, &off, 1);
95 if (n == -1 && errno == ENOSYS) return 1"
99 ngx_include="sys/prctl.h"; . auto/include
101 # prctl(PR_SET_DUMPABLE)
103 ngx_feature="prctl(PR_SET_DUMPABLE)"
104 ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE"
106 ngx_feature_incs="#include <sys/prctl.h>"
109 ngx_feature_test="if (prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) == -1) return 1"
113 # sched_setaffinity()
115 ngx_feature="sched_setaffinity()"
116 ngx_feature_name="NGX_HAVE_SCHED_SETAFFINITY"
118 ngx_feature_incs="#include <sched.h>"
121 ngx_feature_test="long mask = 0;
122 sched_setaffinity(0, 32, (cpu_set_t *) &mask)"