aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ares/m4/cares-reentrant.m459
-rw-r--r--m4/curl-reentrant.m459
2 files changed, 114 insertions, 4 deletions
diff --git a/ares/m4/cares-reentrant.m4 b/ares/m4/cares-reentrant.m4
index 8962da47c..5793b7791 100644
--- a/ares/m4/cares-reentrant.m4
+++ b/ares/m4/cares-reentrant.m4
@@ -1,7 +1,7 @@
#***************************************************************************
# $Id$
#
-# Copyright (C) 2008 by Daniel Stenberg et al
+# Copyright (C) 2008 - 2009 by Daniel Stenberg et al
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted, provided
@@ -16,7 +16,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
-# serial 3
+# serial 4
dnl Note 1
dnl ------
@@ -25,6 +25,58 @@ dnl conditionally include header files. These macros are used early in the
dnl configure process much before header file availability is known.
+dnl CARES_CHECK_NEED_REENTRANT_ERRNO
+dnl -------------------------------------------------
+dnl Checks if the preprocessor _REENTRANT definition
+dnl makes errno available as a preprocessor macro.
+
+AC_DEFUN([CARES_CHECK_NEED_REENTRANT_ERRNO], [
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+#include <errno.h>
+ ]],[[
+ if(0 != errno)
+ return 1;
+ ]])
+ ],[
+ tmp_errno="yes"
+ ],[
+ tmp_errno="no"
+ ])
+ if test "$tmp_errno" = "yes"; then
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+#include <errno.h>
+ ]],[[
+#ifdef errno
+ int dummy=1;
+#else
+ force compilation error
+#endif
+ ]])
+ ],[
+ tmp_errno="errno_macro_defined"
+ ],[
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+#define _REENTRANT
+#include <errno.h>
+ ]],[[
+#ifdef errno
+ int dummy=1;
+#else
+ force compilation error
+#endif
+ ]])
+ ],[
+ tmp_errno="errno_macro_needs_reentrant"
+ tmp_need_reentrant="yes"
+ ])
+ ])
+ fi
+])
+
+
dnl CARES_CHECK_NEED_REENTRANT_GMTIME_R
dnl -------------------------------------------------
dnl Checks if the preprocessor _REENTRANT definition
@@ -438,6 +490,9 @@ AC_DEFUN([CARES_CONFIGURE_REENTRANT], [
AC_MSG_CHECKING([if _REENTRANT is actually needed])
CARES_CHECK_NEED_REENTRANT_SYSTEM
if test "$tmp_need_reentrant" = "no"; then
+ CARES_CHECK_NEED_REENTRANT_ERRNO
+ fi
+ if test "$tmp_need_reentrant" = "no"; then
CARES_CHECK_NEED_REENTRANT_FUNCTIONS_R
fi
if test "$tmp_need_reentrant" = "yes"; then
diff --git a/m4/curl-reentrant.m4 b/m4/curl-reentrant.m4
index 9b6c9663f..a2aa5a96e 100644
--- a/m4/curl-reentrant.m4
+++ b/m4/curl-reentrant.m4
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -22,7 +22,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
-# serial 3
+# serial 6
dnl Note 1
dnl ------
@@ -31,6 +31,58 @@ dnl conditionally include header files. These macros are used early in the
dnl configure process much before header file availability is known.
+dnl CURL_CHECK_NEED_REENTRANT_ERRNO
+dnl -------------------------------------------------
+dnl Checks if the preprocessor _REENTRANT definition
+dnl makes errno available as a preprocessor macro.
+
+AC_DEFUN([CURL_CHECK_NEED_REENTRANT_ERRNO], [
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+#include <errno.h>
+ ]],[[
+ if(0 != errno)
+ return 1;
+ ]])
+ ],[
+ tmp_errno="yes"
+ ],[
+ tmp_errno="no"
+ ])
+ if test "$tmp_errno" = "yes"; then
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+#include <errno.h>
+ ]],[[
+#ifdef errno
+ int dummy=1;
+#else
+ force compilation error
+#endif
+ ]])
+ ],[
+ tmp_errno="errno_macro_defined"
+ ],[
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+#define _REENTRANT
+#include <errno.h>
+ ]],[[
+#ifdef errno
+ int dummy=1;
+#else
+ force compilation error
+#endif
+ ]])
+ ],[
+ tmp_errno="errno_macro_needs_reentrant"
+ tmp_need_reentrant="yes"
+ ])
+ ])
+ fi
+])
+
+
dnl CURL_CHECK_NEED_REENTRANT_GMTIME_R
dnl -------------------------------------------------
dnl Checks if the preprocessor _REENTRANT definition
@@ -444,6 +496,9 @@ AC_DEFUN([CURL_CONFIGURE_REENTRANT], [
AC_MSG_CHECKING([if _REENTRANT is actually needed])
CURL_CHECK_NEED_REENTRANT_SYSTEM
if test "$tmp_need_reentrant" = "no"; then
+ CURL_CHECK_NEED_REENTRANT_ERRNO
+ fi
+ if test "$tmp_need_reentrant" = "no"; then
CURL_CHECK_NEED_REENTRANT_FUNCTIONS_R
fi
if test "$tmp_need_reentrant" = "yes"; then