On 05/22/2013 02:12 PM, Zack Weinberg wrote: > On Wed, May 22, 2013 at 1:06 PM, Nick Bowler <nbowler@xxxxxxxxxxxxxxxx> wrote: >> The fundamental problem, I think, is that you really need the proper >> headers included and AC_REPLACE_FUNCS does not seem to allow you to >> specify the includes. So you probably can't use this macro at all. >> >> You can use AC_LINK_IFELSE to fully specify the test program to compile >> and link, which is probably what you'll need to do here. This may still >> be tricky to get right. Alternately, Gnulib[1] has a getaddrinfo module[2] >> which may already do everything you need (although I have not used it). > > I wrote the attached macro to solve a closely related problem (looking > for ntohl, not getaddrinfo; the way Winsock works, it's equivalent). > Perhaps it will be useful to you. > > Going forward I think AC_*_FUNC[S] really need to grow a way to > specify headers. Fake-declaring everything as "char foo();" has been > kinda silly for years now. AC_CHECK_DECL ("can I compile against this function when using the right headers") is a much better macro than AC_CHECK_FUNC ("can I link against this symbol, and cross-my-fingers that the library actually exported it by this name and not some other due to aliasing or stdcall or ..."). There are still a few corner cases where some platforms accidentally declare a function but fail to export it, so both styles of probes are still useful in practice; but generally you should try the DECL form first. Maybe this warrants a patch to the autoconf manual to point this out more emphatically; anyone want to take a stab at it? -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Autoconf mailing list Autoconf@xxxxxxx https://lists.gnu.org/mailman/listinfo/autoconf