Preface |
Preface
|
Preface
|
Part 1 |
Part 1
|
Introduction to the OpenVMS Linker
|
Chapter 1 |
1
|
Introduction
|
1.1
|
Overview
|
1.1.1
|
Terminology Used in this Manual
|
1.1.2
|
Linker Overview
|
1.1.3
|
Linker Functions
|
1.1.4
|
Using the Linker
|
1.2
|
Specifying Input to the Linker
|
1.2.1
|
Object Modules as Linker Input Files
|
1.2.2
|
Shareable Images as Linker Input Files
|
1.2.2.1
|
Including a Shareable Image in a Link Operation
|
1.2.2.2
|
Installing a Shareable Image
|
1.2.3
|
Library Files as Linker Input Files
|
1.2.3.1
|
Creating a Library File
|
1.2.3.2
|
Including a Library File in a Link Operation
|
1.2.4
|
Symbol Table Files as Linker Input Files (VAX Only)
|
1.2.5
|
Options Files as Linker Input Files
|
1.3
|
Specifying Linker Output Files
|
1.3.1
|
Creating an Executable Image
|
1.3.2
|
Creating a Shareable Image
|
1.3.3
|
Creating a System Image (Alpha and VAX)
|
1.3.4
|
Creating a Symbol Table File
|
1.3.5
|
Creating a Map File
|
1.3.6
|
Creating a Debug Symbol File (I64 and Alpha)
|
1.4
|
Controlling a Link Operation
|
1.4.1
|
Linker Qualifiers
|
1.4.2
|
Link Options
|
1.5
|
Linking for Different Architectures (Alpha and VAX)
|
Part 2 |
Part 2
|
Linking on OpenVMS I64 Systems
|
Chapter 2 |
2
|
Understanding Symbol Resolution (I64)
|
2.1
|
Overview
|
2.1.1
|
Types of Symbols
|
2.1.1.1
|
Understanding Strong and Weak Symbols
|
2.1.1.2
|
Group Symbols
|
2.1.1.3
|
The C Extern Common Model
|
2.1.1.4
|
Tentative Definitions in C
|
2.1.1.5
|
Considerations for C Language Extensions
|
2.1.2
|
Linker Symbol Resolution Processing
|
2.2
|
Input File Processing for Symbol Resolution
|
2.2.1
|
Processing Object Modules
|
2.2.2
|
Processing Shareable Images
|
2.2.2.1
|
Implicit Processing of Shareable Images
|
2.2.3
|
Processing Library Files
|
2.2.3.1
|
Identifying Library Files Using the /LIBRARY Qualifier
|
2.2.3.2
|
Including Specific Modules from a Library Using the /INCLUDE Qualifier
|
2.2.3.3
|
Processing Default Libraries
|
2.2.4
|
Processing Input Files Selectively
|
2.3
|
Ensuring Correct Symbol Resolution
|
2.3.1
|
Understanding Cluster Creation
|
2.3.2
|
Controlling Cluster Creation
|
2.3.2.1
|
Using the CLUSTER= Option to Control Clustering
|
2.3.2.2
|
Using the COLLECT= Option to Control Clustering
|
2.4
|
Resolving Symbols Defined in the OpenVMS Executive
|
2.5
|
Processing Weak and Strong Global Symbols
|
2.5.1
|
Overview of Weak and Strong Global Symbol Processing
|
2.5.1.1
|
Strong Symbols
|
2.5.1.2
|
VMS-Style Weak Symbols
|
2.5.1.3
|
UNIX-Style Weak Symbols
|
2.5.2
|
Strong and Weak Definitions
|
2.5.3
|
Resolving Strong and Weak Symbols
|
2.5.4
|
Creating and Using VMS-style Weak Symbols
|
2.6
|
Processing HP C++ Compiler-Generated UNIX-Style Weak and Group Symbols
|
2.6.1
|
Processing Group Symbols
|
2.6.2
|
HP C++ Examples
|
2.6.3
|
Compiler-Generated Symbols and Shareable Images
|
2.7
|
Understanding and Fixing DIFTYPE and RELODIFTYPE Linker Conditions
|
Chapter 3 |
3
|
Understanding Image File Creation (I64)
|
3.1
|
Overview
|
3.2
|
Creating Sections
|
3.2.1
|
Sections Created by The Linker
|
3.2.1.1
|
Sections for Relaxed Symbol Definitions
|
3.2.1.2
|
Sections Embedded in Code Segments
|
3.2.1.3
|
Short Data Sections
|
3.2.1.4
|
Section for the Symbol Vector
|
3.2.1.5
|
Sections that Contain Unwind Data
|
3.3
|
Creating Segments
|
3.3.1
|
Processing Clusters to Create Segments
|
3.3.2
|
Combining Sections into Image Segments
|
3.3.3
|
Traditional OpenVMS Image Attribute Terms and ELF Terms
|
3.3.4
|
Processing Significant Section Attributes
|
3.3.5
|
Allocating Memory for Segments
|
3.3.6
|
Segment Attributes
|
3.3.7
|
Controlling Segment Creation
|
3.3.7.1
|
Modifying Section Attributes
|
3.3.7.2
|
Alternate Way to Modify Section Attributes
|
3.3.7.3
|
Manipulating Cluster Creation
|
3.3.7.4
|
Isolating a Section into a Segment
|
3.4
|
Initializing an Image on I64 Systems
|
3.4.1
|
Handling of Initialized Overlaid Sections
|
3.4.2
|
Writing the Binary Contents of Segments
|
3.4.3
|
Other Image Segments
|
3.4.3.1
|
Unwind Segments
|
3.4.3.2
|
Short Data Segment
|
3.4.3.3
|
Signature Segment
|
3.4.3.4
|
Dynamic Segment
|
3.4.4
|
Keeping the Size of Image Files Manageable
|
3.4.4.1
|
Controlling Demand-Zero Image Segment Creation on I64 Systems
|
3.4.5
|
Creating ELF Sections in the Image File
|
3.4.6
|
Writing the Main Output Files
|