6.1. Introduction

The ARM Compiler toolchain use the ELF file format for object files and executables. This is a standard file format used by a large number of tools. A number of operating systems execute ELF files directly, but for some operating systems, the ELF file may need to be converted into another specific file format.


The ELF file format is described in the ELF specification. However, some ELF file features are ARM specific and this additional information can be found in the ARM ELF ABI documentation.

An ELF file contains a number of different sections. Each section holds a block of data of a specific type. The specific type could be program code or data, but it might also be non-program information, such as debug data.

The ELF file also includes data structures that describe the contents of the ELF file. These include an ELF header, a section header table and a program header table. Figure 6.1 shows a top-level view of an ELF file.

Figure 6.1. Basic view of an ELF file

To view this graphic, your browser must support the SVG format. Either install a browser with native support, or install an appropriate plugin such as Adobe SVG Viewer.


The section header table and program header table are normally placed at the end of the ELF file but this is not guaranteed by the ELF specification.

Copyright © 2010 ARM. All rights reserved.ARM DAI 0242A