SPRAC71B February 2019 – October 2023
Toolchains typically include standard libraries for the language they support, such as C, C99, or C++. These libraries have compile-time components (header files) and runtime components (variables and functions). This section discusses header file and library compatibility.
Implementations that adhere to this ABI must conform to the C standard, and must produce object files that are compatible with those produced by another implementation.
During compilation, the compiler and the library header files are required to be from the same implementation. During linking, the linker and library are required to be from the same implementation, which may be different from the implementation of the compiler. The C28x EABI further requires that modules compiled using the header files from one implementation are compatible with the library from another implementation. This is called "header file compatibility." This requirement imposes additional limitations on the library header files beyond what is specified in the C standard.
The C28x is designed based on the ARM EABI. You can read the C Library ABI for the ARM Architecture document on the ARM Infocenter website for background and comments about how the standard C library should be implemented for EABI. The details that apply to ARM do not necessarily apply for C28x. See the chapter on "The C Library Section by Section" in that document.