User`s guide

Recommended and Required Source Changes
3.7 Transfer Vectors
the shareable image that allows external images to locate relocatable universal
procedure entry points and storage addresses.
Recommended Change
You must remove the transfer vector from the VAX MACRO source. When linking
the object file produced by the compiler, you must specify a linker options file
that includes the SYMBOL_VECTOR statement. Within the SYMBOL_VECTOR
statement, you must list each universally-visible, relocatable symbol (procedure
entry point or data address), indicating whether each is DATA or a PROCEDURE.
Note that the linker builds the symbol vector in the order in which the symbols
appear in the linker options file. You must retain this symbol order over the
course of later builds of the shareable images. That is, you can add entries to the
end of the symbol list or remove entries, but ongoing entries must keep the same
ordinal position in the list. For more information about transfer vectors, refer to
the HP OpenVMS Linker Utility Manual.
3.8 Arithmetic Exceptions
On OpenVMS Alpha systems, the treatment of arithmetic exceptions is different
from and incompatible with that of OpenVMS VAX systems. Exception handlers
designed for an OpenVMS VAX system that field arithmetic exceptions will
be unable to match the expected signal names with those actually signaled on
OpenVMS Alpha systems.
On OpenVMS VAX systems, the architecture ensures that arithmetic exceptions
are reported synchronously, whereas on OpenVMS Alpha systems, arithmetic
exceptions are reported asynchronously. On OpenVMS VAX systems, a VAX
arithmetic instruction that causes an exception (such as an overflow) enters any
exception handlers immediately and no subsequent instructions are executed.
The program counter (PC) reported to the exception handler is that of the failing
arithmetic instruction. This allows application programs, for example, to resume
the main sequence, with the failing operation being emulated or replaced by some
equivalent or alternate set of operations.
On OpenVMS Alpha systems, a number of instructions (including branches and
jumps) can execute beyond that which caused the exception. These instructions
may overwrite the original operands used by the failing instruction, therefore
causing information integral to interpreting or rectifying the exception to be lost.
The PC reported to the exception handler is not that of the failing instruction,
but rather is that of some subsequent instruction. When the exception is reported
to an application’s exception handler, it may be impossible for the handler to fix
up the input data and restart the instruction.
Because of this fundamental difference in arithmetic exception reporting, the
OpenVMS Alpha operating system defines a new, single condition code, SS$_
HPARITH, to indicate all of the arithmetic exceptions. For information about
the SS$_HPARITH exception signal array, see Migrating to an OpenVMS AXP
System: Recompiling and Relinking Applications.
1
1
This manual has been archived. It is no longer maintained and is not part
of the OpenVMS documentation set. However, you can view it online at
http://www.hp.com/go/openvms/doc.
Recommended and Required Source Changes 3–17