Adjust probe for getaddrinfo to cope with macro-ized definitions, such

as Tru64's.  Per previous discussion.
This commit is contained in:
Tom Lane 2006-02-21 06:06:50 +00:00
parent 45594a6859
commit af49a1634f
3 changed files with 37 additions and 103 deletions

92
configure vendored
View File

@ -14160,66 +14160,26 @@ 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_REPLACE_FUNCS probe fails on Windows, where the available
# (Note: the AC_TRY_LINK 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
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
echo "$as_me:$LINENO: checking for getaddrinfo" >&5
echo $ECHO_N "checking for getaddrinfo... $ECHO_C" >&6
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
/* 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
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{
return f != $ac_func;
return getaddrinfo("", "", NULL, NULL) ? 0 : 1;
;
return 0;
}
@ -14246,36 +14206,30 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
eval "$as_ac_var=yes"
cat >>confdefs.h <<\_ACEOF
#define HAVE_GETADDRINFO 1
_ACEOF
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
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" ;;
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
fi
done
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
else
case $LIBOBJS in
"getaddrinfo.$ac_objext" | \

View File

@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
dnl $PostgreSQL: pgsql/configure.in,v 1.449 2006/02/15 17:23:10 tgl Exp $
dnl $PostgreSQL: pgsql/configure.in,v 1.450 2006/02/21 06:06:50 tgl Exp $
dnl
dnl Developers, please strive to achieve this order:
dnl
@ -902,11 +902,21 @@ 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_REPLACE_FUNCS probe fails on Windows, where the available
# (Note: the AC_TRY_LINK 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
AC_REPLACE_FUNCS([getaddrinfo])
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)])
else
AC_LIBOBJ(getaddrinfo)
fi

View File

@ -129,7 +129,7 @@
/* Define to 1 if your compiler understands __FUNCTION__. */
#undef HAVE_FUNCNAME__FUNCTION
/* Define to 1 if you have the `getaddrinfo' function. */
/* Define to 1 if you have getaddrinfo(). */
#undef HAVE_GETADDRINFO
/* Define to 1 if you have the `gethostbyname_r' function. */
@ -204,54 +204,24 @@
/* Define to 1 if you have the <langinfo.h> header file. */
#undef HAVE_LANGINFO_H
/* Define to 1 if you have the `BSD' library (-lBSD). */
#undef HAVE_LIBBSD
/* Define to 1 if you have the `compat' library (-lcompat). */
#undef HAVE_LIBCOMPAT
/* Define to 1 if you have the `crypto' library (-lcrypto). */
#undef HAVE_LIBCRYPTO
/* Define to 1 if you have the `eay32' library (-leay32). */
#undef HAVE_LIBEAY32
/* Define to 1 if you have the `gen' library (-lgen). */
#undef HAVE_LIBGEN
/* Define to 1 if you have the `IPC' library (-lIPC). */
#undef HAVE_LIBIPC
/* Define to 1 if you have the `lc' library (-llc). */
#undef HAVE_LIBLC
/* Define to 1 if you have the `ld' library (-lld). */
#undef HAVE_LIBLD
/* Define to 1 if you have the `nsl' library (-lnsl). */
#undef HAVE_LIBNSL
/* Define to 1 if you have the `pam' library (-lpam). */
#undef HAVE_LIBPAM
/* Define to 1 if you have the `PW' library (-lPW). */
#undef HAVE_LIBPW
/* Define if you have a function readline library */
#undef HAVE_LIBREADLINE
/* Define to 1 if you have the `resolv' library (-lresolv). */
#undef HAVE_LIBRESOLV
/* Define to 1 if you have the `ssl' library (-lssl). */
#undef HAVE_LIBSSL
/* Define to 1 if you have the `ssleay32' library (-lssleay32). */
#undef HAVE_LIBSSLEAY32
/* Define to 1 if you have the `unix' library (-lunix). */
#undef HAVE_LIBUNIX
/* Define to 1 if you have the `z' library (-lz). */
#undef HAVE_LIBZ