C++ ABI change -- freezing unstable for new C++ library packages
-----BEGIN PGP SIGNED MESSAGE-----
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.
- - freeze unstable for uploads of C++ 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.
The freeze is technically enforced by the FTP team by rejecting any
- - C++ related uploads to unstable are strongly discouraged in order to
not make this transtition take longer than strictly needed. For
example don't update KDE to 3.4 for the old C++ ABI.
Details of the planned C++ ABI change can be found at
The time frame of the C++ ABI change 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, g++-4.0), the new binutils in experimental (2.16),
and the new glibc in experimental (2.3.5). The ABI change will not
start, before gcc-3.4.4, gcc-4.0.1 and binutils 2.16.1 are released
and available on all architectures.
What you can do now:
- - All: check the bug tracking system for GCC 3.4/4.0 related patches.
A kind soul (Andreas Jochens) did already submit hundreds of patches
to various packages. Remember that FTBFS on amd64 will become bug
reports with an RC severity. Make a test build of your package. Try
to test it on an 64bit architecture (amd64, ia64).
- - C++ library maintainers: Same as all. I'll submit patch proposals for
library renamings, which already exist, to the Debian BTS. Remember
the first version of the library that is compiled for the new ABI.
We will collect these versions, so that build dependencies can be
- - C++ program maintainers: Same as all. Once packages with the new C++
ABI are uploaded, you must not upload your package until all C++
build dependencies are updated for the new ABI.
We will send an update with a detailed schedule, when the toolchain is
ready for the change.
Have fun, share the pain!
-----BEGIN PGP SIGNATURE-----
Comment: Processed by Mailcrypt 3.5.8, an Emacs/PGP interface
-----END PGP SIGNATURE-----