diff options
-rw-r--r-- | m4/curl-functions.m4 | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/m4/curl-functions.m4 b/m4/curl-functions.m4 index ee7a2521c..e1a1e32b3 100644 --- a/m4/curl-functions.m4 +++ b/m4/curl-functions.m4 @@ -5,7 +5,7 @@ # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # -# Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al. +# Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms @@ -4803,11 +4803,27 @@ AC_DEFUN([CURL_CHECK_FUNC_POLL], [ AC_LANG_PROGRAM([[ $curl_includes_stdlib $curl_includes_poll + $curl_includes_time ]],[[ + /* detect the original poll() breakage */ if(0 != poll(0, 0, 10)) exit(1); /* fail */ - else - exit(0); + else { + /* detect the 10.12 poll() breakage */ + struct timeval before, after; + int rc; + size_t us; + + gettimeofday(&before, NULL); + rc = poll(NULL, 0, 500); + gettimeofday(&after, NULL); + + us = (after.tv_sec - before.tv_sec) * 1000000 + + (after.tv_usec - before.tv_usec); + + if(us < 400000) + exit(1); + } ]]) ],[ AC_MSG_RESULT([yes]) |