
Can't build with ecc. Global register variable.
libos.a is a library interfacing the standard C library to the various operating systems supported by ELLCC.
This library contains processor specific compiler support functions. This library contains functions that are called by code generated by the compiler, but generally not called directly from user programs. For example, floating point functions for those processors for those processors without hardware floating point support.
Debugging with QEMU:
(gdb) set gnutarget elf32-powerpc
(gdb) set endian big
The target is assumed to be big endian
(gdb) set arch powerpc:e500
The target architecture is assumed to be powerpc:e500
(gdb) target remote :1234
Runs bzip2.
Runs bzip2.
Runs bzip2.
Need to update the code generator.
Runs bzip2.
Bzip2 runs.
QEMU does not have full signal handling support.
Runs bzip2.
Compiler hangs during inline asm code generation.
Command line tools only. Linux only?
/usr/share/doc/subversion-1.6.13/svn_load_dirs.pl -svn_username rich -svn_password **** -t svn-<current-rev> http://ellcc.org/svn/vendor/llvm current llvm
/usr/share/doc/subversion-1.6.13/svn_load_dirs.pl -svn_username rich -svn_password **** -t svn-<current-rev> http://ellcc.org/svn/vendor/clang current clang
The next commands should be executed above a checkout of the latest trunk llvm (where <last rev> is the last tagged import before svn-<current-rev> above.
svn merge http://ellcc.org/svn/vendor/llvm/svn-<last rev> http://ellcc.org/svn/vendor/llvm/current llvm
cd libecc/src
svn merge http://ellcc.org/svn/vendor/compiler-rt/svn-<last rev> http://ellcc.org/svn/vendor/compiler-rt/current llvm
cd llvm/tools
svn merge http://ellcc.org/svn/vendor/clang/svn-<last rev> http://ellcc.org/svn/vendor/clang/current clang
To find merge files to fix:
find . -name "*merge-*.r*" | grep -v svn
To get specific debug information: -mllvm -debug-only=mblaze-reg-info
Include directory search order
The compiler is usually invoked with a name like arm-linux-ecc. This naming convention specifies that target processor (target) and target operating system (os) as the first two components of the name. All include search paths are relative to the directory containing the tool (bin). The default include file search path is:
<bin>/../libecc/include/<target>/<os>
<bin>/../libecc/include/<target>
<bin>/../libecc/include/<os>
<bin>/../libecc/include
The lib/<target>/<os> directories contain operating system specific libraries and well as the default linker scripts, "target.ld".
The target.ld scripts are those provided after a build of binutils, slightly modified. They are found in gnu/obj/binutils/ld/ldscripts after the binutils build. We use the ".x" versions.