Cross Compiling
Linux
An easy way to setup a cross-compilation environment on Linux is to set up Optware. See http://www.nslu2-linux.org/wiki/Optware/AddAPackageToOptware for details. If you want to contribute to Optware, just ask for commit access with your first contribution.
Linux: CodeSourcery chain found here.
Mac OSX
MacPorts package: arm-none-linux-gnueabi-gcc
Make sure your MacPorts is up to date.
sudo port selfupdate sudo port upgrade outdated
Make a change to the arm-none-linux-gnueabi-gcc Portfile in:
/opt/local/var/macports/sources/rsync.macports.org/release/ports/cross/arm-none-linux-gnueabi-gcc
And make line 62 read:
configure.cc "cc -no-cpp-precomp -I${prefix}/include"
Finally, install the tools:
sudo port install arm-none-linux-gnueabi-gcc
Should work.
Windows
Windows: CodeSourcery chain found here.
Specifically the 2007q3-51 release, but newer releases may work.
Another way to get some cross toolchains: http://www.ethernut.de/en/documents/cross-toolchain-osx.html