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