このセクションは、SHT_SUNW_verneed 型で定義されます。このセクションは、ファイルの動的依存性から要求されるバージョン定義を示すことで、ファイルの動的依存性要求を補足します。依存性にバージョン定義が存在する場合のみ、記録がこのセクションにおいて行われます。このセクションの要素の構造体は、次のとおりです。
typedef struct {
Elf32_Half vn_version;
Elf32_Half vn_cnt;
Elf32_Word vn_file;
Elf32_Word vn_aux;
Elf32_Word vn_next;
} Elf32_Verneed;
typedef struct {
Elf32_Word vna_hash;
Elf32_Half vna_flags;
Elf32_Half vna_other;
Elf32_Word vna_name;
Elf32_Word vna_next;
} Elf32_Vernaux;
typedef struct {
Elf64_Half vn_version;
Elf64_Half vn_cnt;
Elf64_Word vn_file;
Elf64_Word vn_aux;
Elf64_Word vn_next;
} Elf64_Verneed;
typedef struct {
Elf64_Word vna_hash;
Elf64_Half vna_flags;
Elf64_Half vna_other;
Elf64_Word vna_name;
Elf64_Word vna_next;
} Elf64_Vernaux;
|
この構成要素は、構造体自身のバージョンを示します。
|
名前 |
値 |
意味 |
|---|---|---|
|
VER_NEED_NONE |
0 |
無効バージョン |
|
VER_NEED_CURRENT |
>=1 |
現バージョン |
値 1 は最初のセクション形式を示し、拡張した場合は番号を大きくします。VER_NEED_CURRENT の値は、現バージョン番号を示すために必要に応じて変化します。
この構成要素は、Elf32_Vernaux 配列の要素数を示します。
この構成要素は、空文字で終わっている文字列への文字列テーブルオフセットを保持し、バージョン依存性が存在するファイル名を与えます。この名前は、ファイルに存在する .dynamic 依存性 (「動的セクション」を参照) のどれかに一致します。
この構成要素は、この Elf32_Verneed エントリの先頭から、関連付けられているファイル依存性から要求されるバージョン定義の Elf32_Vernaux 配列までのバイトオフセットを保持します。少なくとも 1 つのバージョン依存性が存在しなければなりません。追加バージョン依存性は存在することができ、また番号は vn_cnt 値で示されます。
この構成要素は、この Elf32_Verneed エントリの先頭から次の Elf32_Verneed エントリまでのバイトオフセットを保持します。
この構成要素は、バージョン依存性の名前のハッシュ値を保持します (この値は、「ハッシュテーブル」に記述されているハッシュ関数で生成されます)。
この構成要素は、バージョン依存性に固有の情報を保持します。
|
名前 |
値 |
意味 |
|---|---|---|
|
VER_FLG_WEAK |
0x2 |
ウィークバージョン識別子 |
ウィークバージョン依存性は、ウィークバージョン定義への最初の結び付きを示します。詳細は、「バージョン定義の作成」を参照してください。
この構成要素は現在、使用されていません。
この構成要素は、空文字で終わっている文字列への文字列テーブルオフセットを保持し、バージョン依存性の名前を与えます。
この構成要素は、この Elf32_Vernaux エントリの先頭から次の Elf32_Vernaux エントリまでのバイトオフセットを保持します。