|
da questo dispositivo ha anche altre istruzioni :
Facilità d'uso
TNS/X Native Object Files
Relocation Tables
• PC-relative references from gateways to the real code for the procedure, for a DLL
that is not an implicit DLL.
For these types of entries, when the relocation site is within executable code, the -alf
option cannot be sure of the target address that will actually apply at execution time
because that is created by adding the contents of the relocation site to the address of
the next instruction, while the relocation table entry only indicates the address of the
relocation site itself. The next instruction is usually 4 bytes further or could be more.
However, the -alf option has to know the target address to determine which segment
it is in and to decide how the relocation site needs to be updated, when the two
segments are updated by different amounts. The target site is mostly near the
beginning of a segment, but rarely near the end. So, erring on the high side is the
heuristic that is used. Specifically, the -alf option takes the address of the relocation
site, plus a margin of 12 bytes, plus the contents of the relocation site, to calculate a
hypothetical target address, and decides that the real target address is in the same
segment as that hypothetical target address.
R_x86_64_PLT32 -- 32-Bit PC-Relative Address of the PLT Entry for a Procedure
This relocation type is used in a linkfile for a direct procedure call. If the procedure is
defined in the same loadfile and cannot be preempted then that determines its final
PC-relative address and xld fills it in, the same as for R_x86_64_PC32. xld also
does this if the -no_runtime_fixup option is given, assuming that the PC-relative
offset found for the procedure at link time will not change at runtime. Otherwise, xld
makes an import stub (in the .plt section) and a GOT entry for the procedure. Then
xld fills in the import stub with an instruction that jumps indirectly through the GOT
entry, and it fills in the original call instruction to go to the import stub. For information
on the significance of the r_addend field for PC-relative addressing, see r_addend on
page A-15.
R_x86_64_GOTPCREL -- 32-Bit PC-Relative Address of the GOT Entry for a Symbol
This relocation type is used in a linkfile when a data item is referenced from code and
the compiler does not assume that the proper PC-relative offset will be known at
linktime. Specifically, it is used on an instruction that finds the address of the data item
in a GOT entry. xld creates the GOT entry for the data item and fills in the PC-relative
offset of that GOT entry. The contents of the GOT entry are little endian.
This relocation type must only be used when no offset is desired from the target
symbol. As explained in r_addend section, the r_addend field in the relocation table
entry in effect notifies xld how far the operand is from the end of the instruction, and
based on that xld can calculate the PC-relative distance from the instruction to the
GOT entry. xld always sets the r_addend field in the relocation table entry for the GOT
entry to 0 because there is no way for xld to know what else it should be.
Typically, GOT entries are only used for global symbols. Although, the more precise
statement is that the GOTPCREL relocation type must not be used if the target symbol
has type STT_SECTION. That case will only work if the object file is linked directly into
a loadfile, not put through xld with the -r option. xld displays a warning if
xNOFT Manual—762195-001
A-19
... Questo manuale è adatto anche per i modelli :
Computer - HP NonStop G-Series (338.04 kb)
Computer - HP Integrity NonStop J-Series (338.04 kb)
Computer - HP NonStop L-Series (338.04 kb)