aboutsummaryrefslogtreecommitdiff
path: root/ares
diff options
context:
space:
mode:
Diffstat (limited to 'ares')
-rw-r--r--ares/acinclude.m442
-rw-r--r--ares/configure.ac2
-rw-r--r--ares/setup_once.h10
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 */