Documentation Home
> リンカーとライブラリ
リンカーとライブラリ
Book Information
はじめに
第 1 章 序章
概要
リンク編集
実行時リンク
動的実行可能ファイル
共有オブジェクト
関連情報
動的リンク
アプリケーションのバイナリインタフェース
32 ビットおよび 64 ビット環境
サポートするツール
新しい機能
第 2 章 リンカー
概要
リンカーの起動
直接起動
コンパイラドライバを使用する
リンカーオプションの指定
入力ファイルの処理
アーカイブ処理
共有オブジェクトの処理
追加ライブラリとのリンク
ライブラリの命名規約
共有オブジェクトとアーカイブとの混合体へのリンク
コマンド行上のアーカイブの位置
リンカーが検索するディレクトリ
コマンド行オプションの使用
環境変数の使用
実行時リンカーが検索するディレクトリ
セクションの初期設定と終了
シンボルの処理
シンボル解析
単純な解析
複雑な解析
重大な解析
未定義シンボル
実行可能ファイルの作成
共有オブジェクトの生成
ウィークシンボル
出力ファイル内の未確定シンボル順序
追加シンボルの定義
シンボル範囲の縮小
出力イメージの生成
デバッギングエイド
第 3 章 実行時リンカー
概要
共有オブジェクトの依存関係の配置
実行時リンカーによって検索されるディレクトリ
デフォルトの検索パスの設定
動的ストリングトークン
再配置処理
シンボルの検索
挿入
再配置が実行されるとき
再配置エラー
追加オブジェクトの読み込み
動的依存関係のレイジーローディング
初期設定および終了ルーチン
セキュリティ
実行時リンクのプログラミングインタフェース
追加オブジェクトの読み込み
再配置処理
シンボル検索
デフォルトのシンボル検索モデル
大域オブジェクトの定義
グループの分離
オブジェクト階層
新しいシンボルの入手
機能のテスト
割り込みの使用
機能チェッカ
デバッギングエイド
第 4 章 共有オブジェクト
概要
命名規約
共有オブジェクト名の記録
アーカイブへの共有オブジェクトの取り込み
記録名の衝突
依存関係を持つ共有オブジェクト
依存関係の並べ変え
フィルタとしての共有オブジェクト
標準フィルタの生成
補助フィルタの生成
フィルタ対象の処理
性能に関する考慮事項
役に立つツール
基本システム
動的依存関係のレイジーローディング
位置に依存しないコード
共有可能性の最大化
テキストへの読み取り専用データの移動
多重定義されたデータの短縮
自動変数の使用
バッファーの動的割り当て
ページング回数の削減
再配置
シンボルルックアップ
再配置を実行する場合
再配置セクションの結合
再配置のコピー
-Bsymbolic の使用
共有オブジェクトのプロファイリング
第 5 章 バージョンアップ
概要
インタフェースの互換性
内部バージョンアップ
バージョン定義の作成
ウィークバージョン定義の作成
関連のないインタフェースの定義
バージョン定義への結合
追加オブジェクトのバージョンの検査
バージョン結合の指定
追加バージョン定義への結合
バージョンの安定性
再配置可能オブジェクト
外部バージョンアップ
バージョンアップファイル名の管理
プロセス内での互換性
第 6 章 サポートインタフェース
概要
リンカーのサポートインタフェース
サポートインタフェースの呼び出し
32 ビットおよび 64 ビット環境
サポートインタフェース関数
サポートインタフェースの例
実行時リンカーの監査インタフェース
名前空間の確立
監査ライブラリの構築
監査インタフェースの呼び出し
ローカル監査の記録
監査インタフェースの関数
監査インタフェースの例
監査インタフェースのデモンストレーション
監査インタフェースの制限
スタックを直接検査する関数
実行時リンカーのデバッガインタフェース
制御プロセスとターゲットプロセス間の対話
デバッガインタフェースのエージェント
デバッガエクスポートインタフェース
エージェント操作
エラー処理
読み込み可能オブジェクトの走査
イベント通知
手続きリンクテーブルのスキップ
動的オブジェクトのパッド
デバッガインポートインタフェース
第 7 章 オブジェクトファイル
概要
ファイル形式
データ表現
ELF ヘッダー
ELF 識別
セクション
特殊セクション
文字列テーブル
シンボルテーブル
シンボル値
レジスタシンボル
Syminfo テーブル
再配置
再配置型 (プロセッサ固有の)
SPARC: 再配置型
SPARC: 再配置型
IA: 再配置型
Comdat セクション
バージョン情報
バージョン定義セクション
バージョンシンボルセクション
バージョン依存セクション
注釈セクション
移動セクション
動的リンク
プログラムヘッダー
基底アドレス
セグメントへのアクセス権
セグメントの内容
プログラムの読み込み (プロセッサ固有)
プログラムインタプリタ
実行時リンカー
動的セクション
共有オブジェクトの依存性
大域オフセットテーブル (プロセッサ固有)
手続きリンクテーブル (プロセッサに固有)
SPARC: 手続きリンクテーブル
IA: 手続きリンクテーブル
ハッシュテーブル
初期化および終了関数
第 8 章 mapfile のオプション
概要
mapfile オプションの使い方
mapfile の構造と構文
セグメントの宣言
対応付け指示
セグメント内セクションの順序
大きさシンボル宣言
ファイル制御指示
対応付けの例
mapfile オプションの初期値
内部対応付け構造
エラーメッセージ
警告
致命的エラー
提供される mapfile
付録 A リンカーのクイックリファレンス
概要
静的方法
再配置可能オブジェクトの作成
静的実行プログラムの作成
動的方法
共有オブジェクトの作成
動的実行プログラムの作成
付録 B バージョンアップの手引き
概要
命名規約
共有オブジェクトのインタフェースの定義
共有オブジェクトのバージョンアップ
既存の (非バージョンアップ) 共有オブジェクトのバージョンアップ
バージョンアップ共有オブジェクトの更新
新しいシンボルの追加
内部実装の変更
新しいシンボルと内部実装の変更
標準インタフェースへのシンボルの併合
付録 C 動的ストリングトークンによる依存関係の確立
概要
命令セット固有の共有オブジェクト
補助検索の縮小
プラットフォーム固有の共有オブジェクト
関連する依存関係の配置
$ORIGIN の紹介
バンドルされていない製品間の依存関係
索引
数字・記号
A
C
D
E
F
I
L
M
N
O
P
R
S
T
U
あ
い
う
え
お
か
き
け
こ
さ
し
せ
そ
た
て
と
な
に
は
ひ
ふ
へ
ほ
み
め
ら
り
れ
わ
© 2010, Oracle Corporation and/or its affiliates