[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Release goal: Cross Toolchains in the Archive



Hooray for deadlines:
https://wiki.debian.org/ReleaseGoals/CrossToolchains


Cross Toolchains in the archive
===============================

Debian has long had useful cross-building support, but has never had
general cross-compilers for release architectures in the archive. They
have always been built by users, or by outside entities like the
long-standing emdebian.org cross-compiler collection.

It would be a lot more convenient for users if cross-toolchains were
available within the archive like any other package.

We already have good support in dpkg, apt and sbuild for
cross-building, and installation of cross build-dependencies. And
support for autotools and cmake cross-setup in dpkg-cross. It just
needs the cross-toolchain packages themselves and some support bit and
pieces to make cross-building very slick in Debian. Much of this work
has already been demonstrated in Ubuntu and it would be good to get it
properly upstream.

The Cross Toolchain team on Alioth was re-invigorated at Debconf13 to
get this work done.

Details
-------

The thing that has kept cross-compilers out for many years is that the
build has cross-architecture dependencies (needs libc:$DEB_HOST_ARCH
and libgcc:$DEB_HOST_HOST). Now that Multi-arch is done this problem
can be cleanly solved. It is possible to build cross-compilers without
multiarch support, as has been demonstrated in Ubuntu but using it
provides cleaner support and simpler packaging.

Implementation
--------------

 * The hard parts have already been done in the Multiarch support.

 * The cross-toolchain builds should not be part of the normal
 binutils and gcc packaging, as the large matrix of builds
 (potentially up to the square of all architectures, fortunately many
 are not really useful) provides too many opportunities for build
 failures which would get in the way of normal gcc and binutils
 updates.

 * Buildds need to allow cross-architecture dependencies. This was
 agreed in a multi-arch meeting at Banja Luka

 * Adding a crossbuild-essential package to easily bring in the right
 packages is very helpful, but not essential.

 * A crossbuild-support package (or similar name) should be made from
 the useful parts of dpkg-cross, keeping the autoconf and cmake
 variable setup and cache seeding, but dropping the library-munging
 functionality. 

Resources
--------

Advocates:

Wookey
Doko
Pabs

mailing list: debian-cross@list.debian.org




Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/


Reply to: