URL
https://opencores.org/ocsvn/mips32r1/mips32r1/trunk
Subversion Repositories mips32r1
[/] [mips32r1/] [trunk/] [Software/] [toolchain/] [Toolchain_Instructions] - Rev 10
Go to most recent revision | Compare with Previous | Blame | View Log
Instructions for Creating a MIPS Compiler Toolchain
---------------------------------------------------
These are instructions for creating a MIPS cross-compiler toolchain based on
GCC 4.7.1, Binutils 2.21, and Newlib 1.20.0.
Required Files
--------------
- binutils-2.21.tar.bz2 (http://ftp.gnu.org/gnu/binutils/)
- gcc-4.7.1.tar.bz2 (http://gcc.gnu.org/mirrors.html)
- mpfr-3.0.1.tar.bz2 (http://www.mpfr.org/mpfr-3.0.1/)
- mpc-0.9.tar.gz (http://www.multiprecision.org/)
- gmp-5.0.5.tar.bz2 (http://gmplib.org/)
- newlib-1.20.0.tar.gz (ftp://sources.redhat.com/pub/newlib/index.html)
Procedure
---------
The following assumes you are using Bash or Bash-like shell. This procedure
has been tested in Linux environments as well as Windows under Cygwin. If you
are using Cygwin, you must be running on a 32-bit Windows OS or VM.
Limitations with WoW in 64-bit Windows prevents enough stack/heap space from
being allocated. Once the toolchain is compiled it may be used under 64-bit
Windows.
1. Set environment variables:
export TARGET=mips-elf
export PREFIX=[some directory]/gnu_mips/crosstools
export PATH=$PATH:$PREFIX/bin
1.5. If you're on 32-bit Windows using Cygwin:
export CFLAGS="-Wl,--heap,200000000,--stack,8000000"
2. Unpack everything:
bzip2 -dc binutils-2.21.tar.bz2 | tar xf -
bzip2 -dc gcc-4.7.1.tar.bz2 | tar xf -
bzip2 -dc mpfr-3.0.1.tar.bz2 | tar xf -
bzip2 -dc gmp-5.0.5.tar.bz2 | tar xf -
gzip -dc mpc-0.9.tar.gz | tar xf -
gzip -dc newlib-1.20.0.tar.gz | tar xf -
3. Move (or symlink) GCC dependency packages
mv gmp-5.0.5 gcc-4.7.1/gmp
mv mpc-0.9 gcc-4.7.1/mpc
mv mpfr-3.0.1 gcc-4.7.1/mpfr
mv newlib-1.20.0/newlib gcc-4.7.1/newlib
mv newlib-1.20.0/libgloss gcc-4.7.1/libgloss
4. Build binutils:
mkdir binutils-build && cd binutils-build
../binutils-2.21/configure --prefix=$PREFIX --target=$TARGET --disable-nls
make
make install
cd ..
5. Build gcc:
mkdir gcc-build && cd gcc-build
../gcc-4.7.1/configure --prefix=$PREFIX --target=$TARGET --with-newlib \
--without-headers --with-gnu-ld --with-gnu-as --disable-libssp \
--disable-nls --enable-c99 --enable-long-long --enable-languages=c
make
make install
cd ..
At this point you have a complete toolchain located at $PREFIX.
Go to most recent revision | Compare with Previous | Blame | View Log