Linux Standard Base Core Specification for IA32 4.1
Total Page:16
File Type:pdf, Size:1020Kb
Linux Standard Base Core Specification for IA32 4.1 Linux Standard Base Core Specification for IA32 4.1 ISO/IEC 23360 Part 2:2010(E) Copyright © 2010 Linux Foundation 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 may be copyrighted by the following parties: • The Regents of the University of California • Free Software Foundation • Ian F. Darwin • Paul Vixie • BSDI (now Wind River) • Andrew G Morgan • Jean-loup Gailly and Mark Adler • Massachusetts Institute of Technology • Apple Inc. • Easy Software Products • artofcode LLC • Till Kamppeter • Manfred Wassman • Python Software Foundation These excerpts are being used in accordance with their respective licenses. Linux is the registered trademark of Linus Torvalds in the U.S. and other countries. UNIX is a registered trademark of The Open Group. LSB is a trademark of the Linux Foundation in the United States and other countries. AMD is a trademark of Advanced Micro Devices, Inc. Intel and Itanium are registered trademarks and Intel386 is a trademark of Intel Corporation. PowerPC is a registered trademark and PowerPC Architecture is a trademark of the IBM Corporation. S/390 is a registered trademark of the IBM Corporation. OpenGL is a registered trademark of Silicon Graphics, Inc. ISO/IEC 23360 Part 2:2010(E) Contents I Introductory Elements ...............................................................................................1 1 Scope....................................................................................................................1 1.1 General....................................................................................................1 1.2 Module Specific Scope..........................................................................1 2 References...........................................................................................................2 2.1 Normative References ..........................................................................2 2.2 Informative References/Bibliography ...............................................4 3 Requirements .....................................................................................................7 3.1 Relevant Libraries .................................................................................7 3.2 LSB Implementation Conformance ....................................................7 3.3 LSB Application Conformance............................................................8 4 Terms and Definitions.....................................................................................10 5 Documentation Conventions .........................................................................12 II Executable and Linking Format (ELF).................................................................13 6 Introduction......................................................................................................14 7 Low Level System Information......................................................................15 7.1 Machine Interface................................................................................15 7.2 Function Calling Sequence.................................................................16 7.3 Operating System Interface ...............................................................17 7.4 Process Initialization...........................................................................18 7.5 Coding Examples ................................................................................18 7.6 C Stack Frame ......................................................................................19 7.7 Debug Information .............................................................................20 8 Object Format...................................................................................................21 8.1 Introduction .........................................................................................21 8.2 ELF Header ..........................................................................................21 8.3 Special Sections....................................................................................21 8.4 Symbol Table .......................................................................................22 8.5 Relocation.............................................................................................22 9 Program Loading and Dynamic Linking .....................................................23 9.1 Introduction .........................................................................................23 9.2 Program Header..................................................................................23 9.3 Program Loading ................................................................................23 9.4 Dynamic Linking.................................................................................23 III Base Libraries .........................................................................................................25 10 Libraries ..........................................................................................................26 10.1 Program Interpreter/Dynamic Linker...........................................26 10.2 Interfaces for libc...............................................................................26 10.3 Data Definitions for libc ...................................................................45 10.4 Interfaces for libm .............................................................................63 10.5 Data Definitions for libm..................................................................68 10.6 Interface Definitions for libm ..........................................................69 10.7 Interfaces for libpthread...................................................................70 10.8 Data Definitions for libpthread .......................................................73 10.9 Interfaces for libgcc_s .......................................................................74 10.10 Data Definitions for libgcc_s..........................................................75 10.11 Interface Definitions for libgcc_s...................................................76 10.12 Interfaces for libdl ...........................................................................77 10.13 Data Definitions for libdl ...............................................................77 10.14 Interfaces for libcrypt......................................................................78 © 2010 Linux Foundation iii ISO/IEC 23360 Part 2:2010(E) IV Utility Libraries......................................................................................................79 11 Libraries ..........................................................................................................80 11.1 Interfaces for libz...............................................................................80 11.2 Data Definitions for libz...................................................................80 11.3 Interfaces for libncurses....................................................................81 11.4 Data Definitions for libncurses........................................................81 11.5 Interfaces for libutil...........................................................................81 V Package Format and Installation..........................................................................83 12 Software Installation .....................................................................................84 12.1 Package Dependencies .....................................................................84 12.2 Package Architecture Considerations ............................................84 A Alphabetical Listing of Interfaces........................................................................85 A.1 libc..................................................................................................................85 A.2 libcrypt ........................................................................................................100 A.3 libdl..............................................................................................................100 A.4 libgcc_s........................................................................................................100 A.5 libm..............................................................................................................101 A.6 libpthread ...................................................................................................106 A.7 librt ..............................................................................................................108 A.8 libutil ...........................................................................................................108 B GNU Free Documentation License (Informative) ...........................................110 B.1 PREAMBLE.................................................................................................110 B.2 APPLICABILITY AND DEFINITIONS...................................................110 B.3 VERBATIM COPYING..............................................................................111 B.4 COPYING IN QUANTITY........................................................................111