DLL Programmer's Guide for TNS/E Systems

Essential DLL Facility Controls
DLL Programmer’s Guide for TNS/E Systems527252-006
2-20
C++ Dialect
1. If the -set floattype <value> option is inserted, the linker sets the floating-
point type of the output loadfile to <value>, where <value> can be ieee,
tandem, or neutral.
2. If the -set floattype <value> option is not inserted, then if the input
linkfiles do not contain a mixture of both ieee and tandem floating-point types,
the linker sets the floating-point type of the output loadfile to the one that is
represented. Input linkfiles of neutral floating-point type are ignored in this.
However, if all input linkfiles are neutral, then the linker sets the output loadfile to
neutral.
Checking the Floating-Point Types of Linkfiles Being Linked
The linker checks for consistency of floating-point types among all input linkfiles, as
follows.
1. If the floating point type of a loadfile being linked is set by inserting the -set
floattype <value> option, as in (1) of Setting the Floating-Point Type of a
Loadfile Being Linked on page 2-19, then if any of the linkfiles being linked has a
floating-point type that differs from <value>, the linker issues a warning message.
2. If the -set floattype <value> option is not inserted, as in (2) of Setting the
Floating-Point Type of a Loadfile Being Linked on page 2-19, then if the input
linkfiles contain a mixture of both ieee and tandem floating-point types, the
linker terminates in error.
Checking the Floating-Point Types of Liblisted Libraries
When linking a PIC program, by default, the linker checks for floating-point type
consistency among the libraries from which that program imports symbols. If either the
program’s floating-point type is neutral or the floating-point type of any such library
differs from floating-point type set for the program, the linker issues a warning
message.
When linking a DLL, the linker does not check for floating-point type consistency
among loadfiles from which it imports symbol definitions.
C++ Dialect
Each compiler identifies its language in the generated linkfiles. Three different versions
of the C++ language exist on HP NonStop systems; these dialects are called version1,
version2 and version3. They differ in language constructs and in their run-time support
libraries; they have slightly different "mangling" algorithms for function names.
Version1, the oldest, is obsolete and is not supported for PIC files (on TNS/R or
TNS/E). Version3 was new with G06.20; it complies with the ANSI standard.
For any language other than C++, the C++ dialect is defined to be neutral. The linker
and loader ensure that only one non-neutral C++ dialect appears in a loadfile or a
process, respectively.