HP OpenVMS Systems Documentation

Content starts here

HP Fortran for OpenVMS
User Manual


Previous Contents Index

2.7.5 Compilation Summary Section

The final entries on the compiler output listing are the compiler qualifiers and compiler statistics.

The body of the compilation summary contains information about OPTIONS statement qualifiers (if any), FORTRAN command line qualifiers, and compilation statistics.

"Compilation Statistics" shows the machine resources used by the compiler.

Example 2-7 shows a sample compilation summary.

Example 2-7 Sample Compilation Summary

COMMAND QUALIFIERS

  /ADDRESSING_MODEL=NORMAL
  /ALIGNMENT=(COMMONS=(NONATURAL,PACKED,NOSTANDARD,NOMULTILANGUAGE),
                       RECORDS=NATURAL,NOSEQUENCE)
  /ANNOTATIONS=(NOCODE,NODETAIL,NOFEEDBACK,NOINLINING,NOLINKAGES,
                NOLOOP_TRANSFORMS,NOLOOP_UNROLLING,NOPREFETCHING,
                NOSHRINKWRAPPING,NOSOFTWARE_PIPELINING,NOTAIL_CALLS)
  /ARCHITECTURE=GENERIC
  /ASSUME=(ACCURACY_SENSITIVE,ALTPARAM,NOBUFFERED_IO,NOBYTERECL,
           NODUMMY_ALIASES,NOF77RTL,NOFP_CONSTANT,NOINT_CONSTANT,
           NOMINUS0,PROTECT_CONSTANTS,NOSOURCE_INCLUDE,NOUNDERSCORE)
  /NOAUTOMATIC
  /NOBY_REF_CALL
  /CCDEFAULT=DEFAULT
  /CHECK=(NOARG_TEMP_CREATED,NOBOUNDS,FORMAT,NOFP_EXCEPTIONS,OUTPUT_CONVERSION,
          NOOVERFLOW,POWER,NOUNDERFLOW,NOARG_INFO,NOFP_MODE)
  /CONVERT=NATIVE
  /DEBUG=(NOSYMBOLS,TRACEBACK)
  /NODEFINE
  /DOUBLE_SIZE=64
  /NOD_LINES
  /ERROR_LIMIT=30
  /NOEXTEND_SOURCE
  /F77
  /NOFAST
  /FLOAT=IEEE_FLOAT
  /GRANULARITY=QUADWORD
  /IEEE_MODE=DENORM_RESULTS
  /INTEGER_SIZE=32
  /MACHINE_CODE
  /MATH_LIBRARY=ACCURATE
  /NOMODULE
  /NAMES=UPPERCASE
  /OPTIMIZE=(INLINE=SPEED,LEVEL=4,NOLOOPS,PIPELINE,TUNE=GENERIC,UNROLL=0)
  /NOPAD_SOURCE
  /REAL_SIZE=32
  /NORECURSIVE
  /REENTRANCY=NONE
  /ROUNDING_MODE=NEAREST
  /NOSEPARATE_COMPILATION
  /SEVERITY=(WARNING=WARNING)
  /SHOW=(NODICTIONARY,NOINCLUDE,MAP,NOPREPROCESSOR)
  /SOURCE_FORM=FREE
  /STANDARD=NONE
  /NOSYNCHRONOUS_EXCEPTIONS
  /NOSYNTAX_ONLY
  /NOTIE
  /VMS
  /WARNINGS=(ALIGNMENT,NOARGUMENT_CHECKING,NODECLARATIONS,GENERAL,GRANULARITY,NOIGNORE_LOC,
             NOTRUNCATED_SOURCE,UNCALLED,UNINITIALIZED,NOUNUSED,USAGE)
  /NOANALYSIS_DATA
  /NODIAGNOSTICS
  /INCLUDE=FORT$INCLUDE:
  /LIST=GEMI64$DKA100:[JBISHOP.BUG]SIMPLE.LIS;1
  /OBJECT=GEMI64$DKA100:[JBISHOP.BUG]SIMPLE.OBJ;1
  /NOLIBRARY

COMPILER: HP Fortran V8.0-xxxxx-xxxxx

COMPILATION STATISTICS

  CPU time:          0.13 seconds
  Elapsed time:      1.06 seconds
  Pagefaults:         720
  I/O Count:           28


Chapter 3
Linking and Running HP Fortran Programs

This chapter describes:

3.1 Linker Overview

The primary functions of the linker are to allocate virtual memory within the executable image, to resolve symbolic references among object modules being linked, to assign values to relocatable global symbols, to perform relocation, and to perform any requested special-purpose tasks. The linker creates an executable or shareable image that you can run on an OpenVMS system.

For any HP Fortran program unit, the object file generated by the compiler may contain calls and references to HP Fortran run-time procedures, which the linker locates automatically in the default system object libraries, such as IMAGELIB.OLB.

For More Information:

On linker capabilities, default system object libraries, and detailed descriptions of LINK command qualifiers and options, see the HP OpenVMS Linker Utility Manual.

3.2 LINK Command Qualifiers and Messages

The LINK command initiates the linking of the object file. The command has the following form:


LINK[/command-qualifiers] file-spec[/file-qualifiers]...

/command-qualifiers

Specify output file options.

file-spec

Specifies the input object file to be linked.

/file-qualifiers

Specify input file options.

In interactive mode, you can issue the LINK command without a file specification. The system then requests the file specifications with the following prompt:


_File:

You can enter multiple file specifications by separating them with commas (,) or plus signs (+). When used with the LINK command, the comma has the same effect as the plus sign; a single executable image is created from the input files specified. If no output file is specified, the linker produces an executable image with the same name as that of the first object file and with a file type of EXE.

Table 3-1 lists the linker qualifiers of particular interest to HP Fortran users.

Table 3-1 LINK Command Qualifiers
Function Qualifiers Defaults
Request output file, define a file specification, and specify whether to create an executable or shareable image. /EXECUTABLE[= file-spec]
/SHAREABLE[= file-spec]
(see Section 3.2.1.1)
/EXECUTABLE= name.EXE
where name is the name
of the first input file.
/NOSHAREABLE
Allow the executable image to interoperate with nonnative shared libraries. /[NO]NATIVE_ONLY
(see Section 3.2.1.2)
/NATIVE_ONLY (see Section 3.2.1)
Request and specify the contents of an image map (memory allocation) listing. /BRIEF
/[NO]CROSS_REFERENCE
/FULL
/[NO]MAP
(see Section 3.2.1.3)
/NOCROSS_REFERENCE
/NOMAP (interactive)
/MAP= name.MAP (batch)
where name is the name
of the first input file.
Specify the amount of debugging information. /[NO]DEBUG
/[NO]TRACEBACK
(see Section 3.2.2)
/NODEBUG
/TRACEBACK
Indicate the type of input files and request the inclusion of only certain object modules. /INCLUDE=(module-name...)
/LIBRARY
/SELECTIVE_SEARCH
as positional qualifier: /SHAREABLE
(see Section 3.2.3)
Not applicable
Request or disable the searching of default user libraries and system libraries. /[NO]SYSLIB
/[NO]SYSSHR
/[NO]USERLIBRARY[=table]
/SYSLIB
/SYSSHR
/USERLIBRARY=ALL
Indicate that an input file is a linker options file. /OPTIONS
(see Section 3.2.5)
Not applicable
Request a symbol table. /[NO]SYMBOL_TABLE[= file-spec]
(see Section 3.2.4)
/NOSYMBOL_TABLE

3.2.1 Linker Output File Qualifiers

You can use qualifiers on the LINK command line to control the output produced by the linker. You can also specify whether traceback and debugging information is included. (The /DEBUG and /TRACEBACK qualifiers are described in Section 3.2.2.)

Linker output consists of an image file and, optionally, a map file. The qualifiers that control image and map files are described under the headings that follow.

3.2.1.1 Image File Qualifiers

The LINK command /[NO]EXECUTABLE and /[NO]SHAREABLE qualifiers control whether the linker creates an executable image, a shareable image, or no image file.

  • /EXECUTABLE
    If you omit /EXECUTABLE and /SHAREABLE, the default is /EXECUTABLE, and the linker produces an executable image.
    To suppress production of an image, specify /NOEXECUTABLE. For example, in the following command, the file CIRCLE.OBJ is linked, but no image is generated:


    $ LINK/NOEXECUTABLE CIRCLE
    

    The /NOEXECUTABLE qualifier is useful if you want to verify the results of linking an object file without actually producing the image.
    To designate a file specification for an executable image, use the /EXECUTABLE qualifier in the following form:

    /EXECUTABLE=file-spec


    For example, the following command links the file CIRCLE.OBJ. The linker generates an executable image named TEST.EXE:


    $ LINK/EXECUTABLE=TEST CIRCLE
    
  • /SHAREABLE
    A shareable image has all of its internal references resolved, but must be linked with one or more object modules to produce an executable image. A shareable image file, for example, can contain a library of routines. To create a shareable image, specify the /SHAREABLE qualifier, as shown in the following example:


    $ LINK/SHAREABLE CIRCLE
    

    To include a shareable image as input to the linker, you can either use a linker options file or insert the shareable image into a shareable-image library and specify the library as input to the LINK command. By default, the linker automatically searches the system-supplied shareable-image library SYS$LIBRARY:IMAGELIB.OLB after searching any libraries you specify on the LINK command line.
    If you specify (or default to) /NOSHAREABLE, the linker creates an executable image, which cannot be linked with other images.
    You can also use the /SHAREABLE qualifier in an options file as a positional qualifier (following a file specification).
    To create a shareable-image library, use the LIBRARIAN command with the /CREATE, /INSERT, and /SHARE qualifiers.

For More Information:

  • On creating and populating libraries, see the HP OpenVMS Command Definition, Librarian, and Message Utilities Manual.
  • On libraries searched by the linker, see the HP OpenVMS Linker Utility Manual.

3.2.1.2 /NATIVE_ONLY Qualifier

The FORTRAN command /[NO]TIE qualifier and the LINK command /[NO]NATIVE_ONLY qualifier together control whether procedure signature block (PSB) information is placed in the executable image.

The image activator uses the procedure signature block (PSB) information in the executable image to build jackets that allow calls (interoperability) with translated VAX shareable images on Alpha systems, and translated Alpha images on I64 systems. To allow interoperability with translated shareable images, you must:

  • Specify the /TIE qualifier on the FORTRAN command line. This places the PSB information into the object module.
  • Specify /NONATIVE_ONLY on the LINK command line. This propagates the PSB information in the object module into the executable image, so the image activator can use it with translated images.

The following command combination creates an executable image for translated image interoperability:


$ FORTRAN/TIE file
$ LINK/NONATIVE_ONLY file

Unless you need the PSB information for calls to translated shareable images, avoid placing PSB information in the executable image to minimize its size for performance reasons.

The default for the FORTRAN command, /NOTIE, results in the PSB information not being placed in the object module. The default for the LINK command, /NATIVE_ONLY, results in the linker not passing any PSB information present in the object module into the executable image.

For example, the following command combination creates a executable image for native use only (no PSB information in the executable image):


$ FORTRAN/TIE file
$ LINK file

The FORTRAN /TIE qualifier places the PSB information in the object module. By default, the linker does not propagate the PSB information, if found in the object module, to the executable image (default is /NATIVE_ONLY). The same object module might be retained and used in a different application that requires interoperability.

For More Information:

On interoperability, see Section B.6 and the manuals Migrating an Application from OpenVMS VAX to OpenVMS Alpha and Porting Applications from HP OpenVMS Alpha to HP OpenVMS Industry Standard 64 for Integrity Servers.

3.2.1.3 Map File Qualifiers

The LINK command /MAP qualifier and its associated qualifiers indicate whether an image map file is to be generated and, if so, the amount of information to be included in the image map file.

The map qualifiers are specified as follows:


/[NO]MAP[=file-spec]
  • /BRIEF
  • /CROSS_REFERENCE
  • /FULL

In interactive mode, the default is to suppress the map; in batch mode, the default is to generate the map.

If you do not include a file specification with the /MAP qualifier, the map file has the name of the first input file and a file type of MAP. It is stored on the default device in the default directory.

The /BRIEF and /FULL qualifiers define the amount of information included in the map file. They function as follows:

  • /BRIEF produces a summary of the image's characteristics and a list of contributing object modules.
  • /FULL produces a summary of the image's characteristics and a list of contributing object modules (as produced by /BRIEF). It also produces a list, in symbol-name order, of global symbols and values (program, subroutine, and common block names, and names declared EXTERNAL) and a summary of characteristics of image sections in the linked image.

If neither /BRIEF nor /FULL is specified, the map file, by default, contains a summary of the image's characteristics, a list of contributing object modules (as produced by /BRIEF), and a list of global symbols and values, in symbol-name order.

You can use the /CROSS_REFERENCE qualifier with either the default or /FULL map qualifiers to request cross-reference information for global symbols. This cross-reference information indicates the object modules that define or refer to global symbols encountered during linking. The default is /NOCROSS_REFERENCE.

For More Information:

On image maps, see the HP OpenVMS Linker Utility Manual.

3.2.2 /DEBUG and /TRACEBACK Qualifiers

The /DEBUG qualifier includes the debugger and places local symbol information (contained in the object modules) in the executable image. The default is /NODEBUG.

When you use the /TRACEBACK qualifier, run-time error messages are accompanied by a symbolic traceback. This shows the sequence of calls that transferred control to the program unit in which the error occurred. If you specify /NOTRACEBACK, this information is not produced. The default is /TRACEBACK.

If you specify /DEBUG, the traceback capability is automatically included, and the /TRACEBACK qualifier is ignored.

For More Information:

3.2.3 Linker Input File Qualifiers

The LINK command input file qualifier /LIBRARY identifies the input file as a library file. The LINK command /INCLUDE qualifier specifies the names of one or more object modules in a library to be used as input files. The /SELECTIVE_SEARCH qualifier indicates that only symbols referenced from previous input files be taken from the specified file's list of global symbols, rather than all of the input file's global symbols.

To specify a shareable image as an input file, place the /SHAREABLE positional qualifier after the file specification in a link options file. In contrast to the /SHAREABLE qualifier you use on a LINK command line to create a shareable image, the /SHAREABLE positional qualifier in a link options file specifies a shareable image input file.

Input files can be object files, previously linked shareable files, or library files.

  • /LIBRARY
    The /LIBRARY qualifier specifies that the input file is an object-module or shareable-image library that is to be searched to resolve undefined symbols referenced in other input object modules. The default file type is OLB.
    The /LIBRARY qualifier has the following form:

    file.type/LIBRARY

  • /INCLUDE
    The /INCLUDE qualifier specifies that the input file is an object-module or shareable-image library and that the object modules named are the only object modules in the library to be explicitly included as input. In the case of shareable-image libraries, the object module is the shareable-image name.
    The /INCLUDE qualifier has the following form:

    file.type/INCLUDE=module-name


    At least one object module name is required. To specify more than one, enclose the object module names in parentheses and separate the names with commas.
    The default file type is OLB. The /LIBRARY qualifier can also be used, with the same file specification, to indicate that the same library is to be searched for unresolved references.

  • /SELECTIVE_SEARCH
    The /SELECTIVE_SEARCH qualifier specifies that the linker only include those global symbols already referenced from previous input files, instead of all the global symbols defined by the specified input file. The /SELECTIVE_SEARCH positional qualifier has the following form:

    file.OBJ/SELECTIVE_SEARCH

  • /SHAREABLE
    When used as a positional qualifier in a linker options file, the /SHAREABLE qualifier specifies that the input file it follows is a shareable image. The /SHAREABLE positional qualifier has the following form:

    file.EXE/SHAREABLE

For More Information:

  • On defining DCL commands, creating libraries, and related topics, see the HP OpenVMS Command Definition, Librarian, and Message Utilities Manual.
  • On linker capabilities and detailed descriptions of LINK command qualifiers and options, see the HP OpenVMS Linker Utility Manual.

3.2.4 Linker Symbol Table Qualifier

The /SYMBOL_TABLE qualifier requests that the symbol table be written to a file.

The qualifier has the following form:


/SYMBOL_TABLE=file-spec

If you omit the file name, the linker uses a default file type of STB.

3.2.5 Linker Options File Qualifier

The /OPTIONS qualifier identifies a file as a linker options file, which contains additional information about the current link operation.

The qualifier has the following form:


file-spec/OPTIONS

The file specification is usually a file with default file type of OPT.

You can use an options file to specify additional information to the linker, including a shared image as input to the linker, declare universal symbols, and other features.

For more information on using an OPTIONS file, see the HP OpenVMS Linker Utility Manual.

3.2.6 Other Linker Qualifiers

This chapter discusses the more frequently used linker qualifiers. Other linker qualifiers specify additional libraries to be searched or to prevent default libraries from being searched, control image section characteristics and placement, creation of a global symbol table, and other linker operations.

HP Fortran programs should not be linked with certain linker qualifiers, such as /SYSTEM and /PROTECT.


Previous Next Contents Index