1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-21 23:58:49 -05:00

configure script now checks availability of the alarm() function

This commit is contained in:
Yang Tse 2008-09-19 18:39:24 +00:00
parent 459e67b2a7
commit 4e4f6c1ec8
4 changed files with 136 additions and 58 deletions

View File

@ -6,6 +6,9 @@
Changelog
Yang Tse (19 Sep 2008)
- configure script now checks availability of the alarm() function.
Daniel Fandrich (18 Sep 2008)
- Don't bother to install a SIGALRM handler unless alarm() is available.
Also, leave the existing SIGALRM handler alone if the timeout is too small

View File

@ -2045,6 +2045,7 @@ CURL_CHECK_FUNC_RECVFROM
CURL_CHECK_FUNC_SEND
CURL_CHECK_MSG_NOSIGNAL
CURL_CHECK_FUNC_ALARM
CURL_CHECK_FUNC_FDOPEN
CURL_CHECK_FUNC_FTRUNCATE
CURL_CHECK_FUNC_GETHOSTBYADDR_R

View File

@ -340,13 +340,9 @@
# if !defined(__CYGWIN__)
# define sclose(x) closesocket(x)
#undef HAVE_ALARM
# else
/* gcc-for-win is still good :) */
# define sclose(x) close(x)
#define HAVE_ALARM
#endif /* !GNU or mingw */
# endif
# define DIR_CHAR "\\"
# define DOT_CHAR "_"
@ -354,6 +350,7 @@
#else /* WIN32 */
# ifdef MSDOS /* Watt-32 */
# include <sys/ioctl.h>
# define sclose(x) close_s(x)
# define select(n,r,w,x,t) select_s(n,r,w,x,t)
@ -375,12 +372,9 @@
# define sclose(x) close(x)
# endif /* __BEOS__ */
#define HAVE_ALARM
# endif /* MSDOS */
# ifdef _AMIGASF
#undef HAVE_ALARM
# undef sclose
# define sclose(x) CloseSocket(x)
# endif
@ -391,10 +385,6 @@ extern char * strtok_r(char *s, const char *delim, char **last);
extern struct tm * gmtime_r(const time_t * const timep, struct tm *tmp);
# endif
#ifdef __SYMBIAN32__
#undef HAVE_ALARM
#endif
# define DIR_CHAR "/"
# ifndef DOT_CHAR
# define DOT_CHAR "."
@ -450,7 +440,6 @@ int netware_init(void);
#include <sys/bsdskt.h>
#include <sys/timeval.h>
#endif
#undef HAVE_ALARM
#endif
#if defined(HAVE_LIBIDN) && defined(HAVE_TLD_H)

View File

@ -204,6 +204,91 @@ curl_includes_unistd="\
])
dnl CURL_CHECK_FUNC_ALARM
dnl -------------------------------------------------
dnl Verify if alarm is available, prototyped, and
dnl can be compiled. If all of these are true, and
dnl usage has not been previously disallowed with
dnl shell variable curl_disallow_alarm, then
dnl HAVE_ALARM will be defined.
AC_DEFUN([CURL_CHECK_FUNC_ALARM], [
AC_REQUIRE([CURL_INCLUDES_UNISTD])dnl
#
tst_links_alarm="unknown"
tst_proto_alarm="unknown"
tst_compi_alarm="unknown"
tst_allow_alarm="unknown"
#
AC_MSG_CHECKING([if alarm can be linked])
AC_LINK_IFELSE([
AC_LANG_FUNC_LINK_TRY([alarm])
],[
AC_MSG_RESULT([yes])
tst_links_alarm="yes"
],[
AC_MSG_RESULT([no])
tst_links_alarm="no"
])
#
if test "$tst_links_alarm" = "yes"; then
AC_MSG_CHECKING([if alarm is prototyped])
AC_EGREP_CPP([alarm],[
$curl_includes_unistd
],[
AC_MSG_RESULT([yes])
tst_proto_alarm="yes"
],[
AC_MSG_RESULT([no])
tst_proto_alarm="no"
])
fi
#
if test "$tst_proto_alarm" = "yes"; then
AC_MSG_CHECKING([if alarm is compilable])
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
$curl_includes_unistd
]],[[
if(0 != alarm(0))
return 1;
]])
],[
AC_MSG_RESULT([yes])
tst_compi_alarm="yes"
],[
AC_MSG_RESULT([no])
tst_compi_alarm="no"
])
fi
#
if test "$tst_compi_alarm" = "yes"; then
AC_MSG_CHECKING([if alarm usage allowed])
if test "x$curl_disallow_alarm" != "xyes"; then
AC_MSG_RESULT([yes])
tst_allow_alarm="yes"
else
AC_MSG_RESULT([no])
tst_allow_alarm="no"
fi
fi
#
AC_MSG_CHECKING([if alarm might be used])
if test "$tst_links_alarm" = "yes" &&
test "$tst_proto_alarm" = "yes" &&
test "$tst_compi_alarm" = "yes" &&
test "$tst_allow_alarm" = "yes"; then
AC_MSG_RESULT([yes])
AC_DEFINE_UNQUOTED(HAVE_ALARM, 1,
[Define to 1 if you have the alarm function.])
ac_cv_func_alarm="yes"
else
AC_MSG_RESULT([no])
ac_cv_func_alarm="no"
fi
])
dnl CURL_CHECK_FUNC_FDOPEN
dnl -------------------------------------------------
dnl Verify if fdopen is available, prototyped, and