The configure script currently checks if sys/eventfd.h exists, and then later uses that in posixmodule.c here: https://github.com/python/cpython/blob/main/Modules/posixmodule.c#L15465 . The issue comes from that eventfd was introduced in 2.6.22, but EFD_CLOEXEC, EFD_NONBLOCK, EFD_SEMAPHORE were introduced in 2.6.26, 2.6.26 and 2.6.30 respectively and which are assumed to be present.
Your environment
I encountered this on Fedora 10 i386 with kernel version 2.6.27 so build was failing on EFD_SEMAPHORE. I tested this on CPython 3.10.5 and this should be an issue in 3.10 since eventfd was introduced in that version I believe.
Bug report
The configure script currently checks if sys/eventfd.h exists, and then later uses that in posixmodule.c here: https://github.com/python/cpython/blob/main/Modules/posixmodule.c#L15465 . The issue comes from that eventfd was introduced in 2.6.22, but
EFD_CLOEXEC, EFD_NONBLOCK, EFD_SEMAPHORE
were introduced in 2.6.26, 2.6.26 and 2.6.30 respectively and which are assumed to be present.Your environment
I encountered this on Fedora 10 i386 with kernel version 2.6.27 so build was failing on EFD_SEMAPHORE. I tested this on CPython 3.10.5 and this should be an issue in 3.10 since eventfd was introduced in that version I believe.