Document revision date: 30 March 2001

## OpenVMS Linker Utility Manual

Previous | Contents | Index

### 5.2.2 Module Relocatable Reference Synopsis (VAX Linking Only)

For VAX linking, the information contained in the Module Relocatable Reference Synopsis section varies with the type of image being created. For shareable images, this section lists all of the modules that contain at least one .ADDRESS directive. For executable or system images, this section lists the names of all object modules containing at least one .ADDRESS reference to a shareable image. The section lists the modules in the order in which the linker processes them, including the number of .ADDRESS references found. The linker formats the information as in the following example:

                                     +---------------------------------------+
                                     ! Module Relocatable Reference Synopsis !
                                     +---------------------------------------+

    Module Name (1)        Number (2) Module Name            Number   Module Name                  Number
    -----------           ------    -----------            ------   -----------                   ------

    MAIN1                       1

1. Module Name. The name of each object module included in the link operation. The modules are listed in the order in which the linker processed them.
2. Number. The number of .ADDRESS references found.

Note that you can reduce linker and image activator processing time by removing .ADDRESS directives from input files.

### 5.2.3 Image Section Synopsis Section

The Image Section Synopsis section of the linker map file lists the image sections created by the linker. The image sections appear in the order in which the linker created them, which is the same order as the clusters in the linker's cluster list. (For more information about clusters, see Chapter 2.) The section includes other information about these image sections, formatted in columns, as in the following example:

The items in the following list correspond to the numbered items in the preceding figure:

1. Cluster. The name of each cluster the linker created, listed in the order in which the linker created them.
2. Type. The type of image section, expressed as one of the following codes:

   Code | Image Section Type
   --- | ---
   1 | Shareable fixed image section
   2 | Private fixed image section
   3 | Shareable position-independent image section
   4 | Private position-independent image section
   253 | Stack image section

   For more information about the types of image sections the linker creates, see Section 3.3.5.
3. Pages or pagelets. The length of each image section, expressed in pages or pagelets.
4. Base Address. The base address assigned to the image section. Note that if the cluster is relocatable, the image activator relocates the base address. In this case, the base address entry for each image section in the cluster MY_MATH has the letter "R" appended to it, indicating that the base address entry is an offset to be added to the cluster base address assigned by the image activator.
   For Alpha linking, when images are installed as resident images, the Install utility moves image sections containing code into system space. This invalidates the base addresses listed for these image sections in this section of the map file. Note, however, that the relative positions of the program sections within the image section, listed in the Program Section Synopsis section of the map file, remain valid when the image section is moved into system space.
5. Disk VBN (virtual block number). The virtual block number of the image file on disk where the image section begins. The number 0 indicates that the image section is not in the image file.
6. Page fault cluster (PFC). The number of pagelets read into memory by the operating system when the initial page fault occurs for that image section. The number 0 indicates that the system parameter PFCDEFAULT determines this value, rather than the linker.
7. Protection and Paging. A keyword phrase that characterizes the settings of certain attributes of the image section, such as the attributes that affect protection and paging. The following table lists the keywords used by the linker to indicate these characteristics of an image section:

   Keyword | Meaning
   --- | ---
   COPY ON REF | Indicates that the image section is a copy-on-reference image section. Because a copy-on-reference image section is readable and writable, but not shareable, each process receives a copy of it.
   DEMAND ZERO | Indicates that the image section is a demand-zero image section. (For more information, see Section 3.4.3.)
   EXECUTABLE | Indicates that the image section contains code.
   FIXUP VECTORS | Indicates that the image section contains the fix-up section. There is always a change-protection fix-up for the fix-up section, so that when the image activator is done, the image activator changes the protection of the image section to READ ONLY.
   NON-SHAREABLE ADDRESS DATA | Indicates that the linker set a READ ONLY page in the image section to WRITE so that the image activator can fix up address references (.ADDRESS) in the image section. The linker creates a change-protection fix-up for these image sections that causes the image activator to set the attributes of the image section back to READ ONLY when it finishes processing the address references.
   READ ONLY | Indicates that the image section is protected against write access.
   READ WRITE | Indicates that the image section allows both read and write access.

   The linker may use more than one keyword to describe an image section. For example, to describe an image section that contains code, the linker uses the READ ONLY and EXECUTABLE keywords.
   Note that a program section that you may have protected from write access (by setting the NOWRT program section attribute) may appear in the map file as writable (with the READ WRITE keyword). If this program section also has the NON-SHAREABLE ADDRESS DATA keyword (as the first image section in DEFAULT_CLUSTER illustrates), the linker has enabled write access to the program section to allow the image activator to fix up address references in the image section at run time. The image activator resets the program section attributes to READ ONLY after it is finished.
8. Global Section Name. The name assigned by the linker to each image section comprising a shareable image. The linker creates the names by appending the characters "_00x" after the file name, where "x" is an integer, starting with 1, and incremented for each image section in a shareable image.
9. Match. The algorithm the image activator uses when comparing identification numbers in a shareable image, expressed by the keyword LESS/EQUAL, EQUAL, or ALWAYS. For more information about this topic, see the description of the GSMATCH= option in Part 2.
10. Majorid. An identification number assigned to the image. The linker assigns the number to the image if it is not specified as part of the link operation in the GSMATCH= option.
11. Minorid. An identification number assigned to the image. The linker assigns the number to the image if it is not specified as part of the link operation in the GSMATCH= option.

### 5.2.4 Program Section Synopsis Section

The Program Section Synopsis section lists the program sections that comprise the image, with information about the size of the program section, its starting- and ending-addresses, and its attributes. The Module Name column in this section lists the modules that contribute to each program section. The following example illustrates this format:

The items in the following list correspond to the numbered items in the preceding figure:

1. Psect Name. The name of each program section in the image in ascending order of its base virtual address.
2. Module Name. The names of the modules that contribute to the program section whose name appears on the line directly above in the Psect Name column. If a shareable image appears in this column, the linker processed the program section as a shareable image reference.
3. Base. The starting virtual address of the program section or of a module that contributes to a program section.
4. End. The ending virtual address of the program section or of a module that contributes to a program section.
5. Length. The total length of the program section or of a module that contributes to a program section.
6. Align. The type of alignment used for the entire program section or for an individual program section contribution. The alignment is expressed in two ways. In the first column, the alignment is expressed using a predefined keyword, such as OCTA. In the second column, the alignment is expressed as an integer that is the power of 2 that creates the alignment. For example, octaword alignment would be expressed as the keyword OCTA and as the integer 4 (because 24 = 16).
   If the linker does not support a keyword to express an alignment, it puts the text "2 **" in the column in which the keyword usually appears. When read with the integer in the second column, it expresses these alignments, such as 2 ** 5.
7. Attributes. The attributes associated with the program section. For a list of all the possible attributes, see Chapter 3.
   For Alpha linking, the linker includes the MOD attribute in the list of program section attributes (as illustrated in the example). To make room in the display for this attribute, the linker leaves out the Readability (RD/NORD) and User Library (USR/LIB) attributes, which are reserved for future use.
   For VAX linking, the list of attributes includes the Readability (RD/NORD) and User Library (USR/LIB) attributes. The Modified (MOD/NOMOD) attribute, which is not supported for VAX images, is not included.

Note that, if a routine is extracted from the default system library to resolve a symbolic reference, the Program Section Synopsis section in a full map contains information about the program sections comprising that routine. The Program Section Synopsis section in a default map does not.

### 5.2.5 Symbols By Name Section

The Symbols By Name section lists the global symbols contained in all the modules included in the link operation. The section includes the value of the symbol, in the following format:

                                                 +-----------------+
                                                 ! Symbols By Name !
                                                 +-----------------+

    Symbol (1)      Value (2)     Symbol         Value            Symbol          Value          Symbol      Value
    ------         -----        ------         -----            ------          -----          ------      -----
    DECC$EXIT       00001FD0-RX
    DECC$GPRINTF    00001710-RX
    DECC$MAIN       000007D0-RX
    MAIN            00010000-R
    MYSUB           00000010-RX
    MY_SYMBOL       00000050-RX
    SYS$IMGSTA      00000340-RX
    __MAIN          00010078-R

1. Symbol. The names of the image's global symbols in alphabetical order.
2. Value. The value of the symbol, expressed in hexadecimal. The linker appends characters to the end of the symbol value to describe other characteristics of the symbol. For an explanation of these symbols, see Section 5.2.7.

Note that this section is replaced by the Symbol Cross-Reference section when you specify the /CROSS_REFERENCE qualifier in the LINK command. The Symbols by Value section, described in Section 5.2.7, lists the same symbols by value.

### 5.2.6 Symbol Cross-Reference Section

The Symbol Cross-Reference Section, which is produced in place of the Symbols By Name section when you specify the /CROSS_REFERENCE qualifier, lists all of the symbols referenced in the image, along with the module in which they are defined and with all the modules that reference them. The section formats this information as in the following example:

                                            +------------------------+
                                            ! Symbol Cross Reference !
                                            +------------------------+

    Symbol (1)
           Value (2)
            Defined By (3)
         Referenced By ... (4)

    ------          -----           ----------        -----------------
    DECC$EXIT    00001FD0-RX       DECC$SHR                 MY_MAIN
    DECC$GPRINTF 00001710-RX       DECC$SHR                 MY_MAIN
    DECC$MAIN    000007D0-RX       DECC$SHR                 MY_MAIN
    MAIN         00010000-R        MY_MAIN
    MYSUB        00000010-RX       MY_MATH                  MY_MAIN
    MY_SYMBOL    00000050-RX       MY_MATH                  MY_MAIN
    SYS$IMGSTA   00000340-RX       SYS$PUBLIC_VECTORS
    __MAIN       00010078-R        MY_MAIN

1. Symbol. The name of the global symbol.
2. Value. The value of the global symbol, expressed in hexadecimal. The linker appends characters to the end of the symbol value to describe other characteristics of the symbol. For an explanation of these symbols, see Section 5.2.7.
3. Defined By. The name of the module in which the symbol is defined. For example, the symbol `mysub` is defined in the module named MY_MATH.
4. Referenced By.... The name or names of all the modules that contain at least one reference to the symbol.

### 5.2.7 Symbols By Value Section

The Symbols By Value section lists all the global symbols in the image in order by value, in ascending numeric order. The linker formats the information into columns, as in the following example:

                                               +------------------+
                                               ! Symbols By Value !
                                               +------------------+

    Value  (1)                Symbols...(2)
    -----                   ----------
    00000010     RX-MYSUB
    00000050     RX-MY_SYMBOL
    00000340     RX-SYS$IMGSTA
    000007D0     RX-DECC$MAIN
    00001710     RX-DECC$GPRINTF
    00001FD0     RX-DECC$EXIT
    00010000      R-MAIN
    00010078      R-__MAIN

1. Value. The value of each global symbol, expressed in hexadecimal, in ascending numerical order.
2. Symbols... The names of the global symbols. If more than one symbol has the same value, the linker lists them on more than one line. The characters prefixed to the symbol names indicate other characteristics of the symbol, such as its scope. Table 5-3 lists these codes.

   Table 5-3 Symbol Characterization Codes
   Code | Meaning
   --- | ---
   asterisk(*) | Symbol is undefined.
   ++A | Symbol is the alias name for a universal symbol.
   ++I | Symbol is the internal name of a symbol that has a universal alias name.
   U | Symbol is a universal symbol.
   R | Symbol is a relocatable symbol.
   X | Symbol is an external symbol.
   WK | Symbol is a weak symbol. (For more information, see Chapter 2.)

   ++Alpha specific

### 5.2.8 Image Synopsis Section

The Image Synopsis section contains miscellaneous information about the image, such as its name and identification numbers, and a summary of various attributes of the image, such as the number of files used to build the image. The following example illustrates the format of this section of a map file. The list following the example provides more information about items in this section that are not self-explanatory.

                                                     +----------------+
                                                     ! Image Synopsis !
                                                     +----------------+

    Virtual memory allocated:(1)                       00010000 0003FFFF 00030000 (196608. bytes, 384. pages)
    Stack size:                                             20. pages
    Image header virtual block limits:                       1.        2. (    2. blocks)
    Image binary virtual block limits:                       3.        5. (    3. blocks)
    Image name and identification:                    MY_MAIN V1.0
    Number of files:                                         7.
    Number of modules:                                       4.
    Number of program sections:                             11.
    Number of global symbols:                              944.
    Number of cross references:                             13.
    Number of image sections:                               20.
    User transfer address:                            00010078
    Debugger transfer address:                        00000340
    Number of code references to shareable images:           6.
    Image type:                                       EXECUTABLE.
    Map format:                                       FULL WITH CROSS REFERENCE in file WORK:[PROGS]MY_MAIN.MAP;15
    Estimated map length:                             148. blocks

The following list explains the information returned in each line of the Image Synopsis section:

1. Virtual memory allocated. This line contains the following information:
   - The starting-address of the image (base-address)
   - The ending-address of the image
   - The total size of the image, expressed in bytes, in hexadecimal radix
   The numbers in parentheses at the end of the line indicate the total size of the image, expressed in bytes and in pagelets. Both these values are expressed in decimal.

### 5.2.9 Link Run Statistics Section

The Link Run Statistics section contains miscellaneous statistical information about the link operation, such as performance indicators, formatted as in the following example:

                                              +---------------------+
                                              ! Link Run Statistics !
                                              +---------------------+

    Performance Indicators                        Page Faults   CPU Time        Elapsed Time
    ----------------------                        -----------   --------        ------------
        Command processing:                                93   00:00:00.18     00:00:00.81
        Pass 1:                                           345   00:00:00.55     00:00:12.04
        Allocation/Relocation:                              9   00:00:00.04     00:00:00.30
        Pass 2:                                            29   00:00:00.14     00:00:00.62
        Map data after object module synopsis:              3   00:00:00.05     00:00:00.31
        Symbol table output:                                0   00:00:00.00     00:00:00.10
    Total run values:                                     479   00:00:00.96     00:00:14.18

    Using a working set limited to 2048 pages and 946 pages of data storage (excluding image)

    Total number object records read (both passes):   167
        of which 0 were in libraries and 0 were DEBUG data records containing 0 bytes

    Number of modules extracted explicitly             = 0
        with 0 extracted to resolve undefined symbols

    5 library searches were for symbols not in the library searched

    A total of 0 global symbol table records was written

    LINK/MAP/FULL/CROSS MY_MAIN,SYS$INPUT/OPT
    my_math/share

Previous | Next | Contents | Index

| privacy and legal statement |
4548PRO_010.HTML