NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

EABI Support in C6000 Compiler

From Texas Instruments Wiki
Jump to: navigation, search

Introduction[edit]

This page is the home for EABI information about the C6000 Compiler.

Background[edit]

The term ABI stands for Application Binary Interface. The ABI specifies how a compiler and linker should handle various things like register assignment, calling convention, type sizes, and object file format. The conventions specified by an ABI make it possible for separately compiled object files and libraries to be linked together into a cohesive executable.

An ABI named EABI (ELF) was introduced in 2010. Prior to that, the compiler only supported a single ABI, and thus it had no name. It is now termed COFF ABI. The main (but not only) difference between COFF ABI and EABI is the object file format. COFF ABI uses COFF, and EABI uses ELF. For more background on those object file formats, please see the wiki article A Brief History of TI Object File Formats.

The Technical Detail[edit]

All Code Must Be EABI[edit]

It is impossible to mix COFF ABI code and EABI code. Thus all code in an EABI application, including each and every library, must be built for EABI. If you want to adopt EABI in your system, your first step is to insure that all the libraries you plan to use have EABI versions available.

Version Information[edit]

The first version of the C6000 compiler to support EABI is version 7.2.0. The last version to support COFF ABI is version 7.4.24. 7 years elapsed between these releases. As of this writing, there are no plans for additional releases that support COFF ABI.

Other EABI Collateral[edit]

  • C6000 EABI Migration describes how to port code from C6000 COFF ABI to C6000 EABI.
  • C6000 Dynamic Linking describes how to link so you can add code to a running system.
  • C6000 Dynamic Loader describes the loader which actually loads code to a running system.
  • C6000 Linux Support - Under Construction describes how to use C6000 TI CGT in combination with C6000 GCC tools to build Linux dynamic applications and shared objects
E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article EABI Support in C6000 Compiler here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article EABI Support in C6000 Compiler here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article EABI Support in C6000 Compiler here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article EABI Support in C6000 Compiler here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article EABI Support in C6000 Compiler here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article EABI Support in C6000 Compiler here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article EABI Support in C6000 Compiler here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article EABI Support in C6000 Compiler here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article EABI Support in C6000 Compiler here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity