From 9297ca49f5f3caca938a679b9c1feeb719e61ddb Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 11 Oct 2016 11:04:06 +0200 Subject: configure: detect the broken poll() in macOS 10.12 Fixes #1057 --- m4/curl-functions.m4 | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'm4/curl-functions.m4') 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, , et al. +# Copyright (C) 1998 - 2016, Daniel Stenberg, , 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]) -- cgit v1.2.3