JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11.1 リンカーとライブラリガイド     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

パート I リンカーおよび実行時リンカーの使用

1.  Oracle Solaris リンカーの紹介

2.  リンカー

3.  実行時リンカー

4.  共有オブジェクト

パート II クイックリファレンス

5.  リンカーのクイックリファレンス

パート III 詳細情報

6.  直接結合

7.  システムのパフォーマンスを最適化するオブジェクトの構築

8.  mapfile

9.  インタフェースおよびバージョン管理

10.  動的ストリングトークンによる依存関係の確立

11.  拡張性メカニズム

パート IV ELF アプリケーションバイナリインタフェース

12.  オブジェクトファイル形式

ファイル形式

データ表現

ELF ヘッダー

ELF 識別

データのエンコード

セクション

セクションのマージ

特殊セクション

補助セクション

COMDAT セクション

グループセクション

機能セクション

ハッシュテーブルセクション

移動セクション

注釈セクション

再配置セクション

再配置計算

SPARC: 再配置

SPARC: 再配置型

64 ビット SPARC: 再配置型

x86: 再配置

32 ビット x86: 再配置型

x64: 再配置型

文字列テーブルセクション

シンボルテーブルセクション

シンボル値

シンボルテーブルのレイアウトと規則

シンボルソートセクション

レジスタシンボル

Syminfo テーブルセクション

バージョン管理セクション

バージョン定義セクション

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

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

13.  プログラムの読み込みと動的リンク

14.  スレッド固有ストレージ (TLS)

パート V 付録

A.  リンカーとライブラリのアップデートおよび新機能

B.  System V Release 4 (バージョン 1) Mapfile

索引

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

Syminfo テーブルセクション

syminfo セクションには、Elf32_Syminfo 型または Elf64_Syminfo 型の複数のエントリが存在します。.SUNW_syminfo セクションには、関連付けられているシンボルテーブル (sh_link) のエントリごとに 1 つのエントリが存在します。

このセクションがオブジェクトに存在している場合、関連付けられているシンボルテーブルからシンボルインデックスを取り出し、このシンボルインデックスを使ってこのセクションに存在する対応する Elf32_Syminfo エントリまたは Elf64_Syminfo エントリを見つけることで、追加シンボル情報を見つけます。関連付けられているシンボルテーブルと、Syminfo テーブルには、必ず同じ数のエントリが存在します。

インデックス 0 は、Syminfo テーブルの現バージョン (SYMINFO_CURRENT) を格納するために使用されます。シンボルテーブルエントリ 0 は必ず UNDEF シンボルテーブルエントリ用に予約されるので、矛盾は発生しません。

Syminfo エントリの形式は、次のとおりです。sys/link.h を参照してください。

typedef struct {
        Elf32_Half      si_boundto;
        Elf32_Half      si_flags;
} Elf32_Syminfo;

typedef struct {
        Elf64_Half      si_boundto;
        Elf64_Half      si_flags;
} Elf64_Syminfo;
si_boundto

.dynamic セクションのエントリへのインデックスで、sh_info フィールドにより示され、Syminfo フラグを増加させます。たとえば、DT_NEEDED エントリは、Syminfo エントリに関連付けられた動的オブジェクトを示します。次の表に示すエントリは、si_boundto に対して予約されています。

名前
意味
SYMINFO_BT_SELF
0xffff
自己に結びつけられるシンボル。
SYMINFO_BT_PARENT
0xfffe
親に結びつけられるシンボル。親は、この動的オブジェクトの読み込みを発生させる最初のオブジェクトです。
SYMINFO_BT_NONE
0xfffd
シンボルに特別なシンボル結合は含まれません。
SYMINFO_BT_EXTERN
0xfffc
シンボル定義は外部です。
si_flags

このビットフィールドでは、次の表に示すフラグを設定できます。

名前
意味
SYMINFO_FLG_DIRECT
0x01
シンボル参照は、定義を含むオブジェクトへ直接関連付けられます。
SYMINFO_FLG_FILTER
0x02
シンボル定義は、標準フィルタとして機能します。
SYMINFO_FLG_COPY
0x04
シンボル定義はコピー再配置の結果です。
SYMINFO_FLG_LAZYLOAD
0x08
遅延読み込みの必要があるオブジェクトに対するシンボル参照です。
SYMINFO_FLG_DIRECTBIND
0x10
シンボル参照は定義に直接結合される必要があります。
SYMINFO_FLG_NOEXTDIRECT
0x20
外部参照はこのシンボル定義に直接結合できません。
SYMINFO_FLG_AUXILIARY
0x40
シンボル定義は、補助フィルタとして機能します。
SYMINFO_FLG_INTERPOSE
0x80
シンボル定義は割り込み処理として機能します。この属性は動的実行可能ファイルにのみ適用できます。
SYMINFO_FLG_CAP
0x100
シンボルは、機能と関連付けられています。
SYMINFO_FLG_DEFERRED
0x200
シンボルを BIND_NOW 再配置に含めません。