From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 51817 invoked by alias); 6 Oct 2015 22:12:21 -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 51189 invoked by uid 89); 6 Oct 2015 22:12:20 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=2.6 required=5.0 tests=AWL,BAYES_40,FREEMAIL_FROM,KAM_COUK,RCVD_IN_JMF_BR,SPF_PASS autolearn=no version=3.3.2 X-HELO: out.ipsmtp1nec.opaltelecom.net Received: from out.ipsmtp1nec.opaltelecom.net (HELO out.ipsmtp1nec.opaltelecom.net) (62.24.202.73) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Tue, 06 Oct 2015 22:12:19 +0000 X-SMTPAUTH: drstacey@tiscali.co.uk X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2HOAQCzRhRW/yJf0lUNUYN7bsAQIYV0AwICgXkQAQEBAQEBAQODWTwBAQEBAQEjAg1eAQEBAwEjBBFAEQsYAgIFFgsCAgkDAgECAUUTCAEBiCIVqyRxlC4BAQEHAQEBAR6BIopPhRQXglKBRQWSTYM3hRiKHox4jFc4hC5wAYg8AQEB X-IPAS-Result: A2HOAQCzRhRW/yJf0lUNUYN7bsAQIYV0AwICgXkQAQEBAQEBAQODWTwBAQEBAQEjAg1eAQEBAwEjBBFAEQsYAgIFFgsCAgkDAgECAUUTCAEBiCIVqyRxlC4BAQEHAQEBAR6BIopPhRQXglKBRQWSTYM3hRiKHox4jFc4hC5wAYg8AQEB Received: from 85-210-95-34.dynamic.dsl.as9105.com (HELO [192.168.1.2]) ([85.210.95.34]) by out.ipsmtp1nec.opaltelecom.net with ESMTP; 06 Oct 2015 23:12:13 +0100 Subject: Re: Updated: gcc-5.2.0-1 (Test x86/x86_64) To: cygwin@cygwin.com References: <560BC46D.3060500@gmail.com> <560C0863.70505@tiscali.co.uk> <560C6369.7060602@gmail.com> <560C71FB.4030005@tiscali.co.uk> <560D2F6D.90608@gmail.com> <5613F632.1080205@t-online.de> <56140A2F.3000004@cornell.edu> From: David Stacey Message-ID: <56144739.7040602@tiscali.co.uk> Date: Tue, 06 Oct 2015 22:12:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <56140A2F.3000004@cornell.edu> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2015-10/txt/msg00075.txt.bz2 On 06/10/15 18:51, Ken Brown wrote: > On 10/6/2015 12:26 PM, Christian Franke wrote: >> cyg Simple wrote: >>> On 9/30/2015 7:36 PM, David Stacey wrote: >>>> On 30/09/15 23:34, JonY wrote: >>>>> On 10/1/2015 00:05, David Stacey wrote: >>>>>> On 30/09/15 12:15, JonY wrote: >>>>>>> gcc-5.2.0-1 has been uploaded for 32bit and 64bit Cygwin. >>>>>>> >>>>>>> This is the first series of the 5.x releases, and should be >>>>>>> considered >>>>>>> as experimental as such. >>>>>> Have you managed to work around the ABI change in gcc-5 [1], or will >>>>>> this require a mass rebuild at the point gcc-5 becomes 'current'? >>>>>> >>>>>> [1] >>>>>> -http://developerblog.redhat.com/2015/02/05/gcc5-and-the-c11-abi/ >>>>> As far as I know, every gcc release will break C++ ABI, so it would >>>>> mean >>>>> rebuilding everything C++. >>>> According to the Red Hat blog above, the last time g++ caused an ABI >>>> change was back in the 3.x days, so it hasn't happened for a while. Ah >>>> well, we have maintainers for most packages in Cygwin, so we'll >>>> have to >>>> co-ordinate a rebuild. >>> Regardless, JonY is correct. Every C++ release, regardless of the >>> vendor, causes an ABI break with shared libraries and the naming of the >>> object elements (mangled names). >> >> Probably not in this 4.X -> 5.X case. Otherwise the new cygstdc++-6.dll >> should IMO be renamed to -6.1, -7 or similar. >> >> A diff of exported symbols of cygstdc++-6.dll 4.9.3-1 and 5.2.0 shows >> that the new version only adds new symbols. >> >> >> Results of a quick build check with smartmontools package: >> >> - Existing package which was built with g++ 4.9.2 runs with 5.2.0 >> cygstdc++-6.dll and cyggcc_s-1.dll. >> >> - A rebuild with g++ 5.2.0 does not run with 4.9.3 cygstdc++-6.dll due >> to missing symbols. This is as expected because 5.X adds a new C++11 >> conforming std::string which is used by default >> (https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html). >> >> - A rebuild with g++ 5.2.0 and CXXFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0 runs >> with old 4.9.3 cygstdc++-6.dll and cyggcc_s.dll. >> >> So there is probably no need to rebuild existing C++ packages. > > What about the following scenario: Package P links against library L. > Library L is rebuilt to use the new ABI. Isn't it possible that > package P will then have to be rebuilt as well? My understanding is that if 'L' is built with -D_GLIBCXX_USE_CXX11_ABI=0 then P wouldn't need to be rebuilt (I haven't tested that, though). However, this compiler switch loses some C++11 features of the STL, so it isn't a magic cure. Dave. -- 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