[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

C++ ABI change -- freezing unstable for new C++ library packages


Hi all,

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, we

- - 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
  such uploads.

- - 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!


Version: 2.6.3i
Charset: noconv
Comment: Processed by Mailcrypt 3.5.8, an Emacs/PGP interface


Reply to: