diff options
author | Yang Tse <yangsita@gmail.com> | 2009-09-29 16:34:03 +0000 |
---|---|---|
committer | Yang Tse <yangsita@gmail.com> | 2009-09-29 16:34:03 +0000 |
commit | 4271f44a9ec2d505bdf506e1959850c35ee756a6 (patch) | |
tree | e0fb0e46e782e5639f9a7cfa03e5bce75dedda9f /m4 | |
parent | 78d07cb0f9170f84930d5374c5e516620e8107df (diff) |
Check if _REENTRANT definition is required to
make errno available as a preprocessor macro.
Diffstat (limited to 'm4')
-rw-r--r-- | m4/curl-reentrant.m4 | 59 |
1 files changed, 57 insertions, 2 deletions
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 |