#apt-get install binutils-source gcc-4.4-source gdb-source libgmp3-dev libmpfr-dev libmpc-dev
The install-gcc-arm.sh script:
#!/bin/bash
export MYSRCPATH=$HOME/src/cross-tools
export MYPREFIX=$HOME/cross
export GCCVERS=4.4.4
export GCCVERS1=4.4
export BINUTILSVERS=2.20.1
export GDBVERS=7.1
export NEWLIBVERS=1.17.0
mkdir -p $MYPREFIX
mkdir -p $MYSRCPATH/Dist
cd $MYSRCPATH/Dist
#wget ftp://ftp.gnu.org/gnu/gcc/gcc-$GCCVERS/gcc-$GCCVERS.tar.bz2
#wget ftp://ftp.gnu.org/gnu/gcc/gcc-$GCCVERS/gcc-$GCCVERS.tar.bz2.sig
#gpg --verify gcc-$GCCVERS.tar.bz2.sig
#wget ftp://ftp.gnu.org/gnu/binutils/binutils-$BINUTILSVERS.tar.bz2
#wget ftp://ftp.gnu.org/gnu/binutils/binutils-$BINUTILSVERS.tar.bz2.sig
#gpg --verify binutils-$BINUTILSVERS.tar.bz2.sig
#wget ftp://ftp.gnu.org/gnu/gdb/gdb-$GDBVERS.tar.bz2
#wget ftp://ftp.gnu.org/gnu/gdb/gdb-$GDBVERS.tar.bz2.sig
#gpg --verify gdb-$GDBVERS.tar.bz2.sig
wget ftp://sources.redhat.com/pub/newlib/newlib-$NEWLIBVERS.tar.gz
wget http://www.gnuarm.com/t-arm-elf
cd $MYSRCPATH
tar xvJf /usr/src/gcc-$GCCVERS1/gcc-$GCCVERS-dfsg.tar.xz
tar xvjf /usr/src/binutils/binutils-$BINUTILSVERS.tar.bz2
tar xvjf /usr/src/gdb.tar.bz2
tar xvzf Dist/newlib-$NEWLIBVERS.tar.gz
cp Dist/t-arm-elf gcc-$GCCVERS/gcc/config/arm/t-arm-elf
mkdir -p $MYSRCPATH/target/arm-elf/binutils
cd $MYSRCPATH/target/arm-elf/binutils
../../../binutils-$BINUTILSVERS/configure \
--target=arm-elf --prefix=$MYPREFIX \
--enable-interwork --enable-multilib --with-float=soft
# --disable-werror
make all
make install
export PATH=$PATH:$MYPREFIX/bin
mkdir -p $MYSRCPATH/target/arm-elf/gcc
cd $MYSRCPATH/target/arm-elf/gcc
../../../gcc-$GCCVERS/configure \
--target=arm-elf --prefix=$MYPREFIX --enable-interwork \
--enable-multilib --with-float=soft \
--enable-languages="c,c++" --with-newlib \
--with-headers=../../../newlib-$NEWLIBVERS/newlib/libc/include
make all-gcc
make install-gcc
mkdir -p $MYSRCPATH/target/arm-elf/newlib
cd $MYSRCPATH/target/arm-elf/newlib
../../../newlib-$NEWLIBVERS/configure --target=arm-elf --prefix=$MYPREFIX \
--enable-interwork --enable-multilib --with-float=soft
make all
make install
cd $MYSRCPATH/target/arm-elf/gcc
make all
make install
mkdir -p $MYSRCPATH/target/arm-elf/gdb
cd $MYSRCPATH/target/arm-elf/gdb
../../../gdb/configure --target=arm-elf --prefix=$MYPREFIX \
--enable-interwork --enable-multilib --with-float=soft
make all
make install
Then you need to add the following line to your .bashrc file
export PATH=${PATH}:${HOME}/cross/bin