
CORE_INCS="$UNIX_INCS"
CORE_DEPS="$UNIX_DEPS $LINUX_DEPS"
CORE_SRCS="$UNIX_SRCS $LINUX_SRCS"
EVENT_MODULES="$EVENT_MODULES"


CC_TEST_FLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"


# epoll, EPOLLET version

ngx_func="epoll";
ngx_func_inc="#include <sys/epoll.h>"
ngx_func_test="int efd = 0, fd = 1, n;
               struct epoll_event ee;
               ee.events = EPOLLIN|EPOLLOUT|EPOLLET;
               ee.data.ptr = NULL;
               n = epoll_ctl(efd, EPOLL_CTL_ADD, fd, &ee)"
. auto/func

if [ $ngx_found = yes ]; then
    have=HAVE_EPOLL . auto/have
    CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
    EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
    EVENT_FOUND=YES
fi


# sendfile()

CC_TEST_FLAGS="-D_GNU_SOURCE"
ngx_func="sendfile()";
ngx_func_inc="#include <sys/sendfile.h>"
ngx_func_test="int s = 0, fd = 1;
               ssize_t n; off_t off = 0;
               n = sendfile(s, fd, &off, 1)"
. auto/func

if [ $ngx_found = yes ]; then
    CORE_SRCS="$CORE_SRCS $LINUX_SENDFILE_SRCS"
fi


# sendfile64()

CC_TEST_FLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
ngx_func="sendfile64()"; . auto/func


# prctl(PR_SET_DUMPABLE)

ngx_func="prctl()";
ngx_func_inc="#include <sys/prctl.h>"
ngx_func_test="prctl(PR_SET_DUMPABLE, 1, 0, 0, 0)"
. auto/func

if [ $ngx_found = yes ]; then
    have=HAVE_PR_SET_DUMPABLE . auto/have
fi
