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 DX Packages, which is subscribed to unity in Ubuntu. Matching subscriptions: dx-packages 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 -- Mailing list: https://launchpad.net/~dx-packages Post to : dx-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~dx-packages More help : https://help.launchpad.net/ListHelp