No edit summary |
(A bump to minor versions for upstream bugfixes, and disable building of gcc's texinfo documentation, to address a known issue building gcc4.5 docs with texinfo>5, shown here: https://dev.openwrt.org/ticket/13039) |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 7: | Line 7: | ||
# host systems. This target has no file system or kernel. |
# host systems. This target has no file system or kernel. |
||
# |
# |
||
+ | # Edited 2013-09-13 to bump minor versions for upstream |
||
+ | # bugfixes, and disable building of gcc's texinfo |
||
+ | # documentation, to address a known issue building gcc4.5 |
||
+ | # docs with texinfo>5, shown here: |
||
+ | # https://dev.openwrt.org/ticket/13039 |
||
+ | |||
TARGET="arm-elf" |
TARGET="arm-elf" |
||
BUILDDIR=`pwd` |
BUILDDIR=`pwd` |
||
Line 15: | Line 21: | ||
PARALLEL="-j 2" |
PARALLEL="-j 2" |
||
BINUTILS=binutils-2.18 |
BINUTILS=binutils-2.18 |
||
− | GCC=gcc-4.5. |
+ | GCC=gcc-4.5.4 |
− | GMP=gmp-5.0. |
+ | GMP=gmp-5.0.5 |
− | MPFR=mpfr-3.1. |
+ | MPFR=mpfr-3.1.2 |
MPC=mpc-0.8.2 |
MPC=mpc-0.8.2 |
||
NEWLIB=newlib-1.18.0 |
NEWLIB=newlib-1.18.0 |
||
Line 26: | Line 32: | ||
mkdir $SRC |
mkdir $SRC |
||
cd $SRC |
cd $SRC |
||
− | echo " |
+ | echo "Downloading source packages. This may take a while." |
echo |
echo |
||
wget -c http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2 |
wget -c http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2 |
||
Line 90: | Line 96: | ||
echo |
echo |
||
cd build |
cd build |
||
+ | # Added MAKEINFO=missing to avoid dealing with the texinfo >=5 strictness bugs |
||
+ | # Throws a @itemx must follow @item errors if the docs are built. |
||
../$GCC/configure --target=$TARGET --prefix=$PREFIX --enable-interwork \ |
../$GCC/configure --target=$TARGET --prefix=$PREFIX --enable-interwork \ |
||
--enable-multilib --enable-languages="c" --with-newlib \ |
--enable-multilib --enable-languages="c" --with-newlib \ |
||
--with-gmp-include=$(pwd)/gmp --with-gmp-lib=$(pwd)/gmp/.libs \ |
--with-gmp-include=$(pwd)/gmp --with-gmp-lib=$(pwd)/gmp/.libs \ |
||
--without-headers --disable-libssp --disable-nls --disable-zlib --disable-libc --disable-libm --disable-intl \ |
--without-headers --disable-libssp --disable-nls --disable-zlib --disable-libc --disable-libm --disable-intl \ |
||
− | --disable-hardfloat --disable-threads --with-gnu-as --with-gnu-ld |
+ | --disable-hardfloat --disable-threads --with-gnu-as --with-gnu-ld MAKEINFO=missing |
make $PARALLEL |
make $PARALLEL |
||
make install |
make install |
||
Line 101: | Line 109: | ||
echo "Compiler Finished for "$TARGET |
echo "Compiler Finished for "$TARGET |
||
</pre> |
</pre> |
||
+ | [[Category:Development]] |
Latest revision as of 20:34, 1 October 2013
As the 4.3.3 compiler was not working with the newest trunk, here is the solution to install a new compiler that works.
Here is the whole process for the impatient, just copy + paste in a console (emulator):
#!/bin/sh # Builds a arm-elf cross compiler for use on linux # host systems. This target has no file system or kernel. # # Edited 2013-09-13 to bump minor versions for upstream # bugfixes, and disable building of gcc's texinfo # documentation, to address a known issue building gcc4.5 # docs with texinfo>5, shown here: # https://dev.openwrt.org/ticket/13039 TARGET="arm-elf" BUILDDIR=`pwd` BUILDDIR="${BUILDDIR}/build-dir" mkdir ${BUILDDIR} SRC="${BUILDDIR}/packages" # package directory PREFIX="${BUILDDIR}/arm/toolchain" # final toolchain directory PARALLEL="-j 2" BINUTILS=binutils-2.18 GCC=gcc-4.5.4 GMP=gmp-5.0.5 MPFR=mpfr-3.1.2 MPC=mpc-0.8.2 NEWLIB=newlib-1.18.0 export PATH="$PATH:$PREFIX/bin" # Before we do anything we need all the source files. # We keep them in one place and we never need to # download them twice if this build fails. mkdir $SRC cd $SRC echo "Downloading source packages. This may take a while." echo wget -c http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2 wget -c ftp://ftp.gnu.org/gnu/gcc/$GCC/$GCC.tar.bz2 wget -c ftp://ftp.gmplib.org/pub/$GMP/$GMP.tar.bz2 wget -c http://www.mpfr.org/mpfr-current/$MPFR.tar.bz2 wget -c http://www.multiprecision.org/mpc/download/$MPC.tar.gz wget -c ftp://sources.redhat.com/pub/newlib/$NEWLIB.tar.gz cd .. echo "Starting Build..." echo mkdir build echo "Building binutils" echo tar xfj $SRC/$BINUTILS.tar.bz2 cd $BINUTILS ./configure --target=$TARGET --prefix=$PREFIX --disable-werror # --enable-interwork --disable-multilib --with-gnu-as # --with-gnu-ld --disable-nls --disable-werror make $PARALLEL make install cd .. rm -rf build/* $BINUTILS echo "Building GCC pass 1" tar xfj $SRC/$GCC.tar.bz2 # the compiler math prereqs tar -jxf $SRC/$GMP.tar.bz2 tar -jxf $SRC/$MPFR.tar.bz2 tar -zxf $SRC/$MPC.tar.gz cd $GCC mv ../$GMP gmp mv ../$MPFR mpfr mv ../$MPC mpc cd ../build # ed ../$GCC/gcc/config/arm/t-arm-elf << EOF /MULTILIB_OPTIONS/s/^M/# M/ /MULTILIB_DIRNAMES/s/^M/# M/ /mno-thumb-interwork/s/^# // /normal interwork/s/^# // wq EOF # ../$GCC/configure --target=$TARGET --prefix=$PREFIX --enable-interwork \ --enable-multilib --enable-languages="c" --with-newlib \ --with-gmp-include=$(pwd)/gmp --with-gmp-lib=$(pwd)/gmp/.libs \ --without-headers --disable-shared --disable-nls --with-gnu-as --with-gnu-ld make $PARALLEL all-gcc make install-gcc cd .. rm -rf build/* # (We retain the GCC directory for pass 2) echo "Building Newlib" echo tar xfz $SRC/$NEWLIB.tar.gz cd build ../$NEWLIB/configure --target=$TARGET --prefix=$PREFIX --enable-interwork \ --enable-multilib --with-gnu-as --with-gnu-ld --disable-nls make $PARALLEL make install cd .. rm -rf build/* $NEWLIB echo " Building GCC pass 2" echo cd build # Added MAKEINFO=missing to avoid dealing with the texinfo >=5 strictness bugs # Throws a @itemx must follow @item errors if the docs are built. ../$GCC/configure --target=$TARGET --prefix=$PREFIX --enable-interwork \ --enable-multilib --enable-languages="c" --with-newlib \ --with-gmp-include=$(pwd)/gmp --with-gmp-lib=$(pwd)/gmp/.libs \ --without-headers --disable-libssp --disable-nls --disable-zlib --disable-libc --disable-libm --disable-intl \ --disable-hardfloat --disable-threads --with-gnu-as --with-gnu-ld MAKEINFO=missing make $PARALLEL make install cd .. rm -rf build/* $GCC echo "Compiler Finished for "$TARGET