From 0bd7ef5d8697973a026c36c15d6276177b4ec4ea Mon Sep 17 00:00:00 2001 From: Daniel Drake Date: Sat, 21 Nov 2009 16:57:25 +0000 Subject: [PATCH] Refine timerfd header check (#18) Require glibc-2.9 for the working timerfd support. --- configure.ac | 10 +++++++--- libusb/io.c | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 180c14d..8aedfba 100644 --- a/configure.ac +++ b/configure.ac @@ -53,15 +53,19 @@ AC_ARG_ENABLE([timerfd], [use_timerfd=$enableval], [use_timerfd='auto']) if test "x$use_timerfd" = "xyes" -a "x$timerfd_h" = "x0"; then - AC_MSG_ERROR([timerfd header not available; glibc 2.8+ required]) -error + AC_MSG_ERROR([timerfd header not available; glibc 2.9+ required]) +fi + +AC_CHECK_DECL([TFD_NONBLOCK], [tfd_hdr_ok=yes], [tfd_hdr_ok=no], [#include ]) +if test "x$use_timerfd" = "xyes" -a "x$tfd_hdr_ok" = "xno"; then + AC_MSG_ERROR([timerfd header not usable; glibc 2.9+ required]) fi AC_MSG_CHECKING([whether to use timerfd for timing]) if test "x$use_timerfd" = "xno"; then AC_MSG_RESULT([no (disabled by user)]) else - if test "x$timerfd_h" = "x1"; then + if test "x$timerfd_h" = "x1" -a "x$tfd_hdr_ok" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE(USBI_TIMERFD_AVAILABLE, [], [timerfd headers available]) else diff --git a/libusb/io.c b/libusb/io.c index 65c2cf4..f6a7e23 100644 --- a/libusb/io.c +++ b/libusb/io.c @@ -632,7 +632,7 @@ while (user has not requested application exit) { * - Darwin * - Linux, provided that the following version requirements are satisfied: * - Linux v2.6.27 or newer, compiled with timerfd support - * - glibc v2.8 or newer + * - glibc v2.9 or newer * - libusb v1.0.5 or newer * * Under these configurations, libusb_get_next_timeout() will \em always return -- 2.7.4