wxWidgets/build/aclocal/ac_raf_func_which_getservbyname_r.m4
Stefan Neis bebf40d5a0 Detect thread-safe versions of gethostbyname/gethostbyaddr/getservbyname
and how many arguments they use.
Detect thread-safe versions of localtime/gmtime and readdir.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-11-27 17:46:39 +00:00

76 lines
2.1 KiB
Plaintext

dnl @synopsis AC_raf_FUNC_WHICH_GETSERVBYNAME_R
dnl
dnl Provides a test to determine the correct way to call
dnl getservbyname_r:
dnl
dnl - defines HAVE_FUNC_GETSERVBYNAME_R_6 if it needs 6 arguments (e.g linux)
dnl - defines HAVE_FUNC_GETSERVBYNAME_R_5 if it needs 5 arguments (e.g. solaris)
dnl - defines HAVE_FUNC_GETSERVBYNAME_R_4 if it needs 4 arguments (e.g. osf/1)
dnl
dnl An example use can be found at
dnl http://raf.org/autoconf/net_getservbyname.c
dnl
dnl Based on Caolan McNamara's gethostbyname_r macro. Based on David
dnl Arnold's autoconf suggestion in the threads faq.
dnl
dnl @category Misc
dnl @author raf <raf@raf.org>
dnl @version 2001-08-20
dnl @license GPLWithACException
AC_DEFUN([AC_raf_FUNC_WHICH_GETSERVBYNAME_R],
[AC_CACHE_CHECK(for getservbyname_r, ac_cv_func_which_getservbyname_r, [
AC_CHECK_FUNC(getservbyname_r, [
AC_TRY_COMPILE([
# include <netdb.h>
], [
char *name;
char *proto;
struct servent *se;
struct servent_data data;
(void) getservbyname_r(name, proto, se, &data);
],ac_cv_func_which_getservbyname_r=four,
[
AC_TRY_COMPILE([
# include <netdb.h>
], [
char *name;
char *proto;
struct servent *se, *res;
char buffer[2048];
int buflen = 2048;
(void) getservbyname_r(name, proto, se, buffer, buflen, &res)
],ac_cv_func_which_getservbyname_r=six,
[
AC_TRY_COMPILE([
# include <netdb.h>
], [
char *name;
char *proto;
struct servent *se;
char buffer[2048];
int buflen = 2048;
(void) getservbyname_r(name, proto, se, buffer, buflen)
],ac_cv_func_which_getservbyname_r=five,ac_cv_func_which_getservbyname_r=no)
]
)
]
)]
,ac_cv_func_which_getservbyname_r=no)])
if test $ac_cv_func_which_getservbyname_r = six; then
AC_DEFINE(HAVE_FUNC_GETSERVBYNAME_R_6)
elif test $ac_cv_func_which_getservbyname_r = five; then
AC_DEFINE(HAVE_FUNC_GETSERVBYNAME_R_5)
elif test $ac_cv_func_which_getservbyname_r = four; then
AC_DEFINE(HAVE_FUNC_GETSERVBYNAME_R_4)
fi
])