[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

preparing for GCC 5, especially libstdc++6



Hi,

it's time to prepare for GCC 5 as the default compiler in unstable.  Compared to
earlier version bumps, the switch to GCC 5 is a bit more complicated because
libstdc++6 sees a few ABI incompatibilities, partially depending on the C++
standard version used for the builds.  libstdc++6 will support two ABI's, the
classic cxx98 ABI (currently in testing/unstable) and the new cxx11 ABI
(currently enabled in experimental as the default ABI).

 - the majority of packages using c++98 or earlier c++ standards
   should just continue to work.
 - In GCC 4.9 and earlier versions the libstdc++6 C++11 support was
   still marked as experimental, and upstream doesn't (and didn't in the past)
   guarantee c++11 ABI compatibility across major GCC versions.
   It worked somehow ok in the past, however it won't this time.
 - some c++98 code won't work when parts are built using GCC 4.9, and some
   parts with GCC 5 (see PR66145 upstream).

Unfortunately due to PR66145 we already have an incompatible libstdc++6 (at
least for some packages) in testing/unstable, which was only seen after the
first packages were rebuilt and issues like #784655 were reported.

My goal is to make the GCC version bump in early July, and use the time until
then to prepare libstdc++6 depending packages to get ready for GCC 5, and
avoiding version bumps for C++ libraries until this time.

Details for the whole transition are outlined in

  https://wiki.debian.org/GCC5

I'd appreciate feedback for this plan, clarify the wiki page, and would like to
post a finalized plan next week to d-d-a, and file appropriate transition bugs
next week.

Thanks, Matthias


Reply to: