Home
Blog
News
Demo
Documentation
Download
Status
Installation
Target Support
Bug Database
Source
Repository
Contact
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!
Goals
- A functional C/C++ compiler based on Clang (ecc)
- Multi-target support: ARM, i386, Microblaze,
Mips, Nios2[2], PowerPC, PowerPC64, Sparc[1]
and X86_64
- 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.
Components
- ecc - The ELLCC C/C++ compiler. This is a single
executable with gcc compatible options that can generate
code for all the targets.
- binutils
- 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
license.
- 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.
[1] The standard C
library does not compile.
[2] The code generator is unfinished.
|