ELF Specification


Table of Contents
I. Low Level System Information
1. Machine Interface
1.1. Processor Architecture
1.2. Data Representation
2. Function Calling Sequence
2.1. CPU Registers
2.2. Floating Point Registers
2.3. Stack Frame
2.4. Arguments
2.5. Return Values
3. Operating System Interface
3.1. Processor Execution Mode
3.2. Exception Interface
3.3. Signal Delivery
4. Process Initialization
4.1. Special Registers
4.2. Process Stack (on entry)
4.3. Auxiliary Vector
4.4. Environment
5. Coding Examples
5.1. Code Model Overview/Architecture Constraints
5.2. Position-Independent Function Prologue
5.3. Data Objects
5.4. Function Calls
5.5. Branching
6. C Stack Frame
6.1. Variable Argument List
6.2. Dynamic Allocation of Stack Space
7. Debug Information
II. Object Format
8. ELF Header
8.1. Machine Information
9. Sections
9.1. Special Sections
9.2. Linux Special Sections
9.3. Section Types
9.4. Section Attribute Flags
9.5. Special Section Types
10. Symbol Table
11. Relocation
11.1. Relocation Types
III. Program Loading and Dynamic Linking
12. Program Header
12.1. Types
12.2. Flags
13. Program Loading
14. Dynamic Linking
14.1. Dynamic Entries
14.2. Global Offset Table
14.3. Shared Object Dependencies
14.4. Function Addresses
14.5. Procedure Linkage Table
14.6. Initialization and Termination Functions
List of Figures
1-1. Structure Smaller Than A Word
1-2. No Padding
1-3. Internal and Tail Padding
1-4. Bit-Field Ranges
List of Tables
1-1. Scalar Types
8-1. Additional Processor-Specific Flags
9-1. ELF Special Sections
9-2. Additional Special Sections