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-5
Additional rules about -alf
Searches performed by the -alf option must always find DLLs rather than archives,
as if -b dllsonly had been specified. It is not possible to specify any -b options
with -alf.
The -alf option supports the -allow_missing_libs option. If a DLL that is listed
in the .liblist section cannot be found, the .liblist entry is left alone.
When the -alf option is operating on a program, it uses the user library the same as
when the linker created the program. By default, the library name stored within the file
is used for the filename of the user library. Or, the -local_libname option can be
specified with -alf, to override the name found within the file (this does not change
the filename that is stored in the file). The -set libname option cannot be specified
with -alf.
Note that the -alf option uses whatever user library name is currently within the file,
or specified by the -local_libname option. It isn’t necessarily the same as the one
that was there when the file was previously preset.
The -change libname option cannot be specified with -alf. If desired, one linker
invocation could be used to change the name stored within the program, by specifying
-change libname, and then a separate linker invocation could give the -alf
option.
If a program specifies the name of a user library, and the -local_libname option is
not used, then on the PC this always means that the linker can’t find the user library. If
the linker doesn’t have a name for the user library, or, on any platform, if it can’t open
such a file, it is treated like a missing DLL, the same as when a program is created. If
the -local_libname option is used, and the program doesn’t mention any user
library name, that is an error.
By default, the -alf option considers it an error if the loadfile has any relocation sites
in the text segment, which would indicate non-PIC code. However, if the
-update_code option is specified, the -alf option does not consider this an error,
and it updates those relocation sites. The only relocation sites updated in the text
segment are 64-bit addresses of symbols found in the same DLL, which need to be
updated what that DLL is rebased, and is an error if the -update_code option is
specified when the -alf option is updating a program rather than a DLL.
By default, the way the -alf option treats unresolved references depends on the
value of the runtime_unres_checking bits of the .tandem_info section of the loadfile.
Note that, unlike the case of creating a loadfile, the default does not depend on
whether the public DLL registry was found. This can be overridden by specifying the -
unres_symbols option with the desired parameter value. When -unres_symbols
option is specified with -alf, the runtime_unres_checking bits of the .tandem_info
section are unchanged. The -change option can be used (in a separate run of the
linker) to change those bits within the file.
The meanings of the three choices for how unresolved references are handled is the
same for the -alf option as when the object file is first linked, except that the
decision as to whether an unresolved symbol is expected to be code or data is made










