configure: detect the broken poll() in macOS 10.12

Fixes #1057
This commit is contained in:
Daniel Stenberg 2016-10-11 11:04:06 +02:00
parent 358fd32820
commit 9297ca49f5
1 changed files with 19 additions and 3 deletions

View File

@ -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 # This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms # you should have received as part of this distribution. The terms
@ -4803,11 +4803,27 @@ AC_DEFUN([CURL_CHECK_FUNC_POLL], [
AC_LANG_PROGRAM([[ AC_LANG_PROGRAM([[
$curl_includes_stdlib $curl_includes_stdlib
$curl_includes_poll $curl_includes_poll
$curl_includes_time
]],[[ ]],[[
/* detect the original poll() breakage */
if(0 != poll(0, 0, 10)) if(0 != poll(0, 0, 10))
exit(1); /* fail */ exit(1); /* fail */
else else {
exit(0); /* 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]) AC_MSG_RESULT([yes])