SPRAB89A September 2011 – March 2014
All of the exception handling tables are stored in two sections. The EXIDX table is stored in a section called .C6000.exidx with type SHT_C6000_UNWIND. The linker must combine all the input .C6000.exidx sections into one contiguous .C6000.exidx output section, maintaining the same relative order as the code sections they refer to. In other words, the entries in the EXIDX table are sorted by address. Each EXIDX section in a relocatable file must have the SHF_LINK_ORDER flag set to indicate this requirement.
The EXTAB is stored in a section called .C6000.extab, with type SHT_PROGBITS. The EXTAB is not required to be contiguous and there is no ordering requirement.
Exception tables can be linked anywhere in memory. For dynamically linked modules, the tables should be placed in the same segment as the code in order to facilitate position independence.