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

eld Input and Output
eld Manual—527255-009
2-5
The Creation of Output Object Files
The -ul option is synonymous with -shared plus -export_all, that is, to create a
DLL and export all its symbols. See Using User Libraries on page 3-10 for an
explanation of how the linker uses user libraries.
Certain DLLs are called implicit libraries. If the linker is creating a DLL, it can also be
told to make it an implicit library with the -make_implicit_lib option. This option
causes the linker to set the EF_TANDEM_IMPLICIT_LIB bit in the ELF header and to
impose certain other rules, as mentioned in various other places in this manual.
The Creation of Output Object Files
The name of the output object file is specified by the -o option. If the -o option is not
specified, but the -soname option is specified, then the name specified for the -
soname option is also used for the -o option.
If neither the -o nor -soname option is specified, the default output file name is
“aout” on the Guardian host and “a.out” elsewhere. Note that, in a Guardian subvolume
of OSS, the created file would actually be named “aout”, because the period
automatically goes away.
On Guardian, and in Guardian subvolumes on OSS, the linker creates object files with
a file code of 800.
Output files on Guardian are odd unstructured files. The same is true for files created
in Guardian subvolumes on the OSS host platform.
On the TNS/E OSS host platform, when a loadfile is created with OSS as its target
personality, the linker gives it mode 777 because it is executable there. In all other
cases when the linker creates an object file on any version of OSS it gives it mode 666.
These modes are octal values, and they are AND’ed with the value returned by the
umask system call.
Whenever the TNS/E linker creates an object file it first creates a work file. This file is
in the same directory or subvolume as the output object file and will have a name of
the form ZLDAFnnn, where nnn is a 3-digit integer of the form 000, 001, etc. The linker
will choose the first name of this form that is not the name of an existing file, and it is
an error if all names of this form are already taken. The linker will attempt to do this in
an atomic way so that multiple links creating output object files for the same directory
or subvolume won’t choose the same name. The linker will remove the work file if it
detects any error before the work file is complete.
The -temp_o option specifies the name of an intermediate file. If the specified name
is just the file identifier then the name is interpreted to be within the same directory or
subvolume as the output object file. If the specified name is not the file identifier then
eld reports an error if you do not specify the same directory or subvolume as the
output object file.
If no error has occurred and the -temp_o option has been specified then the linker
will rename the completed work file to this intermediate file name. If there already was
a file with the name as specified in the -temp_o option, or if for any other reason the
linker is unable to rename the completed work file to the intermediate file name, then










