Cross compiling and Bootstrapping stories

Registered by Wookey

Use cases for cross-compiling of and in Debian-based systems. Including bootstrapping new flavours and architectures from scratch.

Known use cases to satisfy are:
 1) ALIP/AEL images, which must be cross-buildable, and bootstrappable as far as an X desktop.

 2) Cross-autobuilder/continuous integration. Needs buildd integration - separate cross-dependency satisfaction from sequencing.

 3) Toolchain release testing.
  Want to test new toolchain releases by building a lot of stuff and running an image built from it. This is much faster if cross-building, and more resource is available.
  Issues: Their releases are tarballs, not packages, so some munging is needed - either adding packaging info, or making 'fakedebs' with links and equivs.

 4) OEM integrators basing images on Ubuntu.
  They modify sources and rebuild the modified packages often. They only build against the standard Ubuntu arm archive (and their own packages), so no bootstrapping is needed. They do not have sufficient arm resource for native building, so cross-building of a selected set of packages is important. They do need to be able to build from a local repo of modified sources, and upload to a local repo, using apt priorities to ensure correct sources are used.

Important questions:
1) dpkg-cross vs multiarch cross-building. when/how can we switch? Can we mix?

Blueprint information

Status:
Complete
Approver:
Ricardo Salveti
Priority:
Undefined
Drafter:
Wookey
Direction:
Needs approval
Assignee:
Wookey
Definition:
Obsolete
Series goal:
Accepted for 11.11
Implementation:
Unknown
Milestone target:
None
Completed by
David Zinman

Related branches

Sprints

Whiteboard

Subblueprint: Bootstrapping

#https://code.launchpad.net/~peter-pearse/

(?)

Work Items

Work items:
Upstream ppearse cross-patches where suitable to Debian/Ubuntu: INPROGRESS
Add multiarch-cross support to dpkg: DONE
Add multiarch-cross support to sbuild: DONE
Add multiarch-cross support to xdeb: TODO
Add builddependency annotations to all other tools that read build-deps: INPROGRESS
Update linaro cross-building wiki with quick-start info: DONE
Add exception annotations to build-dependencies of needed packages: INPROGRESS
Fix apt to act as cross-dependency satisfier: DONE
split flex for multiarch: DONE
add multiarch support to dpkg-checkbuilddeps: DONE

Dependency tree

* Blueprints in grey have been implemented.