Initial version
Committed on the Free edition of March Hare Software CVSNT Server. Upgrade to CVS Suite for more features and support: http://march-hare.com/cvsnt/ git-svn-id: http://moon:8086/svn/vhdl/trunk@764 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
@@ -0,0 +1,46 @@
|
|||||||
|
# ---------------------------------------------------------------
|
||||||
|
# 1. Binutils bauen und installieren
|
||||||
|
# ---------------------------------------------------------------
|
||||||
|
> tar -xzf binutils-2.19.tar.gz
|
||||||
|
> mkdir binutils-2.19_build
|
||||||
|
> cd binutils-2.19_build
|
||||||
|
|
||||||
|
> ../binutils-2.19/configure --target=mipsel-elf --prefix=/usr/local
|
||||||
|
> make
|
||||||
|
> make install
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------
|
||||||
|
# 2. GCC bootstrapping
|
||||||
|
# ---------------------------------------------------------------
|
||||||
|
> tar -xzf gcc-4.3.2.tar.gz
|
||||||
|
> mkdir gcc-4.3.2_build
|
||||||
|
> cd gcc-4.3.2_build
|
||||||
|
> ../gcc-4.3.2/configure --target=mipsel-elf --prefix=/usr/local --enable-languages="c,c++" --without-headers --with-newlib --with-float=soft --disable-multilib
|
||||||
|
> CFLAGS_FOR_TARGET="-mno-gpopt" make all-gcc
|
||||||
|
> make info-gcc
|
||||||
|
> make install-gcc
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------
|
||||||
|
# 3. Newlib bauen und installieren
|
||||||
|
# ---------------------------------------------------------------
|
||||||
|
> tar -xzf newlib-1.16.0.tar.gz
|
||||||
|
! Bug in newlib-1.16.0/newlib/libc/machine/mips/strlen.c.
|
||||||
|
Newlib von Hand patchen (32-bit MIPS targets):
|
||||||
|
"lbu $3,0($4)\n"
|
||||||
|
"nop\n" <= nop einfügen
|
||||||
|
"bnez $3,1b\n"
|
||||||
|
|
||||||
|
> mkdir newlib-1.16.0_build
|
||||||
|
> cd newlib-1.16.0_build
|
||||||
|
> ../newlib-1.16.0/configure --target=mipsel-elf --prefix=/usr/local --with-float=soft --disable-multilib
|
||||||
|
> TARGET_CFLAGS="-mno-gpopt" make all
|
||||||
|
> make install
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------
|
||||||
|
# 4. GCC bauen und installieren
|
||||||
|
# ---------------------------------------------------------------
|
||||||
|
> cd gcc-4.3.2_build
|
||||||
|
> ../gcc-4.3.2/configure --target=mipsel-elf --prefix=/usr/local --enable-languages="c,c++" --disable-shared --with-newlib --with-float=soft --disable-multilib
|
||||||
|
> CFLAGS_FOR_TARGET="-mno-gpopt" make all
|
||||||
|
> make info
|
||||||
|
> make install
|
||||||
@@ -0,0 +1,151 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
TARGET=mipsel-elf
|
||||||
|
PREFIX=/usr/local
|
||||||
|
|
||||||
|
SRC_BINUTILS=binutils-2.19
|
||||||
|
SRC_GCC=gcc-4.3.3
|
||||||
|
SRC_NEWLIB=newlib-1.16.0
|
||||||
|
SRC_GMP=gmp-4.2.4
|
||||||
|
SRC_MPFR=mpfr-2.4.0
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------
|
||||||
|
# 1. Binutils bauen und installieren
|
||||||
|
# ---------------------------------------------------------------
|
||||||
|
if [ ! -e $SRC_BINUTILS.tar.bz2 ]; then
|
||||||
|
echo Downloading $SRC_BINUTILS
|
||||||
|
wget ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/ftp.gnu.org/binutils/$SRC_BINUTILS.tar.bz2 || exit 1
|
||||||
|
else
|
||||||
|
echo Skipped downloading $SRC_BINUTILS
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e ./$SRC_BINUTILS ]; then
|
||||||
|
echo Unpacking $SRC_BINUTILS
|
||||||
|
tar -xjf $SRC_BINUTILS.tar.bz2 || exit 1
|
||||||
|
else
|
||||||
|
echo Skipped unpacking $SRC_BINUTILS
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e ./$SRC_BINUTILS-build ]; then
|
||||||
|
echo Building $SRC_BINUTILS
|
||||||
|
mkdir -p $SRC_BINUTILS-build
|
||||||
|
cd $SRC_BINUTILS-build
|
||||||
|
../$SRC_BINUTILS/configure --target=$TARGET --prefix=$PREFIX || exit 1
|
||||||
|
make || exit 1
|
||||||
|
make install || exit 1
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo $SRC_BINUTILS is already built.
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------
|
||||||
|
# 2. GMP bauen und installieren
|
||||||
|
# ---------------------------------------------------------------
|
||||||
|
if [ ! -e $SRC_GMP.tar.bz2 ]; then
|
||||||
|
echo Downloading $SRC_GMP
|
||||||
|
wget http://ftp.sunet.se/pub/gnu/gmp/$SRC_GMP.tar.bz2 || exit 1
|
||||||
|
else
|
||||||
|
echo Skipped downloading $SRC_GMP
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e ./$SRC_GMP ]; then
|
||||||
|
echo Unpacking $SRC_GMP
|
||||||
|
tar -xjf $SRC_GMP.tar.bz2 || exit 1
|
||||||
|
else
|
||||||
|
echo Skipped unpacking $SRC_GMP
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e ./$SRC_GMP-build ]; then
|
||||||
|
echo Building $SRC_GMP
|
||||||
|
mkdir -p $SRC_GMP-build
|
||||||
|
cd $SRC_GMP-build
|
||||||
|
../$SRC_GMP/configure --prefix=$PREFIX || exit 1
|
||||||
|
make || exit 1
|
||||||
|
make check || exit 1
|
||||||
|
make install || exit 1
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo $SRC_GMP is already built.
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------
|
||||||
|
# 3. MPFR bauen und installieren
|
||||||
|
# ---------------------------------------------------------------
|
||||||
|
if [ ! -e $SRC_MPFR.tar.bz2 ]; then
|
||||||
|
echo Downloading $SRC_MPFR
|
||||||
|
wget http://www.mpfr.org/mpfr-current/$SRC_MPFR.tar.bz2 || exit 1
|
||||||
|
else
|
||||||
|
echo Skipped downloading $SRC_MPFR
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e ./$SRC_MPFR ]; then
|
||||||
|
echo Unpacking $SRC_MPFR
|
||||||
|
tar -xjf $SRC_MPFR.tar.bz2 || exit 1
|
||||||
|
else
|
||||||
|
echo Skipped unpacking $SRC_MPFR
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e ./$SRC_MPFR-build ]; then
|
||||||
|
echo Building $SRC_MPFR
|
||||||
|
mkdir -p $SRC_MPFR-build
|
||||||
|
cd $SRC_MPFR-build
|
||||||
|
../$SRC_MPFR/configure --prefix=$PREFIX || exit 1
|
||||||
|
make || exit 1
|
||||||
|
make check || exit 1
|
||||||
|
make install || exit 1
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo $SRC_MPFR is already built.
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------
|
||||||
|
# 4. GCC & newlib bauen und installieren
|
||||||
|
# ---------------------------------------------------------------
|
||||||
|
if [ ! -e $SRC_NEWLIB.tar.gz ]; then
|
||||||
|
echo Downloading $SRC_NEWLIB
|
||||||
|
wget ftp://sources.redhat.com/pub/newlib/$SRC_NEWLIB.tar.gz || exit 1
|
||||||
|
else
|
||||||
|
echo Skipped downloading $SRC_NEWLIB
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e ./$SRC_NEWLIB ]; then
|
||||||
|
echo Unpacking $SRC_NEWLIB
|
||||||
|
tar -xzf $SRC_NEWLIB.tar.gz || exit 1
|
||||||
|
if [ -e $SRC_NEWLIB-jens.patch ]; then
|
||||||
|
echo Patching $SRC_NEWLIB
|
||||||
|
patch -p0 < $SRC_NEWLIB-jens.patch || exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo Skipped unpacking $SRC_NEWLIB
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e $SRC_GCC.tar.bz2 ]; then
|
||||||
|
echo Downloading $SRC_GCC
|
||||||
|
wget ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/ftp.gnu.org/gcc/$SRC_GCC/$SRC_GCC.tar.bz2 || exit 1
|
||||||
|
else
|
||||||
|
echo Skipped downloading $SRC_GCC
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e ./$SRC_GCC ]; then
|
||||||
|
echo Unpacking $SRC_GCC
|
||||||
|
tar -xjf $SRC_GCC.tar.bz2 || exit 1
|
||||||
|
cd ./$SRC_GCC
|
||||||
|
ln -sf ../$SRC_NEWLIB/newlib/ .
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo Skipped unpacking $SRC_GCC
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e ./$SRC_GCC-build ]; then
|
||||||
|
echo Building $SRC_GCC
|
||||||
|
mkdir -p $SRC_GCC-build
|
||||||
|
cd $SRC_GCC-build
|
||||||
|
../$SRC_GCC/configure --target=$TARGET --prefix=$PREFIX --with-float=soft --with-newlib --verbose --enable-languages="c,c++" || exit 1
|
||||||
|
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PREFIX/lib make all || exit 1
|
||||||
|
make info || exit 1
|
||||||
|
make install || exit 1
|
||||||
|
cd ..
|
||||||
|
echo $PREFIX/lib >/etc/ld.so.conf.d/local.conf
|
||||||
|
ldconfig
|
||||||
|
else
|
||||||
|
echo $SRC_GCC is already built.
|
||||||
|
fi
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
diff -Naur newlib-1.16.0/newlib/libc/machine/mips/strlen.c newlib-1.16.0-fixed/newlib/libc/machine/mips/strlen.c
|
||||||
|
--- newlib-1.16.0/newlib/libc/machine/mips/strlen.c 2002-03-14 03:41:43.000000000 +0100
|
||||||
|
+++ newlib-1.16.0-fixed/newlib/libc/machine/mips/strlen.c 2009-02-14 15:52:58.000000000 +0100
|
||||||
|
@@ -60,6 +60,7 @@
|
||||||
|
" addiu $2,$4,1\n"
|
||||||
|
"\n"
|
||||||
|
"1: lbu $3,0($4)\n"
|
||||||
|
+ " nop\n"
|
||||||
|
" bnez $3,1b\n"
|
||||||
|
" addiu $4,$4,1\n"
|
||||||
|
"\n"
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
diff -Naur newlib-1.17.0/newlib/libc/machine/mips/strlen.c newlib-1.17.0-fixed/newlib/libc/machine/mips/strlen.c
|
||||||
|
--- newlib-1.17.0/newlib/libc/machine/mips/strlen.c 2002-03-14 03:41:43.000000000 +0100
|
||||||
|
+++ newlib-1.17.0-fixed/newlib/libc/machine/mips/strlen.c 2009-02-14 15:45:19.000000000 +0100
|
||||||
|
@@ -60,6 +60,7 @@
|
||||||
|
" addiu $2,$4,1\n"
|
||||||
|
"\n"
|
||||||
|
"1: lbu $3,0($4)\n"
|
||||||
|
+ " nop\n"
|
||||||
|
" bnez $3,1b\n"
|
||||||
|
" addiu $4,$4,1\n"
|
||||||
|
"\n"
|
||||||
Reference in New Issue
Block a user