The ELLCC project is supported by Pennington Software
|ELLCC is a project to using
Clang and the LLVM
compiler infrastructure. The primary emphasis of the ELLCC
project is to create an easy to use multi-target cross
compilation environment for embedded systems.
QEMU is used for cross-platform testing. Programs are built
for the target as a Linux user space program and run under
QEMU for testing purposes.
ELLCC is in a pre-release state. Some targets are farther
along than others. Not for the unhardy!
- A functional C/C++ compiler based on Clang (ecc)
- Multi-target support: ARM, i386, Microblaze,
Mips, Nios2, PowerPC, PowerPC64, Sparc
- Multi-OS support: Linux, Standalone, ...
- A complete test environment (described in Target Support) that
allows automatic unit and integration testing of the
run-time environment and complete executables.
- Support of a wide variety of target processors.
- ecc - The ELLCC C/C++ compiler. This is a single
executable with gcc compatible options that can generate
code for all the targets.
- The GNU binutils package. This package provides
assemblers for each of the targeted processors, a linker
and other utilities (objcopy, nm, etc.).
- libecc - The C standard library based on the musl standard
C library and the LLVM project's compiler-rt. This
package provides a complete run-time environment for
Linux with all the source code with a BSD or BSD-like
- The GDB
debugger. The provided
build scrips build a version of GDB that supports all
the targets with a single executable.
- The QEMU emulator provides a test execution
environment that can run code for each of the targets.
Linux user space programs and standalone or bare-metal
programs for all targets can be run, tested, and
debugged using the emulator.
 The standard C
library does not compile.
 The code generator is unfinished.