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
貴重なご意見を有り難うございました!

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

補助セクション

Solaris リンカーは、プライマリ出力オブジェクトに加えて、1 つ以上の補助オブジェクトを生成できます。補助オブジェクトには、通常はプライマリオブジェクトに書き込まれる割り当て不可のセクションが含まれています。補助オブジェクトが生成されると、プライマリオブジェクトおよび関連するすべての補助オブジェクトに、これらの関連するオブジェクトを識別する情報を含む SHT_SUNW_ancillary セクションが格納されます。これらのオブジェクトの補助セクションは、グループのほかのメンバーを識別および解釈するために必要な情報を提供します。

このセクションには、次の構造の配列が含まれます。sys/elf.h を参照してください。

typedef struct {
        Elf32_Word      a_tag;
        union {
                Elf32_Word      a_val;
                Elf32_Addr      a_ptr;
        } a_un;
} Elf32_Ancillary;

typedef struct {
        Elf64_Xword     a_tag;
        union {
                Elf64_Xword     a_val;
                Elf64_Addr      a_ptr;
        } a_un;
} Elf64_Ancillary;

このタイプの各オブジェクトに対して、a_taga_un の解釈を制御します。

a_val

このオブジェクトは、さまざまに解釈される整数値を表します。

a_ptr

このオブジェクトは、プログラムの仮想アドレスを表します。

次の補助タグが存在します。

表 12-11 ELF 補助配列タグ

名前
c_un
ANC_SUNW_NULL
0
無視される
ANC_SUNW_CHECKSUM
1
a_val
ANC_SUNW_MEMBER
2
a_ptr
ANC_SUNW_NULL

補助セクションのグループの最後にマークを付けます。

ANC_SUNW_CHECKSUM

c_val 要素にファイルのチェックサムを提供します。ANC_SUNW_MEMBER の最初のインスタンスの前に ANC_SUNW_CHECKSUM が存在する場合は、補助セクションの読み取り元となるオブジェクトのチェックサムが提供されます。ANC_SUNW_MEMBER タグのあとに存在する場合は、そのメンバーのチェックサムが提供されます。

ANC_SUNW_MEMBER

オブジェクト名を指定します。a_ptr 要素は、ファイル名を提供する、ヌル文字で終わる文字列の文字列テーブルオフセットを含みます。

補助セクションでは、現在のオブジェクトを識別する ANC_SUNW_MEMBER の最初のインスタンスの前に、常に ANC_SUNW_CHECKSUM が含まれている必要があります。そのあとに、オブジェクトの完全なセットを構成する各オブジェクトの ANC_SUNW_MEMBER が存在すべきです。個々の ANC_SUNW_MEMBER のあとには、そのオブジェクトの ANC_SUNW_CHECKSUM が存在すべきです。したがって、一般的な補助セクションは次のような構造になっています。

タグ
意味
ANC_SUNW_CHECKSUM
このオブジェクトのチェックサム
ANC_SUNW_MEMBER
オブジェクト #1 の名前
ANC_SUNW_CHECKSUM
オブジェクト #1 のチェックサム
ANC_SUNW_MEMBER
オブジェクト N の名前
ANC_SUNW_CHECKSUM
オブジェクト N のチェックサム
ANC_SUNW_NULL

したがって、オブジェクトは最初の ANC_SUNW_CHECKSUM をそのあとに続く各チェックサムと比較し、一致を見つけることによって自身を識別できます。