バージョン依存セクションは、タイプ 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 エントリまでのバイトオフセット。