Install some needed libraries
sudo aptitude install libmpc-dev
Make the temp directory to build in
mkdir toolchain
cd toolchain
Get the required sources
wget -c ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz
wget -c http://ftp.gnu.org/gnu/gdb/gdb-7.2.tar.gz
wget -c http://ftp.gnu.org/gnu/binutils/binutils-2.21.tar.bz2
wget -c http://ftp.gnu.org/gnu/gcc/gcc-4.6.0/gcc-core-4.6.0.tar.bz2
wget -c http://ftp.gnu.org/gnu/gcc/gcc-4.6.0/gcc-g++-4.6.0.tar.bz2
tar -xvf binutils-2.21.tar.bz2
tar -xvf gcc-core-4.6.0.tar.bz2
tar -xvf newlib-1.19.0.tar.gz
tar -xvf gdb-7.2.tar.gz
tar -xvf gcc-g++-4.6.0.tar.bz2
Set up the required variables
export target=arm-eabi
export prefix=/usr/local/$target
export PATH=$prefix/bin:$PATH
Create the bin folder for the final binaries
sodo mkdir -p $prefix/bin
Build binutils
cd binutils-2.21
mkdir build-$target
cd build-$target
../configure --target=$target --prefix=$prefix\
--enable-interwork --enable-multilib --disable-werror
make
sudo make install
Build the temporary gcc to build newlib with. Make sure the --with-headers line references the version of newlib you downloaded
cd ../../gcc-4.6.0
mkdir build-$target
cd build-$target
../configure --target=$target --prefix=$prefix \
--enable-languages=c,c++ --enable-interwork \
--enable-multilib --with-dwarf2 --with-newlib \
--with-headers=../../newlib-1.19.0/newlib/libc/include
make all-gcc
sudo make install-gcc
Build newlib
cd ../../newlib-1.19.0
mkdir build-$target
cd build-$target
../configure --target=$target --prefix=$prefix --enable-interwork --enable-multilib
make
sudo make install
Build the final gcc
cd ../../gcc-4.6.0/build-$target
make
sudo make install
Build gdb
cd ../../gdb-7.2
mkdir build-$target
cd build-$target
../configure --target=$target --prefix=$prefix
make
sudo make install
Originally blatantly stolen from the Ethernut Project, just documenting my experience with it on a 10.6 Macbook Air with the newest versions of each tool. Since then it has been updated to build the newer eabi target instead of elf.
If you get errors to do with warnings being treated as errors you can use --disable-werror at any of the build steps.
Hi, this is just what i'm needing, but I found some issues when trying to build gcc...
First, I changed gdb-7.2.tar.gz with gdb-7.4.tar.gz and binutils-2.21.tar.bz2 with binutils-2.22.tar.bz2, since the original packages you mention are not available.
After that, I successfully built binutils, but when trying to build the temporary gcc, when executing 'make all-gcc' I get the following error:
checking dynamic linker characteristics... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES.
make: *** [configure-zlib] Error 1
Did you face this issue? I'll continue looking at it, but maybe you have an answer to this.
Thanks in advance!