1 LINK Invokes the OpenVMS Linker utility to link one or more input files into a program image and defines the execution characteristics of the image. For a complete description of the linker, including more information about the LINK command and about creating and using linker options files, see the HP OpenVMS Linker Utility Manual. In the following list of LINK subtopics, the options you can specify in an options file are listed starting after the /VAX qualifier. Format LINK file-spec [,...] 2 Parameters file-spec [,...] Specifies one or more input files (wildcard characters are not allowed). Input files may be object modules, shareable images, libraries to be searched for external references or from which specific modules are to be included, or options files to be read by the linker. Separate multiple input file specifications with commas (,) or plus signs (+). In either case, the linker creates a single image file. If you omit the file type in an input file specification, the linker supplies default file types, based on the nature of the input file. For object modules, the default file type is .OBJ. 2 /ALPHA Alpha and VAX systems. Directs the linker to produce an OpenVMS Alpha image. On OpenVMS Alpha or VAX systems, when neither /ALPHA nor /VAX is specified, the default action is to create an OpenVMS VAX image on an OpenVMS VAX system and to create an OpenVMS Alpha image on an OpenVMS Alpha system. Format /ALPHA 3 Qualifier_Values None. 2 /BASE_ADDRESS I64 systems only. Assigns a virtual address for executable images that are not activated by the OpenVMS image activator, such as images used in the boot process. Format /BASE_ADDRESS=address /NOBASE_ADDRESS (default) 3 Qualifier_Values address The location at which you want the first segment of the executable image located. You can express this location as decimal (%D), octal (%O), or hexadecimal (%X) numbers. The default is hexadecimal. 2 /BPAGE Specifies the page size the linker should use when it creates the segments (I64) or image sections (Alpha and VAX) that make up an image. Format /BPAGE[=page-size-indicator] 3 Qualifier_Values page-size-indicator An integer that specifies a page size as the power of 2 required to create a page that size. For example, to get an 8 KB page size, specify the value 13 because 2[13] equals 8K. The following table lists the page sizes supported by the linker with the defaults: Page Value Size Defaults 9 512 Default value for VAX links when the /BPAGE bytes qualifier is not specified. 13 8 KB Default value for VAX links when the /BPAGE qualifier is specified without a value. 14 16 KB - 15 32 KB - 16 64 KB Default value for I64 and Alpha links when /BPAGE is not specified or when the /BPAGE qualifier is specified without a value. 2 /BRIEF Directs the linker to produce a brief image map. A brief image map file contains an Object and Image Synopsis, an Image Segment Synopsis, and a Link Run Statistics section. On Alpha and VAX it contains an Object Module Synopsis, an Image Section Synopsis, and a Link Run Statistics section. For more information, see also the /MAP and /FULL qualifiers. Format /MAP/BRIEF 3 Qualifier_Values None. 2 /CONTIGUOUS Directs the linker to place the entire image in consecutive disk blocks. If sufficient contiguous space is not available on the output disk, the linker reports an error and terminates the link operation. Format /CONTIGUOUS /NOCONTIGUOUS (default) 3 Qualifier_Values None. 2 /CROSS_REFERENCE Directs the linker to replace the Symbols By Name section in a full or default image map with the Symbol Cross-Reference section. Format /MAP/CROSS_REFERENCE 3 Qualifier_Values None. 2 /DEBUG Directs the linker to generate debug and traceback information and to give the debugger control when the image is run. Format /DEBUG[=file-spec] /NODEBUG (default) 3 Qualifier_Values file-spec (Alpha and VAX only) Identifies a user-written debugger module. If you specify the /DEBUG qualifier without entering a file specification, the OpenVMS Debugger gains control at run time. Requesting the OpenVMS Debugger does not affect the location of code within the image because the debugger is mapped into the process address space at run time, not at link time. See the HP OpenVMS Debugger Manual for additional information. On I64 systems, a file specification is not allowed. On Alpha and VAX, if you specify the /DEBUG qualifier with a file specification, the user-written debugger module that the file specification identifies gains control at run time. The linker assumes a default file type of .OBJ. Requesting a user- written debugger module does affect the location of code within the image. 2 /DEMAND_ZERO I64 and Alpha systems. Enables demand-zero segment (I64) or image section (Alpha) production for both executable and shareable images. Format /DEMAND_ZERO (default) /DEMAND_ZERO[=PER_PAGE] /NODEMAND_ZERO 3 Qualifier_Values PER_PAGE On I64, directs the linker to compress trailing zeros for each segment (that is, demand zero compression of zeros on trailing pages). On Alpha, enables the linker to perform demand-zero compression on Alpha images on a per-page basis. If this keyword is not used, the linker performs demand-zero compression on an image-section basis only. 2 /DNI I64 systems only. Controls the processing of the demangling information. Specify /DNI (the default) to allow the linker to attempt symbol name demangling and move the necessary demangling information into the shareable image being created. Format /DNI (default) /NODNI 3 Qualifier_Values None. 2 /DSF I64 and Alpha systems. Directs the linker to create a file called a debug symbol file (DSF) for use by the OpenVMS Debugger or the OpenVMS System-Code Debugger. Format /DSF[=file-spec] /NODSF (default) 3 Qualifier_Values file-spec Specifies the character string you want the linker to use as the name of the debug symbol file. If you do not include a file type in the character string, the linker appends the .DSF file type to the file name. If you specify the /DSF qualifier without the file specification, the linker creates a debug symbol file with the file name of the first input file and the default file type .DSF. If you append the /DSF qualifier to one of the input file specifications, the linker creates a debug symbol file with the file name of the file to which the qualifier is appended and with the default file type .DSF. The OpenVMS Debugger (whether you use it in System-Code Debugger mode or user mode) requires that the name of the DSF file be the same as the name of the image file, except that the file extension is .DSF. If you use an /EXECUTABLE or /SHAREABLE qualifier and a file name with the LINK command, you must also include the same file name with the /DSF qualifier. (You must also use the .DSF file type.) 2 /EXECUTABLE Directs the linker to create an executable image, as opposed to a shareable image or a system image. Format /EXECUTABLE[=file-spec] (default) /NOEXECUTABLE 3 Qualifier_Values file-spec Specifies the character string you want the linker to use as the name of the image file produced by the link operation. If you do not specify a file type in the character string, the linker assigns the .EXE file type by default. If you do not specify a file name with the /EXECUTABLE qualifier, the linker creates an executable image with the file name of the first input file. If you append the /EXECUTABLE qualifier to an input file specification, the linker creates an executable image with the file name of the file to which the qualifier is appended. 2 /FP_MODE I64 systems only. Determines the program's initial floating point mode when one is not provided by the module that provides the main transfer address. Format /FP_MODE=keyword /NOFP_MODE (default) 3 Qualifier_Values keyword The OpenVMS I64 Linker accepts the following keywords to set the floating point mode: Keyword Description D_FLOAT, G_FLOAT Sets VAX floating point modes. IEEE_FLOAT[=ieee_ Sets the IEEE floating point mode to behavior] the default or a specific behavior. The OpenVMS I64 Linker accepts the following IEEE behavior keywords: FAST UNDERFLOW_TO_ZERO DENORM_RESULTS (default) INEXACT LITERAL=fp_ctrl_mask Sets the floating point mode to a literal control mask. You can express this mask as a decimal (%D), octal (%O), or hexadecimal (%X) value (for example %X09800000, which is equivalent to the default, IEEE_ FLOAT=DENORM_RESULTS). 2 /FULL Directs the linker to create a full image map file. A full image map file contains an Object and Image Synopsis (I64) or Object Module Synopsis (Alpha and VAX) section, a Module Relocatable Reference Synopsis section (VAX), an Image Segment Synopsis (I64) or Image Section Synopsis (Alpha and VAX) section, a Program Section Synopsis section, a Symbols-by-name section (or a Symbols Cross-reference section if the /CROSS_REFERENCE qualifier is specified), a Symbols by Value section, an Image Synopsis section, and a Link Run Statistics section. For more information, see also the /MAP, /CROSS_REFERENCE, and /BRIEF qualifiers. Format /MAP/FULL[=(keyword[,...])] 3 Qualifier_Values keyword (I64 only) The OpenVMS I64 Linker accepts the following keywords to tailor the map (the default is /FULL=SECTION_DETAILS): Keyword Description ALL For the OpenVMS I64 Linker, the ALL keyword is equivalent to specifying the DEMANGLED_SYMBOLS, GROUP_SECTIONS and SECTION_DETAILS keywords. DEMANGLED_SYMBOLS For the I64 linker, when display name information is available and processed (DNI), directs the linker to add a translation table to the map file. The table contains both mangled and demangled names for global symbols. GROUP_SECTIONS Directs the OpenVMS I64 Linker to list all processed groups. [NO]SECTION_DETAILS Directs whether or not the OpenVMS I64 Linker suppresses zero length contributions in the Program Section Synopsis. 2 /GST I64 and Alpha systems. Directs the linker to include in the global symbol table (GST) of a shareable image those symbols that have been declared as universal symbols in a symbol vector. Format /GST (default) /NOGST 3 Qualifier_Values None. 2 /HEADER Alpha and VAX systems. When specified with the /SYSTEM qualifier, directs the linker to include an image header in a system image. This qualifier is ignored by the OpenVMS I64 Linker. Format /HEADER /NOHEADER (default) 3 Qualifier_Values None. 2 /INCLUDE Identifies the input file specification to which it is appended as a library file and directs the linker to include in the link operation the module or modules specified as the value of the qualifier. Format library-name/INCLUDE=(module-name[,...]) 3 Qualifier_Values library-name Specifies the name of the library from which you want a module or modules extracted. The file name must specify a library file. The linker assumes the default file type of .OLB. module-name Specifies the module or modules that you want to extract from the library. To specify more than one module, enclose the list in parentheses and separate the module names with commas. 2 /INFORMATIONALS Directs the linker to output informational messages produced by a link operation. Format /INFORMATIONALS (default) /NOINFORMATIONALS 3 Qualifier_Values None. 2 /LIBRARY Identifies the input file specification to which it is appended as a library file and directs the linker to process the library's name table as part of its symbol resolution processing. When the linker finds in the library the definition of a symbol referenced in a previously processed input file, the linker includes from the library the module in which the symbol is defined. Format library-name/LIBRARY 3 Qualifier_Values library-name Specifies the name of the library to be included in the link operation. You must specify a library file. The linker assumes the default file type of .OLB. 2 /MAP Directs the linker to create an image map file. By default, an I64 map file contains an Object and Image Synopsis, an Image Segment Synopsis, a Program Section Synopsis, a Symbols By Name, an Image Synopsis, and a Link Run Statistics section. By default, an ALPHA/VAX map file contains an Object Module Synopsis, a Program Section Synopsis, a Symbols By Name, an Image Section Synopsis, and a Link Run Statistics section. For more information, see also the /BRIEF, /CROSS_REFERENCE, and /FULL qualifiers. Format /MAP[=file-spec]/NOBRIEF/NOCROSS_REFERENCE/NOFULL (default in batch mode) /NOMAP (default in interactive mode) 3 Qualifier_Values file-spec If you enter a file specification with the /MAP qualifier, the linker creates an image map file with that file name. If you do not enter a file type after the file name, the linker assumes a file type of .MAP. If you do not enter a file specification with the /MAP qualifier, the linker creates an image map file with the file name of the first input file specified on the command line and the file type .MAP. (If there are no input files specified on the command line, the linker names the map file .MAP.) If you append the /MAP qualifier to one of the input file specifications, the linker creates an image map file with the file name of the file to which the qualifier is appended, using the .MAP file type. 2 /NATIVE_ONLY I64 and Alpha systems. For I64 and Alpha systems, prevents the linker from generating procedure signature information. Procedure signatures are required to allow the native code being linked to interoperate with images translated from either Alpha or VAX binary code. To build an executable or shareable image that calls or can be called by translated code, link it using /NONATIVE_ONLY. Code that is to interoperate with translated images must also be compiled using the /TIE qualifier. (See the associated compiler documentation for details.) Format /NATIVE_ONLY (default) /NONATIVE_ONLY 3 Qualifier_Values None. 2 /OPTIONS Identifies the input file specification to which it is appended as a linker options file. Format options-file-name/OPTIONS 3 Qualifier_Values options-file-name The file specification of a linker options file. The linker assumes the file type .OPT by default. 2 /P0IMAGE Directs the linker to place an executable image entirely in P0 address space. When the /P0IMAGE qualifier is specified, the user stack and OpenVMS RMS buffers, which usually reside in P1 space, are placed in P0 space by the image activator. Format /P0IMAGE /NOP0IMAGE (default) 3 Qualifier_Values None. 2 /PROTECT Directs the linker to protect an entire shareable image from user-mode write access and supervisor-mode write access. Can be specified only with the /SHAREABLE qualifier. Format /PROTECT /NOPROTECT (default) 3 Qualifier_Values None. 2 /REPLACE Alpha systems only. Specifies that the linker should perform certain optimizations to improve the performance of the resultant image, when instructed by the compiler. This qualifier is ignored by the OpenVMS I64 Linker. Format /REPLACE (default) /NOREPLACE 3 Qualifier_Values None. 2 /SECTION_BINDING Alpha systems only. Directs the linker to create an image that can be installed as a resident image and to flag coding practices in the image that would prevent this. This qualifier is ignored by the OpenVMS I64 Linker. The I64 linker always produces images that can be installed as resident images. Format /[NO]SECTION_BINDING[=(CODE,DATA)] /NOSECTION_BINDING (default) 3 Qualifier_Values CODE Prevents the linker from replacing the Jump to Subroutine (JSR) instruction sequence with the more efficient Branch to Subroutine (BSR) instruction sequence when the target of the branch crosses an image section boundary. DATA Directs the linker to check for address calculations that create dependencies on the layout of data image sections. The linker reports such occurrences. When the /SECTION_BINDING qualifier is specified without either the CODE or DATA keyword, the linker performs both types of checking by default. 2 /SEGMENT_ATTRIBUTE I64 systems only. Instructs the OpenVMS I64 linker to set certain attributes for segments. Format /SEGMENT_ATTRIBUTE=(segm-attribute[,...]) 3 Qualifier_Values segm-attribute The I64 Linker accepts the following keywords to set segment attributes CODE=address_region DYNAMIC=address_region SHORT=WRITE SYMBOL_VECTOR=[NO]SHORT where an address region can be specified with keywords P0 and P2. 2 /SELECTIVE_SEARCH When this qualifier is appended to an input file specification, the linker processes only those symbols in the input file that have been referenced by previously processed input files. Format input-file-name/SELECTIVE_SEARCH 3 Qualifier_Values input-file-name The input file you want included in the link operation. The /SELECTIVE_SEARCH qualifier works with object modules and shareable images only. This qualifier is illegal with library files. (To process the modules in a library selectively, you specify the /SELECTIVE_SEARCH qualifier when inserting the files into the library. For more information, see the HP OpenVMS Command Definition, Librarian, and Message Utilities Manual.) 2 /SHAREABLE When specified anywhere on the LINK command line, the /SHAREABLE qualifier directs the linker to create a shareable image. When the /SHAREABLE qualifier is appended to a file specification in a linker options file, it identifies the input file as a shareable image. Format /SHAREABLE[=file-spec] /NOSHAREABLE (default) shareable-image-file-name/SHAREABLE 3 Qualifier_Values file-spec When the /SHAREABLE qualifier is used to create a shareable image, this parameter specifies the name you want the linker to assign to the shareable image being created. If you do not include a file specification, the linker assigns the shareable image the name of the file to which the /SHAREABLE qualifier is appended in the LINK command line. If the /SHAREABLE qualifier is not appended to an input file specification, the linker assigns to the shareable image the name of the first input file specified on the command line using the extension .EXE. If you designate a file name but omit the file type, the linker assigns the shareable image the file type .EXE. shareable-image-file-name Specifies the name of a shareable image. Note that you can use the /SHAREABLE qualifier to identify a shareable image only in a linker options file. It is illegal to include a shareable image in a link operation by specifying it on the LINK command line. 2 /SYMBOL_TABLE Directs the linker to create a symbol table file. Format /SYMBOL_TABLE[=file-spec] /NOSYMBOL_TABLE (default) 3 Qualifier_Values file-spec Specifies the character string you want the linker to use as the name of the symbol table file. If you do not include a file type in the character string, the linker appends the .STB file type to the file name. If you specify the /SYMBOL_TABLE qualifier without the file specification, the linker creates a symbol table file with the file name of the first input file and the default file type .STB. If you append the /SYMBOL_TABLE qualifier to one of the input file specifications, the linker creates a symbol table file with the file name of the file to which the qualifier is appended, with the default file type .STB. 2 /SYSEXE I64 and Alpha systems. Directs the linker to process the system shareable image, SYS$BASE_IMAGE.EXE, in a link operation. The linker looks for SYS$BASE_IMAGE.EXE in the directory pointed to by the logical name IA64$LOADABLE_IMAGES (I64) or ALPHA$LOADABLE_IMAGES (Alpha). Format /SYSEXE[=[NO]SELECTIVE] /NOSYSEXE (default) 3 Qualifier_Values SELECTIVE (default) When the /SYSEXE qualifier is specified with no keyword, the linker processes the SYS$BASE_IMAGE.EXE file selectively. When you specify /SYSEXE with the SELECTIVE keyword, the linker processes the SYS$BASE_IMAGE.EXE file selectively, including only those symbols from the global symbol table of the SYS$BASE_ IMAGE.EXE file that were referenced by input files previously processed in the link operation. NOSELECTIVE When you specify the NOSELECTIVE keyword, the linker includes all the symbols from the SYS$BASE_IMAGE.EXE global symbol table in the link operation. 2 /SYSLIB Directs the linker to process the default system shareable image library, IMAGELIB.OLB, and the default system object module library, STARLET.OLB, to resolve symbolic references that remain undefined after all specified input files and any default user libraries have been processed. Format /SYSLIB (default) /NOSYSLIB 3 Qualifier_Values None. 2 /SYSSHR Directs the linker to process the default system shareable image library (IMAGELIB.OLB) to resolve symbolic references that remain undefined after all specified input files and any default user libraries have been processed. Format /SYSSHR (default) /NOSYSSHR 3 Qualifier_Values None. 2 /SYSTEM Alpha and VAX systems. Directs the linker to create a system image and optionally allows you to specify the address at which the image should be loaded into memory. A system image cannot be activated with the RUN command; it must be bootstrapped or otherwise loaded into memory. Format /SYSTEM[=base-address] /NOSYSTEM (default) 3 Qualifier_Values base-address Specifies the address at which the image is to be loaded in virtual memory. You can specify a base address in hexadecimal (%X), octal (%O), or decimal (%D) format. The default base address is %X80000000. Note that if you specify the /HEADER qualifier, the linker adjusts the base address to the next highest page boundary if it is not already a page boundary. The next highest page boundary is the smallest number that is greater than the value specified in the base-address parameter and that is divisible by the default page size (which is architecture specific) or the page size specified using the /BPAGE qualifier. 2 /THREADS_ENABLE Kernel threads allow a multithreaded application to have a thread executing on every CPU in a multiprocessor system. The /THREADS_ ENABLE qualifier allows you to turn kernel threads on and off on a per-image basis. When you specify this qualifier, the OpenVMS linker sets the appropriate bits in the dynamic segment (I64) or the image header (Alpha and VAX) of the image being linked. These bits control the following: o Whether the image is allowed to enter a multiple kernel threads environment o Whether the image can receive upcalls from the OpenVMS scheduler Format /THREADS_ENABLE[=(MULTIPLE_KERNEL_THREADS,UPCALLS)] /NOTHREADS_ENABLE (default) 3 Qualifier_Values MULTIPLE_KERNEL_THREADS On I64 and Alpha systems, this keyword sets the MULTIPLE_KERNEL_ THREADS bit in the dynamic segment (I64) or the image header (Alpha) of the image being built. This bit indicates to the image activator that the image can be run in a multiple kernel threads environment. If you specify this keyword for OpenVMS VAX links, it is ignored. UPCALLS This qualifier sets the UPCALLS bit in the OpenVMS dynamic segment (I64) or image header (Alpha and VAX) of the image being built. This bit indicates to the image activator that the process can receive upcalls from the OpenVMS scheduler. When the /THREADS_ENABLE qualifier is specified without either the MULTIPLE_KERNEL_THREADS or UPCALLS keyword, the linker sets both bits by default. 2 /TRACE Directs the linker to include traceback information in the image file. If you specify the /DEBUG qualifier, the linker includes traceback information by default, overriding the /NOTRACE qualifier if it is specified. Format /TRACE (default) /NOTRACE 3 Qualifier_Values None. 2 /USERLIBRARY Directs the linker to process one or more default user libraries to resolve symbolic references that remain undefined after all specified input files have been processed. Format /USERLIBRARY[=(table[,...])] /NOUSERLIBRARY /USERLIBRARY=ALL (default) 3 Qualifier_Values table Specifies the logical name tables that the linker searches for default user libraries. The following keywords are the only acceptable parameter values: Keyword Description ALL Directs the linker to search the process, group, and system logical name tables for default user library definitions. This is the default. GROUP Directs the linker to search the group logical name table for default user library definitions. NONE Directs the linker not to search any logical name table; the /USERLIBRARY=NONE qualifier is equivalent to the /NOUSERLIBRARY qualifier. PROCESS Directs the linker to search the process logical name table for default user library definitions. SYSTEM Directs the linker to search the system logical name table for default user library definitions. 2 /VAX Alpha and VAX systems. Directs the linker to produce an OpenVMS VAX image. The default action, when neither /ALPHA nor /VAX is specified, is to create an OpenVMS VAX image on an OpenVMS VAX system and to create an OpenVMS Alpha image on an OpenVMS Alpha system. Format /VAX 3 Qualifier_Values None. 3 Option_Descriptions 2 BASE VAX systems only. Specifies the base address (starting address) that you want the linker to assign to the image. Format BASE=address 3 Option_Values address The address at which you want the image based. You can express the number in decimal (%D), octal (%O), or hexadecimal (%X) notation. If the address specified is not divisible by 512, the linker automatically adjusts it upward to the next multiple of 512, that is, to the next highest page boundary. Do not attempt to base an image linked with a larger page size (specified using the /BPAGE qualifier). The linker bases shareable images at address 0, by default, and bases system images at address %X80000000, by default. 2 CASE_SENSITIVE Directs the linker to preserve the mixture of uppercase and lowercase characters used in character string arguments to linker options. Format CASE_SENSITIVE=YES/NO CASE_SENSITIVE=NO (default) 3 Option_Values YES Enables case sensitivity. You can use any mixture of uppercase and lowercase characters when specifying the keyword YES. NO Disables case sensitivity. Note that you must use only uppercase characters when specifying the keyword NO because case sensitivity is enabled and the linker does not accept mixed case in keywords. 2 CLUSTER Directs the linker to create a cluster. (The linker groups input files into clusters before processing their contents.) Format CLUSTER=cluster-name[,base-address[,pfc[,file-spec[,...]]]] 3 Option_Values cluster-name The name you want assigned to the cluster. base-address The base virtual address for the cluster. If you omit the base- address value, you must still enter the comma. On I64 systems, the base address must be omitted. For Alpha linking, it is illegal to specify a base address for a cluster when creating a shareable image. pfc (page fault cluster) The number of pagelets read into memory by the operating system when the initial page fault occurs for a page in the cluster. If you do not specify the pfc parameter, the operating system uses the default value established by the system parameter PFCDEFAULT. If you omit the page fault cluster value, you must still enter the comma. file-spec The file you want the linker to place in the cluster. Note that you should not specify in the LINK command itself any file that you specify with the CLUSTER= option (unless you want to include two copies of the file in the final image). 2 COLLECT Directs the linker to place the specified program section (or program sections) into the specified cluster. Format COLLECT=cluster-name[/ATTRIBUTES=(RESIDENT,INITIALIZATION_CODE)],psect-name[,...] 3 Option_Values cluster-name Name of the cluster. psect-name Name of the program sections (psects) you want placed in the cluster. 3 Qualifier /ATTRIBUTES For I64 and Alpha linking, directs the linker to mark the cluster 'cluster-name' with the indicated qualifier keyword value. Attributes set by this qualifier are only evaluated by the loader. This qualifier is used to build OpenVMS drivers. See Writing OpenVMS Alpha Device Drivers in C for guidelines for using this qualifier. Qualifier Values RESIDENT Marks the cluster 'cluster-name' as RESIDENT so that the segment (I64) or image section (Alpha) created from that cluster has the RESIDENT flag set. This will cause the loader to map the segment or image section into non-paged memory. INITIALIZATION_CODE Marks the cluster 'cluster-name' as INITIALIZATION_CODE so that the segment (I64) or image section (Alpha) created from that cluster has the INITALCOD flag set. The initialization code will be executed by the loader. This keyword is specifically intended for use with program sections from modules SYS$DOINIT and SYS$DRIVER_INIT in STARLET.OLB. 2 DZRO_MIN Alpha and VAX systems. Specifies the minimum number of contiguous, uninitialized pages that the linker must find in an image section before it can extract the pages from the image section and place them in a newly created demand-zero image section. By creating demand-zero image sections (image sections that do not contain initialized data), the linker can reduce the size of images. Format DZRO_MIN=number-of-pages 3 Option_Values number-of-pages Specifies the minimum number of contiguous pages. For VAX linking, the linker, by default, uses a minimum of 5 pages. Each VAX page equals 512 bytes. For Alpha linking, the linker, by default, uses a minimum of 1 page. The size of an Alpha page is CPU-specific. The initial set of Alpha systems uses an 8 KB page. The page size used is that of the current link operation. (See the /BPAGE qualifier.) The number of pages must be equal to or greater than the value specified in the parameter. 2 GSMATCH Sets match control parameters for a shareable image and specifies the match algorithm. This option allows you to control whether executable images that link with a shareable image must be relinked each time the shareable image is updated and relinked. Format GSMATCH=keyword,major-id,minor-id GSMATCH=EQUAL,link-time-derived-major-id,link-time-derived-minor-id (default) 3 Option_Values keyword Identifies the match algorithm used by the image activator. Specify one of the following keywords: Keyword Meaning EQUAL Directs the image activator to allow the image to map to the referenced shareable image when one condition is met: o the major and minor ID for the shareable image, as saved at link time in the image file, are equal to the IDs found in the actual shareable image file at activation time. LEQUAL Directs the image activator to allow the image to map to the referenced shareable image when two conditions are met: o the major ID for the shareable image, as saved at link time in the image file, is equal to the major ID found in the actual shareable image file at activation time o the minor ID for the shareable image, as saved at link time in the image file, is less than or equal to the minor ID found in the actual shareable image file at activation time. ALWAYS Directs the image activator to unconditionally allow the image to map to the referenced shareable image: o regardless of the values of the major and minor ID for the shareable image, as saved at link time in the image file, and the values of the IDs found in the actual shareable image file at activation time. Note that you must still specify values for the major ID and minor ID parameters to satisfy the requirements of the option syntax. major-id Specifies the major identification number. minor-id Specifies the minor identification number. When a shareable image is created without specifying a GSMATCH= option, the linker by default creates one. It sets the EQUAL match control and uses portions of the image creation time, as a binary value, for the major and minor IDs. In general this is sufficient to set a unique value for the IDs each time the shareable image is linked. On I64, the linker uses bits 40 through 54 of the binary time value for the major ID and bits 8 through 39 for the minor ID. On Alpha and VAX, the linker uses bits 32 through 46 of the binary time value for the major ID and bits 16 through 31 for the minor ID. 2 IDENTIFICATION Sets the image-id field in the image file. The image identification usually holds a version number of the image, but can be used for any text to identify the generated image. Format IDENTIFICATION=id-name 3 Option_Values id-name The maximum length of the identification character string is 15 characters. If the string contains characters other than uppercase and lowercase A through Z, the numerals 0 through 9, the dollar sign, and the underscore, enclose it in quotation marks. 2 IOSEGMENT Specifies the amount of space to be allocated for the image I/O segment, which holds the buffers and OpenVMS RMS control information for all files used by the image. Format IOSEGMENT=number-of-pagelets[,[NO]P0BUFS] IOSEGMENT=0,NOP0BUFS (default) 3 Option_Values number-of-pagelets Specifies the number of pagelets (512-byte units) to be allocated for the image I/O segment. By default, the operating system uses the value set by the IMGIOCNT system parameter to determine the size of the image I/O space. [NO]P0BUFS By default, the operating system allocates the I/O segment in the P1 region of the process space and, if additional space is needed, at the end of the P0 region. If you specify NOP0BUFS, you deny OpenVMS RMS additional pages in the P0 region. 2 ISD_MAX Alpha and VAX systems. Specifies the maximum number of image sections allowed in the image. Format ISD_MAX=number-of-image-sections ISD_MAX=96 (default, approximate value) 3 Option_Values number-of-image-sections The maximum number of image sections that may be created. You can specify the value in hexadecimal (%X), decimal (%D), or octal (%O) radix. The default is decimal radix. 2 NAME Sets the image-name field in the image file. The image name is used on Alpha and VAX systems to resolve self-references in the shareable image list. Format NAME=image-name 3 Option_Values image-name A character string up to 39 characters in length. If the name contains characters other than uppercase and lowercase A through Z, the numerals 0 through 9, the dollar sign, and the underscore, enclose it in quotation marks. 2 PROTECT Specifies that the segments (I64) or image sections (Alpha) in one or more clusters in a shareable image should be protected from user-mode or supervisor-mode write access. Format PROTECT=YES/NO PROTECT=NO (default) 3 Option_Values YES Enables protection for all the clusters defined in subsequent lines in the options file by the CLUSTER= option or the COLLECT= option, up to a line containing another PROTECT= option. NO Disables protection for all clusters specified on subsequent lines of a linker options file by the CLUSTER= option or the COLLECT= option, up to the line containing another PROTECT=YES option. Protection is disabled by default. 2 PSECT_ATTRIBUTE Specifies the attributes of a program section. Format PSECT_ATTRIBUTE=psect-name,attribute-keyword[,...] 3 Option_Values psect-name Specifies the name of the program section whose attributes you want to set. The name may be a character string up to 31 characters in length. attribute-keyword One or more attributes, identified by a keyword or a number, separated by commas. 2 RMS_RELATED_CONTEXT Enables or disables RMS related name context processing. This is also known as file specification "stickiness." The default is to have RMS related name context processing enabled. This default applies at the start of each options file regardless of the setting in a previous options file. The related name context itself (the collection of data structures RMS maintains to supply the most recently specified fields) does not carry over from one linker options file to the next. That is, previously specified fields in the previous options file are not used to fill in absent fields for file specifications in the current options file. Format RMS_RELATED_CONTEXT=YES/NO RMS_RELATED_CONTEXT=YES (default) 3 Option_Values YES Enables RMS related name context processing. If an option RMS_ RELATED_CONTEXT=NO is in effect, its saved related name context is restored. If RMS related name context processing is already enabled, this option has no effect. RMS related name context processing is enabled by default. Therefore command line file specifications are processed with RMS related name context. Also, RMS related name context processing is enabled at the start of each options file. The related name context is limited to a single options file. That is, the saved related name context is cleared at the start of each options file. NO Disables RMS related name context processing. If an option RMS_ RELATED_CONTEXT=YES is in effect, the current name context is saved for a possible future RMS_RELATED_CONTEXT=YES option. If RMS related name context processing is already disabled, specifying RMS_RELATED_CONTEXT=NO has no effect. 2 STACK Specifies the size of the user-mode stack. Format STACK=number-of-pagelets STACK=20 (default) 3 Option_Values number-of-pagelets Specifies the size of the stack in pagelets (512-byte units). 2 SYMBOL Directs the linker to define an absolute global symbol with the specified name and assign it the specified value. You can use this option to specify a link-time constant. Format SYMBOL=symbol-name,symbol-value 3 Option_Values symbol-name A character string up to 31 characters in length. symbol-value The value you want to assign to the symbol. An absolute global symbol has a fixed numeric value and is therefore not relocatable. Thus, the value must be a number. On I64, the numeric value is a 64-bit value. 2 SYMBOL_TABLE I64 and Alpha systems. Specifies whether the linker should include global symbols in a symbol table file produced in a link operation in which a shareable image is created. By default, the linker includes only universal symbols in a symbol table file associated with a shareable image. Format SYMBOL_TABLE=GLOBALS/UNIVERSALS SYMBOL_TABLE=UNIVERSALS (default) 3 Option_Values GLOBALS Specifies that the linker should include global symbols and universal symbols in the symbol table file associated with the shareable image. UNIVERSALS Specifies that the linker should include only universal symbols in the symbol table file associated with the shareable image. 2 SYMBOL_VECTOR I64 and Alpha systems. Declares universal symbols in shareable images. Format SYMBOL_VECTOR=([alias/]name=entry-type[,...]) 3 Option_Values alias Optionally specifies an alias name for the symbol you want to declare universal. When specified, the alias name appears in the global symbol table (GST) of the image and values associated with the name specified in the symbol-name parameter appear in the symbol vector of the image. Note that you can specify alias names only for symbol vector entries declared using the DATA or PROCEDURE keywords. For more information about symbol vector entry types, see the following table. name Specifies the name of the symbol or the name of a program section in the shareable image that you want to declare universal. entry-type Specifies the type of the symbol vector entry. The following table lists the types of symbol vector entries supported by the linker along with the keyword you use to specify them: Keyword Function DATA Creates a symbol vector entry for data (relocatable or constant). The linker creates an entry for the symbol in the GST of the shareable image. PROCEDURE Creates a symbol vector entry for a procedure and creates an entry for the symbol in the GST of the shareable image. PRIVATE_DATA Creates a symbol vector entry for data; however, the linker does not create an entry for the data in the GST of the shareable image. Thus, the symbol is not available for other modules to link against. PRIVATE_ Creates a symbol vector entry for a procedure; PROCEDURE however, the linker does not create an entry for the procedure in the GST of the shareable image. Thus, the symbol is not available for other modules to link against. PSECT Creates a symbol vector entry for a program section and creates an entry for the program section in the GST of the shareable image. SPARE Use this keyword to create a placeholder. SPARE allows you to preserve the order of the symbol vector entries when you need to create an upwardly compatible shareable image. The SPARE keyword is used alone; it is not preceded by a symbol name and equal sign. 2 UNIVERSAL VAX systems only. Declares a symbol in a shareable image as universal, causing the linker to include it in the global symbol table of a shareable image. Format UNIVERSAL=symbol-name[,...] 3 Option_Values symbol-name The name of the symbol or symbols you want to declare universal.