From: David Stacey <drstacey@tiscali.co.uk>
To: cygwin@cygwin.com
Subject: Re: Updated: gcc-5.2.0-1 (Test x86/x86_64)
Date: Tue, 06 Oct 2015 22:12:00 -0000 [thread overview]
Message-ID: <56144739.7040602@tiscali.co.uk> (raw)
In-Reply-To: <56140A2F.3000004@cornell.edu>
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
next prev parent reply other threads:[~2015-10-06 22:12 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <560BC46D.3060500@gmail.com>
2015-09-30 16:06 ` David Stacey
2015-09-30 22:34 ` JonY
2015-09-30 23:36 ` David Stacey
2015-10-01 13:04 ` cyg Simple
2015-10-06 16:26 ` Christian Franke
2015-10-06 17:51 ` Ken Brown
2015-10-06 22:12 ` David Stacey [this message]
2015-10-07 7:45 ` Csaba Raduly
2015-10-06 22:20 ` David Stacey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56144739.7040602@tiscali.co.uk \
--to=drstacey@tiscali.co.uk \
--cc=cygwin@cygwin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).