リンカーとライブラリ

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

バージョンシンボルセクションは、タイプ SHT_SUNW_versym によって定義されます。このセクションは、次の構造を持つ要素配列で構成されます。

typedef Elf32_Half      Elf32_Versym;
typedef Elf64_Half      Elf64_Versym;

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

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

名前 

値 

意味 

VER_NDX_LOCAL

0

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

VER_NDX_GLOBAL

1

シンボルに大域適用範囲が存在し、ベースバージョン定義に割り当てられています。 

 

>1

シンボルに大域適用範囲が存在し、ユーザー定義バージョン定義に割り当てられています。 

VER_NDX_GLOBAL よりも大きいインデックス値はどれも、SHT_SUNW_verdef セクション内の特定のエントリの vd_ndx 値に対応します。VER_NDX_GLOBAL より大きいインデックス値が存在しない場合、SHT_SUNW_verdef セクションが存在する必要はありません。