How to build a cross-compiler to run on Unix/Linux to compile code for execution on a GP32. Use the libraries available in the Dev'rs file archive, they don't include the thumb interwork stuff that makes everything so difficult otherwise..
Download the latest versions:
I used binutils-2.16, gcc-3.4.3 and newlib-1.13.0. Note that gcc-4.0.0 builds just fine, but its perfomance (on ARM, at least) doesn't seem to be as good.
$ gzip -dc binutils-2.16.tar.gz | tar xf - $ gzip -dc gcc-3.4.3.tar.gz | tar xf - $ gzip newlib-1.13.0.tar.gz | tar xf -
$ cd gcc-3.4.3 $ ln -s ../newlib-1.13.0/newlib . $ cd ..
If you want to store all the build stuff in its own tree, add a --prefix=/path/to/stuff option to each of the configure lines below.
$ mkdir binutils-2.16-arm-elf $ cd binutils-2.16-arm-elf $ ../binutils-2.16/configure --srcdir=../binutils-2.16 --target=arm-elf $ make $ su -c "make install" $ cd ..
$ mkdir gcc-3.4.3-arm-elf $ cd gcc-3.4.3-arm-elf $ ../gcc-3.4.3/configure --srcdir=../gcc-3.4.3 --target=arm-elf \ --with-cpu=arm9 --with-newlib --disable-threads --disable-multilib \ --disable-nls --enable-languages=c $ make $ su -c "make install" $ cd ..
You might want to try changing enable-languages to "c c++".
Clear out any build directories if you want. You should now (assuming /usr/local/bin, or the bin under your own --prefix, is in your path) be able to run arm-elf-gcc, arm-elf-as, arm-elf-objcopy, etc. which should be enough for building things. You'll need b2fxec too, of course; get that from Mr. Spiv's download directory.
Updated 10 May 2005