Oracle® Solaris 11.2 リンカーとライブラリガイド

印刷ビューの終了

更新: 2014 年 7 月
 
 

バージョン依存関係セクション

バージョン依存関係セクションは、タイプ 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;
vn_version

このメンバーは、構造体のバージョンを示します (次の表を参照)。

名前
意味
VER_NEED_NONE
0
無効バージョン。
VER_NEED_CURRENT
>=1
現在のバージョン。

値 1 は最初のセクション形式を示し、拡張した場合は、より大きい番号の新しいバージョンが必要です。VER_NEED_CURRENT の値は、現在のバージョン番号を示すために必要に応じて変化します。

vn_cnt

Elf32_Vernaux 配列の要素数。

vn_file

ヌル文字で終わっている文字列への文字列テーブルオフセットで、バージョン依存性のファイル名を指定します。この名前は、ファイル内に存在する .dynamic 依存性のどれかに一致します。動的セクションを参照してください。

vn_aux

この Elf32_Verneed エントリの先頭から、関連付けられているファイル依存性から要求されるバージョン定義の Elf32_Vernaux 配列までのバイトオフセット。少なくとも 1 つのバージョン依存性が存在する必要があります。追加バージョン依存性は存在することができ、また番号は vn_cnt 値で示されます。

vn_next

この Elf32_Verneed エントリの先頭から次の Elf32_Verneed エントリまでのバイトオフセット。

vna_hash

バージョン依存性の名前のハッシュ値。この値は、ハッシュテーブルセクションに記述されているのと同じハッシング機能により生成されます。

vna_flags

バージョン依存性に固有の情報 (次の表を参照)。

名前
意味
VER_FLG_WEAK
0x2
ウィークバージョン識別子。
VER_FLG_INFO
0x4
SHT_SUNW_versym 参照は情報提供のために存在しており、実行時に検証の必要はありません。

ウィークバージョン依存性は、ウィークバージョン定義への最初の結び付きを示します。

vna_other

ゼロでない場合、この依存関係バージョンに割り当てられたバージョンインデックス。SHT_SUNW_versym 内でこのインデックスを使用して、大域シンボル参照をこのバージョンに割り当てます。

Oracle Solaris 10 のリリースまでの Solaris のバージョンでは、バージョンシンボルインデックスは依存関係バージョンに割り当てられていませんでした。これらのオブジェクトでは、vna_other の値は 0 です。

vna_name

ヌル文字で終わる文字列への文字列テーブルオフセット。バージョン依存性の名前を与えます。

vna_next

この Elf32_Vernaux エントリの先頭から次の Elf32_Vernaux エントリまでのバイトオフセット。