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

Other eld Processing
eld Manual—527255-009
4-2
Adjusting Loadfiles: The -alf Option
-alf recreates the file by the usual linker mechanisms.
Certain relocation sites within a file must be set up by the linker, whether the file is
preset or not, and must never become inconsistent thereafter. That is because
rebinding makes use of the existing values at those sites. Such sites only need
modification if a file is being rebased. Because updating in place would run the risk of
terminating unexpectedly in the middle, leaving such sites inconsistent, we never
update in place when rebasing is being done. This is why -alf always recreates the
file, rather than updating it in place.
The -alf option can be applied to a DLL whose segments are not contiguous, i.e.,
when the DLL was created by using the -d option to place its data separate from its
code.
The parameter to the -alf option is the name of an existing program or DLL. eld
reports an error if this file does not exist, or if it is any other kind of file. This option
performs the same version number checking on this loadfile as is described in Input
Object Files on page 2-12.
When the -alf option is used, the names of input linkfiles cannot be specified. All the
code, data, symbols information, etc., comes from the existing loadfile. Archives and
DLLs cannot be specified, either directly in the command stream or with -l options.
The linker uses the DLL names found in the .liblist section of the existing loadfile as if
they were specified in the command stream with -l options.
When the -alf option is used, it is possible to put the name of the import library that
represents the implicit libraries directly on the command line. This is an exception to
the rule stated in the previous paragraph, that no filenames can be on the command
line. On the other hand, it keeps the processing of the -alf option consistent with
usual linker processing with regard to the ability to get the name of this import library
from the command line. The filename specified on the command line overrides any
other way the -alf option may have found the import library that represents the
implicit libraries.
eld reports an error if you have more than one filename on the
command line with -alf . The -alf option always reset the goldsmith_region_info
and goldsmith_region_addr fields of the .tandem_info section to zero.
The -alf option updates the update_timestamp if there were any other changes
made to the file. It does not update the update_timestamp if that would be the only
change to the file. It never updates the creation_timestamp. An informational message
tells whether the file required any changes.
The -alf option cannot create an import library in parallel with updating a loadfile, nor
can they be used to update an import library. When the -alf option is used to rebase
a DLL, many things in the DLL change in ways that affect users of that DLL, such as
the addresses of its exported symbols. If you had an import library that matched the
previous version of that DLL, you would therefore probably want to run the linker with
the -make_import_lib command on the new DLL afterward in order to create a
new import library that matched it. Do not worry about this when using the
-alf option just to rebind a DLL, because in that case the only change to the DLL
that would be reflected in a corresponding import library is whether the ELF file header










