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-8
Using a DLL Registry
Note that this is a DLL registry under the user’s control, not the “public DLL registry”
covered in Finding and Reading The Public DLL Registry (ZREG) File on page 3-23.
If the -t option is not specified, and no DLL registry is specified, the DLL is placed at
the address 0x78000000.
If the -d option is not used, the data (constant) segment of a DLL is placed
immediately after the text segment at a 64KB boundary if it isn’t an implicit DLL, or
128KB if it is an implicit DLL. The -d option may be used to tell where the data
(constant) segment starts. eld reports an error if you specify the -d option for a DLL
without the -t option.
The two segment addresses for a program are always specified independently, with
the -t and -d options. The default value for -t is 0x70000000, and the default
value for -d is 0x08000000.
Note: In general, the -d option should not be used, because it will result in the
creation of a file that the operating system will refuse to load.
The values specified for the -t and -d options are rounded up, if necessary to a
multiple of 128KB for an implicit DLL, or 64KB for other types of loadfiles. If rounding
up is necessary, a warning message is produced.
eld reports an error if you specify the -t or -d option with -r.
Using a DLL Registry
The linker uses a DLL registry to manage DLL addresses so that the virtual addresses
of some or all of the DLLs being managed by a given registry do not overlap. Note that
this is a DLL registry managed by the individual user, not the “public” DLL registry
covered in Finding and Reading The Public DLL Registry (ZREG) File on page 3-23.
The linker can pick addresses on its own, or the registry can be modified by hand to tell
the linker what to do.
The -check_registry and -update_registry options tell the linker which
registry to use.
•
The -check_registry option is used to tell the linker how the DLL must be
built, giving it no choice.
•
The -update_registry option can make suggestions to the linker, but the
linker still has decisions to make, and the registry is updated as a result. If
neither option is used, the linker does not use a registry.
•
eld reports an error if these options are used when the linker is not building a
DLL.
eld reports an error if both options are used. eld reports an error if either
the -check_registry or -update_registry option is used with the -t
or -d option.
When a DLL registry is used the linker lays out data segment(s) of the DLL
immediately after the text segment, at a 64KB boundary if it isn’t an implicit DLL, or at a
128KB boundary if it is an implicit DLL.










