Loading configure.ac +1 −40 Original line number Diff line number Diff line Loading @@ -2033,6 +2033,7 @@ CURL_CHECK_FUNC_IOCTL CURL_CHECK_FUNC_IOCTLSOCKET CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL CURL_CHECK_FUNC_LOCALTIME_R CURL_CHECK_FUNC_POLL CURL_CHECK_FUNC_SETSOCKOPT CURL_CHECK_FUNC_SIGACTION CURL_CHECK_FUNC_SIGINTERRUPT Loading Loading @@ -2078,7 +2079,6 @@ AC_CHECK_FUNCS([basename \ inet_addr \ perror \ pipe \ poll \ setlocale \ setmode \ setrlimit \ Loading Loading @@ -2135,45 +2135,6 @@ if test "$ipv6" = "yes"; then CURL_CHECK_NI_WITHSCOPEID fi AC_MSG_CHECKING([if we are Mac OS X (to disable poll)]) disable_poll=no case $host in *-*-darwin*) disable_poll="yes"; ;; *) ;; esac AC_MSG_RESULT($disable_poll) if test "$disable_poll" = "no"; then dnl poll() might be badly emulated, as in Mac OS X 10.3 (and other BSDs?) and dnl to find out we make an extra check here! if test "$ac_cv_func_poll" = "yes"; then AC_MSG_CHECKING([if poll works with NULL inputs]) AC_RUN_IFELSE([ #ifdef HAVE_SYS_POLL_H #include <sys/poll.h> #elif defined(HAVE_POLL_H) #include <poll.h> #endif int main(void) { /* make this return 0 == timeout since there's nothing to read from */ return poll((void *)0, 0, 10 /*ms*/); } ], AC_MSG_RESULT(yes) AC_DEFINE(HAVE_POLL_FINE, 1, [If you have a fine poll]), AC_MSG_RESULT(no), AC_MSG_RESULT(cross-compiling assumes yes) AC_DEFINE(HAVE_POLL_FINE, 1, [If you have a fine poll]) ) dnl end of AC_RUN_IFELSE fi dnl poll() was found fi dnl poll()-check is not disabled dnl ************************************************************ dnl enable non-blocking communications dnl Loading m4/curl-functions.m4 +151 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ #*************************************************************************** # File version for 'aclocal' use. Keep it a single number. # serial 43 # serial 45 dnl CURL_INCLUDES_ARPA_INET Loading Loading @@ -124,6 +124,30 @@ curl_includes_netdb="\ ]) dnl CURL_INCLUDES_POLL dnl ------------------------------------------------- dnl Set up variable with list of headers that must be dnl included when poll.h is to be included. AC_DEFUN([CURL_INCLUDES_POLL], [ curl_includes_poll="\ /* includes start */ #ifdef HAVE_SYS_TYPES_H # include <sys/types.h> #endif #ifdef HAVE_POLL_H # include <poll.h> #endif #ifdef HAVE_SYS_POLL_H # include <sys/poll.h> #endif /* includes end */" AC_CHECK_HEADERS( sys/types.h poll.h sys/poll.h, [], [], [$curl_includes_poll]) ]) dnl CURL_INCLUDES_SETJMP dnl ------------------------------------------------- dnl Set up variable with list of headers that must be Loading Loading @@ -3108,6 +3132,132 @@ AC_DEFUN([CURL_CHECK_FUNC_LOCALTIME_R], [ ]) dnl CURL_CHECK_FUNC_POLL dnl ------------------------------------------------- dnl Verify if poll is available, prototyped, can dnl be compiled and seems to work. If all of these are dnl true, and usage has not been previously disallowed dnl with shell variable curl_disallow_poll, then dnl HAVE_POLL will be defined. AC_DEFUN([CURL_CHECK_FUNC_POLL], [ AC_REQUIRE([CURL_INCLUDES_STDLIB])dnl AC_REQUIRE([CURL_INCLUDES_POLL])dnl # tst_links_poll="unknown" tst_proto_poll="unknown" tst_compi_poll="unknown" tst_works_poll="unknown" tst_allow_poll="unknown" # case $host_os in darwin*) dnl poll does not work on this platform curl_disallow_poll="yes" ;; esac # AC_MSG_CHECKING([if poll can be linked]) AC_LINK_IFELSE([ AC_LANG_PROGRAM([[ $curl_includes_poll ]],[[ if(0 != poll(0, 0, 0)) return 1; ]]) ],[ AC_MSG_RESULT([yes]) tst_links_poll="yes" ],[ AC_MSG_RESULT([no]) tst_links_poll="no" ]) # if test "$tst_links_poll" = "yes"; then AC_MSG_CHECKING([if poll is prototyped]) AC_EGREP_CPP([poll],[ $curl_includes_poll ],[ AC_MSG_RESULT([yes]) tst_proto_poll="yes" ],[ AC_MSG_RESULT([no]) tst_proto_poll="no" ]) fi # if test "$tst_proto_poll" = "yes"; then AC_MSG_CHECKING([if poll is compilable]) AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ $curl_includes_poll ]],[[ if(0 != poll(0, 0, 0)) return 1; ]]) ],[ AC_MSG_RESULT([yes]) tst_compi_poll="yes" ],[ AC_MSG_RESULT([no]) tst_compi_poll="no" ]) fi # dnl only do runtime verification when not cross-compiling if test "x$cross_compiling" != "xyes" && test "$tst_compi_poll" = "yes"; then AC_MSG_CHECKING([if poll seems to work]) AC_RUN_IFELSE([ AC_LANG_PROGRAM([[ $curl_includes_stdlib $curl_includes_poll ]],[[ if(0 != poll(0, 0, 10)) exit(1); /* fail */ else exit(0); ]]) ],[ AC_MSG_RESULT([yes]) tst_works_poll="yes" ],[ AC_MSG_RESULT([no]) tst_works_poll="no" ]) fi # if test "$tst_compi_poll" = "yes" && test "$tst_works_poll" != "no"; then AC_MSG_CHECKING([if poll usage allowed]) if test "x$curl_disallow_poll" != "xyes"; then AC_MSG_RESULT([yes]) tst_allow_poll="yes" else AC_MSG_RESULT([no]) tst_allow_poll="no" fi fi # AC_MSG_CHECKING([if poll might be used]) if test "$tst_links_poll" = "yes" && test "$tst_proto_poll" = "yes" && test "$tst_compi_poll" = "yes" && test "$tst_allow_poll" = "yes" && test "$tst_works_poll" != "no"; then AC_MSG_RESULT([yes]) AC_DEFINE_UNQUOTED(HAVE_POLL, 1, [Define to 1 if you have a working poll function.]) AC_DEFINE_UNQUOTED(HAVE_POLL_FINE, 1, [If you have a fine poll]) ac_cv_func_poll="yes" else AC_MSG_RESULT([no]) ac_cv_func_poll="no" fi ]) dnl CURL_CHECK_FUNC_SETSOCKOPT dnl ------------------------------------------------- dnl Verify if setsockopt is available, prototyped, and Loading Loading
configure.ac +1 −40 Original line number Diff line number Diff line Loading @@ -2033,6 +2033,7 @@ CURL_CHECK_FUNC_IOCTL CURL_CHECK_FUNC_IOCTLSOCKET CURL_CHECK_FUNC_IOCTLSOCKET_CAMEL CURL_CHECK_FUNC_LOCALTIME_R CURL_CHECK_FUNC_POLL CURL_CHECK_FUNC_SETSOCKOPT CURL_CHECK_FUNC_SIGACTION CURL_CHECK_FUNC_SIGINTERRUPT Loading Loading @@ -2078,7 +2079,6 @@ AC_CHECK_FUNCS([basename \ inet_addr \ perror \ pipe \ poll \ setlocale \ setmode \ setrlimit \ Loading Loading @@ -2135,45 +2135,6 @@ if test "$ipv6" = "yes"; then CURL_CHECK_NI_WITHSCOPEID fi AC_MSG_CHECKING([if we are Mac OS X (to disable poll)]) disable_poll=no case $host in *-*-darwin*) disable_poll="yes"; ;; *) ;; esac AC_MSG_RESULT($disable_poll) if test "$disable_poll" = "no"; then dnl poll() might be badly emulated, as in Mac OS X 10.3 (and other BSDs?) and dnl to find out we make an extra check here! if test "$ac_cv_func_poll" = "yes"; then AC_MSG_CHECKING([if poll works with NULL inputs]) AC_RUN_IFELSE([ #ifdef HAVE_SYS_POLL_H #include <sys/poll.h> #elif defined(HAVE_POLL_H) #include <poll.h> #endif int main(void) { /* make this return 0 == timeout since there's nothing to read from */ return poll((void *)0, 0, 10 /*ms*/); } ], AC_MSG_RESULT(yes) AC_DEFINE(HAVE_POLL_FINE, 1, [If you have a fine poll]), AC_MSG_RESULT(no), AC_MSG_RESULT(cross-compiling assumes yes) AC_DEFINE(HAVE_POLL_FINE, 1, [If you have a fine poll]) ) dnl end of AC_RUN_IFELSE fi dnl poll() was found fi dnl poll()-check is not disabled dnl ************************************************************ dnl enable non-blocking communications dnl Loading
m4/curl-functions.m4 +151 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ #*************************************************************************** # File version for 'aclocal' use. Keep it a single number. # serial 43 # serial 45 dnl CURL_INCLUDES_ARPA_INET Loading Loading @@ -124,6 +124,30 @@ curl_includes_netdb="\ ]) dnl CURL_INCLUDES_POLL dnl ------------------------------------------------- dnl Set up variable with list of headers that must be dnl included when poll.h is to be included. AC_DEFUN([CURL_INCLUDES_POLL], [ curl_includes_poll="\ /* includes start */ #ifdef HAVE_SYS_TYPES_H # include <sys/types.h> #endif #ifdef HAVE_POLL_H # include <poll.h> #endif #ifdef HAVE_SYS_POLL_H # include <sys/poll.h> #endif /* includes end */" AC_CHECK_HEADERS( sys/types.h poll.h sys/poll.h, [], [], [$curl_includes_poll]) ]) dnl CURL_INCLUDES_SETJMP dnl ------------------------------------------------- dnl Set up variable with list of headers that must be Loading Loading @@ -3108,6 +3132,132 @@ AC_DEFUN([CURL_CHECK_FUNC_LOCALTIME_R], [ ]) dnl CURL_CHECK_FUNC_POLL dnl ------------------------------------------------- dnl Verify if poll is available, prototyped, can dnl be compiled and seems to work. If all of these are dnl true, and usage has not been previously disallowed dnl with shell variable curl_disallow_poll, then dnl HAVE_POLL will be defined. AC_DEFUN([CURL_CHECK_FUNC_POLL], [ AC_REQUIRE([CURL_INCLUDES_STDLIB])dnl AC_REQUIRE([CURL_INCLUDES_POLL])dnl # tst_links_poll="unknown" tst_proto_poll="unknown" tst_compi_poll="unknown" tst_works_poll="unknown" tst_allow_poll="unknown" # case $host_os in darwin*) dnl poll does not work on this platform curl_disallow_poll="yes" ;; esac # AC_MSG_CHECKING([if poll can be linked]) AC_LINK_IFELSE([ AC_LANG_PROGRAM([[ $curl_includes_poll ]],[[ if(0 != poll(0, 0, 0)) return 1; ]]) ],[ AC_MSG_RESULT([yes]) tst_links_poll="yes" ],[ AC_MSG_RESULT([no]) tst_links_poll="no" ]) # if test "$tst_links_poll" = "yes"; then AC_MSG_CHECKING([if poll is prototyped]) AC_EGREP_CPP([poll],[ $curl_includes_poll ],[ AC_MSG_RESULT([yes]) tst_proto_poll="yes" ],[ AC_MSG_RESULT([no]) tst_proto_poll="no" ]) fi # if test "$tst_proto_poll" = "yes"; then AC_MSG_CHECKING([if poll is compilable]) AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ $curl_includes_poll ]],[[ if(0 != poll(0, 0, 0)) return 1; ]]) ],[ AC_MSG_RESULT([yes]) tst_compi_poll="yes" ],[ AC_MSG_RESULT([no]) tst_compi_poll="no" ]) fi # dnl only do runtime verification when not cross-compiling if test "x$cross_compiling" != "xyes" && test "$tst_compi_poll" = "yes"; then AC_MSG_CHECKING([if poll seems to work]) AC_RUN_IFELSE([ AC_LANG_PROGRAM([[ $curl_includes_stdlib $curl_includes_poll ]],[[ if(0 != poll(0, 0, 10)) exit(1); /* fail */ else exit(0); ]]) ],[ AC_MSG_RESULT([yes]) tst_works_poll="yes" ],[ AC_MSG_RESULT([no]) tst_works_poll="no" ]) fi # if test "$tst_compi_poll" = "yes" && test "$tst_works_poll" != "no"; then AC_MSG_CHECKING([if poll usage allowed]) if test "x$curl_disallow_poll" != "xyes"; then AC_MSG_RESULT([yes]) tst_allow_poll="yes" else AC_MSG_RESULT([no]) tst_allow_poll="no" fi fi # AC_MSG_CHECKING([if poll might be used]) if test "$tst_links_poll" = "yes" && test "$tst_proto_poll" = "yes" && test "$tst_compi_poll" = "yes" && test "$tst_allow_poll" = "yes" && test "$tst_works_poll" != "no"; then AC_MSG_RESULT([yes]) AC_DEFINE_UNQUOTED(HAVE_POLL, 1, [Define to 1 if you have a working poll function.]) AC_DEFINE_UNQUOTED(HAVE_POLL_FINE, 1, [If you have a fine poll]) ac_cv_func_poll="yes" else AC_MSG_RESULT([no]) ac_cv_func_poll="no" fi ]) dnl CURL_CHECK_FUNC_SETSOCKOPT dnl ------------------------------------------------- dnl Verify if setsockopt is available, prototyped, and Loading