User Tools

Site Tools


In this document I will describe how to build a toolchain for ARM.

setup build environment

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

$ cd /tmp/toolchain/src

$ wget

$ 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-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 login ## use 'anoncvs' as password

$ cvs -z 9 -d 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

buildtoolchain.txt · Last modified: 2011/08/10 12:39 by alios