Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com
Date: Mon, 25 Oct 2004 13:46:43 +0200
From: "Gerrit P. Haase" <freeweb@nyckelpiga.de>
Reply-To: "Gerrit P. Haase" <freeweb@nyckelpiga.de>
Organization: Esse keine toten Tiere
Message-ID: <93-1494062258.20041025134643@familiehaase.de>
To: cygwin@cygwin.com
CC: autoconf@gnu.org
Subject: Re: [bugreport] resolv.h test fails (was: Re: minires-devel-0.97-1: resolv.h fails)
In-Reply-To: <417B707A.5050008@familiehaase.de>
References: <41731C28.8060109@x-ray.at> <41731C28.8060109@x-ray.at> <3.0.5.32.20041023210329.0081f140@incoming.verizon.net> <417B707A.5050008@familiehaase.de>
MIME-Version: 1.0
Content-type: text/plain; charset=us-ascii
Content-transfer-encoding: 7bit

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/

