リンカーとライブラリ

ハードウェアおよびソフトウェア機能に関するセクション

SHT_SUNW_cap セクションは、オブジェクトのハードウェアとソフトウェア機能を特定します。このセクションには、次の構造の配列が含まれます。sys/link.h を参照してください。

typedef struct {
        Elf32_Word      c_tag;
        union {
                Elf32_Word      c_val;
                Elf32_Addr      c_ptr;
        } c_un;
} Elf32_Cap;

typedef struct {
        Elf64_Xword     c_tag;
        union {
                Elf64_Xword     c_val;
                Elf64_Addr      c_ptr;
        } c_un;
} Elf64_Cap;

この種の各オブジェクトに対して、c_tagc_un の解釈を制御します。

c_val

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

c_ptr

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

次の機能タグがあります。

表 7–12 ELF 機能配列タグ

名前 

値 

c_un

CA_SUNW_NULL

0

無視される 

CA_SUNW_HW_1

1

c_val

CA_SUNW_SF_1

2

c_val

CA_SUNW_NULL

機能配列の終わりを示します。

CA_SUNW_HW_1

ハードウェア機能の値を示します。c_val 要素は、関連ハードウェア機能を表す値を含みます。SPARC プラットフォームでは、ハードウェア機能は sys/auxv_SPARC.h に定義されます。x86 プラットフォームでは、ハードウェア機能は sys/auxv_386.h に定義されます。

CA_SUNW_SF_1

ソフトウェア機能の値を示します。c_val 要素は、sys/elf.h に定義される関連ソフトウェア機能を表す値を含みます。

再配置可能オブジェクトには、機能セクションを含めることができます。リンカーは、複数の入力再配置可能オブジェクトからの機能セクションを 1 つの機能セクションに統合します。リンカーを使用すると、オブジェクトの構築時に機能を定義することもできます。「ハードウェアとソフトウェア機能の特定」を参照してください。

ハードウェア機能情報が格納された機能セクションを含む動的オブジェクトでは、そのセクションに関連付けられた PT_SUNWCAP プログラムヘッダーが存在しています。このプログラムヘッダーにより、実行時リンカーは、プロセスで利用可能なハードウェア機能に対してオブジェクトを確認できます。

異なるハードウェア機能を利用する動的オブジェクトは、フィルタを使用して柔軟な実行時環境を提供できます。「ハードウェア機能固有の共有オブジェクト」を参照してください。