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
About This Manual
eld Manual—527255-009
xii
General Syntax Notation
italic computer type. Italic computer type letters within text indicate C and Open
System Services (OSS) variable items that you supply. Items not enclosed in brackets
are required. For example:
pathname
<filename>. TThis represents the name of a file. Filenames follow whatever rules apply to
the corresponding host platform when the linker needs to do something with the file.
For example, filenames are not case sensitive on Guardian or NT, but are case
sensitive on OSS. The linker keeps all filenames in the same form that they were
specified, unless otherwise stated in this document.
<symbol name> . This represents the name of a symbol as it appears within an object file.
It is case sensitive. There are rules that depend upon the source language for mapping
between the way the symbol appears in the source code and the way the symbol
appears within the object file. Each source language has its own rules for this.
<path> . This is the kind of string used in the -rld_L and -rld_first_L options.
<dllname>. This is the kind of string used in the -dllname option.
<location> . This is the kind of string used in the -L and -first_L options.
<number> . This indicates a 64-bit numerical value. It is interpreted as a hexadecimal
number if it begins with “0x”, “0X”, “%h”, or “%H”, in which case the rules given below
for a <hexadecimal number> apply. If it has none of these prefixes then it is interpreted
as a decimal number and the rest of the token must be a sequence of decimal digits.
The TNS/E linker does not accept octal numbers.
<hexadecimal number> . This indicates a 64-bit hexadecimal number, and may optionally
begin with “0x”, “0X”, “%h”, or “%H”. The letters “a” through “f” (representing the values
10 through 15) are not case sensitive. Periods are allowed in hexadecimal numbers to
subdivide the number for readability, using one of the following two methods. There
may be one period in the number, and then the period is assumed to divide the number
into two 32-bit portions. Or, there may be three periods, in which case the periods are
assumed to divide the number into four 16-bit portions.
<attribute> and <value>. These notations are explained under the description of the -set
option.
[ ] Brackets. Brackets enclose optional syntax items. For example:
TERM [\system-name.]$terminal-name
INT[ERRUPTS]
A group of items enclosed in brackets is a list from which you can choose one item or
none. The items in the list can be arranged either vertically, with aligned brackets on










