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
# 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])