Other eld Processing
eld Manual—527255-009
4-6
Additional rules about -alf
by looking at the dynamic symbol table of the existing loadfile rather than the ELF
symbol table of an input linkfile.
The following parts of the existing object file potentially need to change when the
-alf
option is used without rebasing:
•
In the ELF header, the
EF_TANDEM_PRESET
bit may be changed.
•
In the
.tandem_info
section, the
update_timestamp
field may be updated. The
creation_timestamp
and
tim_dat
fields are not updated. Some other fields may be
reset to zero, as mentioned earlier.
•
The LIC is updated. It may end up with more or less entries than before. This
includes the case that the LIC now is empty, or no longer is empty, because the file
now can or cannot be preset. But the
.lic
section always has the same size as
before. As mentioned earlier, if this size would not be big enough to contain the
LIC, then the file is not preset, so there is no LIC to worry about.
•
Throughout the data segment, all the references to undefined symbols are updated
as necessary.
The following additional parts of the existing object file also potentially need to change
when the
-alf
option is used with rebasing:
•
In the ELF header, the address of the entry point (the
e_entry
field) needs to be
updated, if this is a DLL that has an entry point. It is updated to the new (rebased)
address of the same procedure that was the main entry point before. The
-e
option is not allowed with
-alf
.
•
In the program headers, the
p_vaddr
fields are updated.
•
In the
.tandem_info
section, the
gp_valu
e, the
export_diges
t, and the four fields to
tell the addresses of the
ctors
array, etc., are updated, if they are nonzero. In the
.dynamic
section, all the entries that tell addresses of sections of the loadfile, and
the entry that tells the GP valu
e,
are updated.
•
In the
.dynsym
and
.dynsym.gblzd
sections, the addresses of all the defined
symbols are updated. If they are exported procedures, their
st_size
fields (telling
the addresses of their official function descriptors) are similarly updated.
•
In the
.rela.dyn
and
.rela.gblzd
sections, the addresses of all the relocation sites
are updated.
•
Throughout the data segment, all the references to symbols defined within the
same loadfile are updated. This includes references that are explicitly identified by
relocation table entries as well as things that
-alf
finds in other ways, such as the
contents of the
_ctor
s, etc. arrays and the official function descriptors.
•
In the ELF section headers, the
sh_addr
fields are updated, if they are nonzero.
The following additional part of the existing object file would potentially need to be
updated, but only in the case when
-alf
was rebasing the code and data segments by
different amounts:
Содержание eld
Страница 4: ......
Страница 8: ...Contents eld Manual 527255 009 iv ...
Страница 12: ...What s New in This Manual eld Manual 527255 009 viii Changes to the 527255 005 Manual ...
Страница 34: ...Introduction to eld eld Manual 527255 009 1 14 Example of Use ...
Страница 54: ...eld Input and Output eld Manual 527255 009 2 20 Using Archives ...
Страница 98: ...Other eld Processing eld Manual 527255 009 4 20 Merging Source RTDUs ...
Страница 242: ...Output Listings and Error Handling eld Manual 527255 009 6 132 Glossary of Errors ...