AC_DEFUN([CURL_CHECK_NEED_REENTRANT_ERRNO], [
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
]],[[
if(0 != errno)
return 1;
]])
],[
tmp_errno="yes"
],[
tmp_errno="no"
])
if test "$tmp_errno" = "yes"; then
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
]],[[
int dummy=1;
force compilation error
]])
],[
tmp_errno="errno_macro_defined"
],[
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
]],[[
int dummy=1;
force compilation error
]])
],[
tmp_errno="errno_macro_needs_reentrant"
tmp_need_reentrant="yes"
])
])
fi
])
AC_DEFUN([CURL_CHECK_NEED_REENTRANT_GMTIME_R], [
AC_LINK_IFELSE([
AC_LANG_FUNC_LINK_TRY([gmtime_r])
],[
tmp_gmtime_r="yes"
],[
tmp_gmtime_r="no"
])
if test "$tmp_gmtime_r" = "yes"; then
AC_EGREP_CPP([gmtime_r],[
],[
tmp_gmtime_r="proto_declared"
],[
AC_EGREP_CPP([gmtime_r],[
],[
tmp_gmtime_r="proto_needs_reentrant"
tmp_need_reentrant="yes"
])
])
fi
])
AC_DEFUN([CURL_CHECK_NEED_REENTRANT_LOCALTIME_R], [
AC_LINK_IFELSE([
AC_LANG_FUNC_LINK_TRY([localtime_r])
],[
tmp_localtime_r="yes"
],[
tmp_localtime_r="no"
])
if test "$tmp_localtime_r" = "yes"; then
AC_EGREP_CPP([localtime_r],[
],[
tmp_localtime_r="proto_declared"
],[
AC_EGREP_CPP([localtime_r],[
],[
tmp_localtime_r="proto_needs_reentrant"
tmp_need_reentrant="yes"
])
])
fi
])
AC_DEFUN([CURL_CHECK_NEED_REENTRANT_STRERROR_R], [
AC_LINK_IFELSE([
AC_LANG_FUNC_LINK_TRY([strerror_r])
],[
tmp_strerror_r="yes"
],[
tmp_strerror_r="no"
])
if test "$tmp_strerror_r" = "yes"; then
AC_EGREP_CPP([strerror_r],[
],[
tmp_strerror_r="proto_declared"
],[
AC_EGREP_CPP([strerror_r],[
],[
tmp_strerror_r="proto_needs_reentrant"
tmp_need_reentrant="yes"
])
])
fi
])
AC_DEFUN([CURL_CHECK_NEED_REENTRANT_STRTOK_R], [
AC_LINK_IFELSE([
AC_LANG_FUNC_LINK_TRY([strtok_r])
],[
tmp_strtok_r="yes"
],[
tmp_strtok_r="no"
])
if test "$tmp_strtok_r" = "yes"; then
AC_EGREP_CPP([strtok_r],[
],[
tmp_strtok_r="proto_declared"
],[
AC_EGREP_CPP([strtok_r],[
],[
tmp_strtok_r="proto_needs_reentrant"
tmp_need_reentrant="yes"
])
])
fi
])
AC_DEFUN([CURL_CHECK_NEED_REENTRANT_INET_NTOA_R], [
AC_LINK_IFELSE([
AC_LANG_FUNC_LINK_TRY([inet_ntoa_r])
],[
tmp_inet_ntoa_r="yes"
],[
tmp_inet_ntoa_r="no"
])
if test "$tmp_inet_ntoa_r" = "yes"; then
AC_EGREP_CPP([inet_ntoa_r],[
],[
tmp_inet_ntoa_r="proto_declared"
],[
AC_EGREP_CPP([inet_ntoa_r],[
],[
tmp_inet_ntoa_r="proto_needs_reentrant"
tmp_need_reentrant="yes"
])
])
fi
])
AC_DEFUN([CURL_CHECK_NEED_REENTRANT_GETHOSTBYADDR_R], [
AC_LINK_IFELSE([
AC_LANG_FUNC_LINK_TRY([gethostbyaddr_r])
],[
tmp_gethostbyaddr_r="yes"
],[
tmp_gethostbyaddr_r="no"
])
if test "$tmp_gethostbyaddr_r" = "yes"; then
AC_EGREP_CPP([gethostbyaddr_r],[
],[
tmp_gethostbyaddr_r="proto_declared"
],[
AC_EGREP_CPP([gethostbyaddr_r],[
],[
tmp_gethostbyaddr_r="proto_needs_reentrant"
tmp_need_reentrant="yes"
])
])
fi
])
AC_DEFUN([CURL_CHECK_NEED_REENTRANT_GETHOSTBYNAME_R], [
AC_LINK_IFELSE([
AC_LANG_FUNC_LINK_TRY([gethostbyname_r])
],[
tmp_gethostbyname_r="yes"
],[
tmp_gethostbyname_r="no"
])
if test "$tmp_gethostbyname_r" = "yes"; then
AC_EGREP_CPP([gethostbyname_r],[
],[
tmp_gethostbyname_r="proto_declared"
],[
AC_EGREP_CPP([gethostbyname_r],[
],[
tmp_gethostbyname_r="proto_needs_reentrant"
tmp_need_reentrant="yes"
])
])
fi
])
AC_DEFUN([CURL_CHECK_NEED_REENTRANT_GETPROTOBYNAME_R], [
AC_LINK_IFELSE([
AC_LANG_FUNC_LINK_TRY([getprotobyname_r])
],[
tmp_getprotobyname_r="yes"
],[
tmp_getprotobyname_r="no"
])
if test "$tmp_getprotobyname_r" = "yes"; then
AC_EGREP_CPP([getprotobyname_r],[
],[
tmp_getprotobyname_r="proto_declared"
],[
AC_EGREP_CPP([getprotobyname_r],[
],[
tmp_getprotobyname_r="proto_needs_reentrant"
tmp_need_reentrant="yes"
])
])
fi
])
AC_DEFUN([CURL_CHECK_NEED_REENTRANT_GETSERVBYPORT_R], [
AC_LINK_IFELSE([
AC_LANG_FUNC_LINK_TRY([getservbyport_r])
],[
tmp_getservbyport_r="yes"
],[
tmp_getservbyport_r="no"
])
if test "$tmp_getservbyport_r" = "yes"; then
AC_EGREP_CPP([getservbyport_r],[
],[
tmp_getservbyport_r="proto_declared"
],[
AC_EGREP_CPP([getservbyport_r],[
],[
tmp_getservbyport_r="proto_needs_reentrant"
tmp_need_reentrant="yes"
])
])
fi
])
AC_DEFUN([CURL_CHECK_NEED_REENTRANT_FUNCTIONS_R], [
if test "$tmp_need_reentrant" = "no"; then
CURL_CHECK_NEED_REENTRANT_GMTIME_R
fi
if test "$tmp_need_reentrant" = "no"; then
CURL_CHECK_NEED_REENTRANT_LOCALTIME_R
fi
if test "$tmp_need_reentrant" = "no"; then
CURL_CHECK_NEED_REENTRANT_STRERROR_R
fi
if test "$tmp_need_reentrant" = "no"; then
CURL_CHECK_NEED_REENTRANT_STRTOK_R
fi
if test "$tmp_need_reentrant" = "no"; then
CURL_CHECK_NEED_REENTRANT_INET_NTOA_R
fi
if test "$tmp_need_reentrant" = "no"; then
CURL_CHECK_NEED_REENTRANT_GETHOSTBYADDR_R
fi
if test "$tmp_need_reentrant" = "no"; then
CURL_CHECK_NEED_REENTRANT_GETHOSTBYNAME_R
fi
if test "$tmp_need_reentrant" = "no"; then
CURL_CHECK_NEED_REENTRANT_GETPROTOBYNAME_R
fi
if test "$tmp_need_reentrant" = "no"; then
CURL_CHECK_NEED_REENTRANT_GETSERVBYPORT_R
fi
])
AC_DEFUN([CURL_CHECK_NEED_REENTRANT_SYSTEM], [
case $host_os in
solaris*)
tmp_need_reentrant="yes"
;;
*)
tmp_need_reentrant="no"
;;
esac
])
AC_DEFUN([CURL_CHECK_NEED_THREAD_SAFE_SYSTEM], [
case $host_os in
aix[[123]].* | aix4.[[012]].*)
tmp_need_thread_safe="no"
;;
aix*)
tmp_need_thread_safe="yes"
;;
*)
tmp_need_thread_safe="no"
;;
esac
])
AC_DEFUN([CURL_CONFIGURE_FROM_NOW_ON_WITH_REENTRANT], [
AC_DEFINE(NEED_REENTRANT, 1,
[Define to 1 if _REENTRANT preprocessor symbol must be defined.])
cat >>confdefs.h <<_EOF
_EOF
])
AC_DEFUN([CURL_CONFIGURE_FROM_NOW_ON_WITH_THREAD_SAFE], [
AC_DEFINE(NEED_THREAD_SAFE, 1,
[Define to 1 if _THREAD_SAFE preprocessor symbol must be defined.])
cat >>confdefs.h <<_EOF
_EOF
])
AC_DEFUN([CURL_CONFIGURE_REENTRANT], [
AC_PREREQ([2.50]) AC_MSG_CHECKING([if _REENTRANT is already defined])
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
]],[[
int dummy=1;
force compilation error
]])
],[
AC_MSG_RESULT([yes])
tmp_reentrant_initially_defined="yes"
],[
AC_MSG_RESULT([no])
tmp_reentrant_initially_defined="no"
])
if test "$tmp_reentrant_initially_defined" = "no"; then
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
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
fi
AC_MSG_CHECKING([if _REENTRANT is onwards defined])
if test "$tmp_reentrant_initially_defined" = "yes" ||
test "$tmp_need_reentrant" = "yes"; then
CURL_CONFIGURE_FROM_NOW_ON_WITH_REENTRANT
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
])
AC_DEFUN([CURL_CONFIGURE_THREAD_SAFE], [
AC_PREREQ([2.50]) AC_MSG_CHECKING([if _THREAD_SAFE is already defined])
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
]],[[
int dummy=1;
force compilation error
]])
],[
AC_MSG_RESULT([yes])
tmp_thread_safe_initially_defined="yes"
],[
AC_MSG_RESULT([no])
tmp_thread_safe_initially_defined="no"
])
if test "$tmp_thread_safe_initially_defined" = "no"; then
AC_MSG_CHECKING([if _THREAD_SAFE is actually needed])
CURL_CHECK_NEED_THREAD_SAFE_SYSTEM
if test "$tmp_need_thread_safe" = "yes"; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
fi
AC_MSG_CHECKING([if _THREAD_SAFE is onwards defined])
if test "$tmp_thread_safe_initially_defined" = "yes" ||
test "$tmp_need_thread_safe" = "yes"; then
CURL_CONFIGURE_FROM_NOW_ON_WITH_THREAD_SAFE
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
])