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
Introduction to eld
eld Manual—527255-009
1-5
The Linker Command Stream
Some DLLs are called public libraries because they are provided as part of the TNS/E
implementation and are found in a special way by the linker and runtime loader. A
public library has the same format as any other DLL, and can have an import library to
represent it.
Some of the public libraries are called implicit libraries because they are used at link
time and run time without explicit mention on the part of the user. There are several
implicit libraries, and there is a bit in a DLL that tells if it is an implicit library. A single
implicit library never has an import library to represent it to the linker. Rather, at link
time, when building a loadfile that is not an implicit library, a single import library
represents the entire set of implicit libraries. That is called the import library that
represents the implicit libraries, and it is always a complete import library.
For detailed information about PIC programs and developing DLLs, see the DLL
Programmer’s Guide for TNS/E Systems.
There is also an equivalent manual for TNS/R systems, the DLL Programmer’s Guide
for TNS/R Systems.
The Linker Command Stream
The following definitions of terms such as option, parameters and filenames is specific
only to eld. In other environments and products, similar concepts might go under
different names, for example OSS calls options “flags”.
The linker obtains tokens from the command line by using the argc and argv
functions of C. The way this works may be dependent on the C runtime
implementation, but the general idea is that tokens are separated by spaces. On the
PC it may be useful to include a space within a filename, and that can be done by
placing quotation marks around the name. The C runtime gives the name to the linker
without the surrounding quotation marks.
Certain options, such as the -obey option, cause the linker to obtain tokens from files,
and the linker mostly treats them the same as if they were on the command line. The
linker’s command line, plus the other tokens it obtains in such ways from files, are
collectively called the linker’s command stream.
Tokens are categorized as options, parameters, or filenames. An option always starts
with a hyphen. A filename or parameter never starts with a hyphen. Each option
requires a certain number of parameters to immediately follow it.
eld reports an error if
the linker cannot parse the command stream into a sequence of options and/or
filenames, where each option is followed by the required number of parameters.
Names of options and parameters must be spelled exactly as given in this manual.
Except for the options named -l and -L, options and keyword parameters are not
case sensitive.
Options may be placed into one of three categories:










