Detail and begin the arm64/aarch64 port in Ubuntu

Registered by Adam Conrad on 2012-04-16

We need to start thinking about (and working on) the aarch64/arm64 port in Debian and Ubuntu, this spec should ultimately list what we know, what we need to know, what we need to be working on, how, and when.

Blueprint information

Status:
Started
Approver:
Steve Langasek
Priority:
High
Drafter:
Adam Conrad
Direction:
Approved
Assignee:
Adam Conrad
Definition:
Approved
Series goal:
Accepted for raring
Implementation:
Good progress
Milestone target:
None
Started by
Adam Conrad on 2012-05-18

Whiteboard

Topics:
 - Compiler changes
 - Target compiler version and Linaro GCC release
 - Cross build support with multi-arch
 - Arch bootstrap
 - ARM Fast Models as builders
 - Expected Qemu support

Wookey has done some work on multi-arch cross building and bootstrapping of aarch64. Results quite positive but there is still a a fair amount of breakage from failed apt-get build-dep -aaarch64, no qemu to gloss over other cross issues and apt not knowing about staged/bootstrap build resolving.

Cross buildd results for Quantal: http://people.linaro.org/~wookey/buildd/quantal/sbuild-ma/status.html

Toolchain patches for gcc-4.7 by end of month(ish), kernel patches in a similar timeframe

dpkg architecture will be "arm64", GNU triplet is aarch64-linux-gnu

Real/virtualized hardware support:
 - Qemu is going to take a while, probably in the end of the year
 - Instruction set documentation public when?
 - Real hardware is probably just next year
 - Meanwhile we could debootstrap and even run armv8 code using ARM Fast Model, which Linaro should have available soon: http://www.arm.com/products/tools/models/fast-models.php

Fast Models:
 - Linaro can probably make it available for Ubuntu/Debian developers once we get it working internally
 - That can be useful for debootstrap at least
 - It could even be used as a builder, but it's very very slow (so probably a no-go)

Cross build support:
 - We need fixes for packages that "depends" on qemu
 - Multiarch dependency fixes for many packages. Perl and python are big blockers
 - Fixing arch-depending config-scripts in -dev packages

Initial list of packages to cross build/bootstrap:
 - C toolchain and {build-,}dependencies
 - Packaging toolchain (dpkg, apt, debhelper, etc) and dependencies

Wookey's public status of issues here: https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/MultiarchCrossBuildStatus
Bootstrap: http://people.linaro.org/~wookey/buildd/quantal/sbuild-ma/status-bootstrap.html
[wookey] "status is very broken right now" (April 2012)
[wookey] "Status looking much brighter" (September)

http://bugs.debian.org/661538 - dpkg support for staged builds
http://bugs.debian.org/661537 - apt support for staged builds

Multiarch python: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=683755
Multiarch perl: 'ntyni/multiarch-5.14' branch of git://git.debian.org/perl/perl.git

(?)

Work Items

Work items:
[wookey] add arm64 arch to dpkg: DONE
[cjwatson] review xdeb staged patch: DONE
[steve-mcintyre] add the multiarch triplet to wiki.debian.org/Multiarch/Tuples: DONE
Get perl multiarched: DONE
Get python multiarched: DONE
[adconrad] Scour the archive for armel/armhf in debian/* and prep for arm64: TODO
[adconrad] add arm64 to Packages-arch-specific: DONE
[adconrad] backport arm64 dpkg support to lucid-cat: DONE
[adconrad] backport arm64 dpkg support to precise-updates: DONE