diff options
Diffstat (limited to 'ares')
-rw-r--r-- | ares/acinclude.m4 | 42 | ||||
-rw-r--r-- | ares/configure.ac | 2 | ||||
-rw-r--r-- | ares/setup_once.h | 10 |
3 files changed, 54 insertions, 0 deletions
diff --git a/ares/acinclude.m4 b/ares/acinclude.m4 index 9a2840401..7cfaec46e 100644 --- a/ares/acinclude.m4 +++ b/ares/acinclude.m4 @@ -1013,6 +1013,48 @@ AC_DEFUN([CURL_CHECK_STRUCT_TIMEVAL], [ ]) # AC_DEFUN +dnl TYPE_SIG_ATOMIC_T +dnl ------------------------------------------------- +dnl Check if the sig_atomic_t type is available, and +dnl verify if it is already defined as volatile. + +AC_DEFUN([TYPE_SIG_ATOMIC_T], [ + AC_CHECK_HEADERS(signal.h) + AC_CHECK_TYPE([sig_atomic_t],[ + AC_DEFINE(HAVE_SIG_ATOMIC_T, 1, + [Define to 1 if sig_atomic_t is an available typedef.]) + ], ,[ +#ifdef HAVE_SIGNAL_H +#include <signal.h> +#endif + ]) + case "$ac_cv_type_sig_atomic_t" in + yes) + # + AC_MSG_CHECKING([if sig_atomic_t is already defined as volatile]) + AC_TRY_LINK([ +#ifdef HAVE_SIGNAL_H +#include <signal.h> +#endif + ],[ + static volatile sig_atomic_t dummy = 0; + ],[ + AC_MSG_RESULT([no]) + ac_cv_sig_atomic_t_volatile="no" + ],[ + AC_MSG_RESULT([yes]) + ac_cv_sig_atomic_t_volatile="yes" + ]) + # + if test "$ac_cv_sig_atomic_t_volatile" = "yes"; then + AC_DEFINE(HAVE_SIG_ATOMIC_T_VOLATILE, 1, + [Define to 1 if sig_atomic_t is already defined as volatile.]) + fi + ;; + esac +]) # AC_DEFUN + + dnl CURL_CHECK_NONBLOCKING_SOCKET dnl ------------------------------------------------- dnl Check for how to set a socket to non-blocking state. There seems to exist diff --git a/ares/configure.ac b/ares/configure.ac index 79292cebc..71d4a0152 100644 --- a/ares/configure.ac +++ b/ares/configure.ac @@ -297,6 +297,8 @@ TYPE_IN_ADDR_T TYPE_SOCKADDR_STORAGE +TYPE_SIG_ATOMIC_T + CURL_CHECK_FUNC_RECV CURL_CHECK_FUNC_SEND diff --git a/ares/setup_once.h b/ares/setup_once.h index 224ab692a..23d75ca0d 100644 --- a/ares/setup_once.h +++ b/ares/setup_once.h @@ -123,5 +123,15 @@ #define ISPRINT(x) (isprint((int) ((unsigned char)x))) +/* + * Typedef to 'int' if sig_atomic_t is not an available 'typedefed' type. + */ + +#ifndef HAVE_SIG_ATOMIC_T +typedef int sig_atomic_t; +#define HAVE_SIG_ATOMIC_T +#endif + + #endif /* __SETUP_ONCE_H */ |