eld Manual
Table Of Contents
- eld Manual
- Legal Notices
- Contents
- What’s New in This Manual
- Manual Information
- New and Changed Information
- About This Manual
- Notation Conventions
- 1 Introduction to eld
- 2 eld Input and Output
- 3 Binding of References
- Overview
- Presetting Loadfiles
- To Preset or Not to Preset, and Creation of the LIC
- Handling Unresolved References
- Using User Libraries
- Creating Import Libraries
- Ignoring Optional Libraries
- Merging Symbols Found in Input Linkfiles
- Accepting Multiply-Defined Symbols
- Using the -cross_dll_cleanup option
- Specifying Which Symbols to Export, and Creating the Export Digest
- Public Libraries and DLLs
- The Public Library Registry
- 4 Other eld Processing
- Adjusting Loadfiles: The -alf Option
- Additional rules about -alf
- The -set and -change Options
- eld Functionality for 64-Bit
- Checking the C++ Language Dialect
- Renaming Symbols
- Creating Linker-Defined Symbols
- Updating Or Stripping DWARF Symbol Table Information
- Modifying the Data Sections that Contain Stack Unwinding Information
- Creating the MCB
- Processing of Floating Point Versions and Data Models
- Specification of the Main Entry Point
- Specifying Runtime Search Path Information for DLLs
- Merging Source RTDUs
- 5 Summary of Linker Options
- 6 Output Listings and Error Handling
- A TNS/E Native Object Files
- Glossary
- Index

Binding of References
eld Manual—527255-009
3-10
Using User Libraries
the flags field of the .tandem_info section. This tells rld how it should treat
unresolved references at runtime. Even if this loadfile is preset, and even if rld can
verify that the presetting is correct, rld will still repeat the presetting process in order
to generate the error or warning messages requested by the
RUNTIME_UNRES_CHECKING bits if the LIC says that there were unresolved
references.
The bits set by -set rld_unresolved also provide defaults for how -alf treats
unresolved references.
There is no option for specifying the treatment of unresolved references based on a
symbol’s name.
Using User Libraries
A user library is a DLL that is found in a special way by a program.
The -set libname option, given to the linker when it is building a program, tells the
filename for the user library as it needs to be present at runtime. eld reports an error if
you give this option when not building a program. The -set option is described The -
set and -change Options on page 4-8.
The option -libname may be used as a synonym for -set libname. The specified
user library name must always have the form $a.b.c, i.e., a valid Guardian file name,
fully qualified up to the volume name, and not including the system name, because this
is the only type of name that will work at runtime. Note that, when running the linker on
OSS, one would need to do something such as putting the name in single quotation
marks or preceding it with a backslash to avoid the special meaning of the dollar sign
to the shell. The linker places the name specified by the -set libnamee option into
the .tandem_info section of the program that it is creating. The linker also converts the
name to upper case, if not done already. On Guardian APIs, single quotes do not work
because they are not recognized by the HP Tandem Advanced Command Language
(TACL); therefore, it is not important to specify them.
The -local_libname option tells the linker the filename of the user library to use at
link time. Section 3, Binding of References explains how this user library is used,
similarly to other DLLs, when the linker is fixing up references. It is not an error if the
linker can’t find the user library, but it does mean that the linker cannot preset the
program that it is creating.
The locations of the -set libname and -local_libname options in the command
stream are irrelevant. These options may only be used when building a program.
Additional rules related to these options depend on the platform:
The PC hosted linker knows that it is building a program that uses a user library
because the -set libname option is used. If the -local_libname option is not
used then the linker can’t find the user library. eld reports an error if you specify -
local_libname without -set libname.










