Tool Chain

This page has links to various tool chains and tool chain resources, which might be of interest.

Crosstool
Jim Wilson said the following on LKML: I recommend Dan Kegel's page for anyone trying to build a cross compiler to linux. See http://kegel.com/crosstool This isn't very hard to follow, and it gives you a properly configured and built gcc/glibc for the target.

The University of Szeged has been doing benchmarking of GNU tools across processor architectures, but including ARM. There's a site at http://www.inf.u-szeged.hu/gcc-arm/

Debian
Debian has packages which support cross-compilation. The following source packages can be used to build cross-compilers.
 * http://packages.debian.org/testing/devel/toolchain-source
 * http://packages.debian.org/testing/devel/toolchain-source-gdb
 * http://packages.debian.org/testing/devel/toolchain-source-newlib

There are also (binary) library/headers packages, from Debian packages for the target architectures, which support cross-compilation.

dpkg-cross is a tool for installing libraries and headers for cross compiling in a way similar to dpkg. See:
 * http://packages.debian.org/testing/utils/dpkg-cross

Please see /usr/share/doc/toolchain-source/README from the toolchain-source package for more information.

ARM
You may wish to examine the following mailing list: linux-arm-toolchain@lists.arm.linux.org.uk

Several ARM toolchain combo's have been discussed often in the recent past. List archives are at: http://lists.arm.linux.org.uk/pipermail/linux-arm-toolchain/

Building GCC 4.0 from scratch

 * How to build a gcc 4.0 ARM toolchain from scratch: http://linux.omap.com/pipermail/linux-omap-open-source/2005-November/005665.html

CodeSourcery
You can now download ARM GNU tool chains (source and pre-built releases) from http://www.codesourcery.com where you will have regular builds of the tool chain, integrating support for new core functionality. The current release include support for ARM v6 cores (binutils) and VFP support.

handhelds.org reference
Kristian S�rensen wrote:

We have had success using the ARM toolchain specified by handhelds.org. There are both a binary available and a script for building your own.

A description of the toolchain and how to use it on a HP iPAQ is available in our Master's Thesis in Appendix A (p 92). This may be downloaded here: http://prdownloads.sourceforge.net/umbrella/Umbrella.pdf?download

Jamey Hicks wrote: The handhelds.org toolchain binaries, sources, and build script are at ftp://ftp.handhelds.org/pub/linux/arm/toolchain/

The build script is actually crosstool 0.27, with slight changes I made to it for the particular selection of binutils, gcc, and glibc versions.

Greg Ungerer ARM multi-lib toolchain build
Greg writes:

Maybe this is interresting to some. This is the instructions I put together for building a gcc-3.3.4 based ARM toolchain that is multi-lib-ed to be able to build for all of big and little endian targets, and using either soft or hard float.

http://ftp.snapgear.org/pub/snapgear/tools/arm-linux/build-arm-linux-3.4.4

Its nice just having one tool chain for all those varients (I generate code for both little and big endian targets on a daily basis, and everything from small non-mmu ARM7 cores to xscale, all with the same tool chain).

Toolchain downloads
Some member companies have provided sources and binaries for toolchains they are using for forum work.

/\ These are all provided on terms of: "use at your own risk".

ARM and MIPS toolchains from Sony
- Note that this information is now out of date (for linux-2.4). - How to install - INSTALL.txt

- ARM toolchain - arvv4tl-celf-linux-toolchain.tar.gz (22 MB) - MIPS toolchain - mipsel-celf-linux-toolchain.tar.gz (25 MB)

- Sources: - gcc-3.2.3.tar.gz (27 MB) - gcc-patch.tar.gz (29 KB) - binutils-2.12.1.tar.bz2 (9 MB) - binutils-patch.tar.gz (14 KB)

i386 and SH toolchains from Lineo Solutions
- i386 toolchain tools_i686_RPMS.tar.gz (28 MB) - SH toolchain tools_sh4_RPMS.tar.gz (24 MB)

- Sources: - tools_i686_SRPMS.tar.gz (43 MB) - tools_sh4_SRPMS.tar.gz (40 MB)

- Packages for user-space programs: - Userland_i686_RPMS.tar.gz (41 MB) - Userland_sh4_RPMS.tar.gz (47 MB) - Userland_SRPMS.tar.gz (123 MB)

ARM/Thumb toolchain from Panasonic
- Software information regarding this package - PMCinformation.txt - How to install - PMCinstall.txt - Sources: - cross-gcc-3.3.1-7.0.24.0500655.src.rpm(31 MB) - PMC.patch (8 KB) - Binaries: - mvlcee3.1_thumb.for_export_050531.tgz (388 MB)

Distributions
Some distributions provide toolchains as part of their offerings. The following free/unsupported distributions are available.

Snap Gear
SnapGear provides a uCLinux distribution CD. On the web page, there is source and binaries for toolchains for several architectures.

See http://www.uclinux.org/pub/uClinux/dist

ELDK
The Embedded Linux Development Kit (ELDK) is an Open Source project maintained by DENX Software Engineering. It supports PowerPC, ARM and MIPS systems. In addition to the usual cross-development tools, the ELDK comes with a pretty complete native development environment and some other extensions, like support for the Xenomai Real-Time and RTOS Emulation Framework.

See http://www.denx.de/twiki/bin/view/DULG/ELDK

Open Embedded
There is a project called OpenEmbedded which aims at making a free embedded distribution (with build system).

See http://openembedded.org and the OE wiki

Tux Screen
TuxScreen and uClibc projects have build systems that generate complete toolchains, jffs2 filesytem images, bootloader etc.
 * http://TuxScreen.net/
 * http://cvs.sourceforge.net/viewcvs.py/tuxscreen/buildroot-tux/

uClibc

 * http://uClibc.org/
 * http://buildroot.uclibc.org/

Tool Chains
The first thing you need for an Embedded Linux system is a Tool Chain.

Here are random pointers to some resources:


 * CrossTools package
 * ftp://ftp.arm.linux.org.uk/pub/linux/arm/toolchain/
 * http://www.emdebian.org/crossdev.html
 * http://www.lart.tudelft.nl/lartware/compile-tools/
 * http://handhelds.org/z/wiki/Toolchains
 * ftp://ftp.handhelds.org/pub/linux/arm/toolchain/
 * ftp://ftp.handhelds.org/pub/linux/arm/toolchain/source/
 * ftp://ftp.handhelds.org/pub/linux/arm/toolchain/jacques
 * ftp://ftp.handhelds.org/pub/linux/arm/toolchain/monmotha/
 * http://www.armlinux.org/docs/toolchain/toolchHOWTO/x43.html
 * http://buildroot.uclibc.org/
 * http://www.denx.de/re/ELDK.html
 * http://cvs.gentoo.org/~zwelch/xcompile.html