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

Output Listings and Error Handling
eld Manual—527255-009
6-71
Error Messages
Cause. This message indicates a problem with the contents of the specified input
filename, so that eld refuses to process the file.
Effect. Fatal error (eld immediately stops without creating an output file).
Recovery. This is a bug that needs to be reported to HP. Was the specified input file
created by a compilation, or by a previous link step? That would indicate which tool
created the bad file, and therefore had a bug that needs to be fixed.
Cause. The data in the program or DLL that you are creating is divided into various
data “sections”. Some of the sections are called “GP-relative”, meaning that the data is
to be addressed by adding an offset to the contents of the GP register. A single region
of data is reserved for this purpose, and all the GP-relative data sections need to fit
within it. Some of these GP-relative sections come directly from compilations, because
the compiler decides that the data can be referenced by GP-relative addressing.
There also are tables created by the linker, to be referenced by GP-relative addressing,
related to the number of different symbols to which you have references. Also, if you
used the -instance_data option, specifying two data segments, that causes data to
be rearranged in a way that requires more data to fit in the area reserved for GP-
relative addressing. In any case, at most 4 megabytes of data can be in the area
reserved for GP-relative addressing, and your program or DLL has exceeded that.
Effect. Fatal error (eld immediately stops without creating an output file).
Recovery. You need to make your program or DLL smaller, so that it contains less
data, or makes references to fewer symbols, or perhaps you don’t need to use the -
instance_data option (if you specified that option). Or, you might decide to split a
single large DLL into multiple DLLs. Each program and DLL gets its own region of GP-
addressable data.
Cause. Some of the data in a program or DLL is called “GP-relative”, meaning that it is
to be addressed by adding an offset to the contents of the GP register. A single region
of data is reserved for this purpose, and all the GP-relative data needs to fit within it.
eld chooses the value for the GP register so that it can reach all the data in this
region, if possible. However, your program or DLL also included a symbol named
1395 <filename>: <procedure name> is in <section name>, which
is not a code section.
1447 <output filename>: the range of data that requires GP-
relative addressing is too large (<number> >= 0x400000).
1448 <output filename>: the value specified for the GP
register, due to the definition of a symbol named __gp, does
not make it possible to reach all the data that requires
GP-relative addressing.










