Summary

Maverick includes gcc-4.4 and gcc-4.5 packages based on the Linaro GCC branches. Natty will open with gcc-4.5 as default, and may include gcc-4.6 but only as gcc-snapshot package.

Will this 4.6 package need to be built from Linaro GCC for compatibility? Do we want to use Linaro GCC for 4.6 even if not required? What is the timeline for delivering a Linaro GCC 4.6 release for inclusion in Natty?

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 without breaking other architectures.

Assumptions

  • same upstream versions of toolchain components as default on arm vs. x86 to avoid putting all the porting burden on the ARM community
  • same upstream versions of toolchain components as default in Ubuntu vs. Debian for a similar reason, but this would be less serious than an ARM vs. x86 delta
  • gcc-4.5 packages will be available and set as default
  • gcc-4.6 packages will be available as gcc-snapshot

Design

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

Implementation

GCC 4.5 will use linaro gcc-4.5 changes in natty.

Code Changes

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

  • natty has already opened with linaro branches of -4.4 and -4.5; there is no intention to change this
  • Releases timing
    • of greater concern is how and when we integrate "point-release" updates from Linaro through the release cycle
    • upstream FSF releases expected: 4.5.2 in November, 4.5.3 in February but maybe delayed by the 4.6 release (timing flakier because development has moved on)
    • Linaro intends to continue releasing its consolidation branch monthly (second Tuesday of every month)
  • architectures support:
    • same compiler on armel and x86(-64)
    • if we don't have resources to regression-test then will switch to FSF gcc for powerpc - will keep us closer to Debian to share the load
  • committment for other frontends besides C, C++?
    • Java/Fortran/ObjC not currently being worked on and no optimization work to be done this cycle, but faults will be addressed
    • work being done to import Apple ObjC improvements into FSF trunk
    • Ada wants setzx exceptions; ARM currently only has setjmp/longjmp exceptions
      • should be tracked as a ticket/bug

Actions

  • armel rebuild of the archive with a 4.6 compiler *before 4.6.0* in the natty release cycle
    • get fixes into natty for this where possible, or for natty+1
  • review the question of Linaro 4.6 for natty+1 at the Rally in January
  • getting a rebuild of the entire archive done
    • blocks on getting more buildds
  • test-rebuilds need to be doable more frequently and with less setup delay
    • do a rebuild of the failing builds in a ppa using the FSF gcc to check which ones are regressions
    • before switching to a new gcc version
    • and towards end of cycle when things are stabilizing
  • open ticket/bug for Ada setzx exceptions support

BoF agenda and discussion

Maverick includes gcc-4.4 and gcc-4.5 packages based on the Linaro GCC branches. Natty will open with gcc-4.5 as default, and may include gcc-4.6.

  • ** No - gcc-4.6 not releasing until next year and it doesn't make sense to include it in natty **
  • will be included as gcc-snapshot, but nothing else
  • 4.6 (trunk) hasn't been buildable for about 2 months now...
  • review of maverick:
    • maverick opened without the Linaro toolchain
    • partway through the cycle, Linaro gcc was added which brought in not only Linaro changes, but also all the backported CodeSourcery changes. This introduced some problems which are now believed to be addressed as of the 10.10 release.

  • 4.6 compiler: will it be only performance fixes?
    • Linaro has not committed to avoiding all consumer-affecting behavior regressions
    • but likely to make this trade-off in order to be usable by Ubuntu
    • doko requests documentation, *advertisement* of these issues
    • michaelh1: goal is to improve transparency and predictability
    • doko doesn't want to make the decision now; defer to rally in January
  • doko wants same compiler on armel and x86
  • if we don't have resources to regression-test on powerpc, do we want to use the FSF gcc on powerpc to keep closer to Debian to share the load?
  • gcj doesn't currently support Thumb2 for ARM
    • not ideal, but currently we need gcj mostly for openjdk bootstrapping
  • Ada wants setzx exceptions; ARM currently only has setjmp/longjmp exceptions
    • should be tracked as a ticket/bug
  • soyuz admins vetoed last rebuild because it would stall out the ppas!
    • maybe Julian fixed this now? The last rebuild was in August


CategorySpec

Platform/DevPlatform/Specs/LinaroToolChainSelection (last modified 2011-01-27 07:33:03)