The version symbol section is defined by the type SHT_SUNW_versym, and consists of an array of elements having the following structure:
typedef Elf32_Half Elf32_Versym; typedef Elf64_Half Elf64_Versym;
The number of elements of the array must equal the number of symbol table entries contained in the associated symbol table. This number is determined by the section's sh_link value. Each element of the array contains a single index that can have the values shown in the following table.
Table 7-32 ELF Version Dependency Indexes
Name |
Value |
Meaning |
---|---|---|
VER_NDX_LOCAL |
0 |
Symbol has local scope. |
VER_NDX_GLOBAL |
1 |
Symbol has global scope (assigned to base version definition). |
|
>1 |
Symbol has global scope (assigned to user-defined version definition). |
Any index values greater than VER_NDX_GLOBAL must correspond to the vd_ndx value of an entry in the SHT_SUNW_verdef section. If no index values greater than VER_NDX_GLOBAL exist, then no SHT_SUNW_verdef section need be present.