Difference between revisions of "Toolchains"

From LinuxMIPS
Jump to: navigation, search
(MIPS SDE)
(removed Linux4.BE SDK)
Line 1: Line 1:
A toolchain is a complete collection of compiler and binutils programs and can be run either as a cross-compiler, or native on the target (if performance allows).
 
 
== MIPS SDE ==
 
MIPS Technologies UK maintains their own source tree
 
for the toolchain components.  SDE combines all necessary GNU tools,
 
is infrequently resynchronized with mainstream GNU releases (which
 
inevitably have bugs for less widely used architectures such as MIPS)
 
and focuses on supporting the full range of ISAs, ASEs and cores, as
 
well as providing the most reliable, best-performing compiler for the
 
largest range of MIPS CPUs. See [[MIPS SDE Installation]].
 
 
== Maciej W. Rozycki ==
 
A stable set of toolchain components provided by Maciej can be downloaded from  ftp://ftp3.ds.pg.gda.pl/pub/macro/ or the mirror at ftp://ftp.rfc822.org/pub/mirror/ftp3.ds.pg.gda.pl/people/macro/. This is based on gcc 2.95.3 (patched) and up-to-date binutils.
 
 
 
== Dan Kegel ==
 
== Dan Kegel ==
 
Dan Kegel has a page at http://kegel.com/crosstool/ with a nice script to automatize the build procedure. Crosstool can only generate toolchains that use the GNU C Library, support for the smaller C Library http://www.uclibc.org uClibc might be added in the future.
 
Dan Kegel has a page at http://kegel.com/crosstool/ with a nice script to automatize the build procedure. Crosstool can only generate toolchains that use the GNU C Library, support for the smaller C Library http://www.uclibc.org uClibc might be added in the future.
 
== H.J.Lu ==
 
H.J.Lu distributes a toolchain as part of his [[Distributions#RedHat_7.1_based | Red Hat 7.1 port]]. It can be found at ftp://ftp.linux-mips.org/pub/linux/mips/redhat/7.1/ . This toolchain-20020423-1.rpm is based on the RedHat's [[GCC]] 2.96, binutils 2.13 and glibc 2.2.5 .
 
 
== uClibc Toolchain and Buildroot ==
 
[http://www.uclibc.org/ uClibc] developers provide [http://www.uclibc.org/toolchains.html tools to generate toolchains and root filesystems] with the uClibc standard C library.
 
 
The [http://www.uclibc.org/toolchains.html Toolchain] tool allows to generate a toolchain for a variety of architectures, including MIPS and MIPSel.
 
 
The [http://buildroot.uclibc.org/ Buildroot] tool allows to generate both a toolchain and a root filesystem for a variety of architectures, including MIPS and MIPSel. Using a configuration tool (similar to the one used for the Linux Kernel), you can select compiler version, binutils version, and all softwares that should be included in the root filesystem. Then the Makefiles will automatically download, configure, compile, install and generate the toolchain and the root filesystem image.
 
 
== OpenEmbedded ==
 
The OpenEmbedded meta distribution also includes an automatic build of a full cross-toolchain for it's target architecture.
 
http://www.openembedded.org
 
 
== Linux4.BE SDK ==
 
provides sources and precompiled toolcain binaries for Linux and [http://www.cygwin.com/ Win32/Cygwin] hosts:
 
http://www.linux4.be/~jal0/
 
 
== DENX ELDK ==
 
[http://www.denx.de/ DENX Software Engineering] provides the ELDK (Embedded Linux Development Kit), which includes both cross development and native tools for big and little endian MIPS processors (also for ARM and PowerPC). It can be [http://www.denx.de/twiki/bin/view/DULG/ELDKAvailability downloaded] for FREE.
 
See http://www.denx.de/twiki/bin/view/DULG/ELDK
 
 
== Commercial Toolchains ==
 
All commercial Linux/MIPS [[distributions]] come with appropriate toolchain deliverables.
 
 
== A Quick and Dirty Cross-Compiling Toolchain ==
 
You're adverse to using someone else's toolchains, and are like me and cannot remember the commands to build a toolchain yourself no matter how hard you try, here is a rough procedure as to how to build a minimal toolchain with binutils-2.16.1 and gcc-3.4.4. This is assuming your buildhost is i386-linux.
 
 
1. Download the binutils and gcc sources from http://www.gnu.org<BR>
 
2. Create the directory where you want to store your toolchain. I recommend /opt/cross.<BR>
 
3. Extract binutils-2.16.1 and cd to the directory where it was extracted to<BR>
 
4. Run the following command to configure and make binutils:<BR>
 
./configure --target=mips64-unknown-linux-gnu --host=i386-unknown-linux-gnu --prefix=/opt/cross --enable-shared --enable-64-bit-bfd && make<BR>
 
5. Run make install to install binutils to /opt/cross<BR>
 
6. Now extract gcc-3.4.4 and run the following command to configure and make it:<BR>
 
AR=mips64-unknown-linux-gnu-ar RANLIB=mips64-unknown-linux-gnu-ranlib ./configure --prefix=/opt/cross --target=mips64-unknown-linux-gnu --host=i386-unknown-linux-gnu --with-newlib --disable-shared --disable-threads --enable-languages=c && make<BR>
 
7. Run make install to install gcc to /opt/cross<BR>
 
 
Now, whenever you are going to use your cross compiling toolchain, append /opt/cross/bin to your path.
 
 
== See also ==
 
* [[GCC]] The Linux/MIPS GCC page
 
* Bradley D. LaRonde: [http://laronde.org/~brad/mips/mips-cross-toolchain/ Building a Modern MIPS Cross-Toolchain for Linux]
 

Revision as of 11:12, 10 August 2005

Dan Kegel

Dan Kegel has a page at http://kegel.com/crosstool/ with a nice script to automatize the build procedure. Crosstool can only generate toolchains that use the GNU C Library, support for the smaller C Library http://www.uclibc.org uClibc might be added in the future.