HP eld Manual page 84

Table of Contents

Advertisement

Other eld Processing
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_value, the export_digest, 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 value, 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 _ctors, 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 Manual—527255-009
4-6
Additional rules about -alf

Advertisement

Table of Contents
loading

Table of Contents