Linux Standard Base Specification for the IA32 Architecture 1.3

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Portions of the text were taken from other copyrighted documents in accordance with the respective licenses of those documents.

Linux is a trademark of Linus Torvalds.

UNIX a registered trademark of the Open Group in the United States and other countries.

LSB is a trademark of the Free Standards Group in the USA and other countries.

Intel386 and Itanium are trademarks of Intel Corporation.

OpenGL is a registered trademark of Silicon Graphics, Inc.


Table of Contents
I. Introduction
1. Introduction
Introduction
Purpose
Related Standards
Relevant Libraries
How to Use this Standard
Definitions
Terminology
II. Low Level System Information
2. Machine Interface
Processor Architecture
Data Representation
3. Function Calling Sequence
CPU Registers
Floating Point Registers
Stack Frame
Arguments
Return Values
4. Operating System Interface
Virtual Address Space
Processor Execution Mode
Exception Interface
Signal Delivery
5. Process Initialization
Special Registers
Process Stack (on entry)
Auxilliary Vectors
Environment
6. Coding Examples
Code Model Overview/Architecture Constraints
Position-Independent Fucntion Prologue
Data Objects
Function Calls
Branching
7. C Stack Frame
Variable Argument List
Dynamic Allocation of Stack Space
8. Debug Information
III. Object Format
9. ELF Header
Machine Information
10. Special Sections
Special Sections
11. Symbol Table
12. Relocation
Relocation Types
IV. Program Loading and Dynamic Linking
13. Program Header
Types
Flags
14. Program Loading
15. Dynamic Linking
Program Interpreter/Dynamic Linker
Dynamic Section
Global Offset Table
Shared Object Dependencies
Function Addresses
Procedure Linkage Table
Initialization and Termination Functions
V. Base Libraries
16. Libraries
Interfaces for libc
Data Definitions for libc
Interfaces Definitions for libc
Interfaces for libm
Data Definitions for libm
Interfaces for libpthread
Data Definitions for libpthread
Interfaces for libdl
Data Definitions for libdl
Interfaces for libcrypt
Data Definitions for libcrypt
VI. Package Format and Installation
17. Software Installation
Package Architecture Considerations
A. Alphabetical Listing of Interfaces
libc
B. GNU Free Documentation License
PREAMBLE
APPLICABILITY AND DEFINITIONS
VERBATIM COPYING
COPYING IN QUANTITY
MODIFICATIONS
COMBINING DOCUMENTS
COLLECTIONS OF DOCUMENTS
AGGREGATION WITH INDEPENDENT WORKS
TRANSLATION
TERMINATION
FUTURE REVISIONS OF THIS LICENSE
How to use this License for your documents
List of Tables
1-1. Related Standards
1-2. Standard Library Names
2-1. Scalar Types
10-1. ELF Special Sections
10-2. Additional Special Sections
16-1. libc Definition
16-2. libc - RPC Function Interfaces
16-3. libc - System Calls Function Interfaces
16-4. libc - System Calls Deprecated Function Interfaces
16-5. libc - Standard I/O Function Interfaces
16-6. libc - Standard I/O Deprecated Function Interfaces
16-7. libc - Standard I/O Data Interfaces
16-8. libc - Signal Handling Function Interfaces
16-9. libc - Signal Handling Data Interfaces
16-10. libc - Localization Functions Function Interfaces
16-11. libc - Localization Functions Deprecated Function Interfaces
16-12. libc - Localization Functions Data Interfaces
16-13. libc - Socket Interface Function Interfaces
16-14. libc - Wide Characters Function Interfaces
16-15. libc - String Functions Function Interfaces
16-16. libc - IPC Functions Function Interfaces
16-17. libc - Regular Expressions Function Interfaces
16-18. libc - Regular Expressions Data Interfaces
16-19. libc - Character Type Functions Function Interfaces
16-20. libc - Character Type Functions Data Interfaces
16-21. libc - Time Manipulation Function Interfaces
16-22. libc - Time Manipulation Data Interfaces
16-23. libc - Terminal Interface Functions Function Interfaces
16-24. libc - System Database Interface Function Interfaces
16-25. libc - System Database Interface Deprecated Function Interfaces
16-26. libc - Language Support Function Interfaces
16-27. libc - Large File Support Function Interfaces
16-28. libc - Large File Support Deprecated Function Interfaces
16-29. libc - Standard Library Function Interfaces
16-30. libc - Standard Library Data Interfaces
16-31. libm Definition
16-32. libm - Math Function Interfaces
16-33. libm - Math Data Interfaces
16-34. libpthread Definition
16-35. libpthread - Posix Threads Function Interfaces
16-36. libdl Definition
16-37. libcrypt Definition
A-1. libc Function Interfaces