リンカーとライブラリ

バージョンシンボルセクション

バージョンシンボルセクションは SHT_SUNW_versym 型で定義されており、以下の構造を持つ要素配列からなります。

typedef Elf32_Half      Elf32_Versym;
typedef Elf64_Half      Elf64_Versym;

配列の要素数は、関連付けられているシンボルテーブルに存在するシンボルテーブルエントリ数に等しくなければなりません。この値は、セクションの sh_link 値で決定されます。配列の各要素には 1 つのインデックスが存在し、このインデックスは表 7–33 に示す値をとることができます。

表 7–33 ELF バージョン依存インデックス

名前 

値 

意味 

VER_NDX_LOCAL

0

シンボルにローカル適用範囲が存在する 

VER_NDX_GLOBAL

1

シンボルに大域適用範囲 (ベースバージョン定義に割り当てられる) が存在する 

 

>1

シンボルに大域適用範囲 (ユーザー定義バージョン定義に割り当てられる) が存在する 

VER_NDX_GLOBAL より大きいインデックス値は、SHT_SUNW_verdef セクションのエントリの vd_ndx 値に一致しなければなりません。VER_NDX_GLOBAL より大きいインデックス値が存在しない場合、SHT_SUNW_verdef セクションが存在する必要はありません。