On 19 April 2011 21:36, Blue Swirl <blauwir...@gmail.com> wrote: > Sorry, I just picked a define without much thought. A more specific > one would be flags parameter of epoll_create1(), like EPOLL_CLOEXEC or > EPOLL_NONBLOCK. We don't use them now since the target system call > argument is passed untranslated to host, but that is actually not > correct, since the bit definitions could be different. So checking for > one of those should be OK.
Unfortunately the header file on the system in question defines both EPOLL_CLOEXEC and EPOLL_NONBLOCK even though it doesn't prototype epoll_create1(). So this idea won't work. The bug we are effectively trying to work around is the one fixed by this libc patch: http://sourceware.org/ml/libc-alpha/2010-08/msg00128.html The only problem with the header is that it doesn't declare the function, so the only way to detect it is to do something that will fail if the function isn't declared, like compiling -Werror. -- PMM