In this document I will describe how to build a toolchain for ARM.
In this document we will install the toolchain in the users home directory under $HOME/arm-elf
.
Installation will take place in /tmp/toolchain
.
$ mkdir -p /tmp/toolchain/src
$ mkdir -p /tmp/toolchain/arm-elf
$ mkdir -p $HOME/arm-elf/bin
$ export PATH=$HOME/arm-elf/bin:$PATH
Download binutils from http://ftp.gnu.org/gnu/binutils/binutils-2.21.1.tar.gz
$ cd /tmp/toolchain/src
$ wget http://ftp.gnu.org/gnu/binutils/binutils-2.21.1.tar.gz
$ tar -zxvf binutils-2.21.1.tar.gz
Configure and build.
$ cd /tmp/toolchain/arm-elf
$ mkdir binutils
$ cd binutils
$ ../../src/binutils-2.21.1/configure –prefix=$HOME/arm-elf –target=arm-elf –disable-nls
$ make
$ make install
checkout trunk version of gcc from svn
$ cd /tmp/toolchain/src
$ svn co svn checkout svn://gcc.gnu.org/svn/gcc/trunk gcc-trunk
configure and build gcc
$ cd /tmp/toolchain/arm-elf
$ mkdir gcc
$ cd gcc
$ ../../src/gcc-trunk/configure –prefix=$HOME/arm-elf –target=arm-elf –disable-werror –disable-nls –enable-interwork –enable-multilib –enable-languages=“c,c++” –enable-target-optspace –with-float=soft –with-newlib –with-headers=/home/alios/src/toolchain/src/newlib/newlib/libc/include/ –with-system-zlib –disable-shared
$ make
$ make install
checkout newlib from cvs
$ cd /tmp/toolchain/src
$ cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/src login ## use 'anoncvs' as password
$ cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/src co newlib
configure and build
$ cd /tmp/toolchain/arm-elf
$ mkdir newlib
$ cd newlib
$ ../../src/newlib/configure –prefix=$HOME/arm-elf –target=arm-elf –enable-interwork –enable-multilib –enable-target-optspace –with-float=soft
$ make
$ make install