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

Output Listings and Error Handling
eld Manual—527255-009
6-105
Error Messages
giving a subset of the input files to eld each time, and then there would be less
confusion about what is actually going to happen.
Cause. You gave a -rename option, specifying that a symbol should be renamed. A
definition of that symbol (the first symbol name mentioned in the message) did occur in
the file mentioned in the message, so eld wanted to rename it (to the second symbol
name mentioned in the message), but there already was a definition of a symbol of that
name in this same input file.
Effect. Fatal error (eld immediately stops without creating an output file).
Recovery. You can’t have two different symbols of the same name in a linker input file,
and similarly you can’t use this kind of -rename option to make things look that way.
Once you have compiled two different symbols into the same object file, you can’t
make the linker think that they are the same symbol. If that was what you wanted to
do, change your source code to use the same name throughout.
Cause. You have given the -alf option, and the file that you specified with this
option is a program. You have also specified the -update_registry or -check_registry
option, which would only be possible if you were updating a DLL, not a program.
Effect. Fatal error (eld immediately stops without creating an output file).
Recovery. If your intention is to use the -alf option to repeat the fixup process on a
program then don’t specify the -check_registry or -update_registry option. If your
intention was to use the -alf option on a DLL, then you specified the wrong file to
eld, because the file that you specified was a program, not a DLL.
Cause. You specified the -alf option, to update a DLL. You also specified the -
check_registry or -update_registry option, to use a private DLL registry to choose new
addresses for the DLL. By default, when eld builds a DLL, it puts the data segment
right after the code segment. But, when this DLL was built, the
-d option was used, to
make the code and data segments come out at some other addresses, so that the data
segment was not immediately after the code segment. On the other hand, private DLL
registries can only be used to manage DLLs that have their data segments
immediately after their code segments.
1585 In <filename>, <symbol name> is defined, and is renamed
to <symbol name>, but that symbol is also already defined in
this file.
1586 Cannot use a DLL registry when running the -alf option
on a program.
1587 Cannot use a DLL registry with the -alf option when the
code and data of the existing DLL are not next to each other.










