ELF-64 Object File Format
Version 1.5 Draft 2
May 27, 1998
This document describes the current HP/Intel definition of the ELF-64 object
file format. It is, for the most part, a simple extension of the ELF-32 format as
defined originally by AT&T, although some fields have been rearranged to keep
all fields naturally aligned without any internal padding in the structures.
Additional detail about the ELF-32 format may be obtained from any of the
following sources:
• Unix System V Release 4 Programmer’s Guide: ANSI C and
Programming Support Tools
• System V Application Binary Interface, Revised Edition
• System V Interface Definition, Third Edition
• Tool Interface Standards: Portable Formats Specification, Version 1.0
The processor-specific details of the ELF formats are covered in separate
supplements. As much as possible, processor-specific definitions apply equally
to ELF-32 and ELF-64.
Many implementations of ELF also include symbolic debug information in the
DWARF format. We regard the choice of debug format as a separate issue, and
do not include debug information in this specification.
1. Overview of an ELF file
An ELF object file consists of the following parts:
• File header, which must appear at the beginning of the file.
• Section table, required for relocatable files, and optional for loadable files.
• Program header table, required for loadable files, and optional for
relocatable files. This table describes the loadable segments and other
data structures required for loading a program or dynamically-linked
library in preparation for execution.
• Contents of the sections or segments, including loadable data, relocations,
and string and symbol tables.