Обсуждение: [PATCH] Better way to check for getaddrinfo function.
Just thought that the following patch might improve checking for getaddrinfo function (in configure.in)
I was forced to write 'coz getaddrinfo went unnoticed in Tru64 Unix.
(displaying attached patch)
$ diff -r configure.in configure.in.1
920c920,944
< AC_REPLACE_FUNCS([getaddrinfo])
---
> AC_CACHE_CHECK([for getaddrinfo], ac_cv_func_getaddrinfo,
> [AC_TRY_LINK([#include <netdb.h>],
> [struct addrinfo *g,h;g=&h;getaddrinfo("","",g,&g);],
> AC_TRY_RUN([
> #include <assert.h>
> #include <netdb.h>
> #include <sys/types.h>
> #ifndef AF_INET
> # include <sys/socket.h>
> #endif
> #ifdef __cplusplus
> extern "C"
> #endif
> char (*f) ();
> int main(void) {
>
> f = getaddrinfo;
>
> return 0;
> }
> ],ac_cv_func_getaddrinfo=yes, ac_cv_func_getaddrinfo=no),
> ac_cv_func_getaddrinfo=no)])
> if test "$ac_cv_func_getaddrinfo" = yes; then
> AC_DEFINE(HAVE_GETADDRINFO,1,[Define if you have the getaddrinfo function])
> fi
Rajesh R
--
This space intentionally left non-blank.
<<configure-in.patch>>
Вложения
"R, Rajesh (STSD)" <rajesh.r2@hp.com> writes: > Just thought that the following patch might improve checking for > getaddrinfo function (in configure.in) Since AC_TRY_RUN tests cannot work in cross-compilation scenarios, you need an *extremely* good reason to put one in. "I thought this might improve things" doesn't qualify. Exactly what problem are you trying to solve and why is a run-time test necessary? Why doesn't the existing coding work for you? regards, tom lane
That was very much situation specific.
But the bottomline is the default test does not include <netdb.h> in the test code.
So, pg uses getaddrinfo.c.And the getaddrinfo.c does not work for me.
Ipv6 client authenciation fails.
I have modified the patch.
$ diff -r configure.in configure.in.new
918a919
> AC_MSG_CHECKING([for getaddrinfo])
920c921,926
< AC_REPLACE_FUNCS([getaddrinfo])
---
> AC_TRY_LINK([#include <netdb.h> #include <assert.h>],
> [char (*f)();f=getaddrinfo;],
> ac_cv_func_getaddrinfo=yes, ac_cv_func_getaddrinfo=no)
> if test x"$ac_cv_func_getaddrinfo" = xyes; then
> AC_DEFINE(HAVE_GETADDRINFO,1,[Define if you have the getaddrinfo function])
> fi
923a930
> AC_MSG_RESULT([$ac_cv_func_getaddrinfo])
Rajesh R
--
This space intentionally left non-blank.
-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: Monday, January 16, 2006 11:28 PM
To: R, Rajesh (STSD)
Cc: pgsql-hackers@postgresql.org; pgsql-general@postgresql.org
Subject: Re: [GENERAL] [PATCH] Better way to check for getaddrinfo function.
"R, Rajesh (STSD)" <rajesh.r2@hp.com> writes:
> Just thought that the following patch might improve checking for
> getaddrinfo function (in configure.in)
Since AC_TRY_RUN tests cannot work in cross-compilation scenarios, you need an *extremely* good reason to put one in. "I thought this might improve things" doesn't qualify. Exactly what problem are you trying to solve and why is a run-time test necessary? Why doesn't the existing coding work for you?
regards, tom lane <<configure-in.patch>>
Вложения
Where are we on this? Rajesh, I think we are waiting for more information from you. --------------------------------------------------------------------------- R, Rajesh (STSD) wrote: > > That was very much situation specific. > But the bottomline is the default test does not include <netdb.h> in the > test code. > So, pg uses getaddrinfo.c.And the getaddrinfo.c does not work for me. > Ipv6 client authenciation fails. > > I have modified the patch. > > $ diff -r configure.in configure.in.new > 918a919 > > AC_MSG_CHECKING([for getaddrinfo]) > 920c921,926 > < AC_REPLACE_FUNCS([getaddrinfo]) > --- > > AC_TRY_LINK([#include <netdb.h> #include <assert.h>], > > [char (*f)();f=getaddrinfo;], > > ac_cv_func_getaddrinfo=yes, ac_cv_func_getaddrinfo=no) > > if test x"$ac_cv_func_getaddrinfo" = xyes; then > > AC_DEFINE(HAVE_GETADDRINFO,1,[Define if you have the getaddrinfo > function]) > > fi > 923a930 > > AC_MSG_RESULT([$ac_cv_func_getaddrinfo]) > > > Rajesh R > -- > This space intentionally left non-blank. > > -----Original Message----- > From: Tom Lane [mailto:tgl@sss.pgh.pa.us] > Sent: Monday, January 16, 2006 11:28 PM > To: R, Rajesh (STSD) > Cc: pgsql-hackers@postgresql.org; pgsql-general@postgresql.org > Subject: Re: [GENERAL] [PATCH] Better way to check for getaddrinfo > function. > > "R, Rajesh (STSD)" <rajesh.r2@hp.com> writes: > > Just thought that the following patch might improve checking for > > getaddrinfo function (in configure.in) > > Since AC_TRY_RUN tests cannot work in cross-compilation scenarios, you > need an *extremely* good reason to put one in. "I thought this might > improve things" doesn't qualify. Exactly what problem are you trying to > solve and why is a run-time test necessary? Why doesn't the existing > coding work for you? > > regards, tom lane <<configure-in.patch>> Content-Description: configure-in.patch [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073