Symbol definitions are contained in the special section .gnu.version_d which has a section type of SHT_GNU_verdef. The number of entries in this section is contained in the DT_VERDEFNUM entry of the Dynamic Section. The sh_link member of the section header points to the section that contains the strings referenced by this section.
Figure 6-1. Version Definition Entries
typedef struct { Elfxx_Half vd_version; Elfxx_Half vd_flags; Elfxx_Half vd_ndx; Elfxx_Half vd_cnt; Elfxx_Word vd_hash; Elfxx_Word vd_aux; Elfxx_Word vd_next; } Elfxx_Verdef; |
Version revision. This value is currently set to 1, and will be reset if the versioning implementation is incompatibly altered.
Version information flag bitmask.
Version index numeric value referencing the SHT_GNU_versym section.
Number of associated verdaux array entries.
Version name hash value (ELF hash function).
Offset to a corresponding entry in the verdaux array, in bytes.
Offset to the next verdef entry, in bytes.
Figure 6-2. Version Definition Auxiliary Entries
typedef struct { Elfxx_Word vda_name; Elfxx_Word vda_next; } Elfxx_Verdaux; |
Offset to the version or dependency name string in the section header, in bytes.
Offset to the next verdaux entry, in bytes.