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

ドキュメントの情報

はじめに

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

1.  Oracle Solaris リンカーの紹介

2.  リンカー

3.  実行時リンカー

4.  共有オブジェクト

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

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

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

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

8.  バージョン管理の手引き

パート III 詳細情報

9.  直接結合

10.  mapfile

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

索引

セクションのマージ

SHF_MERGE セクションフラグを使って、再配置可能オブジェクト内の SHT_PROGBITS セクションにマークすることができます。表 12-8 を参照してください。このフラグによって、そのセクションがほかのオブジェクトの互換セクションとマージできることがわかります。これらの再配置可能オブジェクトをマージすることによって、それらから構築される実行可能ファイルや共有オブジェクトのサイズを減らせる可能性があります。サイズを減らすことによって、最終オブジェクトの実行時パフォーマンスが向上することもあります。

セクションに SHF_MERGE フラグが付いていることは、次のような特性があることを示します。

SHF_MERGE は、最適化できる可能性があることを示す、省略可能なフラグです。リンカーは、最適化を実行するか最適化を無視するかを選択できます。リンカーは、いずれの場合も有効な出力オブジェクトを作成します。リンカーは現在のところ、SHF_STRINGS フラグがマークされた文字列データを含むセクションだけに、セクションのマージを実装します。

SHF_STRINGS セクションフラグと一緒に SHF_MERGE フラグも設定されているときは、そのセクション内の文字列はほかの互換セクション内の文字列とマージできます。リンカーは、SHT_STRTAB 文字列テーブル .strtab.dynstr の圧縮に使用される文字列圧縮アルゴリズムを使用して、このようなセクションをマージします。

リンカーは現在のところ、バイトサイズ文字から構成され、特殊な整列制約のない文字列だけに、文字列のマージを実装します。具体的には、セクションは次の特性を備えている必要があります。


注 - リンカーの -z nocompstrtab オプションを使って文字列テーブルの圧縮を抑制できます。