This is a quick and dirty HOWTO on how to build an arm-none-eabi G++ toolchain This work is based on http://www.hermann-uwe.de/blog/building-an-arm-cross-toolchain-with-binutils-gcc-newlib-and-gdb-from-source == 1. Build binutils == {{{ apt-get source binutils pushd binutils-2.19.1 debian/rules patch mkdir build && pushd build ../configure --prefix=/tmp/arm --target=arm-none-eabi --disable-werror make make install popd }}} == 2. Build base GCC == {{{ apt-get install gcc-4.3-source make -f /usr/src/gcc-4.3/rules.source patch-source pushd src mkdir build && pushd build # This command line came from ecos's toolchain ../configure --target=arm-none-eabi --prefix=/tmp/arm --with-newlib --enable-languages=c --disable-__cxa_atexit --enable-threads --without-headers --disable-shared make all-gcc make install-gcc popd }}} == 3. Build newlib == {{{ apt-get source newlib pushd newlib-1.17.0 debian/rules patch mkdir src/build pushd src/build ../configure --target=arm-none-eabi --prefix=/tmp/arm --enable-interwork --enable-multilib --disable-nls make make install popd }}} == 4. Build final GCC == {{{ pushd src mkdir build-final && pushd build-final ../configure --target=arm-none-eabi --prefix=/tmp/arm --with-newlib --enable-languages=c,c++ --disable-__cxa_atexit --enable-threads --without-headers --disable-shared make make install popd }}}