X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9052e07db8c592fca57a9acb3e2a543378cffd19..9e1da4827a0ec18f9766d664b9af12c25e3f71fb:/build/aclocal/ac_raf_func_which_getservbyname_r.m4 diff --git a/build/aclocal/ac_raf_func_which_getservbyname_r.m4 b/build/aclocal/ac_raf_func_which_getservbyname_r.m4 index b70088196b..ed90549812 100644 --- a/build/aclocal/ac_raf_func_which_getservbyname_r.m4 +++ b/build/aclocal/ac_raf_func_which_getservbyname_r.m4 @@ -3,7 +3,7 @@ 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_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 @@ -19,41 +19,53 @@ dnl @version 2001-08-20 dnl @license GPLWithACException AC_DEFUN([AC_raf_FUNC_WHICH_GETSERVBYNAME_R], -[AC_CHECK_FUNC(getservbyname_r, - [AC_TRY_COMPILE([#include ], - [ - 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 ], +[ +AC_CACHE_CHECK(how many arguments getservbyname_r() takes, + ac_cv_func_which_getservbyname_r, + [ + dnl we need to use C++ to detect missing prototypes + AC_LANG_PUSH(C++) + + AC_TRY_COMPILE([#include ], [ char *name; char *proto; struct servent *se, *res; char buffer[2048]; int buflen = 2048; - (void) getservbyname_r(name, proto, se, buffer, buflen, &res); + (void) getservbyname_r(name, proto, se, buffer, buflen, &res) ], ac_cv_func_which_getservbyname_r=six, - [AC_TRY_COMPILE([#include ], - [ - 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) + [ + AC_TRY_COMPILE([#include ], + [ + 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_TRY_COMPILE([#include ], + [ + 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_cv_func_which_getservbyname_r=no + ) + ] + ) + ] + ) + AC_LANG_POP() + ] +) if test $ac_cv_func_which_getservbyname_r = six; then AC_DEFINE(HAVE_FUNC_GETSERVBYNAME_R_6)