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:
parent
459e67b2a7
commit
4e4f6c1ec8
3
CHANGES
3
CHANGES
@ -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
|
||||
|
@ -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
|
||||
|
105
lib/setup.h
105
lib/setup.h
@ -338,76 +338,66 @@
|
||||
|
||||
#ifdef WIN32
|
||||
|
||||
#if !defined(__CYGWIN__)
|
||||
#define sclose(x) closesocket(x)
|
||||
# if !defined(__CYGWIN__)
|
||||
# define sclose(x) closesocket(x)
|
||||
# else
|
||||
# define sclose(x) close(x)
|
||||
# endif
|
||||
|
||||
#undef HAVE_ALARM
|
||||
#else
|
||||
/* gcc-for-win is still good :) */
|
||||
#define sclose(x) close(x)
|
||||
#define HAVE_ALARM
|
||||
#endif /* !GNU or mingw */
|
||||
|
||||
#define DIR_CHAR "\\"
|
||||
#define DOT_CHAR "_"
|
||||
# define DIR_CHAR "\\"
|
||||
# define DOT_CHAR "_"
|
||||
|
||||
#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)
|
||||
#define ioctl(x,y,z) ioctlsocket(x,y,(char *)(z))
|
||||
#define IOCTL_3_ARGS
|
||||
#include <tcp.h>
|
||||
#ifdef word
|
||||
#undef word
|
||||
#endif
|
||||
#ifdef byte
|
||||
#undef byte
|
||||
#endif
|
||||
# ifdef MSDOS /* Watt-32 */
|
||||
|
||||
#else /* MSDOS */
|
||||
# include <sys/ioctl.h>
|
||||
# define sclose(x) close_s(x)
|
||||
# define select(n,r,w,x,t) select_s(n,r,w,x,t)
|
||||
# define ioctl(x,y,z) ioctlsocket(x,y,(char *)(z))
|
||||
# define IOCTL_3_ARGS
|
||||
# include <tcp.h>
|
||||
# ifdef word
|
||||
# undef word
|
||||
# endif
|
||||
# ifdef byte
|
||||
# undef byte
|
||||
# endif
|
||||
|
||||
#ifdef __BEOS__
|
||||
#define sclose(x) closesocket(x)
|
||||
#else /* __BEOS__ */
|
||||
#define sclose(x) close(x)
|
||||
#endif /* __BEOS__ */
|
||||
# else /* MSDOS */
|
||||
|
||||
#define HAVE_ALARM
|
||||
# ifdef __BEOS__
|
||||
# define sclose(x) closesocket(x)
|
||||
# else /* __BEOS__ */
|
||||
# define sclose(x) close(x)
|
||||
# endif /* __BEOS__ */
|
||||
|
||||
#endif /* MSDOS */
|
||||
# endif /* MSDOS */
|
||||
|
||||
#ifdef _AMIGASF
|
||||
#undef HAVE_ALARM
|
||||
#undef sclose
|
||||
#define sclose(x) CloseSocket(x)
|
||||
#endif
|
||||
# ifdef _AMIGASF
|
||||
# undef sclose
|
||||
# define sclose(x) CloseSocket(x)
|
||||
# endif
|
||||
|
||||
#ifdef __minix
|
||||
/* Minix 3 versions up to at least 3.1.3 are missing these prototypes */
|
||||
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 __minix
|
||||
/* Minix 3 versions up to at least 3.1.3 are missing these prototypes */
|
||||
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 "."
|
||||
# endif
|
||||
|
||||
#define DIR_CHAR "/"
|
||||
#ifndef DOT_CHAR
|
||||
#define DOT_CHAR "."
|
||||
#endif
|
||||
# ifdef MSDOS
|
||||
# undef DOT_CHAR
|
||||
# define DOT_CHAR "_"
|
||||
# endif
|
||||
|
||||
#ifdef MSDOS
|
||||
#undef DOT_CHAR
|
||||
#define DOT_CHAR "_"
|
||||
#endif
|
||||
|
||||
#ifndef fileno /* sunos 4 have this as a macro! */
|
||||
int fileno( FILE *stream);
|
||||
#endif
|
||||
# ifndef fileno /* sunos 4 have this as a macro! */
|
||||
int fileno( FILE *stream);
|
||||
# endif
|
||||
|
||||
#endif /* WIN32 */
|
||||
|
||||
@ -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)
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user