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-18
Using Archives
The linker does not make use of any environment variables other than COMP_ROOT.
When eld is creating a new object file X from a set of linkfiles, or processing a loadfile
X with the -alf option, it is desired that DLL’s of the appropriate data model match the
data model of X. Therefore, if X is neutral then it is desired that all the DLL’s used are
neutral, and if X is not neutral then it is desired that all the DLL’s used are either neutral
or same as X. During a search, if a DLL that is not desired is encountered, the search
continues. If the search function later finds an archive or a DLL which is desired, the
previously found DLL that was not desired is ignored. If the search does not succeed,
the DLL found earlier is used, even though it is not desired. A warning is issued if a
DLL of the undesired model is used.
Finding Public DLLs
This section explains how the linker looks for a public DLL based on the file identifier.
(The file identifier may have been specified in a -l option in the command stream, or
may have been found in the liblist of some other DLL).
As described in Finding and Reading The Public DLL Registry (ZREG) File on
page 3-23, the linker may or may not have located the public DLL registry file. If the
linker did not locate the public DLL registry file, it does not look for public DLLs. (It
continues to look for this DLL in other ways). The rest of this section assumes that the
linker did locate the public DLL registry file.
The linker verifies whether the file identifier matches with one of the public DLL
filenames found in the public DLL registry. If there is no such match and the linker is
either creating a 64-bit object file or the -alf option processes a 64-bit loadfile. The
linker verifies whether the name added with prefix “y” and suffix “DLL”, matches one of
the public DLL filenames found in the public registry. Later, the linker verifies whether
the name added with prefix “z” and suffix “DLL” matches the public DLL filenames
found in the public DLL registry.
If the linker does not find the file in the appropriate place as described above, or finds it
but cannot open it for reading, or if the file is not a DLL,
eld reports an error.
If the linker is creating a 64-bit object file or the -alf option is processing a 64-bit
loadfile, and if a file exists with the name lib instead of “y” prepended, and y.so
instead of “DLL” appended, then linker uses this file. If a file exists, with the name
lib instead of “z” prepended and .so instead of “DLL” appended, then linker uses
this file. The linker considers it an error only if these files do not exist, or are not DLLs.
In other words, as a result of the special cases described above, it is possible to put a
copy of the real zreg file into a location on the PC or OSS so that it lists the public
DLLs with names like zcredll or ycredll, etc., but in the same location. Instead of
having files named zcredll or ycredll, etc., you can rename them as:
libcre.so, or libcrey.so, and so on. eld does not consider it as an error when
Note. All of these matches are case insensitive.
Note. There is also an exception which applies to platforms other than Guardian.










