Man page - elf(5)

Packages contains this manual

Available languages:

en fr ja ru

Manual

ELF

名 前
書 式
説 明
注 意
関 連 項 目
こ の 文 書 に つ い て

名 前

elf - 実 行 可 能 リ ン ク フ ォ ー マ ッ ト (ELF) フ ァ イ ル の フ ォ ー マ ッ ト

書 式

#include <elf.h>

説 明

ヘ ッ ダ ー フ ァ イ ル <elf.h> は ELF 実 行 可 能 バ イ ナ リ フ ァ イ ル の フ ォ ー マ ッ ト を 定 義 す る 。 こ れ ら の フ ァ イ ル と し て は 、 通 常 の 実 行 可 能 フ ァ イ ル ・ 再 配 置 可 能 オ ブ ジ ェ ク ト フ ァ イ ル ・ コ ア フ ァ イ ル ・ 共 有 ラ イ ブ ラ リ が あ る 。

ELF フ ァ イ ル フ ォ ー マ ッ ト を 使 う 実 行 可 能 フ ァ イ ル は 、 ELF ヘ ッ ダ ー の 後 に プ ロ グ ラ ム ヘ ッ ダ ー テ ー ブ ル ま た は セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル (ま た は そ の 両 方 ) が 続 く 構 成 で あ る 。 ELF ヘ ッ ダ ー は 常 に フ ァ イ ル の オ フ セ ッ ト 0 に あ る 。 プ ロ グ ラ ム ヘ ッ ダ ー テ ー ブ ル と セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル の フ ァ イ ル 内 で の オ フ セ ッ ト は 、 ELF ヘ ッ ダ ー に 定 義 さ れ て い る 。 こ の 2 つ の テ ー ブ ル は フ ァ イ ル の 残 り の 部 分 の 詳 細 を 記 述 す る 。

こ の ヘ ッ ダ ー フ ァ イ ル は 上 記 の ヘ ッ ダ ー を C 言 語 の 構 造 体 で 記 述 し 、 ま た 動 的 セ ク シ ョ ン ・ 再 配 置 可 能 セ ク シ ョ ン ・ シ ン ボ ル テ ー ブ ル の 構 造 体 も 含 ん で い る 。

以 下 の 型 は N ビ ッ ト ア ー キ テ ク チ ャ ー で 使 わ れ る (N=32,64 で あ り ElfN Elf32 ま た は Elf64 を 表 し 、 uintN_t uint32_t ま た は uint64_t を 表 す ):

ElfN_Addr 符 号 な し の プ ロ グ ラ ム ア ド レ ス , uintN_t
ElfN_Off 符 号 な し の フ ァ イ ル オ フ セ ッ ト , uintN_t
ElfN_Section 符 号 な し の セ ク シ ョ ン イ ン デ ッ ク ス , uint16_t
ElfN_Versym 符 号 な し の バ ー ジ ョ ン シ ン ボ ル 情 報 , uint16_t
Elf_Byte unsigned char
ElfN_Half uint16_t
ElfN_Sword int32_t
ElfN_Word uint32_t
ElfN_Sxword int64_t
ElfN_Xword uint64_t

(注 意 : *BSD で の 用 語 は 少 し 異 な る 。 Elf64_Half Elf32_Half の 2 倍 で あ り 、 Elf64Quarter uint16_t に 用 い ら れ る 。 混 乱 を 避 け る た め 、 以 下 で は 、 こ れ ら の 型 は サ イ ズ が 自 明 な 型 に 置 き 換 え て あ る 。 )

こ の フ ァ イ ル フ ォ ー マ ッ ト が 定 義 す る 全 て の デ ー タ 構 造 体 は 、 関 連 す る ク ラ ス の "自 然 な " サ イ ズ と 配 置 の 指 針 に 従 う 。 必 要 な 場 合 、 デ ー タ 構 造 体 で は 明 示 的 な パ デ ィ ン グ (padding, 詰 め 込 み ) が 行 な わ れ る 。 こ れ は 4 バ イ ト オ ブ ジ ェ ク ト に 対 す る 4 バ イ ト 配 置 を 保 証 す る た め や 、 構 造 体 の サ イ ズ を 4 の 倍 数 に す る た め な ど で あ る 。

ELF ヘ ッ ダ ー は 型 Elf32_Ehdr ま た は Elf64_Ehdr で 記 述 さ れ る :

#define EI_NIDENT 16

typedef struct {
unsigned char e_ident[EI_NIDENT];
uint16_t e_type;
uint16_t e_machine;
uint32_t e_version;
ElfN_Addr e_entry;
ElfN_Off e_phoff;
ElfN_Off e_shoff;
uint32_t e_flags;
uint16_t e_ehsize;
uint16_t e_phentsize;
uint16_t e_phnum;
uint16_t e_shentsize;
uint16_t e_shnum;
uint16_t e_shstrndx;
} ElfN_Ehdr;

フ ィ ー ル ド は 以 下 の 意 味 を 持 つ :

e_ident

こ の バ イ ト 配 列 は 、 プ ロ セ ッ サ や フ ァ イ ル の 他 の 部 分 に は 依 存 せ ず に 、 フ ァ イ ル を 解 釈 (interpret) す る た め に 指 定 さ れ る 。 こ の 配 列 内 の す べ て の も の は 、 接 頭 辞 EI_ で 始 ま る マ ク ロ の 名 前 が 付 き 、 接 頭 辞 ELF で 始 ま る 値 を 持 つ 。 以 下 の マ ク ロ が 定 義 さ れ て い る :

EI_MAG0

マ ジ ッ ク ナ ン バ ー の 第 1 バ イ ト 。 ELFMAG0 で 埋 め な け れ ば な ら な い 。 (0: 0x7f)

EI_MAG1

マ ジ ッ ク ナ ン バ ー の 第 2 バ イ ト 。 ELFMAG1 で 埋 め な け れ ば な ら な い 。 (1: 'E')

EI_MAG2

マ ジ ッ ク ナ ン バ ー の 第 3 バ イ ト 。 ELFMAG2 で 埋 め な け れ ば な ら な い 。 (2: 'L')

EI_MAG3

マ ジ ッ ク ナ ン バ ー の 第 4 バ イ ト 。 ELFMAG3 で 埋 め な け れ ば な ら な い 。 (3: 'F')

EI_CLASS

第 5 バ イ ト は 、 こ の バ イ ナ リ の ア ー キ テ ク チ ャ ー を 示 す :

ELFCLASSNONE

こ の ク ラ ス は 不 正 で あ る 。

ELFCLASS32

32 ビ ッ ト ア ー キ テ ク チ ャ ー を 定 義 す る 。 フ ァ イ ル と 仮 想 ア ド レ ス 空 間 が 4 ギ ガ バ イ ト ま で の マ シ ン を サ ポ ー ト す る 。

ELFCLASS64

64 ビ ッ ト ア ー キ テ ク チ ャ ー を 定 義 す る 。

EI_DATA

第 6 バ イ ト は フ ァ イ ル 内 の プ ロ セ ッ サ 固 有 デ ー タ の デ ー タ エ ン コ ー デ ィ ン グ を 指 定 す る 。 現 在 の と こ ろ 以 下 の エ ン コ ー デ ィ ン グ が サ ポ ー ト さ れ て い る :

ELFDATANONE

不 明 な デ ー タ フ ォ ー マ ッ ト 。

ELFDATA2LSB

2 の 補 数 、 リ ト ル エ ン デ ィ ア ン 。

ELFDATA2MSB

2 の 補 数 、 ビ ッ グ エ ン デ ィ ア ン 。

EI_VERSION

第 7 バ イ ト は ELF 仕 様 の バ ー ジ ョ ン 番 号 で あ る :

EV_NONE

不 正 な バ ー ジ ョ ン 。

EV_CURRENT

現 在 の バ ー ジ ョ ン 。

EI_OSABI

第 8 バ イ ト は オ ブ ジ ェ ク ト の タ ー ゲ ッ ト と な る オ ペ レ ー テ ィ ン グ シ ス テ ム と ABI を 示 す 。 他 の ELF 構 造 体 の フ ィ ー ル ド に は 、 プ ラ ッ ト フ ォ ー ム 固 有 の 意 味 を 持 つ フ ラ グ や 値 を 持 つ も の も あ る 。 こ れ ら の フ ィ ー ル ド の 解 釈 は 、 こ の バ イ ト の 値 に よ っ て 決 定 さ れ る 。 以 下 に 例 を 挙 げ る 。

ELFOSABI_NONE

ELFOSABI_SYSV と 同 じ 。

ELFOSABI_SYSV

UNIX System V ABI.

ELFOSABI_HPUX

HP-UX ABI.

ELFOSABI_NETBSD

NetBSD ABI.

ELFOSABI_LINUX

Linux ABI.

ELFOSABI_SOLARIS

Solaris ABI.

ELFOSABI_IRIX

IRIX ABI.

ELFOSABI_FREEBSD

FreeBSD ABI.

ELFOSABI_TRU64

TRU64 UNIX ABI.

ELFOSABI_ARM

ARM ア ー キ テ ク チ ャ ー ABI.

ELFOSABI_STANDALONE

ス タ ン ド ア ロ ン (組 み 込 み ) ABI.

EI_ABIVERSION

第 9 バ イ ト は オ ブ ジ ェ ク ト が タ ー ゲ ッ ト と し て い る ABI の バ ー ジ ョ ン を 示 す 。 こ の フ ィ ー ル ド は 互 換 性 の な い ABI の バ ー ジ ョ ン を 区 別 す る た め に 使 わ れ る 。 こ の バ ー ジ ョ ン 番 号 の 解 釈 は 、 EI_OSABI フ ィ ー ル ド で 識 別 さ れ る ABI に 依 存 す る 。 こ の 仕 様 に 準 拠 す る ア プ リ ケ ー シ ョ ン で は 、 値 0 を 使 う 。

EI_PAD

パ デ ィ ン グ の 開 始 。 こ れ ら の バ イ ト は 予 約 さ れ て お り 、 0 に 設 定 さ れ て い る 。 こ れ ら を 読 み 込 む プ ロ グ ラ ム は 、 こ れ ら の バ イ ト を 無 視 す べ き で あ る 。 現 在 使 わ れ て い な い バ イ ト に 意 味 が 与 え ら れ る 場 合 、 EI_PAD の 値 は 将 来 変 更 さ れ る か も し れ な い 。

EI_NIDENT

e_ident 配 列 の サ イ ズ 。

e_type

こ の 構 造 体 の メ ン バ は オ ブ ジ ェ ク ト フ ァ イ ル タ イ プ を 示 す :

ET_NONE

不 明 な タ イ プ 。

ET_REL

再 配 置 可 能 フ ァ イ ル 。

ET_EXEC

実 行 可 能 フ ァ イ ル 。

ET_DYN

共 有 オ ブ ジ ェ ク ト 。

ET_CORE

コ ア フ ァ イ ル 。

e_machine

こ の メ ン バ は 個 々 の フ ァ イ ル に 必 要 と さ れ る ア ー キ テ ク チ ャ ー を 指 定 す る 。 例 :

EM_NONE

不 明 な マ シ ン 。

EM_M32

AT&T WE 32100.

EM_SPARC

Sun Microsystems SPARC.

EM_386

Intel 80386.

EM_68K

Motorola 68000.

EM_88K

Motorola 88000.

EM_860

Intel 80860.

EM_MIPS

MIPS RS3000 (ビ ッ グ エ ン デ ィ ア ン の み )。

EM_PARISC

HP/PA.

EM_SPARC32PLUS

拡 張 命 令 セ ッ ト 付 き SPARC。

EM_PPC

PowerPC.

EM_PPC64

PowerPC 64-bit.

EM_S390

IBM S/390

EM_ARM

Advanced RISC Machines

EM_SH

Renesas SuperH

EM_SPARCV9

SPARC v9 64-bit.

EM_IA_64

Intel Itanium

EM_X86_64

AMD x86-64

EM_VAX

DEC Vax.

e_version

こ の メ ン バ は フ ァ イ ル バ ー ジ ョ ン を 示 す :

EV_NONE

不 正 な バ ー ジ ョ ン 。

EV_CURRENT

現 在 の バ ー ジ ョ ン 。

e_entry

こ の メ ン バ は 、 シ ス テ ム が 最 初 に 制 御 を 渡 す 、 つ ま り プ ロ セ ス を 開 始 す る 仮 想 ア ド レ ス を 指 定 す る 。 フ ァ イ ル に エ ン ト リ ー ポ イ ン ト が 関 連 付 け ら れ て い な い 場 合 、 こ の メ ン バ に は 0 が 入 る 。

e_phoff

こ の メ ン バ は プ ロ グ ラ ム ヘ ッ ダ ー テ ー ブ ル の フ ァ イ ル オ フ セ ッ ト (バ イ ト 単 位 ) を 保 持 す る 。 フ ァ イ ル に プ ロ グ ラ ム ヘ ッ ダ ー テ ー ブ ル が な い 場 合 、 こ の メ ン バ に は 0 が 入 る 。

e_shoff

こ の メ ン バ は セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル の フ ァ イ ル オ フ セ ッ ト (バ イ ト 単 位 ) を 保 持 す る 。 フ ァ イ ル に セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル が な い 場 合 、 こ の メ ン バ に は 0 が 入 る 。

e_flags

こ の メ ン バ は フ ァ イ ル に 関 連 付 け ら れ た プ ロ セ ッ サ 固 有 の フ ラ グ を 保 持 す る 。 フ ラ グ の 名 前 は EF_‘machine_flag’ と い う 形 式 で あ る 。 現 在 の と こ ろ フ ラ グ は 定 義 さ れ て い な い 。

e_ehsize

こ の メ ン バ は ELF ヘ ッ ダ ー サ イ ズ (バ イ ト 単 位 ) を 保 持 す る 。

e_phentsize

こ の メ ン バ は こ の フ ァ イ ル の プ ロ グ ラ ム ヘ ッ ダ ー テ ー ブ ル の 1 エ ン ト リ ー あ た り の サ イ ズ (バ イ ト 単 位 ) を 保 持 す る ; 全 て の エ ン ト リ ー は 同 じ サ イ ズ で あ る 。

e_phnum

こ の メ ン バ は プ ロ グ ラ ム ヘ ッ ダ ー テ ー ブ ル に あ る エ ン ト リ ー の 数 を 保 持 す る 。 よ っ て e_phentsize e_phnum の 積 が テ ー ブ ル サ イ ズ (バ イ ト 単 位 ) に な る 。 フ ァ イ ル に プ ロ グ ラ ム ヘ ッ ダ ー が な い 場 合 、 e_phnum は 値 0 を 保 持 す る 。

プ ロ グ ラ ム ヘ ッ ダ ー テ ー ブ ル の エ ン ト リ ー 数 が PN_XNUM (0xffff) 以 上 の 場 合 、 こ の メ ン バ は PN_XNUM (0xffff) に な り 、 プ ロ グ ラ ム ヘ ッ ダ ー テ ー ブ ル の エ ン ト リ ー の 実 際 の 数 は 、 セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル の 最 初 の エ ン ト リ ー の sh_info メ ン バ に 格 納 さ れ る 。 そ れ 以 外 の 場 合 、 セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル の 最 初 の エ ン ト リ ー の sh_info メ ン バ に は 値 0 が 格 納 さ れ る 。

PN_XNUM

e_phnum が 保 持 で き る 最 大 値 を 表 し 、 0xffff に 定 義 さ れ て い る 。 e_phnum は プ ロ グ ラ ム ヘ ッ ダ ー の 実 際 の 数 が ど こ に 割 り 当 て ら れ て い る か を 示 す 。

e_shentsize

こ の メ ン バ は セ ク シ ョ ン ヘ ッ ダ ー の サ イ ズ (バ イ ト 単 位 ) を 保 持 す る 。 セ ク シ ョ ン ヘ ッ ダ ー は セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル の 1 つ の エ ン ト リ ー で あ る ; 全 て の エ ン ト リ ー は 同 じ サ イ ズ で あ る 。

e_shnum

こ の メ ン バ は セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル に あ る エ ン ト リ ー の 数 を 保 持 す る 。 よ っ て e_shentsize e_shnum の 積 は セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル の サ イ ズ (バ イ ト 単 位 ) に な る 。 フ ァ イ ル に セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル が な い 場 合 、 e_shnum は 値 0 を 保 持 す る 。

セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル の エ ン ト リ ー 数 が SHN_LORESERVE (0xff00) 以 上 の 場 合 、 e_shnum に は 値 0 が 入 り 、 セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル の エ ン ト リ ー の 実 際 の 数 は セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル の 最 初 の エ ン ト リ ー の sh_size メ ン バ に 格 納 さ れ る 。 そ れ 以 外 の 場 合 、 セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル の 最 初 の エ ン ト リ ー の sh_info メ ン バ に は 値 0 が 格 納 さ れ る 。

e_shstrndx

こ の メ ン バ は セ ク シ ョ ン 名 文 字 列 テ ー ブ ル に 関 連 付 け ら れ た エ ン ト リ ー の セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル イ ン デ ッ ク ス を 保 持 す る 。 フ ァ イ ル に セ ク シ ョ ン 名 文 字 列 テ ー ブ ル が な い 場 合 、 こ の メ ン バ は 値 SHN_UNDEF を 保 持 す る 。 SHN_UNDEF .

セ ク シ ョ ン 名 前 文 字 列 テ ー ブ ル の イ ン デ ッ ク ス が SHN_LORESERVE (0xff00) 以 上 の 場 合 、 こ の メ ン バ に は SHN_XINDEX (0xffff) が 入 り 、 セ ク シ ョ ン 名 前 文 字 列 テ ー ブ ル の 実 際 の イ ン デ ッ ク ス は セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル の 最 初 の エ ン ト リ ー の sh_link メ ン バ に 格 納 さ れ る 。 そ れ 以 外 の 場 合 、 セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル の 最 初 の エ ン ト リ ー の sh_link メ ン バ に は 値 0 が 格 納 さ れ る 。

SHN_UNDEF

こ の 値 は 未 定 義 ・ 存 在 し な い ・ 無 関 係 そ の 他 、 意 味 の な い セ ク シ ョ ン の 参 照 で あ る こ と を 表 す 。 例 え ば 、 セ ク シ ョ ン 番 号 SHN_UNDEF に 関 連 づ け て 「 定 義 」 さ れ た シ ン ボ ル は 、 「 未 定 義 」 な シ ン ボ ル で あ る 。

SHN_LORESERVE

こ の 値 は 予 約 済 み の イ ン デ ッ ク ス 領 域 の 下 限 を 指 定 す る 。

SHN_LOPROC

こ の 値 以 上 で SHN_HIPROC 以 下 の 値 は プ ロ セ ッ サ 固 有 の 意 味 に 予 約 さ れ て い る 。

SHN_HIPROC

こ の 値 以 下 で SHN_HIPROC 以 上 の 値 は プ ロ セ ッ サ 固 有 の 意 味 に 予 約 さ れ て い る 。

SHN_ABS

こ の 値 は 対 応 す る 参 照 の 絶 対 値 を 指 定 す る 。 例 え ば 、 セ ク シ ョ ン 番 号 SHN_ABS に 関 連 づ け ら れ た シ ン ボ ル は 絶 対 値 を 保 持 し 、 再 配 置 に 影 響 さ れ な い 。

SHN_COMMON

こ の セ ク シ ョ ン に 関 連 し て 定 義 さ れ た シ ン ボ ル は 、 Fortran の COMMON や C の 未 割 り 当 て external 変 数 の よ う な 、 共 通 シ ン ボ ル で あ る 。

SHN_HIRESERVE

こ の 値 は 予 約 さ れ た イ ン デ ッ ク ス の 範 囲 の 上 限 を 指 定 す る 。 SHN_LORESERVE SHN_HIRESERVE は 含 ま れ る 。 こ の 値 は セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル を 参 照 し な い 。 つ ま り 、 セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル は 予 約 さ れ た イ ン デ ッ ク ス の エ ン ト リ ー を 含 ま な い 。

実 行 可 能 フ ァ イ ル ま た は 共 有 オ ブ ジ ェ ク ト フ ァ イ ル の プ ロ グ ラ ム ヘ ッ ダ ー テ ー ブ ル は 、 シ ス テ ム に よ る プ ロ グ ラ ム 実 行 準 備 に 必 要 な 、 セ グ メ ン ト 等 の 情 報 を 記 述 す る 構 造 体 の 配 列 で あ る 。 オ ブ ジ ェ ク ト フ ァ イ ル の セ グ メ ン ト に は 1 つ 以 上 の セ ク シ ョ ン が 含 ま れ る 。 プ ロ グ ラ ム ヘ ッ ダ ー は 実 行 可 能 フ ァ イ ル と 共 有 オ ブ ジ ェ ク ト フ ァ イ ル で の み 意 味 を 持 つ 。 フ ァ イ ル は 自 身 の プ ロ グ ラ ム ヘ ッ ダ ー サ イ ズ を ELF ヘ ッ ダ ー の e_phentsize メ ン バ と e_phnum メ ン バ で 指 定 す る 。 ELF プ ロ グ ラ ム ヘ ッ ダ ー は Elf32_Phdr 型 ま た は Elf64_Phdr 型 で 記 述 さ れ る (ど ち ら に な る か は ア ー キ テ ク チ ャ ー 依 存 ):

typedef struct {
uint32_t p_type;
Elf32_Off p_offset;
Elf32_Addr p_vaddr;
Elf32_Addr p_paddr;
uint32_t p_filesz;
uint32_t p_memsz;
uint32_t p_flags;
uint32_t p_align;
} Elf32_Phdr;

typedef struct {
uint32_t p_type;
uint32_t p_flags;
Elf64_Off p_offset;
Elf64_Addr p_vaddr;
Elf64_Addr p_paddr;
uint64_t p_filesz;
uint64_t p_memsz;
uint64_t p_align;
} Elf64_Phdr;

32 ビ ッ ト と 64 ビ ッ ト の プ ロ グ ラ ム ヘ ッ ダ ー の 主 な 違 い は 、 構 造 体 に お け る p_flags メ ン バ の 位 置 に あ る 。

p_type

Phdr 構 造 体 の こ の メ ン バ は 、 こ の 配 列 要 素 が ど の よ う な 種 類 の セ グ メ ン ト を 記 述 し て い る か 、 ま た は こ の 配 列 要 素 の 情 報 を ど の よ う に 解 釈 す る か 、 を 表 す 。

PT_NULL

こ の 配 列 要 素 は 使 用 さ れ て お ら ず 、 そ の 他 の メ ン バ の 値 は 未 定 義 で あ る 。 こ れ に よ り 、 こ の プ ロ グ ラ ム ヘ ッ ダ ー の エ ン ト リ ー は 無 視 さ れ る 。

PT_LOAD

こ の 配 列 要 素 は p_filesz p_memsz で 記 述 さ れ る ロ ー ド 可 能 セ グ メ ン ト を 指 定 す る 。 こ の フ ァ イ ル か ら の バ イ ト デ ー タ が 、 こ の メ モ リ ー セ グ メ ン ト の 先 頭 か ら マ ッ プ さ れ る 。 セ グ メ ン ト の メ モ リ ー サ イ ズ Sy p_memsz が フ ァ イ ル サ イ ズ Sy p_filesz よ り 大 き い 場 合 、 「 余 っ た 」 バ イ ト は 値 0 と な り 、 そ の セ グ メ ン ト 初 期 化 デ ー タ の 後 ろ に 置 か れ る と 定 め ら れ て い る 。 フ ァ イ ル サ イ ズ は メ モ リ ー サ イ ズ よ り 大 き く て は い け な い 。 プ ロ グ ラ ム ヘ ッ ダ ー テ ー ブ ル の ロ ー ド 可 能 セ グ メ ン ト エ ン ト リ ー は 、 p_vaddr メ ン バ の 昇 順 に ソ ー ト さ れ て 出 現 す る 。

PT_DYNAMIC

こ の 配 列 要 素 は 動 的 リ ン ク 情 報 を 指 定 す る 。

PT_INTERP

こ の 配 列 要 素 は 、 イ ン タ ー プ リ タ ー と し て 起 動 さ れ る パ ス 名 (ヌ ル 文 字 終 端 ) の 位 置 と サ イ ズ を 指 定 す る 。 こ の セ グ メ ン ト 型 は (共 有 オ ブ ジ ェ ク ト に も あ る か も 知 れ な い が ) 実 行 可 能 フ ァ イ ル で の み 意 味 を 持 つ 。 た だ し 、 こ の セ グ メ ン ト 型 は 1 つ の フ ァ イ ル に 2 回 以 上 出 現 し て は な ら な い 。 も し 存 在 す る 場 合 、 こ の セ グ メ ン ト 型 は 全 て の ロ ー ド 可 能 セ グ メ ン ト エ ン ト リ ー よ り 前 に な け れ ば な ら な い 。

PT_NOTE

こ の 配 列 要 素 は 補 足 情 報 (auxiliary information) の 位 置 と サ イ ズ を 指 定 す る 。

PT_SHLIB

こ の セ グ メ ン ト 型 は 予 約 さ れ て い る が 、 意 味 は 指 定 さ れ て い な い 。 こ の 型 の 配 列 要 素 を 保 持 す る プ ロ グ ラ ム は ABI に 準 拠 し な い 。

PT_PHDR

こ の 配 列 要 素 は 、 も し 存 在 し て い る な ら ば 、 フ ァ イ ル お よ び プ ロ グ ラ ム の メ モ リ ー イ メ ー ジ 双 方 に お け る プ ロ グ ラ ム ヘ ッ ダ ー テ ー ブ ル 自 身 の 位 置 と サ イ ズ を 指 定 す る 。 こ の セ グ メ ン ト 型 は 1 つ の フ ァ イ ル に 2 回 以 上 出 現 し て は な ら な い 。 さ ら に 、 こ の セ グ メ ン ト 型 が 存 在 し て も よ い の は 、 プ ロ グ ラ ム ヘ ッ ダ ー テ ー ブ ル が プ ロ グ ラ ム の メ モ リ ー イ メ ー ジ の 一 部 で あ る 場 合 の み で あ る 。 も し 存 在 す る 場 合 、 こ れ は 全 て の ロ ー ド 可 能 セ グ メ ン ト エ ン ト リ ー よ り 前 に な け れ ば な ら な い 。

PT_LOPROC

こ の 値 以 上 で PT_HIPROC 以 下 の 値 は プ ロ セ ッ サ 固 有 の 意 味 に 予 約 さ れ て い る 。

PT_HIPROC

こ の 値 以 下 で PT_LOPROC 以 上 の 値 は プ ロ セ ッ サ 固 有 の 意 味 に 予 約 さ れ て い る 。

PT_GNU_STACK

GNU 拡 張 で あ り 、 Linux カ ー ネ ル が p_flags の メ ン バ ー に セ ッ ト さ れ た フ ラ グ 経 由 で ス タ ッ ク の 状 態 を 制 御 す る た め に 使 用 す る 。

p_offset

こ の メ ン バ は 、 セ グ メ ン ト の 先 頭 バ イ ト が あ る (フ ァ イ ル 先 頭 か ら の ) オ フ セ ッ ト を 保 持 す る 。

p_vaddr

こ の メ ン バ は 、 セ グ メ ン ト の 先 頭 バ イ ト が あ る メ モ リ ー の 仮 想 ア ド レ ス を 保 持 す る 。

p_paddr

物 理 ア ド レ ス が 意 味 を も つ シ ス テ ム で は 、 こ の メ ン バ は セ グ メ ン ト の 物 理 ア ド レ ス と し て 予 約 さ れ て い る 。 BSD で は こ の メ ン バ は 使 用 さ れ な い 。 0 で な け れ ば な ら な い 。

p_filesz

こ の メ ン バ は セ グ メ ン ト の フ ァ イ ル イ メ ー ジ の バ イ ト 数 を 保 持 す る 。 こ れ は 0 で も よ い 。

p_memsz

こ の メ ン バ は セ グ メ ン ト の メ モ リ ー イ メ ー ジ の バ イ ト 数 を 保 持 す る 。 こ れ は 0 で も よ い 。

p_flags

こ の メ ン バ は セ グ メ ン ト に 関 連 す る フ ラ グ の ビ ッ ト マ ス ク を 保 持 す る :

PF_X

実 行 可 能 セ グ メ ン ト 。

PF_W

書 き 込 み 可 能 セ グ メ ン ト .

PF_R

読 み 込 み 可 能 セ グ メ ン ト 。

テ キ ス ト セ グ メ ン ト は 一 般 に フ ラ グ PF_X PF_R を 持 つ 。 デ ー タ セ グ メ ン ト は 一 般 に PF_X , PF_W , PF_R を 持 つ 。

p_align

こ の メ ン バ は 、 セ グ メ ン ト が メ モ リ ー お よ び フ ァ イ ル に お い て 配 置 (align) さ れ る 値 を 保 持 す る 。 ロ ー ド 可 能 プ ロ セ ス セ グ メ ン ト は 、 ペ ー ジ サ イ ズ を 法 と し て p_vaddr p_offset と 合 同 で な け れ ば な ら な い (訳 注 :「 p_vaddr mod ペ ー ジ サ イ ズ = p_offset mod ペ ー ジ サ イ ズ 」 で な け れ ば な ら な い )。 。 0 と 1 と い う 値 は 配 置 が 必 要 な い こ と を 意 味 す る 。 そ れ 以 外 の 場 合 、 p_align は 正 で 2 の 整 数 乗 で な け れ ば な ら ず 、 p_vaddr p_align を 法 と し て p_offset と 合 同 で な け れ ば な ら な い (訳 注 :「 p_vaddr mod p_align = p_offset mod p_align」 で な け れ ば な ら な い )。

フ ァ イ ル の セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル に は 、 全 て の フ ァ イ ル セ ク シ ョ ン の 場 所 が 記 述 さ れ て い る 。 セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル は Elf32_Shdr 構 造 体 ま た は Elf64_Shdr 構 造 体 の 配 列 で あ る 。 ELF ヘ ッ ダ ー の e_shoff メ ン バ は フ ァ イ ル の 先 頭 か ら セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル へ の バ イ ト オ フ セ ッ ト で あ る 。 e_shnum は セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル に 含 ま れ る エ ン ト リ ー の 数 を 保 持 す る 。 e_shentsize は 各 エ ン ト リ ー の サ イ ズ (バ イ ト 単 位 ) を 保 持 す る 。

セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル イ ン デ ッ ク ス は 、 こ の 配 列 の 添 字 で あ る 。 い く つ か の セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル イ ン デ ッ ク ス は 予 約 さ れ て い る 。 予 約 さ れ て い る の は 、 最 初 の エ ン ト リ ー と 、 SHN_LORESERVE SHN_HIRESERVE の 間 の イ ン デ ッ ク ス で あ る 。 最 初 の エ ン ト リ ー は 、 ELF 拡 張 で e_phnum , e_shnum , e_strndx に 使 用 さ れ る 。 そ れ 以 外 の 場 合 、 最 初 の エ ン ト リ ー の 各 フ ィ ー ル ド に は 0 が 設 定 さ れ る 。 オ ブ ジ ェ ク ト フ ァ イ ル に は こ れ ら の 特 別 な イ ン デ ッ ク ス に 対 応 す る セ ク シ ョ ン は な い 。

SHN_UNDEF

こ の 値 は 、 未 定 義 (undefined)、 不 足 (missing)、 無 関 係 (irrelevant)、 そ の 他 無 意 味 な セ ク シ ョ ン 参 照 を 示 す 。

SHN_LORESERVE

こ の 値 は 予 約 済 み の イ ン デ ッ ク ス 領 域 の 下 限 を 指 定 す る 。

SHN_LOPROC

こ の 値 以 上 で SHN_HIPROC 以 下 の 値 は プ ロ セ ッ サ 固 有 の 意 味 に 予 約 さ れ て い る 。

SHN_HIPROC

こ の 値 以 下 で SHN_HIPROC 以 上 の 値 は プ ロ セ ッ サ 固 有 の 意 味 に 予 約 さ れ て い る 。

SHN_ABS

こ の 値 は 対 応 す る 参 照 の 絶 対 値 を 指 定 す る 。 例 え ば 、 セ ク シ ョ ン 番 号 SHN_ABS に 関 連 し て 定 義 さ れ て い る シ ン ボ ル は 、 絶 対 値 を 保 持 し て い る の で 、 再 配 置 に 影 響 さ れ な い 。

SHN_COMMON

こ の セ ク シ ョ ン に 関 連 し て 定 義 さ れ て い る シ ン ボ ル は 、 FORTRAN の COMMON や C の 未 割 り 当 て 外 部 変 数 の よ う な 共 通 シ ン ボ ル で あ る 。

SHN_HIRESERVE

こ の 値 は 予 約 済 み の イ ン デ ッ ク ス 領 域 の 上 限 を 指 定 す る 。 シ ス テ ム は SHN_LORESERVE SHN_HIRESERVE を 含 む 範 囲 を 予 約 す る 。 セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル は 予 約 さ れ た イ ン デ ッ ク ス に 対 応 す る エ ン ト リ ー を 持 た な い 。

セ ク シ ョ ン ヘ ッ ダ ー は 以 下 の 構 造 体 を 持 つ :

typedef struct {
uint32_t sh_name;
uint32_t sh_type;
uint32_t sh_flags;
Elf32_Addr sh_addr;
Elf32_Off sh_offset;
uint32_t sh_size;
uint32_t sh_link;
uint32_t sh_info;
uint32_t sh_addralign;
uint32_t sh_entsize;
} Elf32_Shdr;

typedef struct {
uint32_t sh_name;
uint32_t sh_type;
uint64_t sh_flags;
Elf64_Addr sh_addr;
Elf64_Off sh_offset;
uint64_t sh_size;
uint32_t sh_link;
uint32_t sh_info;
uint64_t sh_addralign;
uint64_t sh_entsize;
} Elf64_Shdr;

32 ビ ッ ト と 64 ビ ッ ト の セ ク シ ョ ン ヘ ッ ダ ー に は 実 際 の 違 い は な い 。

sh_name

こ の メ ン バ は セ ク シ ョ ン 名 を 定 め る 。 こ の 値 は セ ク シ ョ ン ヘ ッ ダ ー 文 字 列 テ ー ブ ル セ ク シ ョ ン の イ ン デ ッ ク ス で あ り 、 ヌ ル 文 字 で 終 端 さ れ た 文 字 列 の 場 所 を 示 す 。

sh_type

こ の メ ン バ は セ ク シ ョ ン の 内 容 と 意 味 が 含 ま れ る カ テ ゴ リ ー を 示 す 。

SHT_NULL

こ の 値 は セ ク シ ョ ン ヘ ッ ダ ー が 不 活 性 で あ る こ と を 示 す 。 こ れ は 関 連 す る セ ク シ ョ ン を 持 た な い 。 こ の セ ク シ ョ ン ヘ ッ ダ ー の 他 の メ ン バ は 、 未 定 義 の 値 を 持 つ 。

SHT_PROGBITS

こ の セ ク シ ョ ン は プ ロ グ ラ ム に よ り 定 義 さ れ る 情 報 を 保 持 す る 。 こ の 情 報 の 形 式 と 意 味 は 、 ひ と え に プ ロ グ ラ ム に よ っ て 決 定 さ れ る 。

SHT_SYMTAB

こ の セ ク シ ョ ン は シ ン ボ ル テ ー ブ ル を 保 持 す る 。 一 般 に は SHT_SYMTAB は リ ン ク 編 集 の た め の シ ン ボ ル を 提 供 す る が 、 動 的 リ ン ク に も 使 わ れ る 。 完 全 な シ ン ボ ル テ ー ブ ル と し て 、 動 的 リ ン ク に は 不 要 な 多 く の シ ン ボ ル を 保 持 で き る 。 オ ブ ジ ェ ク ト フ ァ イ ル も SHT_DYNSYM セ ク シ ョ ン を 持 つ こ と が で き る 。

SHT_STRTAB

こ の セ ク シ ョ ン は 文 字 列 テ ー ブ ル を 保 持 す る 。 オ ブ ジ ェ ク ト フ ァ イ ル は 複 数 の 文 字 列 テ ー ブ ル セ ク シ ョ ン を 持 つ こ と が で き る 。

SHT_RELA

こ の セ ク シ ョ ン は 明 示 的 な 加 数 (addend) を 持 つ 再 配 置 エ ン ト リ ー を 保 持 す る 。 再 配 置 エ ン ト リ ー の 型 は 、 オ ブ ジ ェ ク ト フ ァ イ ル の 32 ビ ッ ト ク ラ ス で は Elf32_Rela で あ る 。 オ ブ ジ ェ ク ト フ ァ イ ル は 複 数 の 再 配 置 セ ク シ ョ ン を 持 つ こ と が で き る 。

SHT_HASH

こ の セ ク シ ョ ン は シ ン ボ ル ハ ッ シ ュ テ ー ブ ル を 保 持 す る 。 動 的 リ ン ク さ れ る オ ブ ジ ェ ク ト は 、 シ ン ボ ル ハ ッ シ ュ テ ー ブ ル を 含 ん で い な け れ ば な ら な い 。 オ ブ ジ ェ ク ト フ ァ イ ル は 1 つ の ハ ッ シ ュ テ ー ブ ル の み を 持 つ こ と が で き る 。

SHT_DYNAMIC

こ の セ ク シ ョ ン は 動 的 リ ン ク の 情 報 を 保 持 す る 。 オ ブ ジ ェ ク ト フ ァ イ ル は 1 つ の 動 的 セ ク シ ョ ン の み を 持 つ こ と が で き る 。

SHT_NOTE

こ の セ ク シ ョ ン は フ ァ イ ル に 何 ら か の 印 を 付 け る 情 報 を 保 持 す る 。

SHT_NOBITS

こ の タ イ プ の セ ク シ ョ ン は フ ァ イ ル の 領 域 を 使 わ な い と い う 以 外 は 、 SHT_PROGBITS と 似 て い る 。 こ の セ ク シ ョ ン は 1 バ イ ト も 含 ま な い が 、 sh_offset メ ン バ は 概 念 的 な フ ァ イ ル オ フ セ ッ ト を 持 つ 。

SHT_REL

こ の セ ク シ ョ ン は 明 示 的 な 加 数 を 持 た な い 再 配 置 オ フ セ ッ ト を 保 持 す る 。 再 配 置 オ フ セ ッ ト の 型 は 、 オ ブ ジ ェ ク ト フ ァ イ ル の 32 ビ ッ ト ク ラ ス で は Elf32_Rel で あ る 。 オ ブ ジ ェ ク ト フ ァ イ ル は 複 数 の 再 配 置 セ ク シ ョ ン を 持 つ こ と が で き る 。

SHT_SHLIB

こ の セ ク シ ョ ン は 予 約 さ れ て い る が 、 意 味 は 指 定 さ れ て い な い 。

SHT_DYNSYM

こ の セ ク シ ョ ン は 動 的 リ ン ク シ ン ボ ル の 最 小 セ ッ ト を 保 持 す る 。 オ ブ ジ ェ ク ト フ ァ イ ル は SHT_SYMTAB セ ク シ ョ ン も 含 む こ と が で き る 。

SHT_LOPROC

こ の 値 以 上 で SHT_HIPROC 以 下 の 範 囲 は プ ロ セ ッ サ 固 有 の 意 味 に 予 約 さ れ て い る 。

SHT_HIPROC

こ の 値 以 下 で SHT_LOPROC 以 上 の 範 囲 は プ ロ セ ッ サ 固 有 の 意 味 に 予 約 さ れ て い る 。

SHT_LOUSER

こ の 値 は ア プ リ ケ ー シ ョ ン プ ロ グ ラ ム の た め に 予 約 さ れ る イ ン デ ッ ク ス 範 囲 の 下 限 を 指 定 す る 。

SHT_HIUSER

こ の 値 は ア プ リ ケ ー シ ョ ン プ ロ グ ラ ム の た め に 予 約 さ れ る イ ン デ ッ ク ス 範 囲 の 上 限 を 指 定 す る 。 SHT_LOUSER か ら SHT_HIUSER の 間 の セ ク シ ョ ン タ イ プ は 、 現 在 ま た は 将 来 の シ ス テ ム 定 義 セ ク シ ョ ン タ イ プ と 衝 突 す る こ と な く 、 ア プ リ ケ ー シ ョ ン で 使 用 す る こ と が で き る 。

sh_flags

様 々 な 属 性 を 記 述 す る た め の 1 ビ ッ ト の フ ラ グ を サ ポ ー ト す る セ ク シ ョ ン 。 フ ラ グ ビ ッ ト が sh_flags に 設 定 さ れ た 場 合 、 そ の セ ク シ ョ ン に つ い て の 属 性 は "オ ン " に な る 。 そ れ 以 外 の 場 合 、 属 性 が "オ フ " で あ る か 属 性 が 適 用 さ れ な い 。 未 定 義 の 属 性 は 0 に 設 定 さ れ る 。

SHF_WRITE

こ の セ ク シ ョ ン は プ ロ セ ス 実 行 中 に 書 き 込 み 可 能 な デ ー タ を 含 む 。

SHF_ALLOC

こ の セ ク シ ョ ン は プ ロ セ ス 実 行 中 に メ モ リ ー を 使 用 す る 。 制 御 セ ク シ ョ ン の 中 に は 、 オ ブ ジ ェ ク ト フ ァ イ ル の メ モ リ ー イ メ ー ジ に は 存 在 し な い も の も あ る 。 そ う し た セ ク シ ョ ン の 場 合 、 こ の 属 性 は オ フ で あ る 。

SHF_EXECINSTR

こ の セ ク シ ョ ン は 実 行 可 能 な マ シ ン 命 令 を 含 む 。

SHF_MASKPROC

こ の マ ス ク に 含 ま れ る 全 て の ビ ッ ト は プ ロ セ ッ サ 固 有 の 意 味 に 予 約 さ れ て い る 。

sh_addr

こ の セ ク シ ョ ン が プ ロ セ ス の メ モ リ ー イ メ ー ジ に あ る 場 合 、 こ の メ ン バ は セ ク シ ョ ン の 最 初 の バ イ ト が 存 在 す る ア ド レ ス を 保 持 す る 。 そ れ 以 外 の 場 合 、 こ の メ ン バ は 0 で あ る 。

sh_offset

こ の メ ン バ の 値 は 、 フ ァ イ ル の 先 頭 か ら セ ク シ ョ ン の 最 初 の バ イ ト へ の バ イ ト オ フ セ ッ ト を 保 持 す る 。 セ ク シ ョ ン タ イ プ SHT_NOBITS は フ ァ イ ル の 領 域 を 全 く 使 用 せ ず 、 こ の タ イ プ の sh_offset メ ン バ は フ ァ イ ル の 概 念 的 な 位 置 を 示 す 。

sh_size

こ の メ ン バ は セ ク シ ョ ン の サ イ ズ (バ イ ト 単 位 ) を 保 持 す る 。 セ ク シ ョ ン タ イ プ が SHT_NOBITS で な い 限 り 、 そ の セ ク シ ョ ン は フ ァ イ ル 中 の sh_size バ イ ト を 使 用 す る 。 タ イ プ が SHT_NOBITS の セ ク シ ョ ン は サ イ ズ が 0 で な い が 、 フ ァ イ ル の 領 域 を 使 用 し な い 。

sh_link

こ の メ ン バ は 、 セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル イ ン デ ッ ク ス リ ン ク を 保 持 す る 。 こ の 解 釈 は セ ク シ ョ ン タ イ プ に 依 存 す る 。

sh_info

こ の メ ン バ は 追 加 情 報 を 保 持 す る 。 こ の 解 釈 は セ ク シ ョ ン タ イ プ に 依 存 す る 。

sh_addralign

ア ド レ ス 配 置 に 制 約 が あ る セ ク シ ョ ン も あ る 。 セ ク シ ョ ン が 倍 長 語 (doubleword) を 保 持 す る 場 合 、 シ ス テ ム は 全 て の セ ク シ ョ ン に つ い て 倍 長 語 の 配 置 を 保 証 し な け れ ば な ら な い 。 つ ま り 、 sh_addr の 値 は sh_addralign の 値 を 法 と し て 0 と 合 同 で な け れ ば な ら な い (訳 注 :「 sh_addr mod sh_addralign = 0 で な け れ ば な ら な い )。 2 の 0 乗 と 正 の 整 数 乗 の み が 許 可 さ れ る 。 0 ま た は 1 は セ ク シ ョ ン の 配 置 に 制 約 が な い こ と を 意 味 す る 。

sh_entsize

シ ン ボ ル テ ー ブ ル の よ う な 固 定 サ イ ズ エ ン ト リ ー の テ ー ブ ル を 保 持 す る セ ク シ ョ ン も あ る 。 こ の よ う な セ ク シ ョ ン で は 、 こ の メ ン バ は 各 エ ン ト リ ー の サ イ ズ (バ イ ト 単 位 ) を 表 す 。 こ の メ ン バ が 0 の 場 合 、 そ の セ ク シ ョ ン は 固 定 サ イ ズ エ ン ト リ ー の テ ー ブ ル を 保 持 し な い 。

さ ま ざ ま な セ ク シ ョ ン に プ ロ グ ラ ム 情 報 ・ 制 御 情 報 が 保 持 さ れ る :

.bss

こ の セ ク シ ョ ン は プ ロ グ ラ ム の メ モ リ ー イ メ ー ジ に 配 置 さ れ る 非 初 期 化 デ ー タ を 保 持 す る 。 定 義 上 、 シ ス テ ム は プ ロ グ ラ ム の 実 行 開 始 時 に 、 デ ー タ を 0 で 初 期 化 す る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_NOBITS で あ る 。 属 性 タ イ プ は SHF_ALLOC SHF_WRITE で あ る 。

.comment

こ の セ ク シ ョ ン は バ ー ジ ョ ン 制 御 情 報 を 保 持 す る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_PROGBITS で あ る 。 属 性 タ イ プ は 使 用 さ れ な い 。

.ctors

こ の セ ク シ ョ ン は C++ コ ン ス ト ラ ク タ ー 関 数 へ の 初 期 化 さ れ た ポ イ ン タ ー を 保 持 す る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_PROGBITS で あ る 。 属 性 タ イ プ は SHF_ALLOC SHF_WRITE で あ る 。

.data

こ の セ ク シ ョ ン は プ ロ グ ラ ム の メ モ リ ー イ メ ー ジ に 配 置 さ れ る 初 期 化 済 み デ ー タ を 保 持 す る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_PROGBITS で あ る 。 属 性 タ イ プ は SHF_ALLOC SHF_WRITE で あ る 。

.data1

こ の セ ク シ ョ ン は プ ロ グ ラ ム の メ モ リ ー イ メ ー ジ に 配 置 さ れ る 初 期 化 済 み デ ー タ を 保 持 す る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_PROGBITS で あ る 。 属 性 タ イ プ は SHF_ALLOC SHF_WRITE で あ る 。

.debug

こ の セ ク シ ョ ン は シ ン ボ リ ッ ク デ バ ッ グ 用 の 情 報 を 保 持 す る 。 そ の 内 容 は 指 定 さ れ て い な い 。 こ の セ ク シ ョ ン の タ イ プ は SHT_PROGBITS で あ る 。 属 性 タ イ プ は 使 用 さ れ な い 。

.dtors

こ の セ ク シ ョ ン は C++ デ ス ト ラ ク タ 関 数 へ の 初 期 化 さ れ た ポ イ ン タ ー を 保 持 す る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_PROGBITS で あ る 。 属 性 タ イ プ は SHF_ALLOC SHF_WRITE で あ る 。

.dynamic

こ の セ ク シ ョ ン は 動 的 リ ン ク 情 報 を 保 持 す る 。 こ の セ ク シ ョ ン の 属 性 は SHF_ALLOC ビ ッ ト を 含 む 。 SHF_WRITE ビ ッ ト が 設 定 さ れ る か 否 か は プ ロ セ ッ サ に よ る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_DYNAMIC で あ る 。 上 記 の 属 性 を 参 照 す る こ と 。

.dynstr

こ の セ ク シ ョ ン は 動 的 リ ン ク に 必 要 な 文 字 列 を 保 持 す る 。 最 も 一 般 的 に は 、 こ の 文 字 列 は シ ン ボ ル テ ー ブ ル エ ン ト リ ー と 関 連 づ け ら れ た 名 前 を 表 す 。 こ の セ ク シ ョ ン の タ イ プ は SHT_STRTAB で あ る 。 使 用 さ れ る 属 性 タ イ プ は SHF_ALLOC で あ る 。

.dynsym

こ の セ ク シ ョ ン は 動 的 リ ン ク シ ン ボ ル テ ー ブ ル を 保 持 す る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_DYNSYM で あ る 。 使 用 さ れ る 属 性 タ イ プ は SHF_ALLOC で あ る 。

.fini

こ の セ ク シ ョ ン は プ ロ セ ス 終 了 コ ー ド に 置 か れ る 実 行 可 能 命 令 を 保 持 す る 。 プ ロ セ ス が 正 常 に 終 了 し た 場 合 、 シ ス テ ム は こ の セ ク シ ョ ン に あ る コ ー ド を 配 置 し て 実 行 す る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_PROGBITS で あ る 。 使 用 さ れ る 属 性 タ イ プ は SHF_ALLOC SHF_EXECINSTR で あ る 。

.gnu.version

こ の セ ク シ ョ ン は バ ー ジ ョ ン シ ン ボ ル テ ー ブ ル を 保 持 す る 。 そ の 内 容 は ElfN_Half 要 素 の 配 列 で あ る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_GNU_versym で あ る 。 使 用 さ れ る 属 性 タ イ プ は SHF_ALLOC で あ る 。

.gnu.version_d

こ の セ ク シ ョ ン は バ ー ジ ョ ン シ ン ボ ル の 定 義 を 保 持 す る 。 そ の 内 容 は ElfN_Verdef 構 造 体 の テ ー ブ ル で あ る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_GNU_verdef で あ る 。 使 用 さ れ る 属 性 タ イ プ は SHF_ALLOC で あ る 。

.gnu.version_r

こ の セ ク シ ョ ン は バ ー ジ ョ ン シ ン ボ ル が 必 要 と す る 要 素 を 保 持 す る 。 そ の 内 容 は ElfN_Verneed 構 造 体 の テ ー ブ ル で あ る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_GNU_versym で あ る 。 使 用 さ れ る 属 性 タ イ プ は shf_alloc で あ る 。

.got

こ の セ ク シ ョ ン は グ ロ ー バ ル オ フ セ ッ ト テ ー ブ ル を 保 持 す る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_PROGBITS で あ る 。 属 性 は プ ロ セ ッ サ 毎 に 異 な る 。

.hash

こ の セ ク シ ョ ン は シ ン ボ ル ハ ッ シ ュ テ ー ブ ル を 保 持 す る 。 セ ク シ ョ ン の タ イ プ は SHT_HASH で あ る 。 使 用 さ れ る 属 性 は SHF_ALLOC で あ る 。

.init

こ の セ ク シ ョ ン は プ ロ セ ス 初 期 化 コ ー ド に 配 置 さ れ る 実 行 可 能 命 令 を 保 持 す る 。 プ ロ グ ラ ム が 実 行 を 開 始 す る と 、 シ ス テ ム は メ イ ン プ ロ グ ラ ム エ ン ト リ ー ポ イ ン ト を 呼 び 出 す 前 に 、 こ の セ ク シ ョ ン に あ る コ ー ド を 配 置 し て 実 行 す る 。 こ の セ ク シ ョ ン は の タ イ プ は SHT_PROGBITS で あ る 。 使 用 さ れ る 属 性 は SHF_ALLOC SHF_EXECINSTR で あ る 。

.interp

こ の セ ク シ ョ ン は プ ロ グ ラ ム イ ン タ ー プ リ タ ー の パ ス 名 を 保 持 す る 。 フ ァ イ ル に こ の セ ク シ ョ ン を 含 む ロ ー ド 可 能 セ グ メ ン ト が あ る 場 合 、 そ の セ ク シ ョ ン の 属 性 に は SHF_ALLOC ビ ッ ト が 含 ま れ る 。 そ れ 以 外 の 場 合 こ の ビ ッ ト は オ フ に な る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_PROGBITS で あ る 。

.line

こ の セ ク シ ョ ン は シ ン ボ リ ッ ク デ バ ッ グ の た め の 行 番 号 情 報 を 保 持 す る 。 こ こ に は プ ロ グ ラ ム ソ ー ス コ ー ド と マ シ ン コ ー ド の 対 応 関 係 が 記 述 さ れ る 。 内 容 は 指 定 さ れ て い な い 。 こ の セ ク シ ョ ン の タ イ プ は SHT_PROGBITS で あ る 。 属 性 タ イ プ は 使 用 さ れ な い 。

.note

こ の セ ク シ ョ ン は "Note Section" 形 式 で 情 報 を 保 持 す る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_NOTE で あ る 。 属 性 タ イ プ は 使 用 さ れ な い 。 通 常 OpenBSD ネ イ テ ィ ブ 実 行 可 能 フ ァ イ ル は 自 身 を 識 別 す る た め に .note.openbsd.ident セ ク シ ョ ン を 持 つ 。 こ れ に よ り カ ー ネ ル は 、 フ ァ イ ル を ロ ー ド す る 際 に 互 換 ELF バ イ ナ リ エ ミ ュ レ ー シ ョ ン テ ス ト を 回 避 で き る 。

.note.GNU-stack

こ の セ ク シ ョ ン は Linux の オ ブ ジ ェ ク ト フ ァ イ ル で ス タ ッ ク 属 性 を 宣 言 す る の に 使 用 さ れ る 。 セ ク シ ョ ン の タ イ プ は SHT_PROGBITS で あ る 。 使 用 さ れ る 属 性 は SHF_EXECINSTR だ け で あ る 。 こ の 属 性 は GNU リ ン カ ー に 対 し て オ ブ ジ ェ ク ト フ ァ イ ル が 実 行 可 能 な ス タ ッ ク (executable stack) を 必 要 と す る 示 す も の で あ る 。

.plt

こ の セ ク シ ョ ン は 手 続 き (procedure) リ ン ク テ ー ブ ル を 保 持 す る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_PROGBITS で あ る 。 属 性 は プ ロ セ ッ サ 毎 に 異 な る 。

.relNAME

こ の セ ク シ ョ ン は 以 下 に 記 述 さ れ る 再 配 置 情 報 を 保 持 す る 。 フ ァ イ ル が 再 配 置 を 含 む ロ ー ド 可 能 セ グ メ ン ト を 持 っ て い る 場 合 、 こ の セ ク シ ョ ン の 属 性 は SHF_ALLOC ビ ッ ト を 含 む 。 そ れ 以 外 の 場 合 、 そ の ビ ッ ト は オ フ で あ る 。 慣 例 と し て 、 "NAME" は 再 配 置 が 適 用 さ れ る セ ク シ ョ ン が 指 定 さ れ る 。 よ っ て .text に つ い て の 再 配 置 セ ク シ ョ ン は 、 通 常 は .rel.text と い う 名 前 を 持 つ 。 こ の セ ク シ ョ ン の タ イ プ は SHT_REL で あ る 。

.relaNAME

こ の セ ク シ ョ ン は 以 下 に 記 述 さ れ る 再 配 置 情 報 を 保 持 す る 。 フ ァ イ ル が 再 配 置 を 含 む ロ ー ド 可 能 セ グ メ ン ト を 持 っ て い る 場 合 、 こ の セ ク シ ョ ン の 属 性 は SHF_ALLOC ビ ッ ト を 含 む 。 そ れ 以 外 の 場 合 、 そ の ビ ッ ト は オ フ で あ る 。 慣 例 と し て 、 "NAME" は 再 配 置 が 適 用 さ れ る セ ク シ ョ ン が 指 定 さ れ る 。 よ っ て .text に つ い て の 再 配 置 セ ク シ ョ ン は 、 通 常 は .rela.text と い う 名 前 を 持 つ 。 こ の セ ク シ ョ ン の タ イ プ は SHT_RELA で あ る 。

.rodata

こ の セ ク シ ョ ン は リ ー ド オ ン リ ー の デ ー タ を 保 持 す る 。 こ の デ ー タ は プ ロ セ ス イ メ ー ジ に お け る 書 き 込 み 不 可 能 な セ グ メ ン ト に 置 か れ る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_PROGBITS で あ る 。 使 用 さ れ る 属 性 は SHF_ALLOC で あ る 。

.rodata1

こ の セ ク シ ョ ン は リ ー ド オ ン リ ー の デ ー タ を 保 持 す る 。 こ の デ ー タ は プ ロ セ ス イ メ ー ジ に お け る 書 き 込 み 不 可 能 な セ グ メ ン ト に 置 か れ る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_PROGBITS で あ る 。 使 用 さ れ る 属 性 は SHF_ALLOC で あ る 。

.shstrtab

こ の セ ク シ ョ ン は セ ク シ ョ ン 名 を 保 持 す る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_STRTAB で あ る 。 属 性 タ イ プ は 使 用 さ れ な い 。

.strtab

こ の セ ク シ ョ ン は 文 字 列 を 保 持 す る 。 最 も 一 般 的 な の は 、 シ ン ボ ル テ ー ブ ル エ ン ト リ ー に 関 連 づ け ら れ た 名 前 を 表 す 文 字 列 で あ る 。 フ ァ イ ル が シ ン ボ ル 文 字 列 テ ー ブ ル を 含 む ロ ー ド 可 能 セ グ メ ン ト を 持 つ 場 合 、 セ ク シ ョ ン の 属 性 は SHF_ALLOC ビ ッ ト を 含 む 。 そ れ 以 外 の 場 合 、 そ の ビ ッ ト は オ フ で あ る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_STRTAB で あ る 。

.symtab

こ の セ ク シ ョ ン は シ ン ボ ル テ ー ブ ル を 保 持 す る 。 フ ァ イ ル が シ ン ボ ル テ ー ブ ル を 含 む ロ ー ド 可 能 セ グ メ ン ト を 持 つ 場 合 、 セ ク シ ョ ン の 属 性 は SHF_ALLOC ビ ッ ト を 含 む 。 そ れ 以 外 の 場 合 、 ビ ッ ト は オ フ で あ る 。 こ の セ ク シ ョ ン の タ イ プ は SHT_SYMTAB で あ る 。

.text

こ の セ ク シ ョ ン は プ ロ グ ラ ム の "テ キ ス ト " ま た は 実 行 可 能 命 令 を 保 持 す る 。 セ ク シ ョ ン の タ イ プ は SHT_PROGBITS で あ る 。 使 用 さ れ る 属 性 は SHF_ALLOC SHF_EXECINSTR で あ る 。

文 字 列 テ ー ブ ル セ ク シ ョ ン は ヌ ル 文 字 で 終 端 さ れ た キ ャ ラ ク タ ー 配 列 (通 常 文 字 列 と 呼 ば れ る も の ) を 保 持 す る 。 オ ブ ジ ェ ク ト フ ァ イ ル は こ れ ら の 文 字 列 を シ ン ボ ル 名 と セ ク シ ョ ン 名 を 表 す た め に 使 う 。 文 字 列 は 、 文 字 列 テ ー ブ ル セ ク シ ョ ン へ の イ ン デ ッ ク ス と し て 参 照 さ れ る 。 イ ン デ ッ ク ス 0 の 最 初 の バ イ ト は 、 ヌ ル バ イ ト ('\0') を 保 持 す る と 定 義 さ れ て い る 。 同 様 に 文 字 列 テ ー ブ ル の 最 後 の バ イ ト も ヌ ル 文 字 を 保 持 す る と 定 義 さ れ て い る 。 こ れ は 全 て の 文 字 列 が ヌ ル バ イ ト で 終 端 さ れ て い る こ と を 保 証 す る た め で あ る 。

オ ブ ジ ェ ク ト フ ァ イ ル の シ ン ボ ル テ ー ブ ル は 、 プ ロ グ ラ ム の シ ン ボ ル 定 義 と 参 照 を 配 置 ま た は 再 配 置 す る の に 必 要 な 情 報 を 保 持 す る 。

typedef struct {
uint32_t st_name;
Elf32_Addr st_value;
uint32_t st_size;
unsigned char st_info;
unsigned char st_other;
uint16_t st_shndx;
} Elf32_Sym;

typedef struct {
uint32_t st_name;
unsigned char st_info;
unsigned char st_other;
uint16_t st_shndx;
Elf64_Addr st_value;
uint64_t st_size;
} Elf64_Sym;

32 ビ ッ ト 版 と 64 ビ ッ ト 版 は 同 じ メ ン バ を 持 ち 、 単 に 順 番 が 異 な る だ け で あ る 。

st_name

こ の メ ン バ は オ ブ ジ ェ ク ト フ ァ イ ル の シ ン ボ ル 文 字 列 テ ー ブ ル の イ ン デ ッ ク ス を 保 持 す る 。 シ ン ボ ル 文 字 列 テ ー ブ ル は シ ン ボ ル 名 の 文 字 表 現 を 保 持 す る 。 こ の 値 が 0 で な い 場 合 、 シ ン ボ ル 名 を 得 る た め の 文 字 テ ー ブ ル イ ン デ ッ ク ス を 表 す 。 そ れ 以 外 の 場 合 、 シ ン ボ ル テ ー ブ ル は 名 前 を 持 た な い 。

st_value

こ の メ ン バ は 関 連 づ け ら れ た シ ン ボ ル の 値 を 表 す 。

st_size

多 く の シ ン ボ ル に は そ れ に 関 連 づ け ら れ た サ イ ズ が あ る 。 シ ン ボ ル が サ イ ズ を 持 た な い 場 合 、 ま た は サ イ ズ が 不 明 な 場 合 、 こ の メ ン バ は 0 で あ る 。

st_info

こ の メ ン バ は シ ン ボ ル の タ イ プ と バ イ ン デ ィ ン グ (binding) 属 性 を 指 定 す る :

STT_NOTYPE

シ ン ボ ル の タ イ プ が 定 義 さ れ て い な い 。

STT_OBJECT

シ ン ボ ル は デ ー タ オ ブ ジ ェ ク ト に 関 連 づ け ら れ て い る 。

STT_FUNC

シ ン ボ ル は 関 数 ま た は そ の 他 の 実 行 コ ー ド に 関 連 づ け ら れ て い る 。

STT_SECTION

シ ン ボ ル は セ ク シ ョ ン に 関 連 づ け ら れ て い る 。 こ の タ イ プ の シ ン ボ ル テ ー ブ ル エ ン ト リ ー は 、 主 と し て 再 配 置 の た め に 存 在 し 、 通 常 は STB_LOCAL バ イ ン デ ィ ン グ を 持 つ 。

STT_FILE

慣 例 と し て 、 シ ン ボ ル の 名 前 は オ ブ ジ ェ ク ト フ ァ イ ル に 関 連 づ け ら れ た ソ ー ス フ ァ イ ル の 名 前 を 指 定 す る 。 フ ァ イ ル シ ン ボ ル は STB_LOCAL バ イ ン デ ィ ン グ を 持 ち 、 そ の セ ク シ ョ ン イ ン デ ッ ク ス は SHN_ABS で あ る 。 フ ァ イ ル シ ン ボ ル は 、 フ ァ イ ル に 他 の STB_LOCAL シ ン ボ ル が あ る 場 合 は 、 そ れ よ り も 先 に 来 る 。

STT_LOPROC

こ の 値 以 上 で STT_HIPROC 以 下 の 範 囲 は プ ロ セ ッ サ 固 有 の 意 味 に 予 約 さ れ て い る 。

STT_HIPROC

こ の 値 以 下 で STT_LOPROC 以 上 の 範 囲 は プ ロ セ ッ サ 固 有 の 意 味 に 予 約 さ れ て い る 。

STB_LOCAL

局 所 的 シ ン ボ ル は そ の 定 義 を 含 む オ ブ ジ ェ ク ト フ ァ イ ル の 外 か ら は 見 え な い 。 同 じ 名 前 の 局 所 的 シ ン ボ ル は 、 お 互 い に 影 響 を 受 け る こ と な く 、 複 数 の フ ァ イ ル に 存 在 で き る 。

STB_GLOBAL

大 域 的 シ ン ボ ル は 結 び つ け ら れ て い る 全 て の オ ブ ジ ェ ク ト フ ァ イ ル か ら 見 え る 。 1 つ の フ ァ イ ル で 大 域 的 シ ン ボ ル が 定 義 さ れ て い た ら 、 他 の フ ァ イ ル で は 同 じ シ ン ボ ル へ の 参 照 は 未 定 義 で な け れ ば な ら な い 。

STB_WEAK

弱 シ ン ボ ル は 大 域 的 シ ン ボ ル に 似 て い る が 、 そ の 定 義 は 優 先 度 が 低 い 。

STB_LOPROC

こ の 値 以 上 で STB_HIPROC 以 下 の 範 囲 は プ ロ セ ッ サ 固 有 の 意 味 に 予 約 さ れ て い る 。

STB_HIPROC

こ の 値 以 下 で STB_LOPROC 以 上 の 範 囲 は プ ロ セ ッ サ 固 有 の 意 味 に 予 約 さ れ て い る 。

バ イ ン デ ィ ン グ と タ イ プ フ ィ ー ル ド を パ ッ ク し た り ア ン パ ッ ク し た り す る マ ク ロ が あ る :

ELF32_ST_BIND (info) ま た は ELF64_ST_BIND (info) st_info の 値 か ら バ イ ン デ ィ ン グ を 取 り 出 す 。

ELF32_ST_TYPE (info) ま た は ELF64_ST_TYPE (info)
st_info
の 値 か ら タ イ プ を 取 り 出 す 。

ELF32_ST_INFO (bind, type) ま た は ELF64_ST_INFO (bind, type)
バ イ ン デ ィ ン グ と タ イ プ を st_info の 値 に 変 換 す る 。

st_other

こ の メ ン バ は シ ン ボ ル の visibility (見 え る 範 囲 ) を 規 定 す る 。

STV_DEFAULT

デ フ ォ ル ト の シ ン ボ ル visibility ル ー ル 。

STV_INTERNAL

プ ロ セ ッ サ 固 有 の 隠 し ク ラ ス 。

STV_HIDDEN

シ ン ボ ル は 他 の モ ジ ュ ー ル か ら は 利 用 で き な い 。

STV_PROTECTED

横 取 り で き ず (not preemptible)、 公 開 さ れ な い 。

visibility 種 別 を 抽 出 す る た め の マ ク ロ が あ る 。

ELF32_ST_VISIBILITY (other) ま た は ELF64_ST_VISIBILITY (other)

st_shndx

各 シ ン ボ ル テ ー ブ ル エ ン ト リ ー は 、 い く つ か の セ ク シ ョ ン に 関 連 し て "定 義 さ れ て い る "。 こ の メ ン バ は 関 連 す る セ ク シ ョ ン ヘ ッ ダ ー テ ー ブ ル イ ン デ ッ ク ス を 保 持 す る 。

再 配 置 は シ ン ボ ル 参 照 と シ ン ボ ル 定 義 を 結 合 す る プ ロ セ ス で あ る 。 再 配 置 可 能 フ ァ イ ル は セ ク シ ョ ン の 内 容 を ど の よ う に 修 正 す る か に 関 す る 情 報 を 持 た な け れ ば な ら な い 。 こ れ に よ り 、 実 行 可 能 フ ァ イ ル と 共 有 オ ブ ジ ェ ク ト フ ァ イ ル は プ ロ セ ス の プ ロ グ ラ ム イ メ ー ジ に つ い て の 正 し い 情 報 を 持 つ こ と が で き る 。 再 配 置 エ ン ト リ ー は 以 下 の よ う な デ ー タ で あ る 。

加 数 を 必 要 と し な い 再 配 置 構 造 体 。

typedef struct {
Elf32_Addr r_offset;
uint32_t r_info;
} Elf32_Rel;

typedef struct {
Elf64_Addr r_offset;
uint64_t r_info;
} Elf64_Rel;

加 数 を 必 要 と す る 再 配 置 構 造 体 。

typedef struct {
Elf32_Addr r_offset;
uint32_t r_info;
int32_t r_addend;
} Elf32_Rela;

typedef struct {
Elf64_Addr r_offset;
uint64_t r_info;
int64_t r_addend;
} Elf64_Rela;

r_offset

こ の メ ン バ は 再 配 置 動 作 が 適 用 さ れ る 位 置 を 与 え る 。 再 配 置 可 能 フ ァ イ ル の 場 合 、 こ の 値 は セ ク シ ョ ン の 先 頭 か ら 再 配 置 で 影 響 を 受 け る 格 納 単 位 (storage unit) ま で の バ イ ト オ フ セ ッ ト で あ る 。 実 行 可 能 フ ァ イ ル ま た は 共 有 オ ブ ジ ェ ク ト の 場 合 、 こ の 値 は 再 配 置 で 影 響 を 受 け る 格 納 単 位 の 仮 想 ア ド レ ス で あ る 。

r_info

こ の メ ン バ は 、 再 配 置 が 行 わ れ な け れ ば な ら な い シ ン ボ ル テ ー ブ ル イ ン デ ッ ク ス と 、 適 用 さ れ る 再 配 置 の タ イ プ の 両 方 を 与 え る 。 再 配 置 タ イ プ は プ ロ セ ッ サ 毎 に 異 な る 。 テ キ ス ト が 再 配 置 エ ン ト リ ー の 再 配 置 タ イ プ ま た は シ ン ボ ル テ ー ブ ル イ ン デ ッ ク ス を 参 照 し て い る 場 合 、 そ れ ぞ れ エ ン ト リ ー の r_info メ ン バ に 対 し て 、 そ れ ぞ れ ELF[32|64]_R_TYPE ELF[32|64]_R_SYM を 適 用 し た 結 果 を 意 味 す る 。

r_addend

こ の メ ン バ は 定 数 の 加 数 を 指 定 す る 。 こ の 加 数 は 再 配 置 可 能 フ ィ ー ル ド に 格 納 さ れ る 値 を 計 算 す る た め に 使 わ れ る 。

.dynamic セ ク シ ョ ン は 、 関 連 す る 動 的 リ ン ク 情 報 を 保 持 し て い る 一 連 の 構 造 体 を 保 持 す る 。 d_tag メ ン バ は d_un の 解 釈 を 制 御 す る 。

typedef struct {
Elf32_Sword d_tag;
union {
Elf32_Word d_val;
Elf32_Addr d_ptr;
} d_un;
} Elf32_Dyn;
extern Elf32_Dyn _DYNAMIC[];

typedef struct {
Elf64_Sxword d_tag;
union {
Elf64_Xword d_val;
Elf64_Addr d_ptr;
} d_un;
} Elf64_Dyn;
extern Elf64_Dyn _DYNAMIC[];

d_tag

こ の メ ン バ は 以 下 の 値 を 持 つ こ と が で き る :

DT_NULL

動 的 セ ク シ ョ ン の 終 り の マ ー ク

DT_NEEDED

必 要 な ラ イ ブ ラ リ の 名 前 へ の 文 字 列 テ ー ブ ル オ フ セ ッ ト

DT_PLTRELSZ

PLT 再 配 置 (reloc) テ ー ブ ル の サ イ ズ (バ イ ト 単 位 )

DT_PLTGOT

PLT と GOT (ま た は 何 れ か 一 方 ) の ア ド レ ス

DT_HASH

シ ン ボ ル ハ ッ シ ュ テ ー ブ ル の ア ド レ ス

DT_STRTAB

文 字 列 テ ー ブ ル の ア ド レ ス

DT_SYMTAB

シ ン ボ ル テ ー ブ ル の ア ド レ ス

DT_RELA

Rela 再 配 置 テ ー ブ ル の ア ド レ ス

DT_RELASZ

Rela テ ー ブ ル の サ イ ズ (バ イ ト 単 位 )

DT_RELAENT

Rela テ ー ブ ル エ ン ト リ ー の サ イ ズ (バ イ ト 単 位 )

DT_STRSZ

文 字 列 テ ー ブ ル の サ イ ズ (バ イ ト 単 位 )

DT_SYMENT

シ ン ボ ル テ ー ブ ル エ ン ト リ ー の サ イ ズ (バ イ ト 単 位 )

DT_INIT

初 期 化 関 数 の ア ド レ ス

DT_FINI

終 了 関 数 の ア ド レ ス

DT_SONAME

共 有 オ ブ ジ ェ ク ト の 名 前 へ の 文 字 列 テ ー ブ ル オ フ セ ッ ト

DT_RPATH

ラ イ ブ ラ リ 検 索 パ ス へ の 文 字 列 テ ー ブ ル オ フ セ ッ ト (推 奨 さ れ な い )

DT_SYMBOLIC

リ ン カ ー が シ ン ボ ル の 実 行 可 能 フ ァ イ ル よ り 前 に こ の 共 有 オ ブ ジ ェ ク ト を 検 索 し た 場 合 は 、 警 告 を 出 す 。

DT_REL

Rel 再 配 置 テ ー ブ ル の ア ド レ ス

DT_RELSZ

Rel テ ー ブ ル の サ イ ズ (バ イ ト 単 位 )

DT_RELENT

Rel テ ー ブ ル エ ン ト リ ー の サ イ ズ (バ イ ト 単 位 )

DT_PLTREL

PLT が 参 照 す る 再 配 置 テ ー ブ ル の タ イ プ (Rela ま た は Rel)

DT_DEBUG

デ バ ッ グ の た め に 使 用 さ れ て い る 。 内 容 は 定 義 さ れ て い な い 。

DT_TEXTREL

こ れ が 指 定 さ れ て い な い 場 合 、 書 き 込 み 不 可 の セ グ メ ン ト に は 再 配 置 は 適 用 さ れ な い 。

DT_JMPREL

PLT 専 用 の 再 配 置 エ ン ト リ ー の ア ド レ ス

DT_BIND_NOW

実 行 可 能 フ ァ イ ル に 制 御 を 譲 る 前 に 、 全 て の 再 配 置 を 処 理 す る よ う に 動 的 リ ン カ ー に 指 示 す る 。

DT_RUNPATH

ラ イ ブ ラ リ 検 索 パ ス へ の 文 字 列 テ ー ブ ル オ フ セ ッ ト

DT_LOPROC

プ ロ セ ッ サ 固 有 の 意 味 の 開 始

DT_HIPROC

プ ロ セ ッ サ 固 有 の 意 味 の 終 了

d_val

こ の メ ン バ は 様 々 な 意 味 に 解 釈 さ れ る 整 数 値 で あ る 。

d_ptr

こ の メ ン バ は プ ロ グ ラ ム の 仮 想 ア ド レ ス を 表 す 。 こ れ ら の ア ド レ ス を 解 釈 す る 際 に 、 実 際 の ア ド レ ス は 元 々 の フ ァ イ ル の 値 と メ モ リ ー の 基 底 ア ド レ ス か ら 計 算 さ れ る 。 フ ァ イ ル に は こ れ ら の ア ド レ ス を 修 正 す る た め の 再 配 置 エ ン ト リ ー を 含 め て は な ら な い 。

_DYNAMIC

.dynamic セ ク シ ョ ン に あ る 全 て の 動 的 構 造 体 を 含 む 配 列 。 こ れ は 自 動 的 に リ ン カ ー に 渡 さ れ る 。

注 意

ELF は System V で 初 め て 登 場 し た 。 ELF 自 体 は System V で 初 め て 登 場 し た 。 ELF フ ォ ー マ ッ ト は 採 択 さ れ た 標 準 で あ る 。

e_phnum , e_shnum , e_strndx に 対 す る 拡 張 は 、 い ず れ も Linux で の 拡 張 で あ る 。 Sun, BSD, AMD64 も こ れ に 対 応 し て い る 。 詳 し い 情 報 は 、 関 連 項 目 を 参 照 。

関 連 項 目

as (1), gdb (1), ld (1), objdump (1), execve (2), core (5)

Hewlett-Packard, Elf-64 Object File Format .

Santa Cruz Operation, System V Application Binary Interface .

UNIX System Laboratories, "Object Files", Executable and Linking Format (ELF) .

Sun Microsystems, Linker and Libraries Guide .

AMD64 ABI Draft, System V Application Binary Interface AMD64 Architecture Processor Supplement .

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man-pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man-pages/ に 書 か れ て い る 。