diff --git a/Misc/NEWS.d/next/Build/2026-03-10-16-58-55.gh-issue-138850.CkqTw6.rst b/Misc/NEWS.d/next/Build/2026-03-10-16-58-55.gh-issue-138850.CkqTw6.rst new file mode 100644 index 00000000000000..bec8519cfc185d --- /dev/null +++ b/Misc/NEWS.d/next/Build/2026-03-10-16-58-55.gh-issue-138850.CkqTw6.rst @@ -0,0 +1 @@ +Add ``--disable-epoll`` to ``configure`` diff --git a/configure b/configure index 95bb6ba4e84ccf..09c1694915e219 100755 --- a/configure +++ b/configure @@ -1133,6 +1133,7 @@ with_pymalloc_hugepages with_c_locale_coercion with_valgrind with_dtrace +enable_epoll with_libm with_libc enable_big_digits @@ -1856,6 +1857,7 @@ Optional Features: see Doc/library/sqlite3.rst (default is no) --enable-ipv6 enable ipv6 (with ipv4) support, see Doc/library/socket.rst (default is yes if supported) + --disable-epoll disable epoll (default is yes if supported) --enable-big-digits[=15|30] use big digits (30 or 15 bits) for Python longs (default is 30)] @@ -20960,6 +20962,29 @@ fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --disable-epoll" >&5 +printf %s "checking for --disable-epoll... " >&6; } +# Check whether --enable-epoll was given. +if test ${enable_epoll+y} +then : + enableval=$enable_epoll; if test "x$enable_epoll" = xno +then : + disable_epoll=yes +else case e in #( + e) disable_epoll=no ;; +esac +fi +else case e in #( + e) disable_epoll=no + ;; +esac +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $disable_epoll" >&5 +printf "%s\n" "$disable_epoll" >&6; } +if test "$disable_epoll" = "no" +then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for epoll_create" >&5 printf %s "checking for epoll_create... " >&6; } @@ -21041,6 +21066,8 @@ fi +fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for kqueue" >&5 diff --git a/configure.ac b/configure.ac index e049f568417335..681bf9eead2c8b 100644 --- a/configure.ac +++ b/configure.ac @@ -5380,8 +5380,20 @@ PY_CHECK_FUNC([symlink], [@%:@include ]) PY_CHECK_FUNC([fchdir], [@%:@include ]) PY_CHECK_FUNC([fsync], [@%:@include ]) PY_CHECK_FUNC([fdatasync], [@%:@include ]) -PY_CHECK_FUNC([epoll_create], [@%:@include ], [HAVE_EPOLL]) -PY_CHECK_FUNC([epoll_create1], [@%:@include ]) + +AC_MSG_CHECKING([for --disable-epoll]) +AC_ARG_ENABLE([epoll], + [AS_HELP_STRING([--disable-epoll], [disable epoll (default is yes if supported)])], + [AS_VAR_IF([enable_epoll], [no], [disable_epoll=yes], [disable_epoll=no])], + [disable_epoll=no] +) +AC_MSG_RESULT([$disable_epoll]) +if test "$disable_epoll" = "no" +then + PY_CHECK_FUNC([epoll_create], [@%:@include ], [HAVE_EPOLL]) + PY_CHECK_FUNC([epoll_create1], [@%:@include ]) +fi + PY_CHECK_FUNC([kqueue],[ #include #include