Mir

Comment 5 for bug 1329089

Revision history for this message
Matthias Klose (doko) wrote : Re: g++-4.9 binary incompatibilties with libraries built with g++-4.8

The C++11 support in 4.9 (which is still marked as experimental) did see some incompatible changes with the unordered associative containers in <unordered_map> and <unordered_set. There are no other ABI changes in c++11 mode, maybe except for users of the <future> header. It is not advised to mix c++11 code built from different major compiler versions as long as the c++11 mode is still marked as experimental.

There are a few things to do here:

 - find out which packages are affected (currently working on that)

 - make sure that all packages are built using verbose builds, or else we cannot
   scan the build logs for packages built in c++11 mode.

 - if this is code ending up in libraries, the soname of the library should be bumped where
   the upstream can do that, or the package name of the library should be changed.

 - if the code is ending up in leaf packages, just rebuild the package

 - Don't use versioned build dependencies for g++-4.x at all (preferred), or use the
   same version for all packages within a project.

Packages in main affected are:
  dbus-cpp
  libcolumbus
  firefox
  mir
  process-cpp
  libreoffice (only the clang plugin which is not built)
  qtbase-opensource-src
  unity

The ubuntu-toolchain-r/test PPA know has a gcc-defaults again defaulting to 4.9. Please make sure that you have a build dependency on g++ (>= 4:4.9.0-3ubuntu6) when building with 4.9.