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-14
The MCB (Master Control Block)
The MCB (Master Control Block)
The linker adds the MCB to the .data section of a program (or creates a section of this
name if there was none before). The MCB is a data item that can be referenced by the
name _MCB within the program. The linker only creates the MCB in programs (not
DLL's), and only if the program makes a reference to the symbol named _MCB.
This is a description of the fields that are nonzero in the MCB of an object file.
The Check_quad field is an 8-byte string, where the first two and last two bytes each
contain the value 0xAA and the middle four bytes contain the ASCII string "MCB ".
The Version_item field currently contains 0, but presumably could contain a different
value in the future.
The Standard_C_streams bit is set to 1, rather than 0, to indicate that the program
should use code 180 files for C text files, rather than code 101 files. The linker sets
this bit to 1 when it creates the program if the -ansistreams option is specified or if the
target platform is OSS.
The C_std_files_open bit is set to 1, rather than 0, to indicate that this program should
automatically open the standard C/C++ I/O files. This linker sets this bit to 1 if the
program contains a main procedure that is written in C or C++ and the -nostdfiles
option is not specified.
The FP_format field is set to indicate the floating point type assumed by this program,
repeating the information also found in the file header. 0 indicates that the Tandem
floating point is required. 1 indicates that the IEEE floating point is required. 2 indicates
neutral.
Predefined Symbols
There are certain symbols (other than the MCB and symbols whose names are the
same as names of sections of object files) that the linker also creates, but only in
loadfiles, and only if they are referenced from the loadfile. The following table tells the
names of these symbols, their meanings, and the values that are placed into the
st_scndx fi
elds of their dynamic symbol table entries.










