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-14
Creating Linker-Defined Symbols
Creating Linker-Defined Symbols
Predefined Symbols on page A-14 lists the symbols that are automatically defined by
the linker when it creates a loadfile, and what they mean. The linker resolves
references to these symbols by using the value of the symbol as if it was an address.
As mentioned in Creating the MCB
on page 4-15, eld reports an error if you define a
symbol named _MCB. For other linker-defined symbols the linker puts out a warning if
they are defined by the user. Note that, if such a symbol is defined by the user, then
the linker uses the symbol defined in the linkfile in the usual way, rather than creating
its own symbol of this name with a special meaning.
Updating Or Stripping DWARF Symbol Table Information
The linker concatenates the DWARF symbol tables of its input linkfiles into the DWARF
symbol table of its output file.
The linker fills in the addresses of symbols found in the DWARF symbol table
information. Such relocation sites are described in linkfiles by the same kinds of
relocation table entries as any other data, so that the linker doesn’t need to understand
the format of the DWARF symbol table to do this. In loadfiles, the addresses in the
DWARF symbol table are the usual addresses, not segment-relative addresses.
When there are multiple copies of a symbol, the DWARF addresses for the unused
copies are set to -1, as discussed in Accepting Multiply-Defined Symbols on
page 3-17.
The stripping of symbols information means that the linker does not create the DWARF
symbol table information in its output file(s). The reason to do this is to make object
files smaller, when the user is not concerned with debugging. For compatibility with the
past, this can be done with either the -s or -x option. In our TNS/R implementations,
-s strips all the symbols information, whereas -x strips only the symbols information
that the linker doesn’t need, but the distinction has disappeared with the segregation of
the debugging information into the DWARF symbol table. In other words, the TNS/E
linker does not depend on information in the DWARF symbol table for any of its other
activities.
When the linker is creating a linkfile and stripping the DWARF symbol table the linker
also omits the corresponding relocation table sections.
When the linker is creating an import library, that import library may or may not contain
DWARF symbol table information. See Creating Import Libraries on page 3-11.
The -strip option tells the linker to remove the DWARF symbol table from a loadfile
or import library that already exists. This option creates a new file in place of the old
file.
It is possible for the command stream to have multiple -strip options. Each one is
executed independently, if the previous one succeeds. The only other options allowed
with the -strip option are -must_use_oname, -no_verbose,
-no_version_check, -obey, -stdin, -temp_o, -verbose, and -warn. If










