ToolchainRoadmap
Toolchain Roadmap
Status
Created: Date(2005-04-24T00:11:33Z) by MattZimmermanBR
Priority: HighPriorityBR
People: MatthiasKloseLead, JeffBaileySecondBR
Contributors: MattZimmermanBR
Interested: JimMcQuillan BR
Status: BreezyGoal, UduBof, DistroSpecification, DraftSpecBR
Packages: BR
Depends: BR
UduSessions: 1, 4, 8, etc BR
Introduction
Review toolchain status and strategy for Breezy
Rationale
- Much improved Java support.
- Better error reporting from C and C++ frontend
- LSB 3.0 support
- Fortran 90 support
- Better optimisations from C compiler
- Faster compilation at -O0
- Better standards compliance
Scope and Use Cases
- gcc-4.0
- g++-4.0 and associated ABI transition
- glibc 2.3.5
Implementation Plan
Already done:
- Change "gcc" default to 4.0
- Change "g77" default to 3.4
- change "cpp" default to 4.0
- Upload glibc-2.3.5
- Change powerpc, ia64 to nptl-only
TODO:
Details at http://www.ubuntulinux.org/wiki/BreezyToolchainTransition
- Upload g++-3.4, building g++ on amd64, defaulting to the new C++ ABI (1002).
- Change "g++" default to 4.0
- Upload library packages, depending on libstdc++, rename library packages to deal with ABI break, as described on the Transition page.
- For KDE, only rename libqt, as all other KDE packages depend on this library.
- Upload all other packages depending on libstdc++, just recompiling, and/or applying oustanding bug reports including patches.
- Change "gcj", "gij" default to 4.0
- Enable ppc64 glibc (ready to upload)
- Change sparc to nptl-only
- Add to Breezy release notes intention to drop linuxthreads for remaining arch's.
- Drop gcc-2.95 (also means dropping chill)
- Look at tweaking gcc wrapper to look for archaic gcc build options (-O6, etc.)
- Binutils update (Sparc64 TLS support)
- Final massive rebuild to make sure that everything is builds correctly.
- Transition for non-release architectures (libgcc on hppa).
Data Preservation and Migration
glibc update can cause older applications to fail to run. Failures are usually linker-time failures, so low risk of runtime dataloss.
Packages Affected
All packages to some degree:
- Poorly written C applications that don't work with stricter parser
- Poorly written C++ applications that don't work with stricter parser
- Renaming of library packages (about 100 in main, 300 in universe)
User Interface Requirements
N/A
Outstanding Issues
Coordinating with Debian - confirm that they will follow the same library rename plan. Proposal sent to debian-release, http://lists.debian.org/debian-release/2005/04/msg00153.html
UDU BOF Agenda
- Status update (some work will be done prior to UDU)
- C++ ABI transition plan (if transitions are still pending)
- libssp and GCC 4.0 ?
UDU Pre-Work
Transition plan http://www.ubuntulinux.org/wiki/BreezyToolchainTransition
- Prepare packages of GCC-4.0 (currently in experimental), glibc (Done, uploaded)
- PowerPC64 biarch support
Import of known FTBFS GCC-4.0 reports from unstable, for universe see http://www.ubuntulinux.org/wiki/UniverseCxxTransition (Done)
- Determine order of library updates