diff --git a/configure b/configure index 1ae425ebfbf48e6c0d10f5527668ae4c4b6fdd3a..fd23419fe4fccd7a4e5b863c33517b472d2efe5c 100755 --- a/configure +++ b/configure @@ -14600,26 +14600,66 @@ done # System's version of getaddrinfo(), if any, may be used only if we found # a definition for struct addrinfo; see notes in src/include/getaddrinfo.h. -# (Note: the AC_TRY_LINK probe fails on Windows, where the available +# (Note: the AC_REPLACE_FUNCS probe fails on Windows, where the available # versions of getaddrinfo don't follow normal C call protocol. This is OK # because we want to use our own getaddrinfo.c on Windows anyway.) if test x"$ac_cv_type_struct_addrinfo" = xyes ; then - echo "$as_me:$LINENO: checking for getaddrinfo" >&5 -echo $ECHO_N "checking for getaddrinfo... $ECHO_C" >&6 + +for ac_func in getaddrinfo +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $ac_func innocuous_$ac_func -#include <sys/socket.h> -#include <netdb.h> +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif int main () { -return getaddrinfo("", "", NULL, NULL) ? 0 : 1; +return f != $ac_func; ; return 0; } @@ -14646,30 +14686,36 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_GETADDRINFO 1 -_ACEOF - - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - case $LIBOBJS in - "getaddrinfo.$ac_objext" | \ - *" getaddrinfo.$ac_objext" | \ - "getaddrinfo.$ac_objext "* | \ - *" getaddrinfo.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS getaddrinfo.$ac_objext" ;; -esac - +eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + case $LIBOBJS in + "$ac_func.$ac_objext" | \ + *" $ac_func.$ac_objext" | \ + "$ac_func.$ac_objext "* | \ + *" $ac_func.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;; +esac + +fi +done + + else case $LIBOBJS in "getaddrinfo.$ac_objext" | \ diff --git a/configure.in b/configure.in index d4a11f2ba0ef12c27b4941b449ff0400182dec7a..0b52f67c6beafeb0dfe5166ddf96865ed5da7f3f 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $PostgreSQL: pgsql/configure.in,v 1.455 2006/03/06 17:41:43 momjian Exp $ +dnl $PostgreSQL: pgsql/configure.in,v 1.456 2006/04/07 17:50:03 adunstan Exp $ dnl dnl Developers, please strive to achieve this order: dnl @@ -940,21 +940,11 @@ AC_REPLACE_FUNCS([crypt fseeko getopt getrusage inet_aton random rint srandom st # System's version of getaddrinfo(), if any, may be used only if we found # a definition for struct addrinfo; see notes in src/include/getaddrinfo.h. -# (Note: the AC_TRY_LINK probe fails on Windows, where the available +# (Note: the AC_REPLACE_FUNCS probe fails on Windows, where the available # versions of getaddrinfo don't follow normal C call protocol. This is OK # because we want to use our own getaddrinfo.c on Windows anyway.) if test x"$ac_cv_type_struct_addrinfo" = xyes ; then - dnl Cannot use AC_CHECK_FUNC because getaddrinfo may be a macro - AC_MSG_CHECKING(for getaddrinfo) - AC_TRY_LINK([ -#include <sys/socket.h> -#include <netdb.h> -], - [return getaddrinfo("", "", NULL, NULL) ? 0 : 1;], - [AC_DEFINE(HAVE_GETADDRINFO, 1, [Define to 1 if you have getaddrinfo().]) - AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no) - AC_LIBOBJ(getaddrinfo)]) + AC_REPLACE_FUNCS([getaddrinfo]) else AC_LIBOBJ(getaddrinfo) fi