<!-- index.php3 -->
<?php
	$head = "LARTware - Compiler tools";
	$title = $head;
	$thispage = "compiler";
	require("table-top.php3");
	require("sidebar.php3");
	require("table-mid.php3");
?>

<h2>C/C++ cross-compiler for ArmLinux</h2>

<p>
If you have problems building your own cross-compiler for ArmLinux,
you can download a tarball with a precompiled C/C++ cross-compiler
from this page. The compiler was built using
<a href="http://www.aleph1.co.uk/armlinux/docs/toolchain/">Chris
Rutter's description</a>.

<?php
/* MJ 24 feb 2004: deze link werkt niet meer
	<a href="http://www.inkvine.fluff.org/~chris/arm-tools.html">Chris
	Rutter's description</a>.
*/
?>

<p>
This compiler was built on an i386 <a href="http://www.debian.org/">Debian</a>
GNU/Linux 2.1 system, which uses glibc-2.0.7. It works for us, YMMV.


<h3>Source files</h3>

<p>
The following sources were used to build this cross-compiler:

<ul>
<li><a href="ftp://ftp.varesearch.com/pub/support/hjl/binutils/">binutils-2.9.5.0.22.tar.bz2</a>
<li><a href="ftp://ftp.kernel.org/pub/linux/kernel/v2.2/linux-2.2.13.tar.gz">linux-2.2.13.tar.gz</a>*
<li><a href="ftp://ftp.arm.linux.org.uk/pub/armlinux/source/kernel-patches/v2.2/patch-2.2.13-rmk2.gz">patch-2.2.13-rmk2.gz</a>
<li><a href="ftp://ftp.netwinder.org/users/n/nico/diff-2.2.13-rmk2-np14.gz">diff-2.2.13-rmk2-np14.gz</a>
<li><a href="ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.2.tar.gz">gcc-2.95.2.tar.gz</a>*
<li><a href="ftp://ftp.netwinder.org/users/p/philb/gcc-2.95.2-diff-991022.gz">gcc-2.95.2-diff-991022.gz</a>
<li><a href="http://www.inkvine.fluff.org/~chris/ftp/gcc-fold-const.patch">chris-rutter-patch-for-gcc-2.95.2</a>
<li><a href="ftp://ftp.gnu.org/gnu/glibc/glibc-2.1.2.tar.gz">glibc-2.1.2.tar.gz</a>*
<li><a href="ftp://ftp.funet.fi/pub/gnu/funet/glibc-crypt-2.1.tar.gz">glibc-crypt-2.1.tar.gz</a>*
<li><a href="ftp://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.1.2.tar.gz">glibc-linuxthreads-2.1.2.tar.gz</a>*
</ul>

<p>
Links marked with a * have mirrors worldwide. Please use them.



<h3>Download</h3>

<p>
Get your copy of the cross-compiler here:

<?php	dlist("arm-linux-cross*"); ?>

<p>
If you have problems downloading the complete 19 megabyte, use a download
tool that supports continue mode on http connections.
<a href="ftp://ftp.gnu.org/gnu/wget/">GNU wget</a> can do the trick.



<h3>Installing the tarball</h3>

<p>
As gcc has hardcoded paths in it, you <strong>have</strong> to install it at the
same place as it is on my system.

<p>
How to install:

<?php	hrow("");
	lrow('<pre>
mkdir /data
mkdir /data/lart
cd /data/lart
bzip2 -dc arm-linux-cross.tar.bz2 | tar xvf -
</pre>', "", "");
	erow();
?>



<h3>Using the cross-compiler</h3>

<p>
Simply add <tt>/data/lart/cross/bin</tt> to your path and invoke the
compiler as <tt>arm-linux-gcc</tt> (for the C compiler) or 
<tt>arm-linux-g++</tt> (for the C++ compiler). All other binutils are
also available, have a look in <tt>/data/lart/cross/bin</tt>.



<h3>Known bugs</h3>

<p>
Compiling linux-2.2.xx kernels with this compiler sometimes fails (read: the
kernel crashes at boot time) although linux-2.2.14 and newer don't seem to
suffer from this bug. Linux-2.3.xx kernels can be compiled without risk with
this compiler; that is: if you take the latest version of the kernel plus
the ARM patch set.


<h3>New compilers</h3>

<p>
Newer compilers are available from
<a href="ftp://ftp.arm.linux.org.uk/pub/linux/arm/toolchain/">the arm-linux ftp site</a> and are mirrored over here:

<?php   dlist("cross-*"); ?>

<p>
Make sure you read the
<a href="ftp://ftp.arm.linux.org.uk/pub/linux/arm/toolchain/README">README</a> file.



<?php   require("table-btm.php3"); ?>
