TY - BOOK AU - Levine,John R. TI - Linkers and loaders SN - 1558604960 (acid-free paper) AV - QA76.76.A87 L48 2000 U1 - 005.4/56 21 PY - 2000/// CY - San Francisco PB - Morgan Kaufmann KW - Assembling (Electronic computers) KW - Linkers (Computer programs) KW - Loaders (Computer programs) N1 - Includes bibliographical references (p. 246-248) and index; 1; Linking and Loading; 1 --; 1.1; What Do Linkers and Loaders Do?; 1 --; 1.2; Address Binding: A Historical Perspective; 1 --; 1.3; Linking vs. Loading; 5 --; 1.4; Compiler Drivers; 10 --; 1.5; Linking: A True-Life Example; 12 --; 2; Architectural Issues; 19 --; 2.1; Application Binary Interfaces; 20 --; 2.2; Memory Addresses; 20 --; 2.3; Address Formation; 22 --; 2.4; Instruction Formats; 23 --; 2.5; Procedure Calls and Addressability; 24 --; 2.6; Data and Instruction References; 28 --; 2.7; Paging and Virtual Memory; 34 --; 2.8; Intel 386 Segmentation; 41 --; 2.9; Embedded Architectures; 43 --; 3; Object Files; 47 --; 3.1; What Goes into an Object File?; 47 --; 3.2; Null Object Format: DOS COM Files; 49 --; 3.3; Code Sections: UNIX a.out Files; 50 --; 3.4; Relocation: DOS EXE Files; 56 --; 3.5; Symbols and Relocation; 58 --; 3.6; Relocatable a.out; 58 --; 3.7; UNIX ELF; 62 --; 3.8; IBM 360 Object Format; 71 --; 3.9; Microsoft Portable Executable Format; 75 --; 3.10; Intel/Microsoft OMF Files; 84 --; 3.11; Comparison of Object Formats; 90 --; 4; Storage Allocation; 93 --; 4.1; Segments and Addresses; 93 --; 4.2; Simple Storage Layout; 94 --; 4.3; Multiple-Segment Types; 96 --; 4.4; Segment and Page Alignment; 96 --; 4.5; Common Blocks and Other Special Segments; 98 --; 4.6; Linker Control Scripts; 107 --; 4.7; Storage Allocation in Practice; 108 --; 5; Symbol Management; 117 --; 5.1; Binding and Name Resolution; 117 --; 5.2; Symbol Table Formats; 118 --; 5.3; Name Mangling; 124 --; 5.4; Weak External and Other Kinds of Symbols; 129 --; 5.5; Maintaining Debugging Information; 129 --; 6; Libraries; 135 --; 6.1; Purpose of Libraries; 135 --; 6.2; Library Formats; 136 --; 6.3; Creating Libraries; 141 --; 6.4; Searching Libraries; 142 --; 6.5; Performance Issues; 144 --; 6.6; Weak External Symbols; 144 --; 7; Relocation; 149 --; 7.1; Hardware and Software Relocation; 150 --; 7.2; Link-Time and Load-Time Relocation; 151 --; 7.3; Symbol and Segment Relocation; 151 --; 7.4; Basic Relocation Techniques; 153 --; 7.5; Relinkable and Relocatable Output Formats; 159 --; 7.6; Other Relocation Formats; 160 --; 7.7; Relocation Special Cases; 162 --; 8; Loading and Overlays; 167 --; 8.1; Basic Loading; 167 --; 8.2; Basic Loading, with Relocation; 168 --; 8.3; Position-Independent Code; 169 --; 8.4; Bootstrap Loading; 176 --; 8.5; Tree-Structured Overlays; 177 --; 9; Shared Libraries; 187 --; 9.1; Binding Time; 188 --; 9.2; Shared Libraries in Practice; 190 --; 9.3; Address Space Management; 190 --; 9.4; Structure of Shared Libraries; 192 --; 9.5; Creating Shared Libraries; 192 --; 9.6; Linking with Shared Libraries; 197 --; 9.7; Running with Shared Libraries; 197 --; 9.8; Malloc Hack and Other Shared-Library Problems; 199 --; 10; Dynamic Linking and Loading; 205 --; 10.1; ELF Dynamic Linking; 206 --; 10.2; Contents of an ELF File; 206 --; 10.3; Loading a Dynamically Linked Program; 210 --; 10.4; Lazy Procedure Linkage with the PLT; 213 --; 10.5; Other Peculiarities of Dynamic Linking; 215 --; 10.6; Dynamic Loading at Run Time; 216 --; 10.7; Microsoft Dynamic-Link Libraries; 217 --; 10.8; OSF/1 Pseudo-Static Shared Libraries; 222 --; 10.9; Making Shared Libraries Fast; 223 --; 10.10; Comparison of Dynamic Linking Approaches; 224 --; 11; Advanced Techniques; 229 --; 11.1; Techniques for C++; 229 --; 11.2; Incremental Linking and Relinking; 233 --; 11.3; Link-Time Garbage Collection; 235 --; 11.4; Link-Time Optimization; 237 --; 11.5; Link-Time Code Generation; 238 --; 11.6; Java Linking Model; 241; Also issued online UR - http://catdir.loc.gov/catdir/toc/els033/99047127.html UR - http://catdir.loc.gov/catdir/description/els033/99047127.html ER -