diff --git a/configure b/configure index d701af6d49373720a8264d9e4369e54d7885b5af..0cb703530e3ceadda07dfe298baec539540c473c 100755 --- a/configure +++ b/configure @@ -2877,6 +2877,52 @@ $as_echo "$ac_res" >&6; } } # ac_fn_c_check_member +# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +# --------------------------------------------- +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. +ac_fn_c_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +$as_echo_n "checking whether $as_decl_name is declared... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_decl + # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes @@ -17339,8 +17385,30 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -# some systems already have gethostbyname_r so we don't need to build ours in main/utils.c -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname_r" >&5 +# NetBSD libc ships with an internal-only incompatible symbol gethostbyname_r +ac_fn_c_check_decl "$LINENO" "gethostbyname_r" "ac_cv_have_decl_gethostbyname_r" "#include <stdlib.h> + #include <netdb.h> + +" +if test "x$ac_cv_have_decl_gethostbyname_r" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETHOSTBYNAME_R $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + have_gethostbyname_r_public_declaration=yes +else + have_gethostbyname_r_public_declaration=no +fi + + +if test "x$have_gethostbyname_r_public_declaration" = "xyes"; then + # some systems already have gethostbyname_r so we don't need to build ours in main/utils.c + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname_r" >&5 $as_echo_n "checking for library containing gethostbyname_r... " >&6; } if ${ac_cv_search_gethostbyname_r+:} false; then : $as_echo_n "(cached) " >&6 @@ -17397,12 +17465,12 @@ if test "$ac_res" != no; then : fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname_r with 6 arguments" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname_r with 6 arguments" >&5 $as_echo_n "checking for gethostbyname_r with 6 arguments... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> - #include <netdb.h> + #include <netdb.h> int main () { @@ -17425,12 +17493,12 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname_r with 5 arguments" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname_r with 5 arguments" >&5 $as_echo_n "checking for gethostbyname_r with 5 arguments... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> - #include <netdb.h> + #include <netdb.h> int main () { @@ -17452,6 +17520,7 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext +fi ac_fn_c_check_header_mongrel "$LINENO" "byteswap.h" "ac_cv_header_byteswap_h" "$ac_includes_default" if test "x$ac_cv_header_byteswap_h" = xyes; then : diff --git a/configure.ac b/configure.ac index b175ef024e202e63f548e52133b79dbb919b2aa2..371f3539e62b0dae8d5bb05451a770b6e933c382 100644 --- a/configure.ac +++ b/configure.ac @@ -945,28 +945,38 @@ AC_LINK_IFELSE( AC_MSG_RESULT(no) ) -# some systems already have gethostbyname_r so we don't need to build ours in main/utils.c -AC_SEARCH_LIBS(gethostbyname_r, [socket nsl]) - -AC_MSG_CHECKING(for gethostbyname_r with 6 arguments) -AC_LINK_IFELSE( - [AC_LANG_PROGRAM([#include <stdlib.h> - #include <netdb.h>], - [struct hostent *he = gethostbyname_r((const char *)NULL, (struct hostent *)NULL, (char *)NULL, (int)0, (struct hostent **)NULL, (int *)NULL);])], - AC_MSG_RESULT(yes) - AC_DEFINE([HAVE_GETHOSTBYNAME_R_6], 1, [Define to 1 if your system has gethostbyname_r with 6 arguments.]), - AC_MSG_RESULT(no) +# NetBSD libc ships with an internal-only incompatible symbol gethostbyname_r +AC_CHECK_DECLS([gethostbyname_r], + [have_gethostbyname_r_public_declaration=yes], + [have_gethostbyname_r_public_declaration=no], + [#include <stdlib.h> + #include <netdb.h>] ) -AC_MSG_CHECKING(for gethostbyname_r with 5 arguments) -AC_LINK_IFELSE( - [AC_LANG_PROGRAM([#include <stdlib.h> - #include <netdb.h>], - [struct hostent *he = gethostbyname_r((const char *)NULL, (struct hostent *)NULL, (char *)NULL, (int)0, (int *)NULL);])], - AC_MSG_RESULT(yes) - AC_DEFINE([HAVE_GETHOSTBYNAME_R_5], 1, [Define to 1 if your system has gethostbyname_r with 5 arguments.]), - AC_MSG_RESULT(no) -) +if test "x$have_gethostbyname_r_public_declaration" = "xyes"; then + # some systems already have gethostbyname_r so we don't need to build ours in main/utils.c + AC_SEARCH_LIBS(gethostbyname_r, [socket nsl]) + + AC_MSG_CHECKING(for gethostbyname_r with 6 arguments) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([#include <stdlib.h> + #include <netdb.h>], + [struct hostent *he = gethostbyname_r((const char *)NULL, (struct hostent *)NULL, (char *)NULL, (int)0, (struct hostent **)NULL, (int *)NULL);])], + AC_MSG_RESULT(yes) + AC_DEFINE([HAVE_GETHOSTBYNAME_R_6], 1, [Define to 1 if your system has gethostbyname_r with 6 arguments.]), + AC_MSG_RESULT(no) + ) + + AC_MSG_CHECKING(for gethostbyname_r with 5 arguments) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([#include <stdlib.h> + #include <netdb.h>], + [struct hostent *he = gethostbyname_r((const char *)NULL, (struct hostent *)NULL, (char *)NULL, (int)0, (int *)NULL);])], + AC_MSG_RESULT(yes) + AC_DEFINE([HAVE_GETHOSTBYNAME_R_5], 1, [Define to 1 if your system has gethostbyname_r with 5 arguments.]), + AC_MSG_RESULT(no) + ) +fi AC_CHECK_HEADER([byteswap.h], [AC_DEFINE_UNQUOTED([HAVE_BYTESWAP_H], 1, [Define to 1 if byteswap.h macros are available.])])