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-12
eld Functionality for 64-Bit
eld Functionality for 64-Bit
Object files can be 32-bit, 64-bit, or neutral. When eld is creating a new
object file out of a set of linkfiles, the desired data model for the output file is specified
by the following option:
-set data_model [value]
where value can be ilp32, lp64, or neutral.
For lp64 input linkfiles, it is considered as an error, if -set data_model ilp32” is
specified. Conversely, for ilp32 input linkfiles, it is considered as an error, if lp64 is
specified. Specifying neutral, does not verify the data models for the input linkfiles and
the output file which is marked as neutral. The neutral option is allowed only while
creating a linkfile or a DLL, and not for a program.
If the input linkfiles contains a combination of ilp32 and lp64 linkfiles, it is considered
as an error if the -set data_model option is not specified. If this error does not
occur, either the output file is marked with the data models (ilp32 or lp64) which
occur within the input linkfiles, or is marked as neutral if all the input linkfiles are
neutral.
The -change data_model neutral option marks an object file neutral,
regardless of how it was marked before. This is allowed for linkfiles and DLL’s, but not
for programs.
The searching that is done for -l options or for liblist entries depends on the data
model of the file that is being created or processed by the -alf option, as discussed
in this manual.
When eld creates an import library that represents a single (non-implicit) DLL, the
import library is given the same data model as that DLL.
The import library that represents the implicit DLL’s is always neutral.
Checking the C++ Language Dialect
To build a new linkfile or loadfile, the linker performs consistency checks of C++
language dialects.
In a linkfile, the st_other fields of ELF symbol table entries tell which C++ language
dialects are used by that object file, if any. If more than one C++ dialect occurs among
all the input linkfiles, that is an error.
By default, if some dialect of C++ occurred in the input linkfiles, then that value is
placed into the .tandem_info section when eld is building a loadfile. If none of the
input files used C++ then the value cppneutral is placed into the .tandem_info
section.
CPlusPlusDialect is an attribute accepted by the -set option, and the only allowed
value of the attribute is cppneutral. Also, this option is only allowed when creating a
loadfile. If specified, it means that the loadfile will be marked cppneutral, even if the










