Pre-compiled ELLCC Linux Binaries Now Available

Pre-compiled ELLCC Linux binaries are now available for download via FTP from There are individual tarballs for ARM, Mips, PowerPC, and x86 hosts.

9 thoughts on “Pre-compiled ELLCC Linux Binaries Now Available

  1. Gordon

    Hi Rich, I’m trying to compile to
    Linux version (gcc version 4.4.4 (4.4.4_09.06.2010) ) #2 PREEMPT Tue Feb 19 11:17:33 PST 2013
    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
    CPU: VIVT data cache, VIVT instruction cache
    Machine: Freescale MX28EVK board

    However, I am getting an illegal instruction message:

    # ./helloarm9.o
    Illegal instruction

    I note the documentation says:


    The support for ARM (specifically ARMv6 and ARMv7) is considered stable on Darwin (iOS): it has been tested to correctly compile many large C, C++, Objective-C, and Objective-C++ codebases. ecc only supports a limited number of ARM architectures. It does not yet fully support ARMv5, for example.

    Is the support for ARM v5 still patchy?

    This is just a helloworld program…

    1. rich Post author

      Hi Gordon,

      The problem with QEMU is that it is very difficult to do a static build and I wanted the binary tarballs to be completely static so I wouldn’t have to worry about shared library version mismatches.


  2. Ismail Dönmez

    ARM binaries seems to be crashing on ARMv7 Linux (BeagleBone Black + Debian Jessie)

    (gdb) file ./ecc
    Reading symbols from /havana/ellcc/bin/ecc…done.
    (gdb) run
    Starting program: /havana/ellcc/bin/./ecc

    Program received signal SIGSEGV, Segmentation fault.
    0x01cf2cbc in __init_tls (aux=0xbea001f4) at src/env/__init_tls.c:73
    73 src/env/__init_tls.c: No such file or directory.
    (gdb) bt
    #0 0x01cf2cbc in __init_tls (aux=0xbea001f4) at src/env/__init_tls.c:73
    #1 0x01cd68c0 in __init_libc (envp=0xbea002ec, pn=0xbea00405 “/havana/ellcc/bin/./ecc”) at src/env/__libc_start_main.c:36
    #2 0x01cd6920 in __libc_start_main (main=0x1ee64 , argc=1, argv=0xbea002e4) at src/env/__libc_start_main.c:45
    #3 0x00019888 in _start ()
    (gdb) frame 0
    #0 0x01cf2cbc in __init_tls (aux=0xbea001f4) at src/env/__init_tls.c:73
    73 in src/env/__init_tls.c

    1. rich Post author

      Hi Ismail,

      I have the same problem running the ARM binaries on Fedora 20 running under QEMU. I think I know what the problem is and hope to have it fixed soon.


    2. rich Post author

      I have a temporary fix for the ARM SYSSEGV problem. I put the binaries up on the ftp site. I can compile helloarm.c now.


      1. Gordon

        Hi Rich, I downloaded the latest binaries (20th Feb) and still have issues with linux compatibility:

        eagle-000800{/data/ellcc/bin}156# ls
        FileCheck* ecc-c++filt* ecc-ld.bfd* ecc-size* ppc-elf-as*
        arm-elf-as* ecc-elfedit* ecc-nm* ecc-strings* ppc64-elf-as*
        ecc* ecc-embedspu* ecc-objcopy* ecc-strip* sparc-elf-as*
        ecc++@ ecc-gdb* ecc-objdump* i386-elf-as* x86_64-elf-as*
        ecc-addr2line* ecc-gprof* ecc-ranlib* microblaze-elf-as*
        ecc-ar* ecc-ld* ecc-readelf* mips-elf-as*
        eagle-000800{/data/ellcc/bin}157# ./ecc++ version
        Illegal instruction
        eagle-000800{/data/ellcc/bin}158# ./ecc –version
        Illegal instruction
        eagle-000800{/data/ellcc/bin}159# ./FileCheck
        Illegal instruction

        Any clues on where I should look?

  3. Gordon

    Hi Rich, concerning the static builds on ARM, I understand static builds should work, but I’m not sure where to start trying to get them to run.

    I suspect this might be a similar problem to Isamil’s segmentation fault.

    are there more command line options that might help? Or is there a deeper incompatibility issue? – I note there is a CLANG statement about ARMv5 not being fully supported (hoping that is an old comment…)



Leave a Reply

Your email address will not be published.