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
TNS/E Native Object Files
eld Manual—527255-009
A-27
Archives
This is the main section of DWARF information. It is a tree of nodes, each node
contains various attributes.
.debug_abbrev
This section provides additional information required to decode the information in the
.debug_info section, including information about implementation-defined material.
.debug_line
This section contains information that tells how to map things to source line numbers.
.debug_line_nsk
This has a format similar to .debug_line, but to represent EDIT line numbers rather
than sequential line numbers.
.debug_relocs
This section describes the places in DWARF sections of DLL's that contain code and
data addresses, so that they can be updated by the -alf option of the linker when that
option is used to rebase the DLL.
Archives
An archive is a single file that contains within it copies of other files, called the
"members" of the archive. Archives are created by the tool named ar. An archive may
be used for various purposes, one of which is to be an input for the linker. The linker
uses archives as a source of linkfiles. Archives are not used at load time.
The format described here, used for TNS/E archives differs in various ways from what
was used in the TNS/R implementation.
An archive contains "symbol table" information that tells which linkfile within the
archive, if any, provides a definition for a given symbol. These would be the symbols
defined in that linkfile and visible outside, i.e., their binding is STB_GLOBAL and their
st_scndx fi
eld is not SHN_UNDEF in the ELF symbol table.
The first eight bytes of an archive contain the string "!<arch>", followed by a newline
character (ASCII LF). This identifies the file as an archive. After that the archive is a
concatenation of "pieces", each of which contains the following items, which always
begin at file offsets that are multiples of 2 bytes.
an ar_hdr structure
the contents of this piece
The first one or two pieces of the archive may be special. The first special piece is the
archive symbol table, which is present if the archive contains any linkfiles. The other
special piece is the "long member name string space", which is present if any of the
names of the members of the archive are longer than 16 characters. The contents of
the remaining pieces are the members of the archive.










