HP OpenVMS Systems Documentation |
HP Fortran for OpenVMS
|
Previous | Contents | Index |
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 |
This chapter describes:
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.
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.
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 |
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.
$ LINK/NOEXECUTABLE CIRCLE |
/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 |
$ LINK/SHAREABLE CIRCLE |
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:
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.
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]
|
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:
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.
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.
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.
file.type/LIBRARY |
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.
file.OBJ/SELECTIVE_SEARCH |
file.EXE/SHAREABLE |
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 |