autoconf で epoll のチェック
上記の問題は、
epollのチェック関数を作っているときに気づきました。
しかし、Linux 2.4君よ、
なぜepoll_createのダミーを置くのだ…
AC_CHECK_FUNCだけで調べられないじゃないか。
apr-1.2.7 の configure.in をみてみればこうなってます。
# Check for the Linux epoll interface; epoll* may be available in libc # but return ENOSYS on a pre-2.6 kernel, so do a run-time check. AC_CACHE_CHECK([for epoll support], [apr_cv_epoll], [AC_TRY_RUN([ #include <sys/epoll.h> #include <unistd.h> int main() { return epoll_create(5) == -1; }], [apr_cv_epoll=yes], [apr_cv_epoll=no], [apr_cv_epoll=no])]) if test "$apr_cv_epoll" = "yes"; then AC_DEFINE([HAVE_EPOLL], 1, [Define if the epoll interface is supported]) fi
システムコールでも対応するシンボルは libc (Linux では glibc) にあるんだから、カーネルの問題ではない。