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.