Toolchain Roadmap (for the +1 release)



The toolchain should be spec'd one release in advance so the following release opens with a working and tested tool chain. This would include having a tested version by preview freeze, so we can do a test rebuild of the archive before the next release opens. I.e. have stack protection ready for 2005-04 (compiler, glibc (backports), other things ...).


  • Start a new release cycle with an already tested toolchain, only make major changes at the beginning of the release cycle.
  • Test the current release with the updated toolchain to identify toolchain bugs early in the release cycle.
  • Updates to the toolchain should be driven by other release goals, or else toolchain maintainance should be limited to maintainance and bug fixes. Release goals effecting toolchain upgrades could be stack protection support or more recent Java support.

Scope and Use Cases

The results for this specification are not intended to be part of the Dapper release, but most of it has to be done during the dapper timeframe.

This specification is directly depedant on LaMont, Adam, or Launchpad magic for doing the test rebuilds on the proposed schedule.

Implementation Plan

  • Prepare updated toolchain packages for test builds (gcc-4.1, binutils)
  • Test-Rebuild breezy/main using gcc-4.1 (mid November 2005)
  • Prepare glibc packages (January 2006):
    • Stack protection support (ssp): 2.3.x packages + backports or glibc 2.4. ssp backports need to be taken from other distros or backported from 2.4.
    • LinuxThreads is no longer supported by the primary glibc maintainers and must be dropped as soon as possible. i386, sparc64, and hppa each still provide LinuxThreads in Ubuntu. LinuxThreads on i386 and sparc64 will be dropped for Dapper+1. If hppa is ready, LinuxThreads will be dropped there too.

  • Rebuild breezy/main using gcc-4.1 and the updated glibc, ssp enabled by default (January 2006)
  • Updated packages for dapper+1 prepared for the release architectures (April 2006)

Already done:

  • Test packages for gcc-4.1 and gcc-defaults (October 2005)

Packages Affected

All packages to some degree. The C++ ABI doesn't change compared to 4.0.

Outstanding Issues

  • Rebuild breezy/main using a compiler configured for i686-linux-gnu. The i486-linux-gnu target doesn't get the same attention upstream as the i686 targets do, there are currently some issues, which are beeing worked around, but not fixed. Evaluate the i686 builds compared to the i486 builds. Support for i486 cannot be dropped yet when targeting environments which don't have the "latest" hardware, but we should ask, if it makes sense to support applications like on this kind of hardware.

ToolchainRoadmapNg (last edited 2008-08-06 16:31:38 by localhost)