This "OpenVMS Linker Utility Manual" (April 2001, Version 7.3 for OpenVMS Alpha 7.3 and VAX 7.3) serves as a comprehensive guide to the OpenVMS Linker utility.
The manual describes the linker's primary purpose: to create executable, shareable, or system images from various input files such as object modules, shareable images, and libraries. Its core functions involve symbol resolution, virtual memory allocation, and image initialization, with specific performance optimizations detailed for Alpha systems.
The document is structured into two main parts and two appendices:
Part I: Linker Utility Description
- Introduction: Provides an overview of the linker's functions, how to invoke it, and how to specify input files (object modules, libraries, shareable images, options files) and output files (executable, shareable, system, map, and debug symbol files). It also touches on controlling link operations with qualifiers and options, and linking for different architectures.
- Understanding Symbol Resolution: Explains how the linker resolves symbolic references, detailing different types of symbols (local, global, universal), how various input file types are processed for resolution, and mechanisms for ensuring correct symbol resolution (e.g., using clusters and handling weak/strong symbols).
- Understanding Image File Creation: Covers the process of creating image files, including determining memory requirements, defining and combining program sections into image sections based on attributes, and image initialization processes like writing binary content, fixing addresses, and creating demand-zero sections.
- Creating Shareable Images: Focuses on the creation and benefits of shareable images, outlining the procedures for declaring universal symbols and ensuring upward compatibility, with distinct guidance for VAX (using transfer vectors and
UNIVERSAL= option) and Alpha systems (using symbol vectors and SYMBOL_VECTOR= option).
- Interpreting an Image Map File: Guides users on how to understand the diagnostic information generated in image map files, detailing the components like object module synopses, image section synopses, program section synopses, and global symbol listings.
Part II: LINK Command Reference: A comprehensive reference section listing and describing all LINK command qualifiers and options.
Appendices A and B: Provide detailed specifications for the VAX and Alpha Object Languages, respectively, primarily intended for compiler developers.