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-10
The -set and -change Options
are considered inconsistent. If -set process_subtype is specified then the value
specified is placed into the output file and if any of the input linkfiles had a nonzero
process subtype different from that then a warning message is produced. On the other
hand, if -set process_subtype is not specified then it is an error if the input
linkfiles were inconsistent, and if they are consistent then the value from the input
linkfiles is placed into the output file.
The -set incomplete on option is only allowed when the linker is creating an
import library that represents a single DLL. It tells the linker to create an incomplete
import library, rather than a complete one. This could either be when the linker is
creating the import library at the same time as the linker is creating the corresponding
DLL, or when the linker is creating the import library for a DLL that already existed. In
either case, all the other things that are controlled by the -set option are the same in
the import library as in the corresponding DLL.
All the other attributes listed above, except for libname, can be specified whether
building a program or a DLL, even though some of them may be meaningless for
DLL's. The libname attribute can only be specified when building a program.
The -change option is used to alter the same attributes that can be set by the -set
option. The difference is that -change modifies an existing file, whereas -set is used
when a new file is being created. The -change option takes the same parameters as
-set, plus the name of the existing file.
The -change option can be used with a linkfile, loadfile, or import library, with the
following rules:
•
The -change attributes that are allowed with a linkfile are the data_model
and floattype attributes.
•
The -change libname attribute is only allowed with programs. The linker
places the name specified by the-change libname option into the
.tandem_info section of the program that it is creating. The linker also converts
the name to upper case, if not done already. On Guardian APIs,single quotes
do not work because they are not recognized by TACL; therefore, it is not
important to specify them.
•
The incomplete attribute of the -change option is only allowed with import
libraries. This tells the linker to demote the import library to an incomplete one,
if it was a complete one before. There is no way to “un-demote” an incomplete
import library.
•
The data_model attribute of the -change option is only allowed with DLLs
and import libraries.
It is possible to give an empty string, or a string consisting just of a single double-quote
character ("), as the user library name in the -change libname option. This makes it
possible to remove the user library name from an existing program. From the PC or
OSS command line you can use two double-quote characters ("") to pass an empty
string. However, on the TACL command line, when you use two double-quote
characters (""), a single double-quote character (") gets passed to the process. That is










