Compilers

The goal of the project is to support both a full GCC port and the TI compiler. The user should be able to select whichever compiler is appropriate for each application and each shared library.

When all the planned GCC optimization and features are in place, it is envisioned that most developers will use GCC for the majority of the software. However, there may still be performance advantages to using the TI compiler, especially for signal processing intensive code. In these cases the developer can use the TI compiler on that application or shared library and still interwork with the rest of the GCC compiled system via the C ABI (and maybe the C++ ABI).

Some developers may choose to use the TI compiler for the whole system. This is supported today but requires some patches to the kernel, libraries, and applications. These patches are to some core architecture independent code. These patches will not required for GCC and will need to go away as the source goes upstream. We hope to maintain the capability to employ the TI compiler for everything but there may be a period where GCC is the only supported compiler for some components. When the TI compiler supports the additional GCC language extensions, support can resume.

There are actually three flavors of toolchains:
 * GCC & binutils
 * all GCC language extensions
 * GCC command line options
 * Stock TI Compiler
 * Many but not all GCC language extensions
 * TI command line options
 * TI Compiler with the "GCC compatibility" wrapper
 * A few more GCC language extensions
 * most used subset of GCC comand line options

The only compiler that can be used today is the TI Compiler+wrapper available from this site and the GCC tool chain release 4.5-97 from code sourcery []. The TI compiler version must be the version specified for each release. See the appropriate release page.

Note: The GCC compatibility wrapper for the TI compiler does not use any of the GCC compiler itself and does not have anything to do with the internal data formats used between stages of the GCC compiler. For this reason we believe the TI Compiler+GCC wrapper is an "eligible compilation process" as defined by the GPLv3 runtime exception. The wrapper does currently use the gcc front end driver program and C preprocessor.