public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* Re: Updated: gcc-5.2.0-1 (Test x86/x86_64)
       [not found] <560BC46D.3060500@gmail.com>
@ 2015-09-30 16:06 ` David Stacey
  2015-09-30 22:34   ` JonY
  0 siblings, 1 reply; 9+ messages in thread
From: David Stacey @ 2015-09-30 16:06 UTC (permalink / raw)
  To: cygwin

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.

Excellent - looking forward to trying this.

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

Dave.

[1] - http://developerblog.redhat.com/2015/02/05/gcc5-and-the-c11-abi/


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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Updated: gcc-5.2.0-1 (Test x86/x86_64)
  2015-09-30 16:06 ` Updated: gcc-5.2.0-1 (Test x86/x86_64) David Stacey
@ 2015-09-30 22:34   ` JonY
  2015-09-30 23:36     ` David Stacey
  0 siblings, 1 reply; 9+ messages in thread
From: JonY @ 2015-09-30 22:34 UTC (permalink / raw)
  To: cygwin

[-- Attachment #1: Type: text/plain, Size: 651 bytes --]

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.
> 
> Excellent - looking forward to trying this.
> 
> 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'?
> 
> Dave.
> 
> [1] - http://developerblog.redhat.com/2015/02/05/gcc5-and-the-c11-abi/
> 

Hi,

As far as I know, every gcc release will break C++ ABI, so it would mean
rebuilding everything C++.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Updated: gcc-5.2.0-1 (Test x86/x86_64)
  2015-09-30 22:34   ` JonY
@ 2015-09-30 23:36     ` David Stacey
  2015-10-01 13:04       ` cyg Simple
  0 siblings, 1 reply; 9+ messages in thread
From: David Stacey @ 2015-09-30 23:36 UTC (permalink / raw)
  To: cygwin

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.

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Updated: gcc-5.2.0-1 (Test x86/x86_64)
  2015-09-30 23:36     ` David Stacey
@ 2015-10-01 13:04       ` cyg Simple
  2015-10-06 16:26         ` Christian Franke
  0 siblings, 1 reply; 9+ messages in thread
From: cyg Simple @ 2015-10-01 13:04 UTC (permalink / raw)
  To: cygwin

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).  It is the nature created by technical
reason.  Not to mention that the first paragraph of the release states
that there is an ABI break.  And then there is this paragraph: "So the
plan for this ABI change has been to leave the soname (and the existing
binary interface) alone, and express the new ABI using different mangled
names."

-- 
cyg Simple

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Updated: gcc-5.2.0-1 (Test x86/x86_64)
  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:20           ` David Stacey
  0 siblings, 2 replies; 9+ messages in thread
From: Christian Franke @ 2015-10-06 16:26 UTC (permalink / raw)
  To: cygwin

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Updated: gcc-5.2.0-1 (Test x86/x86_64)
  2015-10-06 16:26         ` Christian Franke
@ 2015-10-06 17:51           ` Ken Brown
  2015-10-06 22:12             ` David Stacey
  2015-10-06 22:20           ` David Stacey
  1 sibling, 1 reply; 9+ messages in thread
From: Ken Brown @ 2015-10-06 17:51 UTC (permalink / raw)
  To: cygwin

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?

Ken


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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Updated: gcc-5.2.0-1 (Test x86/x86_64)
  2015-10-06 17:51           ` Ken Brown
@ 2015-10-06 22:12             ` David Stacey
  2015-10-07  7:45               ` Csaba Raduly
  0 siblings, 1 reply; 9+ messages in thread
From: David Stacey @ 2015-10-06 22:12 UTC (permalink / raw)
  To: cygwin

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Updated: gcc-5.2.0-1 (Test x86/x86_64)
  2015-10-06 16:26         ` Christian Franke
  2015-10-06 17:51           ` Ken Brown
@ 2015-10-06 22:20           ` David Stacey
  1 sibling, 0 replies; 9+ messages in thread
From: David Stacey @ 2015-10-06 22:20 UTC (permalink / raw)
  To: cygwin

On 06/10/15 17:26, 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.

Bumping the DLL number wouldn't necessarily fix the problem. You'd still 
run into conflicts if one executable loaded two DLLs, each linked 
against different versions of libstdc++.

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Updated: gcc-5.2.0-1 (Test x86/x86_64)
  2015-10-06 22:12             ` David Stacey
@ 2015-10-07  7:45               ` Csaba Raduly
  0 siblings, 0 replies; 9+ messages in thread
From: Csaba Raduly @ 2015-10-07  7:45 UTC (permalink / raw)
  To: cygwin list

On Wed, Oct 7, 2015 at 12:12 AM, David Stacey  wrote:
>
> On 06/10/15 18:51, Ken Brown wrote:

(snip)

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

If you use -D_GLIBCXX_USE_CXX11_ABI=0, you're stuck with the COW (the
old std::string implementation in libstdc++ which uses copy-on-write;
this is not standard-conforming anymore). std::list::size() remains
O(n) instead of the newly mandated O(1).

AFAIK, that's it.

Csaba
-- 
GCS a+ e++ d- C++ ULS$ L+$ !E- W++ P+++$ w++$ tv+ b++ DI D++ 5++
The Tao of math: The numbers you can count are not the real numbers.
Life is complex, with real and imaginary parts.
"Ok, it boots. Which means it must be bug-free and perfect. " -- Linus Torvalds
"People disagree with me. I just ignore them." -- Linus Torvalds

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-10-07  7:45 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <560BC46D.3060500@gmail.com>
2015-09-30 16:06 ` Updated: gcc-5.2.0-1 (Test x86/x86_64) 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
2015-10-07  7:45               ` Csaba Raduly
2015-10-06 22:20           ` David Stacey

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