libstdc++6 has a binary incompatibility

Bug #184141 reported by Jeff Licquia
8
Affects Status Importance Assigned to Milestone
gcc-4.2 (Ubuntu)
Fix Released
High
Matthias Klose
Gutsy
Won't Fix
High
Matthias Klose

Bug Description

Binary package hint: libstdc++6

LSB testing in preparation for LSB 3.2 has uncovered a binary incompatibility in libstdc++6 for gutsy.

Basically, there was a period of time, between the end of June and the beginning of October, when several members of the C++ typeinfo class were swapped around in the vtable. The libstdc++6 from gutsy appears to have been built from source derived from upstream during that time.

More information can be found in the LSB bug:

http://bugs.linuxbase.org/show_bug.cgi?id=1890

I believe that code using typeinfo built on gutsy will have problems running on other system, and apps built for other distros (including previous versions of Ubuntu) or for the LSB will have problems running on gutsy. Thus, even though LSB compliance is not necessarily a goal for gutsy, it might be in Ubuntu's best interests to fix it anyway.

Revision history for this message
Matthias Klose (doko) wrote :

fix for hardy: rebuild all effected packages. Will search for the needed time frame.

Changed in gcc-4.2:
assignee: nobody → doko
importance: Undecided → High
milestone: none → ubuntu-8.04-beta
status: New → Confirmed
Revision history for this message
Colin Watson (cjwatson) wrote :

Moving to 8.04 final.

Matthias, any progress on the search? Do you need help from Soyuz developers?

Changed in gcc-4.2:
milestone: ubuntu-8.04-beta → ubuntu-8.04
Matthias Klose (doko)
Changed in gcc-4.2:
assignee: nobody → doko
importance: Undecided → High
status: New → Confirmed
Revision history for this message
Matthias Klose (doko) wrote :

The ABI change was made on 2007-06-26, and reverted on 2007-10-06 on the gcc-4_2-branch.
This corresponds to packages gcc-4.2 (4.2-20070627-1) and gcc-4.2 (4.2.2-3ubuntu1). timeframe 20070627 until the gutsy release. hardy did start with a fixed compiler.
The change itself is in std::type_info, which is in libsupc++ (static library), and libstdc++ (static and shared library). We need to identify the following packages:

  a) all packages in gutsy, which b-d on g++-4.2, and are built after 20070627 (these can potentionally use the static libsupc++). This list could be reduced by grepping the build logs for lsupc++ or libsuppc++.
  b) all packages in gutsy, which depend on libstdc++, and are built after 20070627. Of these packages all packages with binaries referencing the public members of the type_info class affected by the ABI change (__is_pointer_p, __is_function_p, __do_catch, __do_upcast).

For the hardy rebuild, remove from a) and b) all sources which were already built in the hardy release cycle.

Revision history for this message
Matthias Klose (doko) wrote :

fixed for hardy main; gcc-4.2 is the default now, rebuilt all packages with binaries depending on libstdc++6, which were built in the 2007 June - October timeframe.

Changed in gcc-4.2:
status: Confirmed → Fix Released
Revision history for this message
Sergio Zanchetta (primes2h) wrote :

The 18 month support period for Gutsy Gibbon 7.10 has reached its end of life -
http://www.ubuntu.com/news/ubuntu-7.10-eol . As a result, we are closing the
Gutsy task.

Changed in gcc-4.2 (Ubuntu Gutsy):
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.