[bugreport] resolv.h test fails (was: Re: minires-devel-0.97-1: resolv.h fails)
Gerrit P. Haase
freeweb@nyckelpiga.de
Mon Oct 25 12:17:00 GMT 2004
Gerrit wrote:
> Pierre A. Humblet wrote:
>> At 01:03 PM 10/18/2004 +0200, Corinna Vinschen wrote:
>>
>>>On Oct 18 03:28, Reini Urban wrote:
>>>
>>>>minires-devel-0.97-1:
>>>> #include <resolv.h> fails suddenly.
>>>>
>>>>Apparently /usr/include/resolv.h misses the definition for
>>>>sockaddr_in, which is defined in <cygwin/in.h>
>>>>
>>>>Have no clue why it suddenly fails. Anyone else?
>>>>These headers didn't change for years...
>>>>
>>>>Which file is supposed to include cygwin/in.h? I found nothing.
>>>
>>>netinet/in.h
>>
>>
>> Its an upstream issue. According to the resolver man page,
>> netinet/in.h should be included before resolv.h.
>>
>> For example
>> <http://www.mcsr.olemiss.edu/cgi-bin/man-cgi?resolver+3>
>> SYNOPSIS
>> #include <sys/types.h>
>> #include <netinet/in.h>
>> #include <arpa/nameser.h>
>> #include <resolv.h>
>>
> I think this is correct. What is buggy is the autoconf test which is
> just including resolv.h and not netinet/in.h to compile the test exe.
This applies to the default test when calling
AC_CHECK_HEADERS([resolv.h])
Workaround is to use s.th. like this in configure.ac:
AC_CHECK_HEADERS([arpa/nameser.h netinet/in.h sys/socket.h sys/types.h])
AC_CHECK_HEADERS([resolv.h], [], [],
[[#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h> /* inet_ functions / structs */
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h> /* DNS HEADER struct */
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h> /* DNS HEADER struct */
#endif
]])
Anyway, there should be a macro which provides this functionity.
--
=^..^= http://nyckelpiga.de/donate.html
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
More information about the Cygwin
mailing list