<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body text="#000000" bgcolor="#FFFFFF">
A new binary snapshot of the ELLCC cross compilation tool chain<br>
(<a class="moz-txt-link-freetext" href="http://ellcc.org">http://ellcc.org</a>) is available from <a class="moz-txt-link-freetext" href="ftp://ellcc.org/pub">ftp://ellcc.org/pub</a>.<br>
<br>
The tool chain is built around clang/LLVM, libc++ and libc++abi,<br>
the musl standard C library, compiler-rt, and GNU binutils and gdb.<br>
<br>
This version uses configuration scripts to tell the compiler how<br>
to compile and link programs.<br>
<br>
An example from ~/ellcc/libecc/config:<br>
<br>
cat ~/ellcc/libecc/config/arm-linux-engeabi:<br>
<br>
based_on:<br>
arm-ellcc-linux<br>
compiler:<br>
options:<br>
- -target arm-ellcc-linux<br>
- -march=armv7a<br>
- -mfpu=none<br>
- -mfloat-abi=softfp<br>
linker:<br>
static_crt1: $R/lib/arm-linux-engeabi/crt1.o<br>
dynamic_crt1: $R/lib/arm-linux-engeabi/Scrt1.o<br>
crtbegin: $R/lib/arm-linux-engeabi/crtbegin.o<br>
crtend: $R/lib/arm-linux-engeabi/crtend.o<br>
library_paths:<br>
- -L $R/lib/arm-linux-engeabi:<br>
<br>
An example command line to compile for a specific target:<br>
<br>
~/ellcc/bin/ecc -target arm-linux-engeabi -o hello hello.c<br>
<br>
From the README.txt file:<br>
<br>
The files in this directory contain pre-compiled versions of the
ELLCC<br>
cross compiler tool chain. Each tarball is meant to run on a
specific<br>
target Linux system as indicated by the name, e.g. ellcc-arm-... are<br>
executables that are supposed to run on an little endian ARM Linux
box.<br>
<br>
<pre> -target Endian Float</pre>
<pre>armeb-linux-engeabi Big Soft</pre>
<pre>armeb-linux-engeabihf Big Hard</pre>
<pre>arm-linux-engeabi Little Soft</pre>
<pre>arm-linux-engeabihf Little Hard</pre>
<pre>i386-linux-eng Little Hard</pre>
<pre>mipsel-linux-eng Little Hard</pre>
<pre>mipsel-linux-engsf Little Soft</pre>
<pre>mips-linux-eng Big Hard</pre>
<pre>mips-linux-engsf Big Soft</pre>
<pre>ppc-linux-eng Big Hard</pre>
<pre>x86_64-linux-eng Little Hard</pre>
<br>
All of the executables in these tarballs are statically linked, so
they<br>
should run on any reasonably recent Linux box.<br>
<br>
Tarball contents:<br>
C/C++ compiler (ecc, ecc++)<br>
Assemblers for all targets<br>
GNU binutils compiled to support all targets.<br>
GDB compiled to support all the targets.<br>
<br>
All of the tarballs contain header files and runtime libraries for
all<br>
the targets so you should be able to build for any one of the
targets [1].<br>
<br>
These tarballs have not been tested, except for the arm, i386 and
x86_64<br>
versions, because I don't have access to Linux boxes running on the
other<br>
targets yet. I would welcome feedback on how they work for you.<br>
<br>
To use the tarball:<br>
tar xvfpz <path to your tarball><br>
<br>
This will create a directory called "ellcc" that will have all the<br>
files you need to use ELLCC on the target system.<br>
<br>
If you have any problems, please post on the ELLCC forum:<br>
<a class="moz-txt-link-freetext" href="http://ellcc.org/blog/?forum=forum">http://ellcc.org/blog/?forum=forum</a><br>
<br>
Please visit <a class="moz-txt-link-freetext" href="http://ellcc.org">http://ellcc.org</a> for more information.<br>
<br>
Have fun!<br>
<br>
-Rich<br>
<br>
[1]: The ARM versions of the executables currently can only target
ARM<br>
processors because the ecc compiler became too large to be
statically<br>
linked when all processors were supported.
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
</body>
</html>