C++ ABI change for etch -- freeze unstable for all C++ libs with changed or new sonames
For etch we will update the toolchain (glibc, binutils,
linux-kernel-headers, gcc) again. Some updates look easy, other will
have a bigger impact on packages. One aspect of the toolchain update
is the change of the C++ ABI from version 1 (102) to version 2 (1002)
of the GNU C++ compiler. Looks painful, but doable, as some of you
may still remember the toolchain update in the early sarge stages. In
short, we will have to rename all packages containing shared libraries
written in C++. After these library packages have been renamed, all
libraries and applications depending on the changed library names have
to be uploaded again. To minimize the uploads and and lower the load
of the buildds, C++ code should be uploaded, after the C++ compiler
(c++, g++) points to a compiler version providing the new C++ ABI.
Therefore the proposal to
- freeze unstable for uploads of library packages with new ABI
versions. If a new soname is introduced now, it has to be changed a
few weeks later again. Packages depending on these libraries
would need to be uploaded twice as well.
- discourage C++ related uploads to unstable until after the planned
C++ ABI change.
Details of the planned C++ ABI change can be found at
The time frame of the C++ ABI changed is not yet fixed. We will
certainly need some time to get the toolchain in shape to start the
transition. In the meantime you can check the new compilers in
unstable (g++-3.4) and in experimental (g++-4.0), the new binutils in
experimental (2.16), and the new glibc in experimental (2.3.5).