Version Definitions

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.