← Back to team overview

ubuntu-sdk-bugs team mailing list archive

[Bug 1329089] 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.


** Also affects: process-cpp (Ubuntu)
   Importance: Undecided
       Status: New

** Also affects: mir (Ubuntu)
   Importance: Undecided
       Status: New

** Also affects: qtbase-opensource-src (Ubuntu)
   Importance: Undecided
       Status: New

** Also affects: unity (Ubuntu)
   Importance: Undecided
       Status: New

** Also affects: firefox (Ubuntu)
   Importance: Undecided
       Status: New

** Changed in: location-service (Ubuntu)
       Status: Confirmed => Invalid

-- 
You received this bug notification because you are a member of Ubuntu
SDK bug tracking, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1329089

Title:
  g++-4.9 binary incompatibilties with libraries built with g++-4.8

Status in “dbus-cpp” package in Ubuntu:
  Confirmed
Status in “firefox” package in Ubuntu:
  New
Status in “gcc-4.9” package in Ubuntu:
  Confirmed
Status in “gcc-defaults” package in Ubuntu:
  Fix Released
Status in “location-service” package in Ubuntu:
  Invalid
Status in “mir” package in Ubuntu:
  New
Status in “process-cpp” package in Ubuntu:
  New
Status in “qtbase-opensource-src” package in Ubuntu:
  New
Status in “unity” package in Ubuntu:
  New

Bug description:
  The location-service 0.0.3+14.10.20140512-0ubuntu1 package in utopic,
  when rebuilt against libdbus-cpp3 3.0.0+14.10.20140604-0ubuntu1 (built
  with gcc-4.8) and with current gcc-defaults (which makes g++-4.9 the
  default), fails the package build in its test suite.

   2/14 Test  #2: acceptance_tests ..................***Failed   30.54 sec
  DBus daemon: unix:abstract=/tmp/dbus-HdW1T5UHNB,guid=188551aa5d797b663dade1425398d71b
  task-0: Started with PID: 13031
  task-0: [==========] Running 2 tests from 1 test case.
  task-0: [----------] Global test environment set-up.
  task-0: [----------] 2 tests from LocationServiceStandalone
  task-0: [ RUN      ] LocationServiceStandalone.SessionsReceiveUpdatesViaDBus

  ** (dbus-test-runner:13025): WARNING **: Timing out at maximum wait of
  30 seconds.

  (dbus-test-runner:13025): libdbustest-CRITICAL **: dbus_test_service_run: assertion 'all_tasks(service, all_tasks_finished_helper)' failed
  task-0: Shutting down
  DBus daemon: Shutdown

  This test suite does *not* fail if either dbus-cpp is rebuilt with
  g++-4.9, or if location-service is built with g++-4.8.

  This implies a binary compatibility problem for C++ libraries in g++
  4.9, which is critical to resolve.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dbus-cpp/+bug/1329089/+subscriptions