delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2015/10/06/12:27:04

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:message-id:date:from:mime-version:to:subject
:references:in-reply-to:content-type:content-transfer-encoding;
q=dns; s=default; b=tRKL1fuaFaKqoAjwCzLZ7T9puVDAbmZSULWDbBnQOoc
NDK0JML2CE9eSQL1CfkTOlYvU9lt91SofxDCuxSCyIpBrIp1Rj/Ahw+7jBZy3tsw
oZIMuFxj3lfYyAARIenoD0z43uLSgOM+OhcxguBxUprTNTGOBEDPExMzZDbgJboY
=
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:message-id:date:from:mime-version:to:subject
:references:in-reply-to:content-type:content-transfer-encoding;
s=default; bh=UvOLRQS+88KI2JyD3imwUfolxsc=; b=aRRE3WBCzDq8w/f8A
s2IAPUazkN6PLIRE5IpLeLXVMjN+S2pAue/7wJpIQJOGUq4qsJxF84qf+WMBQXEg
RCMDtdoPgsooyAG03RGMYoxKU4Bl7l5NW3oOJp5fLQrwW0pERgajlKWQoXNTXW/A
Fv6rrpgCC23CiwKNWv2EveAeX8=
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=-1.2 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_NONE,T_RP_MATCHES_RCVD autolearn=no version=3.3.2
X-HELO: mailout03.t-online.de
Message-ID: <5613F632.1080205@t-online.de>
Date: Tue, 06 Oct 2015 18:26:26 +0200
From: Christian Franke <Christian DOT Franke AT t-online DOT de>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0 SeaMonkey/2.33.1
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: Updated: gcc-5.2.0-1 (Test x86/x86_64)
References: <560BC46D DOT 3060500 AT gmail DOT com> <560C0863 DOT 70505 AT tiscali DOT co DOT uk> <560C6369 DOT 7060602 AT gmail DOT com> <560C71FB DOT 4030005 AT tiscali DOT co DOT uk> <560D2F6D DOT 90608 AT gmail DOT com>
In-Reply-To: <560D2F6D.90608@gmail.com>
X-IsSubscribed: yes

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.


BTW: segment sizes differ considerably:

$ size */smartctl.exe
    text    data     bss     dec     hex filename
  459725    6956   66320  533001   82209 gcc-4-old-strings/smartctl.exe
  451525    7424   66260  525209   80399 gcc-5-new-strings/smartctl.exe
  517337    8912   66196  592445   90a3d gcc-5-old-strings/smartctl.exe

Christian


--
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