Pre-compiled ELLCC Linux binaries are now available for download via FTP from ftp://ellcc.org/pub. There are individual tarballs for ARM, Mips, PowerPC, and x86 hosts.
Pre-compiled ELLCC Linux binaries are now available for download via FTP from ftp://ellcc.org/pub. There are individual tarballs for ARM, Mips, PowerPC, and x86 hosts.
Hi Rich, I’m trying to compile to
Linux version 2.6.35.3-571-gcca29a0 (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:
ARM
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…
Request, can you also add the qemu build to these binaries?
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.
-Rich
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
(gdb)
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.
-Rich
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.
-Rich
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?
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…)
Gordon
Hi Rich, I found the following ARM environment that might give you an arm binary environment you can use for testing armv5te targets.
(I used the squeeze environment and its great)
http://people.debian.org/~aurel32/qemu/armel/