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