ELLCC

ELLCC Installation

Home
Blog
News
Documentation
Installation
Target Support
Bug Database
Source Repository
Contact
  1. ELLCC Installation
    1. Prerequisites
    2. Get the ELLCC Sources
    3. Building ELLCC
The installation procedure for ELLCC is a bit complicated at the moment. There are currently no binary downloads available, you have to build from source. Having said that, here are step by step instructions that describe how to build ELLCC under Linux.

It takes a long time to build ELLCC. It helps to have a system with at least 3GB of RAM to speed up the LLVM build.

Prerequisites

 An ELLCC build requires the following packages to be installed:
  • A C/C++ compiler
  • Subversion

Get the ELLCC Sources

This will take a while since it gets all of LLVM, Clang, binutils, GDB, and QEMU.

[~] main% svn co http://ellcc.org/svn/ellcc/trunk ellcc

Building ELLCC

[~] main% cd ellcc
[~/ellcc] main%
[~/ellcc] main% ./configure
[~/ellcc] main% make
[~/ellcc] main% make install

If everything has been successful up to this point, you have built ecc, binutils, GDB and QEMU for all targets. All the binaries created by the build are in the bin subdirectory of the build directory, i.e. in ~/ellcc/bin in my example. The bin directory should look something like this:

[~/ellcc] main% ls bin
arm-elf-as*     ecc-ld*           llvmc*              opt*              qemu-ppc64abi32*
bugpoint*       ecc-nm*           llvm-config*        ppc64-elf-as*     qemu-sparc*
c-index-test*   ecc-objcopy*      llvm-diff*          ppc-elf-as*       qemu-system-arm*
ecc*            ecc-objdump*      llvm-dis*           qemu*             qemu-system-microblaze*
ecc++@          ecc-ranlib*       llvm-extract*       qemu-arm*         qemu-system-mips*
ecc-addr2line*  ecc-readelf*      llvm-ld*            qemu-armeb*       qemu-system-mipsel*
ecc-ar*         ecc-size*         llvm-link*          qemu-i386*        qemu-system-ppc*
ecc-as*         ecc-strings*      llvm-mc*            qemu-img*         qemu-system-ppc64*
ecc-c++filt*    ecc-strip*        llvm-nm*            qemu-io*          qemu-system-sparc*
ecc-elfedit*    i386-elf-as*      llvm-prof*          qemu-microblaze*  qemu-system-x86_64*
ecc-embedspu*   llc*              llvm-ranlib*        qemu-mips*        qemu-x86_64*
ecc-gdb*        lli*              llvm-stub*          qemu-mipsel*      sparc-elf-as*
ecc-gdbserver*  llvm-ar*          macho-dump*         qemu-nbd*         tblgen*
ecc-gdbtui*     llvm-as*          microblaze-elf-as*  qemu-ppc*         x86_64-elf-as*
ecc-gprof*      llvm-bcanalyzer*  mips-elf-as*        qemu-ppc64*


You may want to put the bin directory in your PATH, but it is not required at this point. ecc and e++ are the hosted C and C++ compilers: They use the system header files in /usr/include  and use the system cc and c++ libraries to do the final program link. This means you can use ecc and e++ to compile programs that run natively on your system.

We will build target libraries and set up for cross compilation  in Setting Up Target Support.