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

eld Input and Output
eld Manual—527255-009
2-14
Input Object Files
or subvolume, as is normally done for the corresponding host platform. eld reports an
error if the file does not exist, or if the linker cannot open it for reading.
In the case that the name was specified directly in the command stream, the file can be
a linkfile, archive, or DLL. In the case that the name was specified as a full filename in
a -l option, the file must be an archive or DLL. In either case, if -b static is in
effect then eld reports an error if the file is a DLL, and if -b dllsonly is in effect
then eld reports an error if the file is an archive.
The linker searches for a file by performing several steps. Most of these steps involve
looking for the file in a given directory or subvolume, although one step is a special
way to look for public DLLs. When the linker is looking in a directory or subvolume
there are certain filenames that it expects to find. If a desired file doesn’t exist, or if it
does exist but the linker cannot open it for reading, then the linker continues without
warning. More details of what the linker does during the search are provided in the
following sub-sections of this manual.
By default, if the linker gets to the end of its search without finding a file to satisfy a -l
option, eld reports an error. However, the -allow_missing_libs option tells the
linker that it is not an error unless this happens when the current mode is -b static.
If it isn’t an error, the linker instead emits an informational message.
When the -r option is specified, telling the linker to create a linkfile rather than a
loadfile, the linker looks for archives and DLLs the same way as in other cases, but
then the DLLs are ignored.
Informational messages tell the file names of all the archives and DLLs that were
opened by the linker, saying for each one whether it is an archive, a DLL, or an import
library. If it is an import library, the message tells whether the import library is complete
or incomplete.
Whenever the linker finds an import library from the command stream, it checks
whether the DLL name within this file is “__IMPLICIT_LIB__”. If so, it is recognized to
be the import library that represents the implicit libraries, and it is used as the last item
in the search list, as described in Presetting Loadfiles on page 3-5. It is always an
error if the linker finds a DLL, rather than an import library, whose DLL name is
“__IMPLICIT_LIB__”.
If the -make_implicit_lib option is given, eld reports an error if any of the DLLs
or import libraries that the linker finds in the command stream do not have the
EF_TANDEM_IMPLICIT_LIB bit set in their ELF headers. Also, when -
make_implicit_lib is used, eld reports an error if the linker finds an import library
whose DLL name is “__IMPLICIT_LIB__”.
The linker creates the .liblist section of its output loadfile. The .liblist section contains
one entry for each DLL (or import library) obtained from the command stream,
regardless of the method used to find it. The entry tells the name of the DLL, as
obtained from the DT_SONAME field of the DLLs .dynamic section. There is no
requirement that the name found within the DLL, and therefore stored in the .liblist
section, match the name that was used to find the DLL from the command stream.










