Summary

We need to choose the version of each of the major tools needed for building Maverick on ARM.

Release Note

This section should include a paragraph describing the end-user impact of this change. It is meant to be included in the release notes of the first release in which it is implemented. (Not all of these will actually be included in the release notes, at the release manager's discretion; but writing them is a useful exercise.)

It is mandatory.

Rationale

Having best possible toolchain for ARM Cortex-A8/A9 targets.

User stories

There have been many improvements to the ARM tools in the last few months, so although, for example, GCC 4.4 is now quite stable, it is lacking a number of new and important features (tuning for Cortex-A9 Hard-float ABI etc). Switching to GCC 4.5 would look like a useful step forward, but this is still an early release. Are we happy with the risk that might imply? or should we be conservative?

Other tools we should consider during this session are GDB, binutils and eglibc.

Assumptions

Design

You can have subsections that better describe specific parts of the issue.

Implementation

We have few options now.

  1. stay with upstream gcc 4.4
  2. migrate to upstream gcc 4.5
    • 4.5 has some C++ changes that may cause build failures according to doko
    • 4.5.1 is not out until June, too late to switch the default toolchain for maverick
    • 4.5 offers better link-time optimization
      • this may not require shipping it as the default
      • not ready for prime time yet and won't be fixed until 4.6, per Mark
      • Brings around a 10% performance increase (in general) at the moment. Could bring more in the future.
  3. apply backports from CodeSourcery tools

    • CS releases are based on 4.4
    • Code generation is closer to 4.5, while keeping language feature set at 4.4
    • backporting, debugging already done
    • can be coupled with a gcc-4.4-pristine or gcc-4.4-fsf package in the archive to facilitate regression testing and upstreaming of bug reports
    • binutils 2.21-csl should be released on beginning of July

Code Changes

Code changes should include an overview of what needs to change, and in some cases even the specific details.

Migration

Include:

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

This need not be added or completed until the specification is nearing beta.

Unresolved issues

This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.

BoF agenda and discussion

Toolchain Selection

Discussion

Ubuntu Tool Chain History

Future Tool Chain

Options for ARM:

Action Points


CategorySpec

Specs/M/ARMToolChainSelection (last edited 2010-05-28 16:47:39 by fw-tnat)