Other eld Processing
eld Manual—527255-009
4-16
Processing of Floating Point Versions and Data
Models
Processing of Floating Point Versions and Data Models
When the linker builds a new linkfile or loadfile it performs consistency checks of
floating point versions. These checks use the floating point bits that are found in the
e_flags
field of the ELF header.
The linker determines whether the input linkfiles are consistent, meaning that they do
not contain a mixture of both the
tandem
and
ieee
floating point types. If they are
consistent then the result type
is determined to be whichever of
tandem
or
ieee
occurred, or
neutral
if neither occurred.
If the
-set floattype
option is used, that determines the value that is placed into
the output linkfile or loadfile. The three values that can be specified with the
-set
floattype
option are
ieee
,
neutral
, and
tandem
, and they have the synonyms
ieee_float
,
neutral_float
, and
tandem_float
, respectively. An informational
message is generated if the input files were not consistent, or if they were consistent
but with a result type different from what the option specified.
If a program is marked
neutral
, the HP NonStop operating system and CRE
consider that to mean the same thing as
tandem
. If the linker is creating a program
and
-set_floattype neutral
has been specified then the linker will put out a
warning message to say that floating point type
neutral
actually means
tandem
to
the HP NonStop operating system and CRE.
If the
-set floattype
option is not used,
eld
reports an error if the input files are
not consistent. If they are consistent, the result type is placed into the output file.
When the linker is building a loadfile, the
-set float_lib_overrule
option may
be used to turn on the
EF_TANDEM_FLOAT_LIB_OVERRULE
bit in the ELF header of
the loadfile. The linker allows this bit to be set in both programs and DLLs.
The linker performs additional floating point checks with regard to DLLs when it is
creating a new loadfile, as described in the following paragraphs. The same checks are
performed by the
-alf
option when they are updating an existing loadfile. These
checks result in warning messages, not errors, because different DLLs may be used at
runtime.
If the linker is building a program, or updating it with
-alf
, the intention is to be
consistent with the checks that the HP NonStop operating system will do. So, there is
no checking against DLLs if the linker has been told to turn on the
FLOAT_LIB_OVERRULE
bit in the program. If this bit is not to be turned on then the
linker checks the program’s floating point type against all the DLLs that it has opened.
All DLLs must either be neutral or have the same floating point type as the one
indicated in the program. As mentioned above, if the program is marked
neutral
, the
linker considers that to mean
tandem
.
If the linker is building or updating a DLL then it checks that all the DLLs seen by the
linker, including the DLL that is being created or updated, do not contain a mixture of
both
tandem
and
ieee
.
Summary of Contents for eld
Page 4: ......
Page 8: ...Contents eld Manual 527255 009 iv ...
Page 12: ...What s New in This Manual eld Manual 527255 009 viii Changes to the 527255 005 Manual ...
Page 34: ...Introduction to eld eld Manual 527255 009 1 14 Example of Use ...
Page 54: ...eld Input and Output eld Manual 527255 009 2 20 Using Archives ...
Page 98: ...Other eld Processing eld Manual 527255 009 4 20 Merging Source RTDUs ...
Page 242: ...Output Listings and Error Handling eld Manual 527255 009 6 132 Glossary of Errors ...