From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 94263 invoked by alias); 26 Sep 2017 19:33:24 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 94248 invoked by uid 89); 26 Sep 2017 19:33:23 -0000 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 Received: from mailout11.t-online.de (HELO mailout11.t-online.de) (194.25.134.85) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 26 Sep 2017 19:33:21 +0000 Received: from fwd35.aul.t-online.de (fwd35.aul.t-online.de [172.20.27.145]) by mailout11.t-online.de (Postfix) with SMTP id ECDD04271688 for ; Tue, 26 Sep 2017 21:33:18 +0200 (CEST) Received: from [192.168.2.28] (EBWge+ZBwh-w4qZMo3ZGpVwsUkhIsbzEgRuZCBCsuCNu8BgRBAA6VNymGqtzJcOZbB@[91.59.12.92]) by fwd35.t-online.de with (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384 encrypted) esmtp id 1dwvba-4Rl1oe0; Tue, 26 Sep 2017 21:33:18 +0200 Subject: Re: GCC-6.4 sys/select.h build failures with std=c++14 To: cygwin@cygwin.com References: <5cacbf9c-26d0-da8b-0aa8-ad5ec50bea2d@gmail.com> From: =?UTF-8?Q?Hans-Bernhard_Br=c3=b6ker?= Message-ID: <14bf630c-34b2-0065-589d-66176cc9d445@t-online.de> Date: Tue, 26 Sep 2017 19:33:00 -0000 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> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2017-09/txt/msg00264.txt.bz2 Am 26.09.2017 um 07:32 schrieb Marco Atzeri: > "The 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 , which was then #included by . The change was to define them it where it belongs But then the second change was made (commit ee97c4b22491b205fd3b7697e03c909e02b652d3), which reintroduced # if __BSD_VISIBLE #include in . This actually re-introduced a part of the original POSIX violation in Cygwin: #including will, again, drag in 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 #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