2323#include < sys/stat.h>
2424#include < sys/types.h>
2525#include < fcntl.h>
26- #if __GLIBC__ == 2 && __GLIBC_MINOR__ < 8
26+ #if __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 && !defined(__UCLIBC__)
2727# include < asm/unistd.h>
28- #else // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8
28+ #else // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 && !defined(__UCLIBC__)
2929# include < sys/eventfd.h>
30- #endif // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8
30+ #endif // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 && !defined(__UCLIBC__)
3131#include < boost/asio/detail/cstdint.hpp>
3232#include < boost/asio/detail/eventfd_select_interrupter.hpp>
3333#include < boost/asio/detail/throw_error.hpp>
@@ -46,14 +46,14 @@ eventfd_select_interrupter::eventfd_select_interrupter()
4646
4747void eventfd_select_interrupter::open_descriptors ()
4848{
49- #if __GLIBC__ == 2 && __GLIBC_MINOR__ < 8
49+ #if __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 && !defined(__UCLIBC__)
5050 write_descriptor_ = read_descriptor_ = syscall (__NR_eventfd, 0 );
5151 if (read_descriptor_ != -1 )
5252 {
5353 ::fcntl (read_descriptor_, F_SETFL, O_NONBLOCK);
5454 ::fcntl (read_descriptor_, F_SETFD, FD_CLOEXEC);
5555 }
56- #else // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8
56+ #else // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 && !defined(__UCLIBC__)
5757# if defined(EFD_CLOEXEC) && defined(EFD_NONBLOCK)
5858 write_descriptor_ = read_descriptor_ =
5959 ::eventfd (0 , EFD_CLOEXEC | EFD_NONBLOCK);
@@ -70,7 +70,7 @@ void eventfd_select_interrupter::open_descriptors()
7070 ::fcntl (read_descriptor_, F_SETFD, FD_CLOEXEC);
7171 }
7272 }
73- #endif // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8
73+ #endif // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 && !defined(__UCLIBC__)
7474
7575 if (read_descriptor_ == -1 )
7676 {
0 commit comments