Crosstoolchain documentation is now collected on CrossToolchains
Building a Cross Compiler
Very few people need to build a cross-toolchain. It is a complicated business and unless you are doing something really quite obscure you should just install a suitable apt-able toolchain.
We'll say that again: MOST PEOPLE SHOULDN'T BE BUILDING THEIR OWN CROSS-TOOLCHAIN - THEY SHOULD JUST INSTALL A PRE-BUILT ONE LIKE ANY OTHER PACKAGE.
But there are reasons why you might need to do this.
I really do want to build a Cross Compiler
Pick the most relevant heading from the list below
I want a combination of BUILD x HOST not in Debian
If HOST is a debian release architecture then this is fairly straightforward:
- Check out the cross-gcc git repo
generate a cross-gcc-<ver>-<arch> source package
- Build it
git clone http://anonscm.debian.org/cgit/crosstoolchain/cross-gcc.git TARGET_LIST=hostarch cross-gcc/gensources TARGET_LIST=hostarch cross-gcc/buildall
Fill in your own hostarch above. You will need sbuild 0.64.3 or later installed, and a suitable chroot or build env for the target suite.
A more manual build, probably best done in a chroot, could be
cd packages/cross-gcc-4.9-hostarch dpkg --add-architecture hostarch apt-get update <install build-deps> dpkg-buildpackage
(This essentially automates the procedure described on MultiarchCrossToolchainBuild).
If HOST is not a debian release architecture (debian-ports architecture or a new arch), then it may be much harder because you need to do a full bootstrap. cross-toolchain-base packages exist in Ubuntu for this for some architectures, but the procedure is broken in Debian at the time of writing (Nov 2014) so you'll need to fiddle with patches.
I want the very latest arm support
Linaro's cross-toolchains (tarball install, sadly) are very up to date with patches and support, and may well be useful.