delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2017/09/26/15:33:38

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:subject:to:references:from:message-id:date
:mime-version:in-reply-to:content-type
:content-transfer-encoding; q=dns; s=default; b=sXvG2kmuj7reGjqi
gprPNOr7sokFXTyVfERSn1MgER62aP8Kidlq3X9vyfu3doPAABdRsbjBn7JM5fHr
YJx4sUz706Ujj6DTtkQh/1iNGz8ycRJyprK3ChVaNrt56EdxI6bV9xn+BICWqVag
mGtoGcrhNIDq062lJRQ79WUH60A=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:subject:to:references:from:message-id:date
:mime-version:in-reply-to:content-type
:content-transfer-encoding; s=default; bh=fDwuO7JLLdwGnfvWp8pQWs
JQQLw=; b=LPuGL8YrVPkqHJP5rslelVK94lGgoRu7UxAD1FV6qF4ifAr9CVOD67
Vji+ImpxvalbxbAw14wX7gz9yZd9xr3N4pat3CrISSqz33zaO9owsZzL1735SSJJ
gywuyFujxKMdmvulp4qwvvtjRJErihEjKVAQCzkxUwCZKpCDIEksg=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Authentication-Results: sourceware.org; auth=none
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=-2.9 required=5.0 tests=AWL,BAYES_50,GIT_PATCH_2,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=gcc64, GCC64, gcc-6.4, GCC-6.4
X-HELO: mailout11.t-online.de
Subject: Re: GCC-6.4 sys/select.h build failures with std=c++14
To: cygwin AT cygwin DOT com
References: <CAHBhQykTn7Y2rPVtAQSaVu+1J8ytSDAAcT-Su5e_oABEVNmtrA AT mail DOT gmail DOT com> <5cacbf9c-26d0-da8b-0aa8-ad5ec50bea2d AT gmail DOT com>
From: =?UTF-8?Q?Hans-Bernhard_Br=c3=b6ker?= <HBBroeker AT t-online DOT de>
Message-ID: <14bf630c-34b2-0065-589d-66176cc9d445@t-online.de>
Date: Tue, 26 Sep 2017 21:33:11 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0
MIME-Version: 1.0
In-Reply-To: <5cacbf9c-26d0-da8b-0aa8-ad5ec50bea2d@gmail.com>
X-IsSubscribed: yes

Am 26.09.2017 um 07:32 schrieb Marco Atzeri:

> "The <sys/select.h> header shall define the fd_set type as a structure."
> 
> so if they are using it, they should have a proper include

The complete story is a bit more complicated than that, though.

The curl maintainers almost fixed this at their end, but then Cygwin 
reverted part of a change that had "suddenly" triggered their broken 
code to actually fail before they did.  Before then, Cygwin's fd_set was 
actually in <sys/types.h>, which was then #included by <sys/select.h>. 
The change was to define them it <sys/select.h> where it belongs

But then the second change was made (commit 
ee97c4b22491b205fd3b7697e03c909e02b652d3), which reintroduced

# if    __BSD_VISIBLE
#include <sys/select.h>

in <sys/types.h>.  This actually re-introduced a part of the original 
POSIX violation in Cygwin: #including <sys/types.h> will, again, drag in 
<sys/select.h> even though that was not asked for.  Apparently this 
violation is sufficiently wide-spread that there's quite some code out 
there that relies on it.  Curl is in this group.
		
All this seems to have left the Curl people under the impression that 
there was nothing wrong with their code, but that rather Cygwin was 
broken, and for a relatively short time only, too (2015-12-17 to 
2016-03-18).  The fragment in question is positively hideous:

#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \
   defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \
   defined(ANDROID) || defined(__ANDROID__) || defined(__OpenBSD__) || \
  (defined(__FreeBSD_version) && (__FreeBSD_version < 800000))
  #include <sys/select.h>
  #endif

Now people complain about autoconf being clunky, but it's easily an 
order of magnitude better than _that_ pile of nonsense --- particularly 
given the fact that they actually use autoconf to build their code. 
They just don't do so in their public, installable header file.

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019