ToolchainRoadmap

Differences between revisions 14 and 20 (spanning 6 versions)
Revision 14 as of 2005-04-26 02:51:15
Size: 3510
Editor: intern146
Comment:
Revision 20 as of 2005-04-29 02:04:50
Size: 4234
Editor: intern146
Comment: Clarify g++-3.4 for amd64 and GCC versions which may be dropped from hoary
Deletions are marked like this. Additions are marked like this.
Line 13: Line 13:
  * Status: BreezyGoal, UduBof, DistroSpecification, DraftSpec[[BR]]   * Status: BreezyGoal, DistroSpecification, EditedSpecification[[BR]]
Line 16: Line 16:
  * UduSessions: 1, 4, 8, etc [[BR]]   * UduSessions: 1(0) [[BR]]
Line 24: Line 24:
 * Much improved Java support.
 * Better error reporting from C and C++ frontend
 * Much improved Java support
 * Better error reporting from C and C++ front-end
Line 28: Line 28:
 * Better optimisations from C compiler  * Better optimizations from C compiler
Line 40: Line 40:
 * Details at http://www.ubuntulinux.org/wiki/BreezyToolchainTransition
Line 48: Line 50:
TODO:
 * Details at http://www.ubuntulinux.org/wiki/BreezyToolchainTransition
May TODO:
Line 51: Line 52:
 * Upload g++-3.4, building g++ on amd64, defaulting to the new C++ ABI (1002).  * Enable ppc64 glibc (ready to upload)

 * Upload g++-3.4, building g++ on amd64, defaulting to the new C++ ABI (1002). The current g++-3.4 on amd64 is built for the ABI version 102 to be compatible with g++-3.3 in hoary (libstdc++ having a changed soname).
Line 55: Line 58:
   * Upload all other packages depending on libstdc++, just recompiling, and/or applying oustanding bug reports including patches.    * Upload all other packages depending on libstdc++, just recompiling, and/or applying outstanding bug reports including patches.
Line 57: Line 61:
 * Enable ppc64 glibc (ready to upload)
 * Add to Breezy release notes intention to drop linuxthreads for remaining arch's.

 * Drop gcc-2.95 (also means dropping chill)

Post-May TODO:
Line 59: Line 69:
 * 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.)

 * Look at tweaking gcc wrapper to look for archaic gcc build options (-O6, etc. Possibly do this when HPPA does the Debian import?)
Line 63: Line 73:
Line 64: Line 75:
Line 65: Line 77:

 * Decide which GCC versions to keep for breezy. GCC-4.0 of course, GCC 3.4 for the default g77 and gpc compilers (which are not part of GCC 4.0). Maybe do not build the java, objc, treelang and ada compilers with from 3.4 (but they go to universe anyway). Decide on GCC 3.3. It's still used for the kernel and glibc. If we want to keep the libstdc++5 for compatibility (well, we have at least for packages like Blackdown Java), keep this version as well, maybe reduce things which are built.
Line 68: Line 82:
glibc update can cause older applications to fail to run. Failures are usually linker-time failures, so low risk of runtime dataloss. glibc update can cause older applications to fail to run. Failures are usually linker-time failures, so low risk of runtime data loss.

Toolchain Roadmap

Status

Introduction

Review toolchain status and strategy for Breezy

Rationale

  • Much improved Java support
  • Better error reporting from C and C++ front-end
  • LSB 3.0 support
  • Fortran 90 support
  • Better optimizations 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

May TODO:

  • Enable ppc64 glibc (ready to upload)
  • Upload g++-3.4, building g++ on amd64, defaulting to the new C++ ABI (1002). The current g++-3.4 on amd64 is built for the ABI version 102 to be compatible with g++-3.3 in hoary (libstdc++ having a changed soname).
  • 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 outstanding bug reports including patches.
  • Change "gcj", "gij" default to 4.0
  • Add to Breezy release notes intention to drop linuxthreads for remaining arch's.
  • Drop gcc-2.95 (also means dropping chill)

Post-May TODO:

  • Change sparc to nptl-only
  • Look at tweaking gcc wrapper to look for archaic gcc build options (-O6, etc. Possibly do this when HPPA does the Debian import?)
  • Binutils update (Sparc64 TLS support)
  • Final massive rebuild to make sure that everything is builds correctly.
  • Transition for non-release architectures (libgcc on hppa).
  • Decide which GCC versions to keep for breezy. GCC-4.0 of course, GCC 3.4 for the default g77 and gpc compilers (which are not part of GCC 4.0). Maybe do not build the java, objc, treelang and ada compilers with from 3.4 (but they go to universe anyway). Decide on GCC 3.3. It's still used for the kernel and glibc. If we want to keep the libstdc++5 for compatibility (well, we have at least for packages like Blackdown Java), keep this version as well, maybe reduce things which are built.

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 data loss.

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

ToolchainRoadmap (last edited 2008-08-06 16:34:44 by localhost)