Обсуждение: Re: [GENERAL] [PATCH] Better way to check for getaddrinfo function.

Поиск
Список
Период
Сортировка

Re: [GENERAL] [PATCH] Better way to check for getaddrinfo function.

От
"R, Rajesh (STSD)"
Дата:

Its not a macro.
I meant that the code generated by AC_REPLACE_FUNCS([getaddrinfo]) by configure.in for "configure"
does not have "#include <netdb.h>". Hence function is not detected(unresolved getaddrinfo).
Hence  I thought AC_TRY_LINK could give test program instead of AC_REPLACE_FUNCS taking one.


$ 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])


Regards,  
Rajesh R
--
This space intentionally left non-blank.

-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: Tuesday, January 17, 2006 8:34 PM
To: R, Rajesh (STSD)
Cc: pgsql-hackers@postgresql.org
Subject: Re: [HACKERS] [GENERAL] [PATCH] Better way to check for getaddrinfo function.

"R, Rajesh (STSD)" <rajesh.r2@hp.com> writes:
> But the bottomline is the default test does not include <netdb.h> in
> the test code.

That's odd.  Is getaddrinfo a macro on Tru64?  If so, the appropriate patch would probably make the test look more like the tests for finite() and friends:

dnl Cannot use AC_CHECK_FUNC because finite may be a macro AC_MSG_CHECKING(for finite) AC_TRY_LINK([ #include <math.h> double glob_double; ],
            [return finite(glob_double) ? 0 : 1;],
            [AC_DEFINE(HAVE_FINITE, 1, [Define to 1 if you have finite().]) AC_MSG_RESULT(yes)],
            [AC_MSG_RESULT(no)])

                        regards, tom lane

Re: [GENERAL] [PATCH] Better way to check for getaddrinfo function.

От
Martijn van Oosterhout
Дата:
On Tue, Jan 24, 2006 at 02:33:13PM +0530, R, Rajesh (STSD) wrote:
> Its not a macro.
> I meant that the code generated by AC_REPLACE_FUNCS([getaddrinfo]) by
> configure.in for "configure"
> does not have "#include <netdb.h>". Hence function is not
> detected(unresolved getaddrinfo).
> Hence  I thought AC_TRY_LINK could give test program instead of
> AC_REPLACE_FUNCS taking one.

But if it isn't a macro, why do you need the header file? In C it's
perfectly legal to declare the symbol yourself and try to link and it
should work *unless* it's normally a macro.

We're still missing some necessary understanding here...

Have a nice day,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for someone
> else to do the other 95% so you can sue them.

Вложения