HP eld Manual page 181

Table of Contents

Advertisement

Output Listings and Error Handling
1395 <filename>: <procedure name> is in <section name>, which
is not a code section.
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.
1447 <output filename>: the range of data that requires GP-
relative addressing is too large (<number> >= 0x400000).
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.
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.
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
eld Manual—527255-009
6-71
Error Messages

Advertisement

Table of Contents
loading

Table of Contents