eld Manual

Table Of Contents
eld Input and Output
eld Manual527255-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.