OSDN Git Service

c99472bd6c3ea5ca923b7b567c9aaa88cf366264
[linuxjm/LDP_man-pages.git] / draft / man5 / elf.5
1 .\"     $OpenBSD: elf.5,v 1.12 2003/10/27 20:23:58 jmc Exp $
2 .\"Copyright (c) 1999 Jeroen Ruigrok van der Werven
3 .\"All rights reserved.
4 .\"
5 .\"Redistribution and use in source and binary forms, with or without
6 .\"modification, are permitted provided that the following conditions
7 .\"are met:
8 .\"1. Redistributions of source code must retain the above copyright
9 .\"   notice, this list of conditions and the following disclaimer.
10 .\"2. Redistributions in binary form must reproduce the above copyright
11 .\"   notice, this list of conditions and the following disclaimer in the
12 .\"   documentation and/or other materials provided with the distribution.
13 .\"
14 .\"THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 .\"ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 .\"IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 .\"ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 .\"FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 .\"DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 .\"OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 .\"HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 .\"LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 .\"OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 .\"SUCH DAMAGE.
25 .\"
26 .\"     $FreeBSD: src/share/man/man5/elf.5,v 1.21 2001/10/01 16:09:23 ru Exp $
27 .\"
28 .\" Slightly adapted - aeb, 2004-01-01
29 .\" 2005-07-15, Mike Frysinger <vapier@gentoo.org>, various fixes
30 .\" 2007-10-11, Mike Frysinger <vapier@gentoo.org>, various fixes
31 .\" 2007-12-08, mtk, Converted from mdoc to man macros
32 .\"
33 .\" Japanese Version Copyright (c) 2004-2005 Yuichi SATO
34 .\"         all rights reserved.
35 .\" Translated Thu Dec 16 02:17:58 JST 2004
36 .\"         by Yuichi SATO <ysato444@yahoo.co.jp>
37 .\" Updated & Modified Sat Sep 10 02:29:40 JST 2005 by Yuichi SATO
38 .\" Updated 2008-02-12, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.77
39 .\"
40 .TH ELF 5 2007-12-28 "Linux" "Linux Programmer's Manual"
41 .\"O .SH NAME
42 .\"O elf \- format of Executable and Linking Format (ELF) files
43 .SH Ì¾Á°
44 elf \- ¼Â¹Ô²Äǽ¥ê¥ó¥¯¥Õ¥©¡¼¥Þ¥Ã¥È (ELF) ¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È
45 .\"O .SH SYNOPSIS
46 .SH ½ñ¼°
47 .nf
48 .\" .B #include <elf_abi.h>
49 .B #include <elf.h>
50 .fi
51 .\"O .SH DESCRIPTION
52 .SH ÀâÌÀ
53 .\"O The header file
54 .\"O .I <elf.h>
55 .\"O defines the format of ELF executable binary files.
56 ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë
57 .I <elf.h>
58 ¤Ï ELF ¼Â¹Ô²Äǽ¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤òÄêµÁ¤¹¤ë¡£
59 .\"O Amongst these files are
60 .\"O normal executable files, relocatable object files, core files and shared
61 .\"O libraries.
62 ¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤È¤·¤Æ¤Ï¡¢Ä̾ï¤Î¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¡¦
63 ºÆÇÛÃÖ²Äǽ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¡¦¥³¥¢¥Õ¥¡¥¤¥ë¡¦¶¦Í­¥é¥¤¥Ö¥é¥ê¤¬¤¢¤ë¡£
64 .PP
65 .\"O An executable file using the ELF file format consists of an ELF header,
66 .\"O followed by a program header table or a section header table, or both.
67 ELF ¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»È¤¦¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Ï¡¢
68 ELF ¥Ø¥Ã¥À¤Î¸å¤Ë¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Þ¤¿¤Ï
69 ¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë (¤Þ¤¿¤Ï¤½¤ÎξÊý) ¤¬Â³¤¯¹½À®¤Ç¤¢¤ë¡£
70 .\"O The ELF header is always at offset zero of the file.
71 ELF ¥Ø¥Ã¥À¤Ï¾ï¤Ë¥Õ¥¡¥¤¥ë¤Î¥ª¥Õ¥»¥Ã¥È 0 ¤Ë¤¢¤ë¡£
72 .\"O The program header
73 .\"O table and the section header table's offset in the file are defined in the
74 .\"O ELF header.
75 ¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤È¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î
76 ¥Õ¥¡¥¤¥ëÆâ¤Ç¤Î¥ª¥Õ¥»¥Ã¥È¤Ï¡¢ELF ¥Ø¥Ã¥À¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
77 .\"O The two tables describe the rest of the particularities of
78 .\"O the file.
79 ¤³¤Î 2 ¤Ä¤Î¥Æ¡¼¥Ö¥ë¤Ï¥Õ¥¡¥¤¥ë¤Î»Ä¤ê¤ÎÉôʬ¤Î¾ÜºÙ¤òµ­½Ò¤¹¤ë¡£
80 .PP
81 .\"O .\" Applications which wish to process ELF binary files for their native
82 .\"O .\" architecture only should include
83 .\"O .\" .I <elf_abi.h>
84 .\"O .\" in their source code.
85 .\" ¥Í¥¤¥Æ¥£¥Ö¤Ê¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î ELF ¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ò½èÍý¤·¤¿¤¤
86 .\" ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥½¡¼¥¹¥³¡¼¥É¤Ë
87 .\" .I <elf_abi.h>
88 .\" ¤ò´Þ¤á¤ë¤À¤±¤Ç¤è¤¤¡£
89 .\"O .\" These applications should need to refer to
90 .\"O .\" all the types and structures by their generic names
91 .\"O .\" "Elf_xxx"
92 .\"O .\" and to the macros by
93 .\"O .\" "ELF_xxx".
94 .\" ¤³¤ì¤é¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥¸¥§¥Í¥ê¥Ã¥¯Ì¾
95 .\" all the types and structures by their generic names
96 .\" "Elf_xxx"
97 .\" ¤Ë¤è¤Ã¤ÆÁ´¤Æ¤Î·¿¤È¹½Â¤ÂΤò»²¾È¤·¤¿¤ê¡¢
98 .\" "ELF_xxx"
99 .\" ¤Ë¤è¤Ã¤Æ¥Þ¥¯¥í¤ò»²¾È¤·¤¿¤ê¤¹¤ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£
100 .\"O .\" Applications written this way can be compiled on any architecture,
101 .\"O .\" regardless of whether the host is 32-bit or 64-bit.
102 .\" ¤³¤Î¤è¤¦¤Ë¤·¤Æ½ñ¤«¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢
103 .\" ¥Û¥¹¥È¤¬ 32 ¥Ó¥Ã¥È¤« 64 ¥Ó¥Ã¥È¤«¤Ë´Ø¤ï¤é¤º¡¢
104 .\" ¤É¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¾å¤Ç¤â¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë¡£
105 .\" .PP
106 .\"O .\" Should an application need to process ELF files of an unknown
107 .\"O .\" architecture, then the application needs to explicitly use either
108 .\"O .\" "Elf32_xxx"
109 .\"O .\" or
110 .\"O .\" "Elf64_xxx"
111 .\"O .\" type and structure names.
112 .\" ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Ì¤ÃΤΥ¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î ELF ¥Õ¥¡¥¤¥ë¤ò
113 .\" ½èÍý¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¡¢¤½¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏÌÀ¼¨Åª¤Ë
114 .\" "Elf32_xxx"
115 .\" ¤Þ¤¿¤Ï
116 .\" "Elf64_xxx"
117 .\" ¤È¤¤¤¦·¿Ì¾¤È¹½Â¤ÂÎ̾¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£
118 .\"O .\" Likewise, the macros need to be identified by
119 .\"O .\" "ELF32_xxx"
120 .\"O .\" or
121 .\"O .\" "ELF64_xxx".
122 .\" Æ±Íͤˡ¢¥Þ¥¯¥í¤Ï
123 .\" "ELF32_xxx"
124 .\" ¤Þ¤¿¤Ï
125 .\" "ELF64_xxx"
126 .\" ¤Ç¼±Ê̤µ¤ì¤ëɬÍפ¬¤¢¤ë¡£
127 .\" .PP
128 .\"O This header file describes the above mentioned headers as C structures
129 .\"O and also includes structures for dynamic sections, relocation sections and
130 .\"O symbol tables.
131 ¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ï¾åµ­¤Î¥Ø¥Ã¥À¤ò C ¸À¸ì¤Î¹½Â¤ÂΤǵ­½Ò¤·¡¢
132 ¤Þ¤¿Æ°Åª¥»¥¯¥·¥ç¥ó¡¦ºÆÇÛÃÖ²Äǽ¥»¥¯¥·¥ç¥ó¡¦¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤Î¹½Â¤ÂΤâ
133 ´Þ¤ó¤Ç¤¤¤ë¡£
134 .PP
135 .\"O The following types are used for N-bit architectures (N=32,64,
136 .\"O .I ElfN
137 .\"O stands for
138 .\"O .I Elf32
139 .\"O or
140 .\"O .IR Elf64 ,
141 .\"O .I uintN_t
142 .\"O stands for
143 .\"O .I uint32_t
144 .\"O or
145 .\"O .IR uint64_t ):
146 °Ê²¼¤Î·¿¤Ï N ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç»È¤ï¤ì¤ë (N=32,64 ¤Ç¤¢¤ê
147 .I ElfN
148 ¤Ï
149 .I Elf32
150 ¤Þ¤¿¤Ï
151 .I Elf64
152 ¤òɽ¤·¡¢
153 .I uintN_t
154 ¤Ï
155 .I uint32_t
156 ¤Þ¤¿¤Ï
157 .I uint64_t
158 ¤òɽ¤¹):
159 .in +4n
160 .nf
161
162 .\"O ElfN_Addr   Unsigned program address, uintN_t
163 ElfN_Addr       Éä¹æ¤Ê¤·¤Î¥×¥í¥°¥é¥à¥¢¥É¥ì¥¹, uintN_t
164 .\"O ElfN_Off    Unsigned file offset, uintN_t
165 ElfN_Off        Éä¹æ¤Ê¤·¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È, uintN_t
166 .\"O ElfN_Section     Unsigned section index, uint16_t
167 ElfN_Section    Éä¹æ¤Ê¤·¤Î¥»¥¯¥·¥ç¥ó¥¤¥ó¥Ç¥Ã¥¯¥¹, uint16_t
168 .\"O ElfN_Versym     Unsigned version symbol information, uint16_t
169 ElfN_Versym     Éä¹æ¤Ê¤·¤Î¥Ð¡¼¥¸¥ç¥ó¥·¥ó¥Ü¥ë¾ðÊó, uint16_t
170 Elf_Byte        unsigned char
171 ElfN_Half       uint16_t
172 ElfN_Sword      int32_t
173 ElfN_Word       uint32_t
174 ElfN_Sxword     int64_t
175 ElfN_Xword      uint64_t
176 .\"O .\" Elf32_Size  Unsigned object size
177 .\" Elf32_Size  Éä¹æ¤Ê¤·¤Î¥ª¥Ö¥¸¥§¥¯¥È¥µ¥¤¥º
178 .fi
179 .in
180 .PP
181 .\"O (Note: The *BSD terminology is a bit different.
182 .\"O There
183 .\"O .I Elf64_Half
184 .\"O is
185 .\"O twice as large as
186 .\"O .IR Elf32_Half ,
187 .\"O and
188 .\"O .I Elf64Quarter
189 .\"O is used for
190 .\"O .IR uint16_t .
191 .\"O In order to avoid confusion these types are replaced by explicit ones
192 .\"O in the below.)
193 (Ãí°Õ: *BSD ¤Ç¤ÎÍѸì¤Ï¾¯¤·°Û¤Ê¤ë¡£
194 .I Elf64_Half
195 ¤Ï
196 .I Elf32_Half
197 ¤Î 2 ÇܤǤ¢¤ê¡¢
198 .I Elf64Quarter
199 ¤¬
200 .I uint16_t
201 ¤ËÍѤ¤¤é¤ì¤ë¡£
202 º®Íð¤òÈò¤±¤ë¤¿¤á¡¢°Ê²¼¤Ç¤Ï¡¢¤³¤ì¤é¤Î·¿¤Ï¥µ¥¤¥º¤¬¼«ÌÀ¤Ê·¿¤ËÃÖ¤­´¹¤¨¤Æ¤¢¤ë¡£)
203 .PP
204 .\"O All data structures that the file format defines follow the
205 .\"O "natural"
206 .\"O size and alignment guidelines for the relevant class.
207 ¤³¤Î¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤¬ÄêµÁ¤¹¤ëÁ´¤Æ¤Î¥Ç¡¼¥¿¹½Â¤ÂΤϡ¢
208 ´ØÏ¢¤¹¤ë¥¯¥é¥¹¤Î
209 "¼«Á³¤Ê"
210 ¥µ¥¤¥º¤ÈÇÛÃ֤λؿˤ˽¾¤¦¡£
211 .\"O If necessary,
212 .\"O data structures contain explicit padding to ensure 4-byte alignment
213 .\"O for 4-byte objects, to force structure sizes to a multiple of 4, etc.
214 ɬÍפʾì¹ç¡¢¥Ç¡¼¥¿¹½Â¤ÂΤǤÏÌÀ¼¨Åª¤Ê¥Ñ¥Ç¥£¥ó¥° (padding, µÍ¤á¹þ¤ß)
215 ¤¬¹Ô¤Ê¤ï¤ì¤ë¡£¤³¤ì¤Ï 4 ¥Ð¥¤¥È¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ë
216 4 ¥Ð¥¤¥ÈÇÛÃÖ¤òÊݾڤ¹¤ë¤¿¤á¤ä¡¢
217 ¹½Â¤ÂΤΥµ¥¤¥º¤ò 4 ¤ÎÇÜ¿ô¤Ë¤¹¤ë¤¿¤á¤Ê¤É¤Ç¤¢¤ë¡£
218 .PP
219 .\"O The ELF header is described by the type
220 .\"O .I Elf32_Ehdr
221 .\"O or
222 .\"O .IR Elf64_Ehdr :
223 ELF ¥Ø¥Ã¥À¤Ï·¿
224 .I Elf32_Ehdr
225 ¤Þ¤¿¤Ï
226 .I Elf64_Ehdr
227 ¤Çµ­½Ò¤µ¤ì¤ë:
228 .in +4n
229 .nf
230
231 #define EI_NIDENT 16
232
233 typedef struct {
234     unsigned char e_ident[EI_NIDENT];
235     uint16_t      e_type;
236     uint16_t      e_machine;
237     uint32_t      e_version;
238     ElfN_Addr     e_entry;
239     ElfN_Off      e_phoff;
240     ElfN_Off      e_shoff;
241     uint32_t      e_flags;
242     uint16_t      e_ehsize;
243     uint16_t      e_phentsize;
244     uint16_t      e_phnum;
245     uint16_t      e_shentsize;
246     uint16_t      e_shnum;
247     uint16_t      e_shstrndx;
248 } ElfN_Ehdr;
249 .fi
250 .in
251 .PP
252 .\"O The fields have the following meanings:
253 ¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤Î°ÕÌ£¤ò»ý¤Ä:
254 .\" .Bl -tag -width "e_phentsize"
255 .TP 12
256 .IR e_ident
257 .\"O This array of bytes specifies to interpret the file,
258 .\"O independent of the processor or the file's remaining contents.
259 ¤³¤Î¥Ð¥¤¥ÈÇÛÎó¤Ï¡¢¥×¥í¥»¥Ã¥µ¤ä¥Õ¥¡¥¤¥ë¤Î¾¤ÎÉôʬ¤Ë¤Ï°Í¸¤»¤º¤Ë¡¢
260 ¥Õ¥¡¥¤¥ë¤ò²ò¼á (interpret) ¤¹¤ë¤¿¤á¤Ë»ØÄꤵ¤ì¤ë¡£
261 .\"O Within this array everything is named by macros, which start with
262 .\"O the prefix
263 .\"O .BR EI_
264 .\"O and may contain values which start with the prefix
265 .\"O .BR ELF .
266 ¤³¤ÎÇÛÎóÆâ¤Î¤¹¤Ù¤Æ¤Î¤â¤Î¤Ï¡¢ÀÜƬ¼­
267 .BR EI_
268 ¤Ç»Ï¤Þ¤ë¥Þ¥¯¥í¤Î̾Á°¤¬ÉÕ¤­¡¢ÀÜƬ¼­
269 .BR ELF
270 ¤Ç»Ï¤Þ¤ëÃͤò»ý¤Ä¡£
271 .\"O The following macros are defined:
272 °Ê²¼¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
273 .RS 12
274 .\" .Bl -tag -width "EI_VERSION" \" EI_ABIVERSION
275 .TP 12
276 .BR EI_MAG0
277 .\"O The first byte of the magic number.
278 .\"O It must be filled with
279 .\"O .BR ELFMAG0 .
280 ¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤ÎÂè 1 ¥Ð¥¤¥È¡£
281 .BR ELFMAG0
282 ¤ÇËä¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
283 (0: 0x7f)
284 .TP
285 .BR EI_MAG1
286 .\"O The second byte of the magic number.
287 .\"O It must be filled with
288 .\"O .BR ELFMAG1 .
289 ¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤ÎÂè 2 ¥Ð¥¤¥È¡£
290 .BR ELFMAG1
291 ¤ÇËä¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
292 (1: \(aqE\(aq)
293 .TP
294 .BR EI_MAG2
295 .\"O The third byte of the magic number.
296 .\"O It must be filled with
297 .\"O .BR ELFMAG2 .
298 ¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤ÎÂè 3 ¥Ð¥¤¥È¡£
299 .BR ELFMAG2
300 ¤ÇËä¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
301 (2: \(aqL\(aq)
302 .TP
303 .BR EI_MAG3
304 .\"O The fourth byte of the magic number.
305 .\"O It must be filled with
306 .\"O .BR ELFMAG3 .
307 ¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤ÎÂè 4 ¥Ð¥¤¥È¡£
308 .BR ELFMAG3
309 ¤ÇËä¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
310 (3: \(aqF\(aq)
311 .TP
312 .BR EI_CLASS
313 .\"O The fifth byte identifies the architecture for this binary:
314 Âè 5 ¥Ð¥¤¥È¤Ï¡¢¤³¤Î¥Ð¥¤¥Ê¥ê¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¼¨¤¹:
315 .RS 12
316 .\" .Bl -tag -width "ELFCLASSNONE" -compact
317 .TP 14
318 .PD 0
319 .BR ELFCLASSNONE
320 .\"O This class is invalid.
321 ¤³¤Î¥¯¥é¥¹¤ÏÉÔÀµ¤Ç¤¢¤ë¡£
322 .TP
323 .BR ELFCLASS32
324 .\"O This defines the 32-bit architecture.
325 32 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤òÄêµÁ¤¹¤ë¡£
326 .\"O It supports machines with files
327 .\"O and virtual address spaces up to 4 Gigabytes.
328 ¥Õ¥¡¥¤¥ë¤È²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤¬ 4 ¥®¥¬¥Ð¥¤¥È¤Þ¤Ç¤Î¥Þ¥·¥ó¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£
329 .TP
330 .BR ELFCLASS64
331 .\"O This defines the 64-bit architecture.
332 64 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤òÄêµÁ¤¹¤ë¡£
333 .PD
334 .RE
335 .\" .El
336 .TP
337 .BR EI_DATA
338 .\"O The sixth byte specifies the data encoding of the processor-specific
339 .\"O data in the file.
340 .\"O Currently these encodings are supported:
341 Âè 6 ¥Ð¥¤¥È¤Ï¥Õ¥¡¥¤¥ëÆâ¤Î¥×¥í¥»¥Ã¥µ¸ÇÍ­¥Ç¡¼¥¿¤Î
342 ¥Ç¡¼¥¿¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ò»ØÄꤹ¤ë¡£
343 ¸½ºß¤Î¤È¤³¤í°Ê²¼¤Î¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë:
344 .\" .Bl -tag -width "ELFDATA2LSB" -compact
345 .RS 12
346 .TP 14
347 .PD 0
348 .BR ELFDATANONE
349 .\"O Unknown data format.
350 ÉÔÌÀ¤Ê¥Ç¡¼¥¿¥Õ¥©¡¼¥Þ¥Ã¥È¡£
351 .TP
352 .BR ELFDATA2LSB
353 .\"O Two's complement, little-endian.
354 2 ¤ÎÊä¿ô¡¢¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¡£
355 .TP
356 .BR ELFDATA2MSB
357 .\"O Two's complement, big-endian.
358 2 ¤ÎÊä¿ô¡¢¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¡£
359 .PD
360 .RE
361 .\" .El
362 .TP
363 .PD 0
364 .BR EI_VERSION
365 .\"O The version number of the ELF specification:
366 ELF »ÅÍͤΥС¼¥¸¥ç¥óÈÖ¹æ:
367 .\" .Bl -tag -width "EV_CURRENT" -compact
368 .RS 12
369 .TP 14
370 .BR EV_NONE
371 .\"O Invalid version.
372 ÉÔÀµ¤Ê¥Ð¡¼¥¸¥ç¥ó¡£
373 .TP
374 .BR EV_CURRENT
375 .\"O Current version.
376 ¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¡£
377 .PD
378 .RE
379 .\".El
380 .TP
381 .BR EI_OSABI
382 .\"O This byte identifies the operating system
383 .\"O and ABI to which the object is targeted.
384 ¤³¤Î¥Ð¥¤¥È¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¿¡¼¥²¥Ã¥È¤È¤Ê¤ë
385 ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤È ABI ¤ò¼¨¤¹¡£
386 .\"O Some fields in other ELF structures have flags
387 .\"O and values that have platform-specific meanings;
388 ¾¤Î ELF ¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Ë¤Ï¡¢
389 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Î°ÕÌ£¤ò»ý¤Ä¥Õ¥é¥°¤äÃͤò»ý¤Ä¤â¤Î¤â¤¢¤ë;
390 .\"O the interpretation of those fields is determined by the value of this byte.
391 .\"O E.g.:
392 ¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Î²ò¼á¤Ï¡¢¤³¤Î¥Ð¥¤¥È¤ÎÃͤˤè¤Ã¤Æ·èÄꤵ¤ì¤ë¡£
393 Î㤨¤Ð:
394 .\" .Bl -tag -width "ELFOSABI_STANDALONE" -compact
395 .RS 12
396 .TP 20
397 .PD 0
398 .BR ELFOSABI_NONE
399 .\"O Same as ELFOSABI_SYSV
400 ELFOSABI_SYSV ¤ÈƱ¤¸¡£
401 .\" 0
402 .TP
403 .BR ELFOSABI_SYSV
404 UNIX System V ABI.
405 .\" 0
406 .\" synonym: ELFOSABI_NONE
407 .TP
408 .BR ELFOSABI_HPUX
409 HP-UX ABI.
410 .\" 1
411 .TP
412 .BR ELFOSABI_NETBSD
413 NetBSD ABI.
414 .\" 2
415 .TP
416 .BR ELFOSABI_LINUX
417 Linux ABI.
418 .\" 3
419 .\" .TP
420 .\" .BR ELFOSABI_HURD
421 .\" Hurd ABI.
422 .\" 4
423 .\" .TP
424 .\" .BR ELFOSABI_86OPEN
425 .\" 86Open Common IA32 ABI.
426 .\" 5
427 .TP
428 .BR ELFOSABI_SOLARIS
429 Solaris ABI.
430 .\" 6
431 .\" .It Dv ELFOSABI_MONTEREY
432 .\" Monterey project ABI.
433 .\"O Now replaced by
434 .\" ELFOSABI_AIX
435 .\" 7
436 .TP
437 .BR ELFOSABI_IRIX
438 IRIX ABI.
439 .\" 8
440 .TP
441 .BR ELFOSABI_FREEBSD
442 FreeBSD ABI.
443 .\" 9
444 .TP
445 .BR ELFOSABI_TRU64
446 TRU64 UNIX ABI.
447 .\" 10
448 .\" ELFOSABI_MODESTO
449 .\" 11
450 .\" ELFOSABI_OPENBSD
451 .\" 12
452 .TP
453 .BR ELFOSABI_ARM
454 .\"O ARM architecture ABI.
455 ARM ¥¢¡¼¥­¥Æ¥¯¥Á¥ã ABI.
456 .\" 97
457 .TP
458 .BR ELFOSABI_STANDALONE
459 .\"O Stand-alone (embedded) ABI.
460 ¥¹¥¿¥ó¥É¥¢¥í¥ó (ÁȤ߹þ¤ß) ABI.
461 .\" 255
462 .\" .El
463 .PD
464 .RE
465 .TP
466 .BR EI_ABIVERSION
467 .\"O This byte identifies the version of the ABI
468 .\"O to which the object is targeted.
469 ¤³¤Î¥Ð¥¤¥È¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤¬¥¿¡¼¥²¥Ã¥È¤È¤·¤Æ¤¤¤ë ABI ¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¼¨¤¹¡£
470 .\"O This field is used to distinguish among incompatible versions of an ABI.
471 ¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¸ß´¹À­¤Î¤Ê¤¤ ABI ¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¶èÊ̤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£
472 .\"O The interpretation of this version number
473 .\"O is dependent on the ABI identified by the
474 .\"O .B EI_OSABI
475 .\"O field.
476 ¤³¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Î²ò¼á¤Ï¡¢
477 .B EI_OSABI
478 ¥Õ¥£¡¼¥ë¥É¤Ç¼±Ê̤µ¤ì¤ë ABI ¤Ë°Í¸¤¹¤ë¡£
479 .\"O Applications conforming to this specification use the value 0.
480 ¤³¤Î»ÅÍͤ˽àµò¤¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢ÃÍ 0 ¤ò»È¤¦¡£
481 .TP
482 .BR EI_PAD
483 .\"O Start of padding.
484 .\"O These bytes are reserved and set to zero.
485 .\"O Programs
486 .\"O which read them should ignore them.
487 .\"O The value for
488 .\"O .B EI_PAD
489 .\"O will change in
490 .\"O the future if currently unused bytes are given meanings.
491 ¥Ñ¥Ç¥£¥ó¥°¤Î³«»Ï¡£
492 ¤³¤ì¤é¤Î¥Ð¥¤¥È¤ÏͽÌ󤵤ì¤Æ¤ª¤ê¡¢0 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¡£
493 ¤³¤ì¤é¤òÆɤ߹þ¤à¥×¥í¥°¥é¥à¤Ï¡¢¤³¤ì¤é¤Î¥Ð¥¤¥È¤ò̵»ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£
494 ¸½ºß»È¤ï¤ì¤Æ¤¤¤Ê¤¤¥Ð¥¤¥È¤Ë°ÕÌ£¤¬Í¿¤¨¤é¤ì¤ë¾ì¹ç¡¢
495 .B EI_PAD
496 ¤ÎÃͤϾ­ÍèÊѹ¹¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
497 .TP
498 .BR EI_BRAND
499 .\"O Start of architecture identification.
500 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã ID ¤Î³«»Ï¡£
501 .TP
502 .BR EI_NIDENT
503 .\"O The size of the
504 .\"O .I e_ident
505 .\"O array.
506 .I e_ident
507 ÇÛÎó¤Î¥µ¥¤¥º¡£
508 .\" .El
509 .RE
510 .TP
511 .IR e_type
512 .\"O This member of the structure identifies the object file type:
513 ¤³¤Î¹½Â¤ÂΤΥá¥ó¥Ð¤Ï¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤ò¼¨¤¹:
514 .RS 12
515 .\" .Bl -tag -width "ET_NONE" -compact
516 .TP 12
517 .PD 0
518 .BR ET_NONE
519 .\"O An unknown type.
520 ÉÔÌÀ¤Ê¥¿¥¤¥×¡£
521 .TP
522 .BR ET_REL
523 .\"O A relocatable file.
524 ºÆÇÛÃÖ²Äǽ¥Õ¥¡¥¤¥ë¡£
525 .TP
526 .BR ET_EXEC
527 .\"O An executable file.
528 ¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¡£
529 .TP
530 .BR ET_DYN
531 .\"O A shared object.
532 ¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¡£
533 .TP
534 .BR ET_CORE
535 .\"O A core file.
536 ¥³¥¢¥Õ¥¡¥¤¥ë¡£
537 .PD
538 .RE
539 .\" .El
540 .TP
541 .IR e_machine
542 .\"O This member specifies the required architecture for an individual file.
543 .\"O E.g.:
544 ¤³¤Î¥á¥ó¥Ð¤Ï¸Ä¡¹¤Î¥Õ¥¡¥¤¥ë¤ËɬÍפȤµ¤ì¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò»ØÄꤹ¤ë¡£
545 Îã:
546 .RS 12
547 .\" .Bl -tag -width "EM_MIPS_RS4_BE" -compact
548 .TP 12
549 .PD 0
550 .BR EM_NONE
551 .\"O An unknown machine.
552 ÉÔÌÀ¤Ê¥Þ¥·¥ó¡£
553 .\" 0
554 .TP
555 .BR EM_M32
556 AT&T WE 32100.
557 .\" 1
558 .TP
559 .BR EM_SPARC
560 Sun Microsystems SPARC.
561 .\" 2
562 .TP
563 .BR EM_386
564 Intel 80386.
565 .\" 3
566 .TP
567 .BR EM_68K
568 Motorola 68000.
569 .\" 4
570 .TP
571 .BR EM_88K
572 Motorola 88000.
573 .\" 5
574 .\" .It Dv EM_486
575 .\" Intel 80486.
576 .\" 6
577 .TP
578 .BR EM_860
579 Intel 80860.
580 .\" 7
581 .TP
582 .BR EM_MIPS
583 .\"O MIPS RS3000 (big-endian only).
584 MIPS RS3000 (¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Î¤ß)¡£
585 .\" 8
586 .\" EM_S370
587 .\" 9
588 .\" .It Dv EM_MIPS_RS4_BE
589 .\"O .\" MIPS RS4000 (big-endian only). Deprecated.
590 .\" MIPS RS4000 (¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Î¤ß)¡£Èó¿ä¾©¡£
591 .\" 10
592 .\"O .\" EM_MIPS_RS3_LE (MIPS R3000 little-endian)
593 .\" EM_MIPS_RS3_LE (MIPS R3000 ¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó)¡£
594 .\" 10
595 .TP
596 .BR EM_PARISC
597 HP/PA.
598 .\" 15
599 .TP
600 .BR EM_SPARC32PLUS
601 .\"O SPARC with enhanced instruction set.
602 ³Èĥ̿Î᥻¥Ã¥ÈÉÕ¤­ SPARC¡£
603 .\" 18
604 .TP
605 .BR EM_PPC
606 PowerPC.
607 .\" 20
608 .TP
609 .BR EM_PPC64
610 PowerPC 64-bit.
611 .\" 21
612 .TP
613 .BR EM_S390
614 IBM S/390
615 .\" 22
616 .TP
617 .BR EM_ARM
618 Advanced RISC Machines
619 .\" 40
620 .TP
621 .BR EM_SH
622 Renesas SuperH
623 .\" 42
624 .TP
625 .BR EM_SPARCV9
626 SPARC v9 64-bit.
627 .\" 43
628 .TP
629 .BR EM_IA_64
630 Intel Itanium
631 .\" 50
632 .TP
633 .BR EM_X86_64
634 AMD x86-64
635 .\" 62
636 .TP
637 .BR EM_VAX
638 DEC Vax.
639 .\" 75
640 .\" EM_CRIS
641 .\" 76
642 .\" .It Dv EM_ALPHA
643 .\" Compaq [DEC] Alpha.
644 .\" .It Dv EM_ALPHA_EXP
645 .\"O .\" Compaq [DEC] Alpha with enhanced instruction set.
646 .\" ³Èĥ̿Î᥻¥Ã¥ÈÉÕ¤­ Compaq [DEC] Alpha¡£
647 .PD
648 .RE
649 .\" .El
650 .TP
651 .IR e_version
652 .\"O This member identifies the file version:
653 ¤³¤Î¥á¥ó¥Ð¤Ï¥Õ¥¡¥¤¥ë¥Ð¡¼¥¸¥ç¥ó¤ò¼¨¤¹:
654 .\" .Bl -tag -width "EV_CURRENT" -compact
655 .RS 12
656 .TP 12
657 .PD 0
658 .BR EV_NONE
659 .\"O Invalid version.
660 ÉÔÀµ¤Ê¥Ð¡¼¥¸¥ç¥ó¡£
661 .TP
662 .BR EV_CURRENT
663 .\"O Current version.
664 ¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¡£
665 .\" .El
666 .PD
667 .RE
668 .TP
669 .IR e_entry
670 .\"O This member gives the virtual address to which the system first transfers
671 .\"O control, thus starting the process.
672 ¤³¤Î¥á¥ó¥Ð¤Ï¡¢¥·¥¹¥Æ¥à¤¬ºÇ½é¤ËÀ©¸æ¤òÅϤ¹¡¢
673 ¤Ä¤Þ¤ê¥×¥í¥»¥¹¤ò³«»Ï¤¹¤ë²¾ÁÛ¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¡£
674 .\"O If the file has no associated entry
675 .\"O point, this member holds zero.
676 ¥Õ¥¡¥¤¥ë¤Ë¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤¬´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢
677 ¤³¤Î¥á¥ó¥Ð¤Ë¤Ï 0 ¤¬Æþ¤ë¡£
678 .TP
679 .IR e_phoff
680 .\"O This member holds the program header table's file offset in bytes.
681 .\"O If
682 .\"O the file has no program header table, this member holds zero.
683 ¤³¤Î¥á¥ó¥Ð¤Ï¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î
684 ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£
685 ¥Õ¥¡¥¤¥ë¤Ë¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤¬¤Ê¤¤¾ì¹ç¡¢
686 ¤³¤Î¥á¥ó¥Ð¤Ë¤Ï 0 ¤¬Æþ¤ë¡£
687 .TP
688 .IR e_shoff
689 .\"O This member holds the section header table's file offset in bytes.
690 .\"O If the
691 .\"O file has no section header table this member holds zero.
692 ¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î
693 ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£
694 ¥Õ¥¡¥¤¥ë¤Ë¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤¬¤Ê¤¤¾ì¹ç¡¢
695 ¤³¤Î¥á¥ó¥Ð¤Ë¤Ï 0 ¤¬Æþ¤ë¡£
696 .TP
697 .IR e_flags
698 .\"O This member holds processor-specific flags associated with the file.
699 .\"O Flag names take the form EF_`machine_flag'.
700 .\"O Currently no flags have been defined.
701 ¤³¤Î¥á¥ó¥Ð¤Ï¥Õ¥¡¥¤¥ë¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î¥Õ¥é¥°¤òÊÝ»ý¤¹¤ë¡£
702 ¥Õ¥é¥°¤Î̾Á°¤Ï EF_`machine_flag' ¤È¤¤¤¦·Á¼°¤Ç¤¢¤ë¡£
703 ¸½ºß¤Î¤È¤³¤í¥Õ¥é¥°¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
704 .TP
705 .IR e_ehsize
706 .\"O This member holds the ELF header's size in bytes.
707 ¤³¤Î¥á¥ó¥Ð¤Ï ELF ¥Ø¥Ã¥À¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£
708 .TP
709 .IR e_phentsize
710 .\"O This member holds the size in bytes of one entry in the file's program header
711 .\"O table; all entries are the same size.
712 ¤³¤Î¥á¥ó¥Ð¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î
713 1 ¥¨¥ó¥È¥ê¤¢¤¿¤ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë;
714 Á´¤Æ¤Î¥¨¥ó¥È¥ê¤ÏƱ¤¸¥µ¥¤¥º¤Ç¤¢¤ë¡£
715 .TP
716 .IR e_phnum
717 .\"O This member holds the number of entries in the program header
718 .\"O table.
719 ¤³¤Î¥á¥ó¥Ð¤Ï¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ë¤¢¤ë¥¨¥ó¥È¥ê¤Î¿ô¤òÊÝ»ý¤¹¤ë¡£
720 .\"O Thus the product of
721 .\"O .IR e_phentsize
722 .\"O and
723 .\"O .IR e_phnum
724 .\"O gives the table's size
725 .\"O in bytes.
726 ¤è¤Ã¤Æ
727 .IR e_phentsize
728 ¤È
729 .IR e_phnum
730 ¤ÎÀѤ¬¥Æ¡¼¥Ö¥ë¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤Ë¤Ê¤ë¡£
731 .\"O If a file has no program header,
732 .\"O .IR e_phnum
733 .\"O holds the value zero.
734 ¥Õ¥¡¥¤¥ë¤Ë¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤¬¤Ê¤¤¾ì¹ç¡¢
735 .IR e_phnum
736 ¤ÏÃÍ 0 ¤òÊÝ»ý¤¹¤ë¡£
737 .TP
738 .IR e_shentsize
739 .\"O This member holds a sections header's size in bytes.
740 .\"O A section header is one
741 .\"O entry in the section header table; all entries are the same size.
742 ¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£
743 ¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤Ï¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î 1 ¤Ä¤Î¥¨¥ó¥È¥ê¤Ç¤¢¤ë;
744 Á´¤Æ¤Î¥¨¥ó¥È¥ê¤ÏƱ¤¸¥µ¥¤¥º¤Ç¤¢¤ë¡£
745 .TP
746 .IR e_shnum
747 .\"O This member holds the number of entries in the section header table.
748 ¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ë¤¢¤ë¥¨¥ó¥È¥ê¤Î¿ô¤òÊÝ»ý¤¹¤ë¡£
749 .\"O Thus
750 .\"O the product of
751 .\"O .IR e_shentsize
752 .\"O and
753 .\"O .IR e_shnum
754 .\"O gives the section header table's size in bytes.
755 ¤è¤Ã¤Æ
756 .IR e_shentsize
757 ¤È
758 .IR e_shnum
759 ¤ÎÀѤϥ»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤Ë¤Ê¤ë¡£
760 .\"O If a file has no section
761 .\"O header table,
762 .\"O .IR e_shnum
763 .\"O holds the value of zero.
764 ¥Õ¥¡¥¤¥ë¤Ë¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤¬¤Ê¤¤¾ì¹ç¡¢
765 .IR e_shnum
766 ¤ÏÃÍ 0 ¤òÊÝ»ý¤¹¤ë¡£
767 .TP
768 .IR e_shstrndx
769 .\"O This member holds the section header table index of the entry associated
770 .\"O with the section name string table.
771 ¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó̾ʸ»úÎó¥Æ¡¼¥Ö¥ë¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥¨¥ó¥È¥ê¤Î
772 ¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÝ»ý¤¹¤ë¡£
773 .\"O If the file has no section name string
774 .\"O table, this member holds the value
775 .\"O .BR SHN_UNDEF .
776 ¥Õ¥¡¥¤¥ë¤Ë¥»¥¯¥·¥ç¥ó̾ʸ»úÎó¥Æ¡¼¥Ö¥ë¤¬¤Ê¤¤¾ì¹ç¡¢
777 ¤³¤Î¥á¥ó¥Ð¤ÏÃÍ
778 .BR SHN_UNDEF
779 ¤òÊÝ»ý¤¹¤ë¡£
780 .BR SHN_UNDEF .
781 .RS 12
782 .\" .Bl -tag -width "SHN_LORESERVE"
783 .TP 14
784 .BR SHN_UNDEF
785 .\"O This value marks an undefined, missing, irrelevant, or otherwise meaningless
786 .\"O section reference.
787 ¤³¤ÎÃͤÏ̤ÄêµÁ¡¦Â¸ºß¤·¤Ê¤¤¡¦Ìµ´Ø·¸¤½¤Î¾¡¢
788 °ÕÌ£¤Î¤Ê¤¤¥»¥¯¥·¥ç¥ó¤Î»²¾È¤Ç¤¢¤ë¤³¤È¤òɽ¤¹¡£
789 .\"O For example, a symbol
790 .\"O "defined"
791 .\"O relative to section number
792 .\"O .BR SHN_UNDEF
793 .\"O is an undefined symbol.
794 Î㤨¤Ð¡¢¥»¥¯¥·¥ç¥óÈÖ¹æ
795 .BR SHN_UNDEF
796 ¤Ë´ØÏ¢¤Å¤±¤Æ¡ÖÄêµÁ¡×¤µ¤ì¤¿¥·¥ó¥Ü¥ë¤Ï¡¢¡Ö̤ÄêµÁ¡×¤Ê¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¡£
797 .\"nakano ¤³¤³¤Î "defined" ¤ÏÄ̾ï¤Îʸ¤Î°ìÉô¤Ç¤Ï¡©
798 .TP
799 .BR SHN_LORESERVE
800 .\"O This value specifies the lower bound of the range of reserved indices.
801 ¤³¤ÎÃͤÏͽÌóºÑ¤ß¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ÈϰϤβ¼¸Â¤ò»ØÄꤹ¤ë¡£
802 .TP
803 .BR SHN_LOPROC
804 .\"O Values greater than or equal to
805 .\"O .BR SHN_HIPROC
806 .\"O are reserved for processor-specific semantics.
807 ¤³¤ÎÃͰʾå¤Ç
808 .BR SHN_HIPROC
809 °Ê²¼¤ÎÃͤϡ¢¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£
810 .TP
811 .BR SHN_HIPROC
812 .\"O Values less than or equal to
813 .\"O .BR SHN_LOPROC
814 .\"O are reserved for processor-specific semantics.
815 ¤³¤ÎÃͰʲ¼¤Ç
816 .BR SHN_LOPROC
817 °Ê¾å¤ÎÃͤϡ¢¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£
818 .\"sato: SHN_{HI,LO}PROC ¤ÎÀâÌÀ¤Ï¡¢¸¶Ê¸¤Î´Ö°ã¤¤¤é¤·¤¤¡£
819 .TP
820 .BR SHN_ABS
821 .\"O This value specifies absolute values for the corresponding reference.
822 .\"O For
823 .\"O example, symbols defined relative to section number
824 .\"O .BR SHN_ABS
825 .\"O have absolute values and are not affected by relocation.
826 ¤³¤ÎÃͤÏÂбþ¤¹¤ë»²¾È¤ÎÀäÂÐÃͤò»ØÄꤹ¤ë¡£
827 Î㤨¤Ð¡¢¥»¥¯¥·¥ç¥óÈÖ¹æ
828 .BR SHN_ABS
829 ¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥·¥ó¥Ü¥ë¤ÏÀäÂÐÃͤòÊÝ»ý¤·¡¢ºÆÇÛÃ֤˱ƶÁ¤µ¤ì¤Ê¤¤¡£
830 .TP
831 .BR SHN_COMMON
832 .\"O Symbols defined relative to this section are common symbols, such as Fortran
833 .\"O COMMON or unallocated C external variables.
834 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë´ØÏ¢¤·¤ÆÄêµÁ¤µ¤ì¤¿¥·¥ó¥Ü¥ë¤Ï¡¢
835 Fortran ¤Î COMMON ¤ä C ¤Î̤³ä¤êÅö¤Æ external ÊÑ¿ô¤Î¤è¤¦¤Ê¡¢
836 ¶¦ÄÌ¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¡£
837 .TP
838 .BR SHN_HIRESERVE
839 .\"O This value specifies the upper bound of the range of reserved
840 .\"O indices between
841 .\"O .BR SHN_LORESERVE
842 .\"O and
843 .\"O .BR SHN_HIRESERVE ,
844 .\"O inclusive; the values do
845 .\"O not reference the section header table.
846 ¤³¤ÎÃͤÏͽÌ󤵤줿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎÈϰϤξå¸Â¤ò»ØÄꤹ¤ë¡£
847 .BR SHN_LORESERVE
848 ¤È
849 .BR SHN_HIRESERVE
850 ¤Ï´Þ¤Þ¤ì¤ë¡£
851 ¤³¤ÎÃͤϥ»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤ò»²¾È¤·¤Ê¤¤¡£
852 .\"O That is, the section header table
853 .\"O does
854 .\"O .I not
855 .\"O contain entries for the reserved indices.
856 ¤Ä¤Þ¤ê¡¢¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ï
857 ͽÌ󤵤줿¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î¥¨¥ó¥È¥ê¤ò
858 .I ´Þ¤Þ¤Ê¤¤ ¡£
859 .RE
860 .\" .El
861 .\" .El
862 .PP
863 .\"O An executable or shared object file's program header table is an array of
864 .\"O structures, each describing a segment or other information the system needs
865 .\"O to prepare the program for execution.
866 ¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ï¡¢
867 ¥·¥¹¥Æ¥à¤Ë¤è¤ë¥×¥í¥°¥é¥à¼Â¹Ô½àÈ÷¤ËɬÍפʡ¢
868 ¥»¥°¥á¥ó¥ÈÅù¤Î¾ðÊó¤òµ­½Ò¤¹¤ë¹½Â¤ÂΤÎÇÛÎó¤Ç¤¢¤ë¡£
869 .\"O An object file
870 .\"O .IR segment
871 .\"O contains one or more
872 .\"O .IR sections .
873 ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î
874 .IR ¥»¥°¥á¥ó¥È
875 ¤Ë¤Ï 1 ¤Ä°Ê¾å¤Î
876 .IR ¥»¥¯¥·¥ç¥ó
877 ¤¬´Þ¤Þ¤ì¤ë¡£
878 .\"O Program headers are meaningful only for executable and shared object files.
879 ¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Ï¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤È¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ç¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£
880 .\"O A file specifies its own program header size with the ELF header's
881 .\"O .IR e_phentsize
882 .\"O and
883 .\"O .IR e_phnum
884 .\"O members.
885 ¥Õ¥¡¥¤¥ë¤Ï¼«¿È¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥µ¥¤¥º¤ò ELF ¥Ø¥Ã¥À¤Î
886 .IR e_phentsize
887 ¥á¥ó¥Ð¤È
888 .IR e_phnum
889 ¥á¥ó¥Ð¤Ç»ØÄꤹ¤ë¡£
890 .\"O The ELF program header is described by the type
891 .\"O .I Elf32_Phdr
892 .\"O or
893 .\"O .I Elf64_Phdr
894 .\"O depending on the architecture:
895 ELF ¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Ï
896 .I Elf32_Phdr
897 ·¿¤Þ¤¿¤Ï
898 .I Elf64_Phdr
899 ·¿¤Çµ­½Ò¤µ¤ì¤ë
900 (¤É¤Á¤é¤Ë¤Ê¤ë¤«¤Ï¥¢¡¼¥­¥Æ¥¯¥Á¥ã°Í¸):
901 .in +4n
902 .nf
903
904 typedef struct {
905     uint32_t   p_type;
906     Elf32_Off  p_offset;
907     Elf32_Addr p_vaddr;
908     Elf32_Addr p_paddr;
909     uint32_t   p_filesz;
910     uint32_t   p_memsz;
911     uint32_t   p_flags;
912     uint32_t   p_align;
913 } Elf32_Phdr;
914 .fi
915 .in
916 .in +4n
917 .nf
918
919 typedef struct {
920     uint32_t   p_type;
921     uint32_t   p_flags;
922     Elf64_Off  p_offset;
923     Elf64_Addr p_vaddr;
924     Elf64_Addr p_paddr;
925     uint64_t   p_filesz;
926     uint64_t   p_memsz;
927     uint64_t   p_align;
928 } Elf64_Phdr;
929 .fi
930 .in
931 .PP
932 .\"O The main difference between the 32-bit and the 64-bit program header lies
933 .\"O in the location of the
934 .\"O .IR p_flags
935 .\"O member in the total struct.
936 32 ¥Ó¥Ã¥È¤È 64 ¥Ó¥Ã¥È¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Î¼ç¤Ê°ã¤¤¤Ï¡¢¹½Â¤ÂΤˤª¤±¤ë
937 .IR p_flags
938 ¥á¥ó¥Ð¤Î°ÌÃ֤ˤ¢¤ë¡£
939 .\" .Bl -tag -width "p_offset"
940 .TP 12
941 .IR p_type
942 .\"O This member of the Phdr struct tells what kind of segment this array
943 .\"O element describes or how to interpret the array element's information.
944 Phdr ¹½Â¤ÂΤΤ³¤Î¥á¥ó¥Ð¤Ï¡¢
945 ¤³¤ÎÇÛÎóÍ×ÁǤ¬¤É¤Î¤è¤¦¤Ê¼ïÎà¤Î¥»¥°¥á¥ó¥È¤òµ­½Ò¤·¤Æ¤¤¤ë¤«¡¢
946 ¤Þ¤¿¤Ï¤³¤ÎÇÛÎóÍ×ÁǤξðÊó¤ò¤É¤Î¤è¤¦¤Ë²ò¼á¤¹¤ë¤«¡¢¤òɽ¤¹¡£
947 .\" .Bl -tag -width "PT_DYNAMIC"
948 .RS 12
949 .TP 12
950 .BR PT_NULL
951 .\"O The array element is unused and the other members' values are undefined.
952 .\"O This lets the program header have ignored entries.
953 ¤³¤ÎÇÛÎóÍ×ÁǤϻÈÍѤµ¤ì¤Æ¤ª¤é¤º¡¢¤½¤Î¾¤Î¥á¥ó¥Ð¤ÎÃͤÏ̤ÄêµÁ¤Ç¤¢¤ë¡£
954 ¤³¤ì¤Ë¤è¤ê¡¢¤³¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Î¥¨¥ó¥È¥ê¤Ï̵»ë¤µ¤ì¤ë¡£
955 .TP
956 .BR PT_LOAD
957 .\"O The array element specifies a loadable segment, described by
958 .\"O .IR p_filesz
959 .\"O and
960 .\"O .IR p_memsz .
961 ¤³¤ÎÇÛÎóÍ×ÁǤÏ
962 .IR p_filesz
963 ¤È
964 .IR p_memsz
965 ¤Çµ­½Ò¤µ¤ì¤ë¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤ò»ØÄꤹ¤ë¡£
966 .\"O The bytes from the file are mapped to the beginning of the memory
967 .\"O segment.
968 ¤³¤Î¥Õ¥¡¥¤¥ë¤«¤é¤Î¥Ð¥¤¥È¥Ç¡¼¥¿¤¬¡¢¤³¤Î¥á¥â¥ê¥»¥°¥á¥ó¥È¤ÎÀèƬ¤«¤é¥Þ¥Ã¥×¤µ¤ì¤ë¡£
969 .\"Osato:
970 .\"Osato: ¤³¤ÎÌõ¤Ï¼«¿È¤Ê¤·¡£¾¯¤·°ÕÌõµ¤Ì£¤«¤â¤·¤ì¤Ê¤¤¡£
971 .\"Osato:
972 .\"O If the segment's memory size
973 .\"O .IR Sy p_memsz
974 .\"O is larger than the file size
975 .\"O .IR Sy p_filesz ,
976 .\"O the
977 .\"O "extra"
978 .\"O bytes are defined to hold the value 0 and to follow the segment's
979 .\"O initialized area.
980 ¥»¥°¥á¥ó¥È¤Î¥á¥â¥ê¥µ¥¤¥º
981 .IR Sy p_memsz
982 ¤¬¥Õ¥¡¥¤¥ë¥µ¥¤¥º
983 .IR Sy p_filesz
984 ¤è¤êÂ礭¤¤¾ì¹ç¡¢
985 ¡Ö;¤Ã¤¿¡×¥Ð¥¤¥È¤ÏÃÍ 0 ¤È¤Ê¤ê¡¢
986 ¤½¤Î¥»¥°¥á¥ó¥È½é´ü²½¥Ç¡¼¥¿¤Î¸å¤í¤ËÃÖ¤«¤ì¤ë¤ÈÄê¤á¤é¤ì¤Æ¤¤¤ë¡£
987 .\"O The file size may not be larger than the memory size.
988 ¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ï¥á¥â¥ê¥µ¥¤¥º¤è¤êÂ礭¤¯¤Æ¤Ï¤¤¤±¤Ê¤¤¡£
989 .\"O Loadable segment entries in the program header table appear in ascending
990 .\"O order, sorted on the
991 .\"O .IR p_vaddr
992 .\"O member.
993 ¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Î¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¥¨¥ó¥È¥ê¤Ï¡¢
994 .IR p_vaddr
995 ¥á¥ó¥Ð¤Î¾º½ç¤Ë¥½¡¼¥È¤µ¤ì¤Æ½Ð¸½¤¹¤ë¡£
996 .TP
997 .BR PT_DYNAMIC
998 .\"O The array element specifies dynamic linking information.
999 ¤³¤ÎÇÛÎóÍ×ÁǤÏưŪ¥ê¥ó¥¯¾ðÊó¤ò»ØÄꤹ¤ë¡£
1000 .TP
1001 .BR PT_INTERP
1002 .\"O The array element specifies the location and size of a null-terminated
1003 .\"O pathname to invoke as an interpreter.
1004 ¤³¤ÎÇÛÎóÍ×ÁǤϡ¢¥¤¥ó¥¿¥×¥ê¥¿¤È¤·¤Æµ¯Æ°¤µ¤ì¤ë¥Ñ¥¹Ì¾ (NULL Ê¸»ú½ªÃ¼)
1005 ¤Î°ÌÃ֤ȥµ¥¤¥º¤ò»ØÄꤹ¤ë¡£
1006 .\"O This segment type is meaningful
1007 .\"O only for executable files (though it may occur for shared objects).
1008 ¤³¤Î¥»¥°¥á¥ó¥È·¿¤Ï (¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤â¤¢¤ë¤«¤âÃΤì¤Ê¤¤¤¬)
1009 ¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Ç¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£
1010 .\"O However it may not occur more than once in a file.
1011 ¤¿¤À¤·¡¢¤³¤Î¥»¥°¥á¥ó¥È·¿¤Ï 1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤Ë 2 ²ó°Ê¾å½Ð¸½¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
1012 .\"O If it is present, it must precede any loadable segment entry.
1013 ¤â¤·Â¸ºß¤¹¤ë¾ì¹ç¡¢¤³¤Î¥»¥°¥á¥ó¥È·¿¤Ï
1014 Á´¤Æ¤Î¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¥¨¥ó¥È¥ê¤è¤êÁ°¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
1015 .TP
1016 .BR PT_NOTE
1017 .\"O The array element specifies the location and size for auxiliary information.
1018 ¤³¤ÎÇÛÎóÍ×ÁǤÏÊä­¾ðÊó (auxiliary information) ¤Î°ÌÃ֤ȥµ¥¤¥º¤ò»ØÄꤹ¤ë¡£
1019 .TP
1020 .BR PT_SHLIB
1021 .\"O This segment type is reserved but has unspecified semantics.
1022 .\"O Programs that
1023 .\"O contain an array element of this type do not conform to the ABI.
1024 ¤³¤Î¥»¥°¥á¥ó¥È·¿¤ÏͽÌ󤵤ì¤Æ¤¤¤ë¤¬¡¢°ÕÌ£¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£
1025 ¤³¤Î·¿¤ÎÇÛÎóÍ×ÁǤòÊÝ»ý¤¹¤ë¥×¥í¥°¥é¥à¤Ï ABI ¤Ë½àµò¤·¤Ê¤¤¡£
1026 .TP
1027 .BR PT_PHDR
1028 .\"O The array element, if present, specifies the location and size of the program
1029 .\"O header table itself, both in the file and in the memory image of the program.
1030 ¤³¤ÎÇÛÎóÍ×ÁǤϡ¢¤â¤·Â¸ºß¤·¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢
1031 ¥Õ¥¡¥¤¥ë¤ª¤è¤Ó¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸ÁÐÊý¤Ë¤ª¤±¤ë
1032 ¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¼«¿È¤Î°ÌÃ֤ȥµ¥¤¥º¤ò»ØÄꤹ¤ë¡£
1033 .\"O This segment type may not occur more than once in a file.
1034 ¤³¤Î¥»¥°¥á¥ó¥È·¿¤Ï 1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤Ë 2 ²ó°Ê¾å½Ð¸½¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
1035 .\"O Moreover, it may
1036 .\"O only occur if the program header table is part of the memory image of the
1037 .\"O program.
1038 ¤µ¤é¤Ë¡¢¤³¤Î¥»¥°¥á¥ó¥È·¿¤¬Â¸ºß¤·¤Æ¤â¤è¤¤¤Î¤Ï¡¢¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤¬
1039 ¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤Î°ìÉô¤Ç¤¢¤ë¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£
1040 .\"O If it is present, it must precede any loadable segment entry.
1041 ¤â¤·Â¸ºß¤¹¤ë¾ì¹ç¡¢¤³¤ì¤ÏÁ´¤Æ¤Î¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¥¨¥ó¥È¥ê¤è¤ê
1042 Á°¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
1043 .TP
1044 .BR PT_LOPROC
1045 .\"O Values greater than or equal to
1046 .\"O .BR PT_HIPROC
1047 .\"O are reserved for processor-specific semantics.
1048 ¤³¤ÎÃͰʾå¤Ç
1049 .BR PT_HIPROC
1050 °Ê²¼¤ÎÃÍ¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£
1051 .TP
1052 .BR PT_HIPROC
1053 .\"O Values less than or equal to
1054 .\"O .BR PT_LOPROC
1055 .\"O are reserved for processor-specific semantics.
1056 ¤³¤ÎÃͰʲ¼¤Ç
1057 .BR PT_LOPROC
1058 °Ê¾å¤ÎÃÍ¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£
1059 .\"sato: PT_{HI,LO}PROC ¤ÎÀâÌÀ¤Ï¡¢¸¶Ê¸¤Î´Ö°ã¤¤¤é¤·¤¤¡£
1060 .TP
1061 .BR PT_GNU_STACK
1062 .\"O GNU extension which is used by the Linux kernel to control the state of the
1063 .\"O stack via the flags set in the
1064 .\"O .IR p_flags
1065 .\"O member.
1066 GNU ³ÈÄ¥¤Ç¤¢¤ê¡¢Linux ¥«¡¼¥Í¥ë¤¬
1067 .I p_flags
1068 ¤Î¥á¥ó¥Ð¡¼¤Ë¥»¥Ã¥È¤µ¤ì¤¿¥Õ¥é¥°·Ðͳ¤Ç¥¹¥¿¥Ã¥¯¤Î¾õÂÖ¤òÀ©¸æ¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£
1069 .\" .El
1070 .RE
1071 .TP
1072 .IR p_offset
1073 .\"O This member holds the offset from the beginning of the file at which
1074 .\"O the first byte of the segment resides.
1075 ¤³¤Î¥á¥ó¥Ð¤Ï¡¢¥»¥°¥á¥ó¥È¤ÎÀèƬ¥Ð¥¤¥È¤¬¤¢¤ë
1076 (¥Õ¥¡¥¤¥ëÀèƬ¤«¤é¤Î) ¥ª¥Õ¥»¥Ã¥È¤òÊÝ»ý¤¹¤ë¡£
1077 .TP
1078 .IR p_vaddr
1079 .\"O This member holds the virtual address at which the first byte of the
1080 .\"O segment resides in memory.
1081 ¤³¤Î¥á¥ó¥Ð¤Ï¡¢¥»¥°¥á¥ó¥È¤ÎÀèƬ¥Ð¥¤¥È¤¬¤¢¤ë
1082 ¥á¥â¥ê¤Î²¾ÁÛ¥¢¥É¥ì¥¹¤òÊÝ»ý¤¹¤ë¡£
1083 .TP
1084 .IR p_paddr
1085 .\"O On systems for which physical addressing is relevant, this member is
1086 .\"O reserved for the segment's physical address.
1087 ʪÍý¥¢¥É¥ì¥¹¤¬°ÕÌ£¤ò¤â¤Ä¥·¥¹¥Æ¥à¤Ç¤Ï¡¢
1088 ¤³¤Î¥á¥ó¥Ð¤Ï¥»¥°¥á¥ó¥È¤ÎʪÍý¥¢¥É¥ì¥¹¤È¤·¤ÆͽÌ󤵤ì¤Æ¤¤¤ë¡£
1089 .\"O Under
1090 .\"O BSD
1091 .\"O this member is
1092 .\"O not used and must be zero.
1093 BSD ¤Ç¤Ï¤³¤Î¥á¥ó¥Ð¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£0 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
1094 .TP
1095 .IR p_filesz
1096 .\"O This member holds the number of bytes in the file image of the segment.
1097 .\"O It may be zero.
1098 ¤³¤Î¥á¥ó¥Ð¤Ï¥»¥°¥á¥ó¥È¤Î¥Õ¥¡¥¤¥ë¥¤¥á¡¼¥¸¤Î¥Ð¥¤¥È¿ô¤òÊÝ»ý¤¹¤ë¡£
1099 ¤³¤ì¤Ï 0 ¤Ç¤â¤è¤¤¡£
1100 .TP
1101 .IR p_memsz
1102 .\"O This member holds the number of bytes in the memory image of the segment.
1103 .\"O It may be zero.
1104 ¤³¤Î¥á¥ó¥Ð¤Ï¥»¥°¥á¥ó¥È¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤Î¥Ð¥¤¥È¿ô¤òÊÝ»ý¤¹¤ë¡£
1105 ¤³¤ì¤Ï 0 ¤Ç¤â¤è¤¤¡£
1106 .TP
1107 .IR p_flags
1108 .\"O This member holds a bitmask of flags relevant to the segment:
1109 ¤³¤Î¥á¥ó¥Ð¤Ï¥»¥°¥á¥ó¥È¤Ë´ØÏ¢¤¹¤ë¥Õ¥é¥°¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¤òÊÝ»ý¤¹¤ë:
1110 .\" .Bl -tag -width "PF_X" -compact
1111 .RS 12
1112 .TP
1113 .PD 0
1114 .BR PF_X
1115 .\"O An executable segment.
1116 ¼Â¹Ô²Äǽ¥»¥°¥á¥ó¥È¡£
1117 .TP
1118 .BR PF_W
1119 .\"O A writable segment.
1120 ½ñ¤­¹þ¤ß²Äǽ¥»¥°¥á¥ó¥È.
1121 .TP
1122 .BR PF_R
1123 .\"O A readable segment.
1124 Æɤ߹þ¤ß²Äǽ¥»¥°¥á¥ó¥È¡£
1125 .PD
1126 .RE
1127 .\" .El
1128 .IP
1129 .\"O A text segment commonly has the flags
1130 .\"O .BR PF_X
1131 .\"O and
1132 .\"O .BR PF_R .
1133 ¥Æ¥­¥¹¥È¥»¥°¥á¥ó¥È¤Ï°ìÈ̤˥ե饰
1134 .BR PF_X
1135 ¤È
1136 .BR PF_R
1137 ¤ò»ý¤Ä¡£
1138 .\"O A data segment commonly has
1139 .\"O .BR PF_X ,
1140 .\"O .BR PF_W
1141 .\"O and
1142 .\"O .BR PF_R .
1143 ¥Ç¡¼¥¿¥»¥°¥á¥ó¥È¤Ï°ìÈ̤Ë
1144 .BR PF_X ,
1145 .BR PF_W ,
1146 .BR PF_R
1147 ¤ò»ý¤Ä¡£
1148 .TP
1149 .IR p_align
1150 .\"O This member holds the value to which the segments are aligned in memory
1151 .\"O and in the file.
1152 ¤³¤Î¥á¥ó¥Ð¤Ï¡¢¥»¥°¥á¥ó¥È¤¬¥á¥â¥ê¤ª¤è¤Ó¥Õ¥¡¥¤¥ë¤Ë¤ª¤¤¤ÆÇÛÃÖ (align)
1153 ¤µ¤ì¤ëÃͤòÊÝ»ý¤¹¤ë¡£
1154 .\"nakano align ¤ÎÄêÌõ¤Ï¤¢¤ê¤Þ¤·¤¿¤Ã¤±¡©
1155 .\"O Loadable process segments must have congruent values for
1156 .\"O .IR p_vaddr
1157 .\"O and
1158 .\"O .IR p_offset ,
1159 .\"O modulo the page size.
1160 ¥í¡¼¥É²Äǽ¥×¥í¥»¥¹¥»¥°¥á¥ó¥È¤Ï¡¢¥Ú¡¼¥¸¥µ¥¤¥º¤òË¡¤È¤·¤Æ
1161 .IR p_vaddr
1162 ¤È
1163 .IR p_offset
1164 ¤È¹çƱ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤
1165 (ÌõÃí:¡Öp_vaddr mod ¥Ú¡¼¥¸¥µ¥¤¥º = p_offset mod ¥Ú¡¼¥¸¥µ¥¤¥º¡×
1166 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£¡£
1167 .\"nakano ¤³¤¦¤¤¤¦¾ì¹ç¤ÏÉáÄÌ congruent "with" ¤À¤±¤É¡Ä
1168 .\"O Values of zero and one mean no alignment is required.
1169 0 ¤È 1 ¤È¤¤¤¦ÃͤÏÇÛÃÖ¤¬É¬Íפʤ¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
1170 .\"O Otherwise,
1171 .\"O .IR p_align
1172 .\"O should be a positive, integral power of two, and
1173 .\"O .IR p_vaddr
1174 .\"O should equal
1175 .\"O .IR p_offset ,
1176 .\"O modulo
1177 .\"O .IR p_align .
1178 ¤½¤ì°Ê³°¤Î¾ì¹ç¡¢
1179 .IR p_align
1180 ¤ÏÀµ¤Ç 2 ¤ÎÀ°¿ô¾è¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢
1181 .IR p_vaddr
1182 ¤Ï
1183 .IR p_align
1184 ¤òË¡¤È¤·¤Æ
1185 .IR p_offset
1186 ¤È¹çƱ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤
1187 (ÌõÃí:¡Öp_vaddr mod p_align = p_offset mod p_align¡×¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£
1188 .\" .El
1189 .PP
1190 .\"O A file's section header table lets one locate all the file's sections.
1191 ¥Õ¥¡¥¤¥ë¤Î¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ë¤Ï¡¢
1192 Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥»¥¯¥·¥ç¥ó¤Î¾ì½ê¤¬µ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£
1193 .\"Osato:
1194 .\"Osato: let ¤¬Ìõ¤·¤Å¤é¤¤¤Î¤Ç°ÕÌõµ¤Ì£¤Ë¤¹¤ë¡£
1195 .\"Osato:
1196 .\"O The
1197 .\"O section header table is an array of
1198 .\"O .I Elf32_Shdr
1199 .\"O or
1200 .\"O .I Elf64_Shdr
1201 .\"O structures.
1202 ¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ï
1203 .I Elf32_Shdr
1204 ¹½Â¤ÂΤޤ¿¤Ï
1205 .I Elf64_Shdr
1206 ¹½Â¤ÂΤÎÇÛÎó¤Ç¤¢¤ë¡£
1207 .\"O The
1208 .\"O ELF header's
1209 .\"O .IR e_shoff
1210 .\"O member gives the byte offset from the beginning of the file to the section
1211 .\"O header table.
1212 ELF ¥Ø¥Ã¥À¤Î
1213 .IR e_shoff
1214 ¥á¥ó¥Ð¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤«¤é
1215 ¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ø¤Î¥Ð¥¤¥È¥ª¥Õ¥»¥Ã¥È¤Ç¤¢¤ë¡£
1216 .\"O .IR e_shnum
1217 .\"O holds the number of entries the section header table contains.
1218 .\"O .IR e_shentsize
1219 .\"O holds the size in bytes of each entry.
1220 .IR e_shnum
1221 ¤Ï¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤Ë´Þ¤Þ¤ì¤ë¥¨¥ó¥È¥ê¤Î¿ô¤òÊÝ»ý¤¹¤ë¡£
1222 .IR e_shentsize
1223 ¤Ï³Æ¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£
1224 .PP
1225 .\"O A section header table index is a subscript into this array.
1226 .\"O Some section
1227 .\"O header table indices are reserved.
1228 .\"O An object file does not have sections for
1229 .\"O these special indices:
1230 ¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢¤³¤ÎÇÛÎó¤ÎÍ×ÁǤò»ØÄꤹ¤ë¡£
1231 ¤¤¤¯¤Ä¤«¤Î¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÏͽÌ󤵤ì¤Æ¤¤¤ë¡£
1232 ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï¡¢¤³¤ì¤é¤ÎÆÃÊ̤ʥ¤¥ó¥Ç¥Ã¥¯¥¹¤ËÂбþ¤¹¤ë
1233 ¥»¥¯¥·¥ç¥ó¤ò»ý¤¿¤Ê¤¤:
1234 .\" .Bl -tag -width "SHN_LORESERVE"
1235 .TP 14
1236 .BR SHN_UNDEF
1237 .\"O This value marks an undefined, missing, irrelevant or otherwise meaningless
1238 .\"O section reference.
1239 ¤³¤ÎÃͤÏ̤ÄêµÁ¡¦ÉÔÌÀ¡¦Ìµ´Ø·¸¡¦Ìµ°ÕÌ£¤Ê¥»¥¯¥·¥ç¥ó»²¾È¤Î°õ¤È¤Ê¤ë¡£
1240 .TP
1241 .BR SHN_LORESERVE
1242 .\"O This value specifies the lower bound of the range of reserved indices.
1243 ¤³¤ÎÃͤÏͽÌóºÑ¤ß¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹Îΰè¤Î²¼¸Â¤ò»ØÄꤹ¤ë¡£
1244 .TP
1245 .BR SHN_LOPROC
1246 .\"O Values greater than or equal to
1247 .\"O .BR SHN_HIPROC
1248 .\"O are reserved for processor-specific semantics.
1249 ¤³¤ÎÃͰʾå¤Ç
1250 .BR SHN_HIPROC
1251 °Ê²¼¤ÎÃÍ¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£
1252 .TP
1253 .BR SHN_HIPROC
1254 .\"O Values less than or equal to
1255 .\"O .BR SHN_LOPROC
1256 .\"O are reserved for processor-specific semantics.
1257 ¤³¤ÎÃͰʲ¼¤Ç
1258 .BR SHN_HIPROC
1259 °Ê¾å¤ÎÃÍ¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£
1260 .\"sato: SHN_{HI,LO}PROC ¤ÎÀâÌÀ¤Ï¡¢¸¶Ê¸¤Î´Ö°ã¤¤¤é¤·¤¤¡£
1261 .TP
1262 .BR SHN_ABS
1263 .\"O This value specifies the absolute value for the corresponding reference.
1264 ¤³¤ÎÃͤÏÂбþ¤¹¤ë»²¾È¤ÎÀäÂÐÃͤò»ØÄꤹ¤ë¡£
1265 .\"O For
1266 .\"O example, a symbol defined relative to section number
1267 .\"O .BR SHN_ABS
1268 .\"O has an absolute value and is not affected by relocation.
1269 Î㤨¤Ð¡¢¥»¥¯¥·¥ç¥óÈÖ¹æ
1270 .BR SHN_ABS
1271 ¤Ë´ØÏ¢¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥ó¥Ü¥ë¤Ï¡¢
1272 ÀäÂÐÃͤòÊÝ»ý¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ºÆÇÛÃ֤˱ƶÁ¤µ¤ì¤Ê¤¤¡£
1273 .\"nakano "relative to" ¤¬¤Á¤ç¤Ã¤ÈÌõ¤·¤Ë¤¯¤¤¡£
1274 .\"nakano Íפ¹¤ë¤Ë SHN_ABS ¤Î¥»¥¯¥·¥ç¥ó¤Ë¤ÏÀäÂÐÃͤ¬ store ¤µ¤ì¤ë¡¢
1275 .\"nakano ¸å½Ò¤Î SHN_COMMON ¤Ë¤Ï global ÊÑ¿ô¤¬ store ¤µ¤ì¤ë¡¢
1276 .\"nakano ¤È¤¤¤¦¤³¤È¤Ê¤Î¤Ç¤·¤ç¤¦¤¬¡£
1277 .TP
1278 .BR SHN_COMMON
1279 .\"O Symbols defined relative to this section are common symbols, such as FORTRAN
1280 .\"O COMMON or unallocated C external variables.
1281 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë´ØÏ¢¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥ó¥Ü¥ë¤Ï¡¢
1282 FORTRAN ¤Î COMMON ¤ä C ¤Î̤³ä¤êÅö¤Æ³°ÉôÊÑ¿ô¤Î¤è¤¦¤Ê¶¦ÄÌ¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¡£
1283 .TP
1284 .BR SHN_HIRESERVE
1285 .\"O This value specifies the upper bound of the range of reserved indices.
1286 ¤³¤ÎÃͤÏͽÌóºÑ¤ß¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹Îΰè¤Î¾å¸Â¤ò»ØÄꤹ¤ë¡£
1287 .\"O The
1288 .\"O system reserves indices between
1289 .\"O .BR SHN_LORESERVE
1290 .\"O and
1291 .\"O .BR SHN_HIRESERVE ,
1292 .\"O inclusive.
1293 ¥·¥¹¥Æ¥à¤Ï
1294 .BR SHN_LORESERVE
1295 ¤È
1296 .BR SHN_HIRESERVE
1297 ¤ò´Þ¤àÈϰϤòͽÌ󤹤롣
1298 .\"O The section header table does not contain entries for the
1299 .\"O reserved indices.
1300 ¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¤ÏͽÌ󤵤줿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ËÂбþ¤¹¤ë¥¨¥ó¥È¥ê¤ò»ý¤¿¤Ê¤¤¡£
1301 .\" .El
1302 .PP
1303 .\"O The section header has the following structure:
1304 ¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤Ï°Ê²¼¤Î¹½Â¤ÂΤò»ý¤Ä:
1305 .in +4n
1306 .nf
1307
1308 typedef struct {
1309     uint32_t   sh_name;
1310     uint32_t   sh_type;
1311     uint32_t   sh_flags;
1312     Elf32_Addr sh_addr;
1313     Elf32_Off  sh_offset;
1314     uint32_t   sh_size;
1315     uint32_t   sh_link;
1316     uint32_t   sh_info;
1317     uint32_t   sh_addralign;
1318     uint32_t   sh_entsize;
1319 } Elf32_Shdr;
1320 .fi
1321 .in
1322 .in +4n
1323 .nf
1324
1325 typedef struct {
1326     uint32_t   sh_name;
1327     uint32_t   sh_type;
1328     uint64_t   sh_flags;
1329     Elf64_Addr sh_addr;
1330     Elf64_Off  sh_offset;
1331     uint64_t   sh_size;
1332     uint32_t   sh_link;
1333     uint32_t   sh_info;
1334     uint64_t   sh_addralign;
1335     uint64_t   sh_entsize;
1336 } Elf64_Shdr;
1337 .fi
1338 .in
1339 .PP
1340 .\"O No real differences exist between the 32-bit and 64-bit section headers.
1341 32 ¥Ó¥Ã¥È¤È 64 ¥Ó¥Ã¥È¤Î¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤Ë¤Ï¼ÂºÝ¤Î°ã¤¤¤Ï¤Ê¤¤¡£
1342 .\" .Bl -tag -width "sh_addralign"
1343 .TP 10
1344 .IR sh_name
1345 .\"O This member specifies the name of the section.
1346 ¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó̾¤òÄê¤á¤ë¡£
1347 .\"O Its value is an index
1348 .\"O into the section header string table section, giving the location of
1349 .\"O a null-terminated string.
1350 ¤³¤ÎÃͤϥ»¥¯¥·¥ç¥ó¥Ø¥Ã¥Àʸ»úÎó¥Æ¡¼¥Ö¥ë¥»¥¯¥·¥ç¥ó¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ê¡¢
1351 NULL Ê¸»ú¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Î¾ì½ê¤ò¼¨¤¹¡£
1352 .TP
1353 .IR sh_type
1354 .\"O This member categorizes the section's contents and semantics.
1355 ¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¤ÎÆâÍƤȰÕÌ£¤¬´Þ¤Þ¤ì¤ë¥«¥Æ¥´¥ê¤ò¼¨¤¹¡£
1356 .\" .Bl -tag -width "SHT_PROGBITS"
1357 .RS 10
1358 .TP 15
1359 .BR SHT_NULL
1360 .\"O This value marks the section header as inactive.
1361 ¤³¤ÎÃͤϥ»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤¬ÉÔ³èÀ­¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£
1362 .\"O It does not
1363 .\"O have an associated section.
1364 ¤³¤ì¤Ï´ØÏ¢¤¹¤ë¥»¥¯¥·¥ç¥ó¤ò»ý¤¿¤Ê¤¤¡£
1365 .\"O Other members of the section header
1366 .\"O have undefined values.
1367 ¤³¤Î¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤Î¾¤Î¥á¥ó¥Ð¤Ï¡¢Ì¤ÄêµÁ¤ÎÃͤò»ý¤Ä¡£
1368 .TP
1369 .BR SHT_PROGBITS
1370 .\"O This section holds information defined by the program, whose
1371 .\"O format and meaning are determined solely by the program.
1372 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Ë¤è¤êÄêµÁ¤µ¤ì¤ë¾ðÊó¤òÊÝ»ý¤¹¤ë¡£
1373 ¤³¤Î¾ðÊó¤Î·Á¼°¤È°ÕÌ£¤Ï¡¢¤Ò¤È¤¨¤Ë¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ·èÄꤵ¤ì¤ë¡£
1374 .TP
1375 .BR SHT_SYMTAB
1376 .\"O This section holds a symbol table.
1377 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£
1378 .\"O Typically,
1379 .\"O .BR SHT_SYMTAB
1380 .\"O provides symbols for link editing, though it may also be used
1381 .\"O for dynamic linking.
1382 °ìÈ̤ˤÏ
1383 .BR SHT_SYMTAB
1384 ¤Ï¥ê¥ó¥¯ÊÔ½¸¤Î¤¿¤á¤Î¥·¥ó¥Ü¥ë¤òÄ󶡤¹¤ë¤¬¡¢
1385 ưŪ¥ê¥ó¥¯¤Ë¤â»È¤ï¤ì¤ë¡£
1386 .\"O As a complete symbol table, it may contain
1387 .\"O many symbols unnecessary for dynamic linking.
1388 ´°Á´¤Ê¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤È¤·¤Æ¡¢Æ°Åª¥ê¥ó¥¯¤Ë¤ÏÉÔÍפÊ
1389 ¿¤¯¤Î¥·¥ó¥Ü¥ë¤òÊÝ»ý¤Ç¤­¤ë¡£
1390 .\"O An object file can
1391 .\"O also contain a
1392 .\"O .BR SHT_DYNSYM
1393 .\"O section.
1394 ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤â
1395 .BR SHT_DYNSYM
1396 ¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£
1397 .TP
1398 .BR SHT_STRTAB
1399 .\"O This section holds a string table.
1400 .\"O An object file may have multiple
1401 .\"O string table sections.
1402 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ïʸ»úÎó¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£
1403 ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ÏÊ£¿ô¤Îʸ»úÎó¥Æ¡¼¥Ö¥ë¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£
1404 .TP
1405 .BR SHT_RELA
1406 .\"O This section holds relocation entries with explicit addends, such
1407 .\"O as type
1408 .\"O .IR Elf32_Rela
1409 .\"O for the 32-bit class of object files.
1410 ¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏÌÀ¼¨Åª¤Ê²Ã¿ô (addend) ¤ò»ý¤ÄºÆÇÛÃÖ¥¨¥ó¥È¥ê¤òÊÝ»ý¤¹¤ë¡£
1411 ºÆÇÛÃÖ¥¨¥ó¥È¥ê¤Î·¿¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î 32 ¥Ó¥Ã¥È¥¯¥é¥¹¤Ç¤Ï
1412 .IR Elf32_Rela
1413 ¤Ç¤¢¤ë¡£
1414 .\"O An object may have multiple
1415 .\"O relocation sections.
1416 ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ÏÊ£¿ô¤ÎºÆÇÛÃÖ¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£
1417 .TP
1418 .BR SHT_HASH
1419 .\"O This section holds a symbol hash table.
1420 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£
1421 .\"O An object participating in
1422 .\"O dynamic linking must contain a symbol hash table.
1423 ưŪ¥ê¥ó¥¯¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢
1424 ¥·¥ó¥Ü¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ò´Þ¤ó¤Ç¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
1425 .\"O An object file may
1426 .\"O have only one hash table.
1427 ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï 1 ¤Ä¤Î¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¤ß¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£
1428 .TP
1429 .BR SHT_DYNAMIC
1430 .\"O This section holds information for dynamic linking.
1431 ¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏưŪ¥ê¥ó¥¯¤Î¾ðÊó¤òÊÝ»ý¤¹¤ë¡£
1432 .\"O An object file may
1433 .\"O have only one dynamic section.
1434 ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï 1 ¤Ä¤ÎưŪ¥»¥¯¥·¥ç¥ó¤Î¤ß¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£
1435 .TP
1436 .BR SHT_NOTE
1437 .\"O This section holds information that marks the file in some way.
1438 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ë¤Ë²¿¤é¤«¤Î°õ¤òÉÕ¤±¤ë¾ðÊó¤òÊÝ»ý¤¹¤ë¡£
1439 .TP
1440 .BR SHT_NOBITS
1441 .\"O A section of this type occupies no space in the file but otherwise
1442 .\"O resembles
1443 .\"O .BR SHT_PROGBITS .
1444 ¤³¤Î¥¿¥¤¥×¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ë¤ÎÎΰè¤ò»È¤ï¤Ê¤¤¤È¤¤¤¦°Ê³°¤Ï¡¢
1445 .BR SHT_PROGBITS
1446 ¤È»÷¤Æ¤¤¤ë¡£
1447 .\"O Although this section contains no bytes, the
1448 .\"O .IR sh_offset
1449 .\"O member contains the conceptual file offset.
1450 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï 1 ¥Ð¥¤¥È¤â´Þ¤Þ¤Ê¤¤¤¬¡¢
1451 .IR sh_offset
1452 ¥á¥ó¥Ð¤Ï³µÇ°Åª¤Ê¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ò»ý¤Ä¡£
1453 .TP
1454 .BR SHT_REL
1455 .\"O This section holds relocation offsets without explicit addends, such
1456 .\"O as type
1457 .\"O .IR Elf32_Rel
1458 .\"O for the 32-bit class of object files.
1459 ¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏÌÀ¼¨Åª¤Ê²Ã¿ô¤ò»ý¤¿¤Ê¤¤ºÆÇÛÃÖ¥ª¥Õ¥»¥Ã¥È¤òÊÝ»ý¤¹¤ë¡£
1460 ºÆÇÛÃÖ¥ª¥Õ¥»¥Ã¥È¤Î·¿¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î 32 ¥Ó¥Ã¥È¥¯¥é¥¹¤Ç¤Ï
1461 .IR Elf32_Rel
1462 ¤Ç¤¢¤ë¡£
1463 .\"O An object file may have multiple
1464 .\"O relocation sections.
1465 ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ÏÊ£¿ô¤ÎºÆÇÛÃÖ¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£
1466 .TP
1467 .BR SHT_SHLIB
1468 .\"O This section is reserved but has unspecified semantics.
1469 ¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏͽÌ󤵤ì¤Æ¤¤¤ë¤¬¡¢°ÕÌ£¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£
1470 .TP
1471 .BR SHT_DYNSYM
1472 .\"O This section holds a minimal set of dynamic linking symbols.
1473 ¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏưŪ¥ê¥ó¥¯¥·¥ó¥Ü¥ë¤ÎºÇ¾®¥»¥Ã¥È¤òÊÝ»ý¤¹¤ë¡£
1474 .\"O An
1475 .\"O object file can also contain a
1476 .\"O .BR SHT_SYMTAB
1477 .\"O section.
1478 ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï
1479 .BR SHT_SYMTAB
1480 ¥»¥¯¥·¥ç¥ó¤â´Þ¤à¤³¤È¤¬¤Ç¤­¤ë¡£
1481 .TP
1482 .BR SHT_LOPROC
1483 .\"O This value up to and including
1484 .\"O .BR SHT_HIPROC
1485 .\"O is reserved for processor-specific semantics.
1486 ¤³¤ÎÃͰʾå¤Ç
1487 .BR SHT_HIPROC
1488 °Ê²¼¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£
1489 .TP
1490 .BR SHT_HIPROC
1491 .\"O This value down to and including
1492 .\"O .BR SHT_LOPROC
1493 .\"O is reserved for processor-specific semantics.
1494 ¤³¤ÎÃͰʲ¼¤Ç
1495 .BR SHT_LOPROC
1496 °Ê¾å¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£
1497 .TP
1498 .BR SHT_LOUSER
1499 .\"O This value specifies the lower bound of the range of indices reserved for
1500 .\"O application programs.
1501 ¤³¤ÎÃͤϥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤Î¤¿¤á¤ËͽÌ󤵤ì¤ë
1502 ¥¤¥ó¥Ç¥Ã¥¯¥¹ÈϰϤβ¼¸Â¤ò»ØÄꤹ¤ë¡£
1503 .TP
1504 .BR SHT_HIUSER
1505 .\"O This value specifies the upper bound of the range of indices reserved for
1506 .\"O application programs.
1507 ¤³¤ÎÃͤϥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤Î¤¿¤á¤ËͽÌ󤵤ì¤ë
1508 ¥¤¥ó¥Ç¥Ã¥¯¥¹ÈϰϤξå¸Â¤ò»ØÄꤹ¤ë¡£
1509 .\"O Section types between
1510 .\"O .BR SHT_LOUSER
1511 .\"O and
1512 .\"O .BR SHT_HIUSER
1513 .\"O may be used by the application, without conflicting with current or future
1514 .\"O system-defined section types.
1515 .BR SHT_LOUSER
1516 ¤«¤é
1517 .BR SHT_HIUSER
1518 ¤Î´Ö¤Î¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤Ï¡¢
1519 ¸½ºß¤Þ¤¿¤Ï¾­Íè¤Î¥·¥¹¥Æ¥àÄêµÁ¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤È¾×Æͤ¹¤ë¤³¤È¤Ê¤¯¡¢
1520 ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
1521 .\" .El
1522 .RE
1523 .TP
1524 .IR sh_flags
1525 .\"O Sections support one-bit flags that describe miscellaneous attributes.
1526 ÍÍ¡¹¤Ê°À­¤òµ­½Ò¤¹¤ë¤¿¤á¤Î 1 ¥Ó¥Ã¥È¤Î¥Õ¥é¥°¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥»¥¯¥·¥ç¥ó¡£
1527 .\"O If a flag bit is set in
1528 .\"O .IR sh_flags ,
1529 .\"O the attribute is
1530 .\"O "on"
1531 .\"O for the section.
1532 ¥Õ¥é¥°¥Ó¥Ã¥È¤¬
1533 .IR sh_flags
1534 ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¤½¤Î¥»¥¯¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Î°À­¤Ï
1535 "¥ª¥ó"
1536 ¤Ë¤Ê¤ë¡£
1537 .\"O Otherwise, the attribute is
1538 .\"O "off"
1539 .\"O or does not apply.
1540 ¤½¤ì°Ê³°¤Î¾ì¹ç¡¢Â°À­¤¬
1541 "¥ª¥Õ"
1542 ¤Ç¤¢¤ë¤«Â°À­¤¬Å¬ÍѤµ¤ì¤Ê¤¤¡£
1543 .\"O Undefined attributes are set to zero.
1544 ̤ÄêµÁ¤Î°À­¤Ï 0 ¤ËÀßÄꤵ¤ì¤ë¡£
1545 .\" .Bl -tag -width "SHF_EXECINSTR" -compact
1546 .RS 10
1547 .TP 15
1548 .BR SHF_WRITE
1549 .\"O This section contains data that should be writable during process
1550 .\"O execution.
1551 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥»¥¹¼Â¹ÔÃæ¤Ë½ñ¤­¹þ¤ß²Äǽ¤Ê¥Ç¡¼¥¿¤ò´Þ¤à¡£
1552 .TP
1553 .BR SHF_ALLOC
1554 .\"O This section occupies memory during process execution.
1555 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥»¥¹¼Â¹ÔÃæ¤Ë¥á¥â¥ê¤ò»ÈÍѤ¹¤ë¡£
1556 .\"O Some control
1557 .\"O sections do not reside in the memory image of an object file.
1558 À©¸æ¥»¥¯¥·¥ç¥ó¤ÎÃæ¤Ë¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤Ë¤Ï
1559 ¸ºß¤·¤Ê¤¤¤â¤Î¤â¤¢¤ë¡£
1560 .\"O This
1561 .\"O attribute is off for those sections.
1562 ¤½¤¦¤·¤¿¥»¥¯¥·¥ç¥ó¤Î¾ì¹ç¡¢¤³¤Î°À­¤Ï¥ª¥Õ¤Ç¤¢¤ë¡£
1563 .TP
1564 .BR SHF_EXECINSTR
1565 .\"O This section contains executable machine instructions.
1566 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¼Â¹Ô²Äǽ¤Ê¥Þ¥·¥óÌ¿Îá¤ò´Þ¤à¡£
1567 .TP
1568 .BR SHF_MASKPROC
1569 .\"O All bits included in this mask are reserved for processor-specific
1570 .\"O semantics.
1571 ¤³¤Î¥Þ¥¹¥¯¤Ë´Þ¤Þ¤ì¤ëÁ´¤Æ¤Î¥Ó¥Ã¥È¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£
1572 .RE
1573 .\" .El
1574 .TP
1575 .IR sh_addr
1576 .\"O If this section appears in the memory image of a process, this member
1577 .\"O holds the address at which the section's first byte should reside.
1578 .\"O Otherwise, the member contains zero.
1579 ¤³¤Î¥»¥¯¥·¥ç¥ó¤¬¥×¥í¥»¥¹¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤Ë¤¢¤ë¾ì¹ç¡¢
1580 ¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¤ÎºÇ½é¤Î¥Ð¥¤¥È¤¬Â¸ºß¤¹¤ë¥¢¥É¥ì¥¹¤òÊÝ»ý¤¹¤ë¡£
1581 ¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤³¤Î¥á¥ó¥Ð¤Ï 0 ¤Ç¤¢¤ë¡£
1582 .TP
1583 .IR sh_offset
1584 .\"O This member's value holds the byte offset from the beginning of the file
1585 .\"O to the first byte in the section.
1586 ¤³¤Î¥á¥ó¥Ð¤ÎÃͤϡ¢¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤«¤é¥»¥¯¥·¥ç¥ó¤ÎºÇ½é¤Î¥Ð¥¤¥È¤Ø¤Î
1587 ¥Ð¥¤¥È¥ª¥Õ¥»¥Ã¥È¤òÊÝ»ý¤¹¤ë¡£
1588 .\"O One section type,
1589 .\"O .BR SHT_NOBITS ,
1590 .\"O occupies no space in the file, and its
1591 .\"O .BR sh_offset
1592 .\"O member locates the conceptual placement in the file.
1593 ¥»¥¯¥·¥ç¥ó¥¿¥¤¥×
1594 .BR SHT_NOBITS
1595 ¤Ï¥Õ¥¡¥¤¥ë¤ÎÎΰè¤òÁ´¤¯»ÈÍѤ»¤º¡¢¤³¤Î¥¿¥¤¥×¤Î
1596 .IR sh_offset
1597 ¥á¥ó¥Ð¤Ï¥Õ¥¡¥¤¥ë¤Î³µÇ°Åª¤Ê°ÌÃÖ¤ò¼¨¤¹¡£
1598 .\"nakano conceptual placement ¤È¤Ï¡©
1599 .TP
1600 .IR sh_size
1601 .\"O This member holds the section's size in bytes.
1602 ¤³¤Î¥á¥ó¥Ð¤Ï¥»¥¯¥·¥ç¥ó¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òÊÝ»ý¤¹¤ë¡£
1603 .\"O Unless the section type
1604 .\"O is
1605 .\"O .BR SHT_NOBITS ,
1606 .\"O the section occupies
1607 .\"O .IR sh_size
1608 .\"O bytes in the file.
1609 ¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤¬
1610 .BR SHT_NOBITS
1611 ¤Ç¤Ê¤¤¸Â¤ê¡¢¤½¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Õ¥¡¥¤¥ëÃæ¤Î
1612 .IR sh_size
1613 ¥Ð¥¤¥È¤ò»ÈÍѤ¹¤ë¡£
1614 .\"O A section of type
1615 .\"O .BR SHT_NOBITS
1616 .\"O may have a nonzero size, but it occupies no space in the file.
1617 ¥¿¥¤¥×¤¬
1618 .BR SHT_NOBITS
1619 ¤Î¥»¥¯¥·¥ç¥ó¤Ï¥µ¥¤¥º¤¬ 0 ¤Ç¤Ê¤¤¤¬¡¢¥Õ¥¡¥¤¥ë¤ÎÎΰè¤ò»ÈÍѤ·¤Ê¤¤¡£
1620 .TP
1621 .IR sh_link
1622 .\"O This member holds a section header table index link, whose interpretation
1623 .\"O depends on the section type.
1624 ¤³¤Î¥á¥ó¥Ð¤Ï¡¢¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¥ê¥ó¥¯¤òÊÝ»ý¤¹¤ë¡£
1625 ¤³¤Î²ò¼á¤Ï¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤Ë°Í¸¤¹¤ë¡£
1626 .TP
1627 .IR sh_info
1628 .\"O This member holds extra information, whose interpretation depends on the
1629 .\"O section type.
1630 ¤³¤Î¥á¥ó¥Ð¤ÏÄɲþðÊó¤òÊÝ»ý¤¹¤ë¡£
1631 ¤³¤Î²ò¼á¤Ï¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤Ë°Í¸¤¹¤ë¡£
1632 .TP
1633 .IR sh_addralign
1634 .\"O Some sections have address alignment constraints.
1635 ¥¢¥É¥ì¥¹ÇÛÃÖ¤ËÀ©Ì󤬤¢¤ë¥»¥¯¥·¥ç¥ó¤â¤¢¤ë¡£
1636 .\"O If a section holds a
1637 .\"O doubleword, the system must ensure doubleword alignment for the entire
1638 .\"O section.
1639 ¥»¥¯¥·¥ç¥ó¤¬ÇÜŸì (doubleword) ¤òÊÝ»ý¤¹¤ë¾ì¹ç¡¢
1640 ¥·¥¹¥Æ¥à¤ÏÁ´¤Æ¤Î¥»¥¯¥·¥ç¥ó¤Ë¤Ä¤¤¤ÆÇÜŸì¤ÎÇÛÃÖ¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
1641 .\"O That is, the value of
1642 .\"O .IR sh_addr
1643 .\"O must be congruent to zero, modulo the value of
1644 .\"O .BR sh_addralign .
1645 ¤Ä¤Þ¤ê¡¢
1646 .IR sh_addr
1647 ¤ÎÃͤÏ
1648 .IR sh_addralign
1649 ¤ÎÃͤòË¡¤È¤·¤Æ 0 ¤È¹çƱ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤
1650 (ÌõÃí:¡Ösh_addr mod sh_addralign = 0 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£
1651 .\"O Only zero and positive integral powers of two are allowed.
1652 2 ¤Î 0 ¾è¤ÈÀµ¤ÎÀ°¿ô¾è¤Î¤ß¤¬µö²Ä¤µ¤ì¤ë¡£
1653 .\"O Values of zero
1654 .\"O or one mean the section has no alignment constraints.
1655 0 ¤Þ¤¿¤Ï 1 ¤Ï¥»¥¯¥·¥ç¥ó¤ÎÇÛÃÖ¤ËÀ©Ì󤬤ʤ¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
1656 .TP
1657 .IR sh_entsize
1658 .\"O Some sections hold a table of fixed-sized entries, such as a symbol table.
1659 ¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤Î¤è¤¦¤Ê¸ÇÄꥵ¥¤¥º¥¨¥ó¥È¥ê¤Î¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë
1660 ¥»¥¯¥·¥ç¥ó¤â¤¢¤ë¡£
1661 .\"O For such a section, this member gives the size in bytes for each entry.
1662 ¤³¤Î¤è¤¦¤Ê¥»¥¯¥·¥ç¥ó¤Ç¤Ï¡¢
1663 ¤³¤Î¥á¥ó¥Ð¤Ï³Æ¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤òɽ¤¹¡£
1664 .\"O This member contains zero if the section does not hold a table of
1665 .\"O fixed-size entries.
1666 ¤³¤Î¥á¥ó¥Ð¤¬ 0 ¤Î¾ì¹ç¡¢
1667 ¤½¤Î¥»¥¯¥·¥ç¥ó¤Ï¸ÇÄꥵ¥¤¥º¥¨¥ó¥È¥ê¤Î¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤·¤Ê¤¤¡£
1668 .\" .El
1669 .PP
1670 .\"O Various sections hold program and control information:
1671 ¤µ¤Þ¤¶¤Þ¤Ê¥»¥¯¥·¥ç¥ó¤Ë¥×¥í¥°¥é¥à¾ðÊó¡¦À©¸æ¾ðÊó¤¬ÊÝ»ý¤µ¤ì¤ë:
1672 .\" .Bl -tag -width ".shstrtab"
1673 .TP 10
1674 .IR .bss
1675 .\"O This section holds uninitialized data that contributes to the program's
1676 .\"O memory image.
1677 .\"Osato:
1678 .\"Osato: contribute ¤¬¤¦¤Þ¤¯Ìõ¤»¤Ê¤¤¡£
1679 .\"Osato:
1680 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤ËÇÛÃÖ¤µ¤ì¤ë
1681 Èó½é´ü²½¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¡£
1682 .\"O By definition, the system initializes the data with zeros
1683 .\"O when the program begins to run.
1684 ÄêµÁ¾å¡¢¥·¥¹¥Æ¥à¤Ï¥×¥í¥°¥é¥à¤Î¼Â¹Ô³«»Ï»þ¤Ë¡¢¥Ç¡¼¥¿¤ò 0 ¤Ç½é´ü²½¤¹¤ë¡£
1685 .\"O This section is of type
1686 .\"O .BR SHT_NOBITS .
1687 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1688 .BR SHT_NOBITS
1689 ¤Ç¤¢¤ë¡£
1690 .\"O The attribute types are
1691 .\"O .BR SHF_ALLOC
1692 .\"O and
1693 .\"O .BR SHF_WRITE .
1694 °À­¥¿¥¤¥×¤Ï
1695 .BR SHF_ALLOC
1696 ¤È
1697 .BR SHF_WRITE
1698 ¤Ç¤¢¤ë¡£
1699 .TP
1700 .IR .comment
1701 .\"O This section holds version control information.
1702 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Ð¡¼¥¸¥ç¥óÀ©¸æ¾ðÊó¤òÊÝ»ý¤¹¤ë¡£
1703 .\"O This section is of type
1704 .\"O .BR SHT_PROGBITS .
1705 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1706 .BR SHT_PROGBITS
1707 ¤Ç¤¢¤ë¡£
1708 .\"O No attribute types are used.
1709 °À­¥¿¥¤¥×¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£
1710 .TP
1711 .IR .ctors
1712 .\"O This section holds initialized pointers to the C++ constructor functions.
1713 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï C++ ¥³¥ó¥¹¥È¥é¥¯¥¿´Ø¿ô¤Ø¤Î½é´ü²½¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤òÊÝ»ý¤¹¤ë¡£
1714 .\"O This section is of type
1715 .\"O .BR SHT_PROGBITS .
1716 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1717 .BR SHT_PROGBITS
1718 ¤Ç¤¢¤ë¡£
1719 .\"O The attribute types are
1720 .\"O .BR SHF_ALLOC
1721 .\"O and
1722 .\"O .BR SHF_WRITE .
1723 °À­¥¿¥¤¥×¤Ï
1724 .BR SHF_ALLOC
1725 ¤È
1726 .BR SHF_WRITE
1727 ¤Ç¤¢¤ë¡£
1728 .TP
1729 .IR .data
1730 .\"O This section holds initialized data that contribute to the program's
1731 .\"O memory image.
1732 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤ËÇÛÃÖ¤µ¤ì¤ë
1733 ½é´ü²½ºÑ¤ß¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¡£
1734 .\"O This section is of type
1735 .\"O .BR SHT_PROGBITS .
1736 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1737 .BR SHT_PROGBITS
1738 ¤Ç¤¢¤ë¡£
1739 .\"O The attribute types are
1740 .\"O .BR SHF_ALLOC
1741 .\"O and
1742 .\"O .BR SHF_WRITE .
1743 °À­¥¿¥¤¥×¤Ï
1744 .BR SHF_ALLOC
1745 ¤È
1746 .BR SHF_WRITE
1747 ¤Ç¤¢¤ë¡£
1748 .TP
1749 .IR .data1
1750 .\"O This section holds initialized data that contribute to the program's
1751 .\"O memory image.
1752 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤ËÇÛÃÖ¤µ¤ì¤ë
1753 ½é´ü²½ºÑ¤ß¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¡£
1754 .\"O This section is of type
1755 .\"O .BR SHT_PROGBITS .
1756 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1757 .BR SHT_PROGBITS
1758 ¤Ç¤¢¤ë¡£
1759 .\"O The attribute types are
1760 .\"O .BR SHF_ALLOC
1761 .\"O and
1762 .\"O .BR SHF_WRITE .
1763 °À­¥¿¥¤¥×¤Ï
1764 .BR SHF_ALLOC
1765 ¤È
1766 .BR SHF_WRITE
1767 ¤Ç¤¢¤ë¡£
1768 .TP
1769 .IR .debug
1770 .\"O This section holds information for symbolic debugging.
1771 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥Ç¥Ð¥Ã¥°ÍѤξðÊó¤òÊÝ»ý¤¹¤ë¡£
1772 .\"O The contents
1773 .\"O are unspecified.
1774 ¤½¤ÎÆâÍƤϻØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£
1775 .\"O This section is of type
1776 .\"O .BR SHT_PROGBITS .
1777 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1778 .BR SHT_PROGBITS
1779 ¤Ç¤¢¤ë¡£
1780 .\"O No attribute types are used.
1781 °À­¥¿¥¤¥×¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£
1782 .TP
1783 .IR .dtors
1784 .\"O This section holds initialized pointers to the C++ destructor functions.
1785 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï C++ ¥Ç¥¹¥È¥é¥¯¥¿´Ø¿ô¤Ø¤Î½é´ü²½¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤òÊÝ»ý¤¹¤ë¡£
1786 .\"O This section is of type
1787 .\"O .BR SHT_PROGBITS .
1788 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1789 .BR SHT_PROGBITS
1790 ¤Ç¤¢¤ë¡£
1791 .\"O The attribute types are
1792 .\"O .BR SHF_ALLOC
1793 .\"O and
1794 .\"O .BR SHF_WRITE .
1795 °À­¥¿¥¤¥×¤Ï
1796 .BR SHF_ALLOC
1797 ¤È
1798 .BR SHF_WRITE
1799 ¤Ç¤¢¤ë¡£
1800 .TP
1801 .IR .dynamic
1802 .\"O This section holds dynamic linking information.
1803 ¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏưŪ¥ê¥ó¥¯¾ðÊó¤òÊÝ»ý¤¹¤ë¡£
1804 .\"O The section's attributes
1805 .\"O will include the
1806 .\"O .BR SHF_ALLOC
1807 .\"O bit.
1808 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î°À­¤Ï
1809 .BR SHF_ALLOC
1810 ¥Ó¥Ã¥È¤ò´Þ¤à¡£
1811 .\"O Whether the
1812 .\"O .BR SHF_WRITE
1813 .\"O bit is set is processor-specific.
1814 .BR SHF_WRITE
1815 ¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤ë¤«Èݤ«¤Ï¥×¥í¥»¥Ã¥µ¤Ë¤è¤ë¡£
1816 .\"O This section is of type
1817 .\"O .BR SHT_DYNAMIC .
1818 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1819 .BR SHT_DYNAMIC
1820 ¤Ç¤¢¤ë¡£
1821 .\"O See the attributes above.
1822 ¾åµ­¤Î°À­¤ò»²¾È¤¹¤ë¤³¤È¡£
1823 .TP
1824 .IR .dynstr
1825 .\"O This section holds strings needed for dynamic linking, most commonly
1826 .\"O the strings that represent the names associated with symbol table entries.
1827 ¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏưŪ¥ê¥ó¥¯¤ËɬÍפÊʸ»úÎó¤òÊÝ»ý¤¹¤ë¡£
1828 ºÇ¤â°ìÈÌŪ¤Ë¤Ï¡¢¤³¤Îʸ»úÎó¤Ï¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤È
1829 ´ØÏ¢¤Å¤±¤é¤ì¤¿Ì¾Á°¤òɽ¤¹¡£
1830 .\"O This section is of type
1831 .\"O .BR SHT_STRTAB .
1832 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1833 .BR SHT_STRTAB
1834 ¤Ç¤¢¤ë¡£
1835 .\"O The attribute type used is
1836 .\"O .BR SHF_ALLOC .
1837 »ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï
1838 .BR SHF_ALLOC
1839 ¤Ç¤¢¤ë¡£
1840 .TP
1841 .IR .dynsym
1842 .\"O This section holds the dynamic linking symbol table.
1843 ¤³¤Î¥»¥¯¥·¥ç¥ó¤ÏưŪ¥ê¥ó¥¯¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£
1844 .\"O This section is of type
1845 .\"O .BR SHT_DYNSYM .
1846 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1847 .BR SHT_DYNSYM
1848 ¤Ç¤¢¤ë¡£
1849 .\"O The attribute used is
1850 .\"O .BR SHF_ALLOC .
1851 »ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï
1852 .BR SHF_ALLOC
1853 ¤Ç¤¢¤ë¡£
1854 .TP
1855 .IR .fini
1856 .\"O This section holds executable instructions that contribute to the process
1857 .\"O termination code.
1858 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥»¥¹½ªÎ»¥³¡¼¥É¤ËÃÖ¤«¤ì¤ë¼Â¹Ô²Äǽ̿Îá¤òÊÝ»ý¤¹¤ë¡£
1859 .\"O When a program exits normally the system arranges to
1860 .\"O execute the code in this section.
1861 ¥×¥í¥»¥¹¤¬Àµ¾ï¤Ë½ªÎ»¤·¤¿¾ì¹ç¡¢¥·¥¹¥Æ¥à¤Ï¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ë
1862 ¥³¡¼¥É¤òÇÛÃÖ¤·¤Æ¼Â¹Ô¤¹¤ë¡£
1863 .\"O This section is of type
1864 .\"O .BR SHT_PROGBITS .
1865 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1866 .BR SHT_PROGBITS
1867 ¤Ç¤¢¤ë¡£
1868 .\"O The attributes used are
1869 .\"O .BR SHF_ALLOC
1870 .\"O and
1871 .\"O .BR SHF_EXECINSTR .
1872 »ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï
1873 .BR SHF_ALLOC
1874 ¤È
1875 .BR SHF_EXECINSTR
1876 ¤Ç¤¢¤ë¡£
1877 .TP
1878 .IR .gnu.version
1879 .\"O This section holds the version symbol table, an array of
1880 .\"O .I ElfN_Half
1881 .\"O elements.
1882 .\"O This section is of type
1883 .\"O .BR SHT_GNU_versym .
1884 .\"O The attribute type used is
1885 .\"O .BR SHF_ALLOC .
1886 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Ð¡¼¥¸¥ç¥ó¡¦¥·¥ó¥Ü¥ë¡¦¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£
1887 ¤½¤ÎÆâÍƤÏ
1888 .I ElfN_Half
1889 Í×ÁǤÎÇÛÎó¤Ç¤¢¤ë¡£
1890 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1891 .B SHT_GNU_versym
1892 ¤Ç¤¢¤ë¡£
1893 »ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï
1894 .B SHF_ALLOC
1895 ¤Ç¤¢¤ë¡£
1896 .TP
1897 .IR .gnu.version_d
1898 .\"O This section holds the version symbol definitions, a table of
1899 .\"O .I ElfN_Verdef
1900 .\"O structures.
1901 .\"O This section is of type
1902 .\"O .BR SHT_GNU_verdef .
1903 .\"O The attribute type used is
1904 .\"O .BR SHF_ALLOC .
1905 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Ð¡¼¥¸¥ç¥ó¥·¥ó¥Ü¥ë¤ÎÄêµÁ¤òÊÝ»ý¤¹¤ë¡£
1906 ¤½¤ÎÆâÍƤÏ
1907 .I ElfN_Verdef
1908 ¹½Â¤ÂΤΥơ¼¥Ö¥ë¤Ç¤¢¤ë¡£
1909 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1910 .B SHT_GNU_verdef
1911 ¤Ç¤¢¤ë¡£
1912 »ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï
1913 .B SHF_ALLOC
1914 ¤Ç¤¢¤ë¡£
1915 .TP
1916 .IR .gnu.version_r
1917 .\"O This section holds the version symbol needed elements, a table of
1918 .\"O .I ElfN_Verneed
1919 .\"O structures.
1920 .\"O This section is of
1921 .\"O type
1922 .\"O .BR SHT_GNU_versym .
1923 .\"O The attribute type used is
1924 .\"O .BR SHF_ALLOC .
1925 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥Ð¡¼¥¸¥ç¥ó¥·¥ó¥Ü¥ë¤¬É¬ÍפȤ¹¤ëÍ×ÁǤòÊÝ»ý¤¹¤ë¡£
1926 ¤½¤ÎÆâÍƤÏ
1927 .I ElfN_Verneed
1928 ¹½Â¤ÂΤΥơ¼¥Ö¥ë¤Ç¤¢¤ë¡£
1929 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1930 .B SHT_GNU_versym
1931 ¤Ç¤¢¤ë¡£
1932 »ÈÍѤµ¤ì¤ë°À­¥¿¥¤¥×¤Ï
1933 .B shf_alloc
1934 ¤Ç¤¢¤ë¡£
1935 .TP
1936 .IR .got
1937 .\"O This section holds the global offset table.
1938 .\"O This section is of type
1939 .\"O .BR SHT_PROGBITS .
1940 .\"O The attributes are processor-specific.
1941 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥°¥í¡¼¥Ð¥ë¥ª¥Õ¥»¥Ã¥È¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£
1942 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1943 .BR SHT_PROGBITS
1944 ¤Ç¤¢¤ë¡£
1945 °À­¤Ï¥×¥í¥»¥Ã¥µËè¤Ë°Û¤Ê¤ë¡£
1946 .TP
1947 .IR .hash
1948 .\"O This section holds a symbol hash table.
1949 .\"O This section is of type
1950 .\"O .BR SHT_HASH .
1951 .\"O The attribute used is
1952 .\"O .BR SHF_ALLOC .
1953 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£
1954 ¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
1955 .BR SHT_HASH
1956 ¤Ç¤¢¤ë¡£
1957 »ÈÍѤµ¤ì¤ë°À­¤Ï
1958 .BR SHF_ALLOC
1959 ¤Ç¤¢¤ë¡£
1960 .TP
1961 .IR .init
1962 .\"O This section holds executable instructions that contribute to the process
1963 .\"O initialization code.
1964 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥»¥¹½é´ü²½¥³¡¼¥É¤ËÇÛÃÖ¤µ¤ì¤ë¼Â¹Ô²Äǽ̿Îá¤òÊÝ»ý¤¹¤ë¡£
1965 .\"O When a program starts to run the system arranges to
1966 .\"O execute the code in this section before calling the main program entry point.
1967 ¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤ò³«»Ï¤¹¤ë¤È¡¢
1968 ¥·¥¹¥Æ¥à¤Ï¥á¥¤¥ó¥×¥í¥°¥é¥à¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¡¢
1969 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ë¥³¡¼¥É¤òÇÛÃÖ¤·¤Æ¼Â¹Ô¤¹¤ë¡£
1970 .\"O This section is of type
1971 .\"O .BR SHT_PROGBITS .
1972 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¤Î¥¿¥¤¥×¤Ï
1973 .BR SHT_PROGBITS
1974 ¤Ç¤¢¤ë¡£
1975 .\"O The attributes used are
1976 .\"O .BR SHF_ALLOC
1977 .\"O and
1978 .\"O .BR SHF_EXECINSTR .
1979 »ÈÍѤµ¤ì¤ë°À­¤Ï
1980 .BR SHF_ALLOC
1981 ¤È
1982 .BR SHF_EXECINSTR
1983 ¤Ç¤¢¤ë¡£
1984 .TP
1985 .IR .interp
1986 .\"O This section holds the pathname of a program interpreter.
1987 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¥¤¥ó¥¿¥×¥ê¥¿¤Î¥Ñ¥¹Ì¾¤òÊÝ»ý¤¹¤ë¡£
1988 .\"O If the file has
1989 .\"O a loadable segment that includes the section, the section's attributes will
1990 .\"O include the
1991 .\"O .BR SHF_ALLOC
1992 .\"O bit.
1993 ¥Õ¥¡¥¤¥ë¤Ë¤³¤Î¥»¥¯¥·¥ç¥ó¤ò´Þ¤à¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤¬¤¢¤ë¾ì¹ç¡¢
1994 ¤½¤Î¥»¥¯¥·¥ç¥ó¤Î°À­¤Ë¤Ï
1995 .BR SHF_ALLOC
1996 ¥Ó¥Ã¥È¤¬´Þ¤Þ¤ì¤ë¡£
1997 .\"O Otherwise, that bit will be off.
1998 ¤½¤ì°Ê³°¤Î¾ì¹ç¤³¤Î¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ë¤Ê¤ë¡£
1999 .\"O This section is of type
2000 .\"O .BR SHT_PROGBITS .
2001 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
2002 .BR SHT_PROGBITS
2003 ¤Ç¤¢¤ë¡£
2004 .TP
2005 .IR .line
2006 .\"O This section holds line number information for symbolic debugging, which
2007 .\"O describes the correspondence between the program source and the machine code.
2008 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥Ç¥Ð¥Ã¥°¤Î¤¿¤á¤Î¹ÔÈÖ¹æ¾ðÊó¤òÊÝ»ý¤¹¤ë¡£
2009 ¤³¤³¤Ë¤Ï¥×¥í¥°¥é¥à¥½¡¼¥¹¥³¡¼¥É¤È¥Þ¥·¥ó¥³¡¼¥É¤ÎÂбþ´Ø·¸¤¬µ­½Ò¤µ¤ì¤ë¡£
2010 .\"O The contents are unspecified.
2011 ÆâÍƤϻØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£
2012 .\"O This section is of type
2013 .\"O .BR SHT_PROGBITS .
2014 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
2015 .BR SHT_PROGBITS
2016 ¤Ç¤¢¤ë¡£
2017 .\"O No attribute types are used.
2018 °À­¥¿¥¤¥×¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£
2019 .TP
2020 .IR .note
2021 .\"O This section holds information in the
2022 .\"O "Note Section"
2023 .\"O format described below.
2024 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï°Ê²¼¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë
2025 "Note Section"
2026 ·Á¼°¤Ç¾ðÊó¤òÊÝ»ý¤¹¤ë¡£
2027 .\"O This section is of type
2028 .\"O .BR SHT_NOTE .
2029 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
2030 .BR SHT_NOTE
2031 ¤Ç¤¢¤ë¡£
2032 .\"O No attribute types are used.
2033 °À­¥¿¥¤¥×¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£
2034 .\"O OpenBSD
2035 .\"O native executables usually contain a
2036 .\"O .IR .note.openbsd.ident
2037 .\"O section to identify themselves, for the kernel to bypass any compatibility
2038 .\"O ELF binary emulation tests when loading the file.
2039 Ä̾ï
2040 OpenBSD
2041 ¥Í¥¤¥Æ¥£¥Ö¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Ï¼«¿È¤ò¼±Ê̤¹¤ë¤¿¤á¤Ë
2042 .IR .note.openbsd.ident
2043 ¥»¥¯¥·¥ç¥ó¤ò»ý¤Ä¡£
2044 ¤³¤ì¤Ë¤è¤ê¥«¡¼¥Í¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤¹¤ëºÝ¤Ë
2045 ¸ß´¹ ELF ¥Ð¥¤¥Ê¥ê¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥Æ¥¹¥È¤ò²óÈò¤Ç¤­¤ë¡£
2046 .TP
2047 .IR .note.GNU-stack
2048 .\"O This section is used in Linux object files for declaring stack attributes.
2049 .\"O This section is of type
2050 .\"O .BR SHT_PROGBITS .
2051 .\"O The only attribute used is
2052 .\"O .BR SHF_EXECINSTR .
2053 .\"O This indicates to the GNU linker that the object file requires an
2054 .\"O executable stack.
2055 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï Linux ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ç
2056 ¥¹¥¿¥Ã¥¯Â°À­¤òÀë¸À¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£
2057 ¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
2058 .B SHT_PROGBITS
2059 ¤Ç¤¢¤ë¡£»ÈÍѤµ¤ì¤ë°À­¤Ï
2060 .B SHF_EXECINSTR
2061 ¤À¤±¤Ç¤¢¤ë¡£¤³¤Î°À­¤Ï GNU ¥ê¥ó¥«¤ËÂФ·¤Æ
2062 ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤¬¼Â¹Ô²Äǽ¤Ê¥¹¥¿¥Ã¥¯ (executable stack) ¤òɬÍפȤ¹¤ë
2063 ¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£
2064 .TP
2065 .IR .plt
2066 .\"O This section holds the procedure linkage table.
2067 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¼ê³¤­ (procedure) ¥ê¥ó¥¯¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£
2068 .\"O This section is of type
2069 .\"O .BR SHT_PROGBITS .
2070 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
2071 .BR SHT_PROGBITS
2072 ¤Ç¤¢¤ë¡£
2073 .\"O The attributes are processor-specific.
2074 °À­¤Ï¥×¥í¥»¥Ã¥µËè¤Ë°Û¤Ê¤ë¡£
2075 .TP
2076 .IR .relNAME
2077 .\"O This section holds relocation information as described below.
2078 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï°Ê²¼¤Ëµ­½Ò¤µ¤ì¤ëºÆÇÛÃÖ¾ðÊó¤òÊÝ»ý¤¹¤ë¡£
2079 .\"O If the file
2080 .\"O has a loadable segment that includes relocation, the section's attributes
2081 .\"O will include the
2082 .\"O .BR SHF_ALLOC
2083 .\"O bit.
2084 ¥Õ¥¡¥¤¥ë¤¬ºÆÇÛÃÖ¤ò´Þ¤à¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢
2085 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î°À­¤Ï
2086 .BR SHF_ALLOC
2087 ¥Ó¥Ã¥È¤ò´Þ¤à¡£
2088 .\"O Otherwise the bit will be off.
2089 ¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤½¤Î¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ç¤¢¤ë¡£
2090 .\"O By convention,
2091 .\"O "NAME"
2092 .\"O is supplied by the section to which the relocations apply.
2093 ´·Îã¤È¤·¤Æ¡¢
2094 "NAME"
2095 ¤ÏºÆÇÛÃÖ¤¬Å¬ÍѤµ¤ì¤ë¥»¥¯¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤ë¡£
2096 .\"O Thus a relocation
2097 .\"O section for
2098 .\"O .BR .text
2099 .\"O normally would have the name
2100 .\"O .BR .rel.text .
2101 ¤è¤Ã¤Æ
2102 .BR .text
2103 ¤Ë¤Ä¤¤¤Æ¤ÎºÆÇÛÃÖ¥»¥¯¥·¥ç¥ó¤Ï¡¢Ä̾ï¤Ï
2104 .BR .rel.text
2105 ¤È¤¤¤¦Ì¾Á°¤ò»ý¤Ä¡£
2106 .\"O This section is of type
2107 .\"O .BR SHT_REL .
2108 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
2109 .BR SHT_REL
2110 ¤Ç¤¢¤ë¡£
2111 .TP
2112 .IR .relaNAME
2113 .\"O This section holds relocation information as described below.
2114 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï°Ê²¼¤Ëµ­½Ò¤µ¤ì¤ëºÆÇÛÃÖ¾ðÊó¤òÊÝ»ý¤¹¤ë¡£
2115 .\"O If the file
2116 .\"O has a loadable segment that includes relocation, the section's attributes
2117 .\"O will include the
2118 .\"O .BR SHF_ALLOC
2119 .\"O bit.
2120 ¥Õ¥¡¥¤¥ë¤¬ºÆÇÛÃÖ¤ò´Þ¤à¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢
2121 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î°À­¤Ï
2122 .BR SHF_ALLOC
2123 ¥Ó¥Ã¥È¤ò´Þ¤à¡£
2124 .\"O Otherwise the bit will be off.
2125 ¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤½¤Î¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ç¤¢¤ë¡£
2126 .\"O By convention,
2127 .\"O "NAME"
2128 .\"O is supplied by the section to which the relocations apply.
2129 ´·Îã¤È¤·¤Æ¡¢
2130 "NAME"
2131 ¤ÏºÆÇÛÃÖ¤¬Å¬ÍѤµ¤ì¤ë¥»¥¯¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤ë¡£
2132 .\"O Thus a relocation
2133 .\"O section for
2134 .\"O .BR .text
2135 .\"O normally would have the name
2136 .\"O .BR .rela.text .
2137 ¤è¤Ã¤Æ
2138 .BR .text
2139 ¤Ë¤Ä¤¤¤Æ¤ÎºÆÇÛÃÖ¥»¥¯¥·¥ç¥ó¤Ï¡¢Ä̾ï¤Ï
2140 .BR .rela.text
2141 ¤È¤¤¤¦Ì¾Á°¤ò»ý¤Ä¡£
2142 .\"O This section is of type
2143 .\"O .BR SHT_RELA .
2144 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
2145 .BR SHT_RELA
2146 ¤Ç¤¢¤ë¡£
2147 .TP
2148 .IR .rodata
2149 .\"O This section holds read-only data that typically contributes to a
2150 .\"O nonwritable segment in the process image.
2151 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥ê¡¼¥É¥ª¥ó¥ê¡¼¤Î¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¡£
2152 ¤³¤Î¥Ç¡¼¥¿¤Ï¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤Ë¤ª¤±¤ë½ñ¤­¹þ¤ßÉÔ²Äǽ¤Ê¥»¥°¥á¥ó¥È¤ËÃÖ¤«¤ì¤ë¡£
2153 .\"O This section is of type
2154 .\"O .BR SHT_PROGBITS .
2155 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
2156 .BR SHT_PROGBITS
2157 ¤Ç¤¢¤ë¡£
2158 .\"O The attribute used is
2159 .\"O .BR SHF_ALLOC .
2160 »ÈÍѤµ¤ì¤ë°À­¤Ï
2161 .BR SHF_ALLOC
2162 ¤Ç¤¢¤ë¡£
2163 .TP
2164 .IR .rodata1
2165 .\"O This section holds read-only data that typically contributes to a
2166 .\"O nonwritable segment in the process image.
2167 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥ê¡¼¥É¥ª¥ó¥ê¡¼¤Î¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¡£
2168 ¤³¤Î¥Ç¡¼¥¿¤Ï¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤Ë¤ª¤±¤ë½ñ¤­¹þ¤ßÉÔ²Äǽ¤Ê¥»¥°¥á¥ó¥È¤ËÃÖ¤«¤ì¤ë¡£
2169 .\"O This section is of type
2170 .\"O .BR SHT_PROGBITS .
2171 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
2172 .BR SHT_PROGBITS
2173 ¤Ç¤¢¤ë¡£
2174 .\"O The attribute used is
2175 .\"O .BR SHF_ALLOC .
2176 »ÈÍѤµ¤ì¤ë°À­¤Ï
2177 .BR SHF_ALLOC
2178 ¤Ç¤¢¤ë¡£
2179 .TP
2180 .IR .shstrtab
2181 .\"O This section holds section names.
2182 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥»¥¯¥·¥ç¥ó̾¤òÊÝ»ý¤¹¤ë¡£
2183 .\"O This section is of type
2184 .\"O .BR SHT_STRTAB .
2185 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
2186 .BR SHT_STRTAB
2187 ¤Ç¤¢¤ë¡£
2188 .\"O No attribute types are used.
2189 °À­¥¿¥¤¥×¤Ï»ÈÍѤµ¤ì¤Ê¤¤¡£
2190 .TP
2191 .IR .strtab
2192 .\"O This section holds strings, most commonly the strings that represent the
2193 .\"O names associated with symbol table entries.
2194 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ïʸ»úÎó¤òÊÝ»ý¤¹¤ë¡£
2195 ºÇ¤â°ìÈÌŪ¤Ê¤Î¤Ï¡¢¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿
2196 ̾Á°¤òɽ¤¹Ê¸»úÎó¤Ç¤¢¤ë¡£
2197 .\"O If the file has a loadable
2198 .\"O segment that includes the symbol string table, the section's attributes
2199 .\"O will include the
2200 .\"O .BR SHF_ALLOC
2201 .\"O bit.
2202 ¥Õ¥¡¥¤¥ë¤¬¥·¥ó¥Ü¥ëʸ»úÎó¥Æ¡¼¥Ö¥ë¤ò´Þ¤à¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤ò»ý¤Ä¾ì¹ç¡¢
2203 ¥»¥¯¥·¥ç¥ó¤Î°À­¤Ï
2204 .BR SHF_ALLOC
2205 ¥Ó¥Ã¥È¤ò´Þ¤à¡£
2206 .\"O Otherwise the bit will be off.
2207 ¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤½¤Î¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ç¤¢¤ë¡£
2208 .\"O This section is of type
2209 .\"O .BR SHT_STRTAB .
2210 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
2211 .BR SHT_STRTAB
2212 ¤Ç¤¢¤ë¡£
2213 .TP
2214 .IR .symtab
2215 .\"O This section holds a symbol table.
2216 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤¹¤ë¡£
2217 .\"O If the file has a loadable segment
2218 .\"O that includes the symbol table, the section's attributes will include
2219 .\"O the
2220 .\"O .BR SHF_ALLOC
2221 .\"O bit.
2222 ¥Õ¥¡¥¤¥ë¤¬¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤ò´Þ¤à¥í¡¼¥É²Äǽ¥»¥°¥á¥ó¥È¤ò»ý¤Ä¾ì¹ç¡¢
2223 ¥»¥¯¥·¥ç¥ó¤Î°À­¤Ï
2224 .BR SHF_ALLOC
2225 ¥Ó¥Ã¥È¤ò´Þ¤à¡£
2226 .\"O Otherwise the bit will be off.
2227 ¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥Ó¥Ã¥È¤Ï¥ª¥Õ¤Ç¤¢¤ë¡£
2228 .\"O This section is of type
2229 .\"O .BR SHT_SYMTAB .
2230 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
2231 .BR SHT_SYMTAB
2232 ¤Ç¤¢¤ë¡£
2233 .TP
2234 .IR .text
2235 .\"O This section holds the
2236 .\"O "text",
2237 .\"O or executable instructions, of a program.
2238 ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Î
2239 "¥Æ¥­¥¹¥È"
2240 ¤Þ¤¿¤Ï¼Â¹Ô²Äǽ̿Îá¤òÊÝ»ý¤¹¤ë¡£
2241 .\"O This section is of type
2242 .\"O .BR SHT_PROGBITS .
2243 ¥»¥¯¥·¥ç¥ó¤Î¥¿¥¤¥×¤Ï
2244 .BR SHT_PROGBITS
2245 ¤Ç¤¢¤ë¡£
2246 .\"O The attributes used are
2247 .\"O .BR SHF_ALLOC
2248 .\"O and
2249 .\"O .BR SHF_EXECINSTR .
2250 »ÈÍѤµ¤ì¤ë°À­¤Ï
2251 .BR SHF_ALLOC
2252 ¤È
2253 .BR SHF_EXECINSTR
2254 ¤Ç¤¢¤ë¡£
2255 .\" .El
2256 .PP
2257 .\"O String table sections hold null-terminated character sequences, commonly
2258 .\"O called strings.
2259 ʸ»úÎó¥Æ¡¼¥Ö¥ë¥»¥¯¥·¥ç¥ó¤Ï NULL Ê¸»ú¤Ç½ªÃ¼¤µ¤ì¤¿¥­¥ã¥é¥¯¥¿ÇÛÎó
2260 (Ä̾ïʸ»úÎó¤È¸Æ¤Ð¤ì¤ë¤â¤Î) ¤òÊÝ»ý¤¹¤ë¡£
2261 .\"O The object file uses these strings to represent symbol
2262 .\"O and section names.
2263 ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï¤³¤ì¤é¤Îʸ»úÎó¤ò
2264 ¥·¥ó¥Ü¥ë̾¤È¥»¥¯¥·¥ç¥ó̾¤òɽ¤¹¤¿¤á¤Ë»È¤¦¡£
2265 .\"O One references a string as an index into the string
2266 .\"O table section.
2267 ʸ»úÎó¤Ï¡¢Ê¸»úÎó¥Æ¡¼¥Ö¥ë¥»¥¯¥·¥ç¥ó¤Ø¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤·¤Æ»²¾È¤µ¤ì¤ë¡£
2268 .\"O The first byte, which is index zero, is defined to hold
2269 .\"O a null byte (\(aq\\0\(aq).
2270 ¥¤¥ó¥Ç¥Ã¥¯¥¹ 0 ¤ÎºÇ½é¤Î¥Ð¥¤¥È¤Ï¡¢NULL ¥Ð¥¤¥È (\(aq\\0\(aq) ¤ò
2271 ÊÝ»ý¤¹¤ë¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
2272 .\"O Similarly, a string table's last byte is defined to
2273 .\"O hold a null byte, ensuring null termination for all strings.
2274 ƱÍͤËʸ»úÎó¥Æ¡¼¥Ö¥ë¤ÎºÇ¸å¤Î¥Ð¥¤¥È¤â NULL Ê¸»ú¤òÊÝ»ý¤¹¤ë¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
2275 ¤³¤ì¤ÏÁ´¤Æ¤Îʸ»úÎ󤬠NULL ¥Ð¥¤¥È¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ç¤¢¤ë¡£
2276 .PP
2277 .\"O An object file's symbol table holds information needed to locate and
2278 .\"O relocate a program's symbolic definitions and references.
2279 .\"O A symbol table
2280 .\"O index is a subscript into this array.
2281 ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤Ï¡¢
2282 ¥×¥í¥°¥é¥à¤Î¥·¥ó¥Ü¥ëÄêµÁ¤È»²¾È¤òÇÛÃÖ¤Þ¤¿¤ÏºÆÇÛÃÖ¤¹¤ë¤Î¤Ë
2283 ɬÍפʾðÊó¤òÊÝ»ý¤¹¤ë¡£
2284 .in +4n
2285 .nf
2286
2287 typedef struct {
2288     uint32_t      st_name;
2289     Elf32_Addr    st_value;
2290     uint32_t      st_size;
2291     unsigned char st_info;
2292     unsigned char st_other;
2293     uint16_t      st_shndx;
2294 } Elf32_Sym;
2295 .fi
2296 .in
2297 .in +4n
2298 .nf
2299
2300 typedef struct {
2301     uint32_t      st_name;
2302     unsigned char st_info;
2303     unsigned char st_other;
2304     uint16_t      st_shndx;
2305     Elf64_Addr    st_value;
2306     uint64_t      st_size;
2307 } Elf64_Sym;
2308 .fi
2309 .in
2310 .PP
2311 .\"O The 32-bit and 64-bit versions have the same members, just in a different
2312 .\"O order.
2313 32 ¥Ó¥Ã¥ÈÈǤȠ64 ¥Ó¥Ã¥ÈÈǤÏƱ¤¸¥á¥ó¥Ð¤ò»ý¤Á¡¢Ã±¤Ë½çÈÖ¤¬°Û¤Ê¤ë¤À¤±¤Ç¤¢¤ë¡£
2314 .\" .Bl -tag -width "st_value"
2315 .TP 10
2316 .IR st_name
2317 .\"O This member holds an index into the object file's symbol string table,
2318 .\"O which holds character representations of the symbol names.
2319 ¤³¤Î¥á¥ó¥Ð¤Ï¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥·¥ó¥Ü¥ëʸ»úÎó¥Æ¡¼¥Ö¥ë¤Î
2320 ¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÝ»ý¤¹¤ë¡£
2321 ¥·¥ó¥Ü¥ëʸ»úÎó¥Æ¡¼¥Ö¥ë¤Ï¥·¥ó¥Ü¥ë̾¤Îʸ»úɽ¸½¤òÊÝ»ý¤¹¤ë¡£
2322 .\"O If the value
2323 .\"O is nonzero, it represents a string table index that gives the symbol
2324 .\"O name.
2325 ¤³¤ÎÃͤ¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢¥·¥ó¥Ü¥ë̾¤òÆÀ¤ë¤¿¤á¤Îʸ»ú¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òɽ¤¹¡£
2326 .\"O Otherwise, the symbol table has no name.
2327 ¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤Ï̾Á°¤ò»ý¤¿¤Ê¤¤¡£
2328 .TP
2329 .IR st_value
2330 .\"O This member gives the value of the associated symbol.
2331 ¤³¤Î¥á¥ó¥Ð¤Ï´ØÏ¢¤Å¤±¤é¤ì¤¿¥·¥ó¥Ü¥ë¤ÎÃͤòɽ¤¹¡£
2332 .TP
2333 .IR st_size
2334 .\"O Many symbols have associated sizes.
2335 .\"O This member holds zero if the symbol
2336 .\"O has no size or an unknown size.
2337 ¿¤¯¤Î¥·¥ó¥Ü¥ë¤Ë¤Ï¤½¤ì¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥µ¥¤¥º¤¬¤¢¤ë¡£
2338 ¥·¥ó¥Ü¥ë¤¬¥µ¥¤¥º¤ò»ý¤¿¤Ê¤¤¾ì¹ç¡¢¤Þ¤¿¤Ï¥µ¥¤¥º¤¬ÉÔÌÀ¤Ê¾ì¹ç¡¢
2339 ¤³¤Î¥á¥ó¥Ð¤Ï 0 ¤Ç¤¢¤ë¡£
2340 .TP
2341 .IR st_info
2342 .\"O This member specifies the symbol's type and binding attributes:
2343 ¤³¤Î¥á¥ó¥Ð¤Ï¥·¥ó¥Ü¥ë¤Î¥¿¥¤¥×¤È¥Ð¥¤¥ó¥Ç¥£¥ó¥° (binding) Â°À­¤ò»ØÄꤹ¤ë:
2344 .RS 10
2345 .TP 12
2346 .BR STT_NOTYPE
2347 .\"O The symbol's type is not defined.
2348 ¥·¥ó¥Ü¥ë¤Î¥¿¥¤¥×¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
2349 .TP
2350 .BR STT_OBJECT
2351 .\"O The symbol is associated with a data object.
2352 ¥·¥ó¥Ü¥ë¤Ï¥Ç¡¼¥¿¥ª¥Ö¥¸¥§¥¯¥È¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¡£
2353 .TP
2354 .BR STT_FUNC
2355 .\"O The symbol is associated with a function or other executable code.
2356 ¥·¥ó¥Ü¥ë¤Ï´Ø¿ô¤Þ¤¿¤Ï¤½¤Î¾¤Î¼Â¹Ô¥³¡¼¥É¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¡£
2357 .TP
2358 .BR STT_SECTION
2359 .\"O The symbol is associated with a section.
2360 ¥·¥ó¥Ü¥ë¤Ï¥»¥¯¥·¥ç¥ó¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¡£
2361 .\"O Symbol table entries of
2362 .\"O this type exist primarily for relocation and normally have
2363 .\"O .BR STB_LOCAL
2364 .\"O bindings.
2365 ¤³¤Î¥¿¥¤¥×¤Î¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Ï¡¢
2366 ¼ç¤È¤·¤ÆºÆÇÛÃ֤Τ¿¤á¤Ë¸ºß¤·¡¢Ä̾ï¤Ï
2367 .BR STB_LOCAL
2368 ¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤ò»ý¤Ä¡£
2369 .TP
2370 .BR STT_FILE
2371 .\"O By convention, the symbol's name gives the name of the source file
2372 .\"O associated with the object file.
2373 ´·Îã¤È¤·¤Æ¡¢¥·¥ó¥Ü¥ë¤Î̾Á°¤Ï
2374 ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò»ØÄꤹ¤ë¡£
2375 .\"O A file symbol has
2376 .\"O .BR STB_LOCAL
2377 .\"O bindings, its section index is
2378 .\"O .BR SHN_ABS ,
2379 .\"O and it precedes the other
2380 .\"O .BR STB_LOCAL
2381 .\"O symbols of the file, if it is present.
2382 ¥Õ¥¡¥¤¥ë¥·¥ó¥Ü¥ë¤Ï
2383 .BR STB_LOCAL
2384 ¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤ò»ý¤Á¡¢¤½¤Î¥»¥¯¥·¥ç¥ó¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï
2385 .BR SHN_ABS
2386 ¤Ç¤¢¤ë¡£
2387 ¥Õ¥¡¥¤¥ë¥·¥ó¥Ü¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ë¾¤Î
2388 .BR STB_LOCAL
2389 ¥·¥ó¥Ü¥ë¤¬¤¢¤ë¾ì¹ç¤Ï¡¢¤½¤ì¤è¤ê¤âÀè¤ËÍè¤ë¡£
2390 .TP
2391 .BR STT_LOPROC
2392 .\"O This value up to and including
2393 .\"O .BR STT_HIPROC
2394 .\"O is reserved for processor-specific semantics.
2395 ¤³¤ÎÃͰʾå¤Ç
2396 .BR STT_HIPROC
2397 °Ê²¼¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£
2398 .TP
2399 .BR STT_HIPROC
2400 .\"O This value down to and including
2401 .\"O .BR STT_LOPROC
2402 .\"O is reserved for processor-specific semantics.
2403 ¤³¤ÎÃͰʲ¼¤Ç
2404 .BR STT_LOPROC
2405 °Ê¾å¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£
2406 .\" .El
2407 .\" .Bl -tag -width "STB_GLOBAL"
2408 .TP
2409 .BR STB_LOCAL
2410 .\"O Local symbols are not visible outside the object file containing their
2411 .\"O definition.
2412 ¶É½êŪ¥·¥ó¥Ü¥ë¤Ï¤½¤ÎÄêµÁ¤ò´Þ¤à¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î³°¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£
2413 .\"O Local symbols of the same name may exist in multiple files
2414 .\"O without interfering with each other.
2415 Ʊ¤¸Ì¾Á°¤Î¶É½êŪ¥·¥ó¥Ü¥ë¤Ï¡¢¤ª¸ß¤¤¤Ë±Æ¶Á¤ò¼õ¤±¤ë¤³¤È¤Ê¤¯¡¢
2416 Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¤Ë¸ºß¤Ç¤­¤ë¡£
2417 .TP
2418 .BR STB_GLOBAL
2419 .\"O Global symbols are visible to all object files being combined.
2420 .\"O One file's
2421 .\"O definition of a global symbol will satisfy another file's undefined
2422 .\"O reference to the same symbol.
2423 Âç°èŪ¥·¥ó¥Ü¥ë¤Ï·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤«¤é¸«¤¨¤ë¡£
2424 1 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤ÇÂç°èŪ¥·¥ó¥Ü¥ë¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤¿¤é¡¢
2425 ¾¤Î¥Õ¥¡¥¤¥ë¤Ç¤ÏƱ¤¸¥·¥ó¥Ü¥ë¤Ø¤Î»²¾È¤Ï̤ÄêµÁ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
2426 .TP
2427 .BR STB_WEAK
2428 .\"O Weak symbols resemble global symbols, but their definitions have lower
2429 .\"O precedence.
2430 ¼å¥·¥ó¥Ü¥ë¤ÏÂç°èŪ¥·¥ó¥Ü¥ë¤Ë»÷¤Æ¤¤¤ë¤¬¡¢¤½¤ÎÄêµÁ¤ÏÍ¥ÀèÅÙ¤¬Ä㤤¡£
2431 .TP
2432 .BR STB_LOPROC
2433 .\"O This value up to and including
2434 .\"O .BR STB_HIPROC
2435 .\"O is reserved for processor-specific semantics.
2436 ¤³¤ÎÃͰʾå¤Ç
2437 .BR STB_HIPROC
2438 °Ê²¼¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£
2439 .TP
2440 .BR STB_HIPROC
2441 .\"O This value down to and including
2442 .\"O .BR STB_LOPROC
2443 .\"O is reserved for processor-specific semantics.
2444 ¤³¤ÎÃͰʲ¼¤Ç
2445 .BR STB_LOPROC
2446 °Ê¾å¤ÎÈÏ°Ï¤Ï¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤ËͽÌ󤵤ì¤Æ¤¤¤ë¡£
2447 .IP
2448 .\"O There are macros for packing and unpacking the binding and type fields:
2449 ¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤È¥¿¥¤¥×¥Õ¥£¡¼¥ë¥É¤ò
2450 ¥Ñ¥Ã¥¯¤·¤¿¤ê¥¢¥ó¥Ñ¥Ã¥¯¤·¤¿¤ê¤¹¤ë¥Þ¥¯¥í¤¬¤¢¤ë:
2451 .IP
2452 .BR ELF32_ST_BIND (info)
2453 .\"O or
2454 ¤Þ¤¿¤Ï
2455 .BR ELF64_ST_BIND (info)
2456 .\"O extract a binding from an
2457 .\"O .I st_info
2458 .\"O value.
2459 .I st_info
2460 ¤ÎÃͤ«¤é¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤ò¼è¤ê½Ð¤¹¡£
2461 .IP
2462 .BR ELF32_ST_TYPE (info)
2463 .\"O or
2464 ¤Þ¤¿¤Ï
2465 .BR ELF64_ST_TYPE (info)
2466 .br
2467 .\"O extract a type from an
2468 .\"O .I st_info
2469 .\"O value.
2470 .I st_info
2471 ¤ÎÃͤ«¤é¥¿¥¤¥×¤ò¼è¤ê½Ð¤¹¡£
2472 .IP
2473 .BR ELF32_ST_INFO "(bind, type)"
2474 .\"O or
2475 ¤Þ¤¿¤Ï
2476 .BR ELF64_ST_INFO "(bind, type)"
2477 .br
2478 .\"O convert a binding and a type into an
2479 .\"O .I st_info
2480 .\"O value.
2481 ¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤È¥¿¥¤¥×¤ò
2482 .I st_info
2483 ¤ÎÃͤËÊÑ´¹¤¹¤ë¡£
2484 .RE
2485 .\" .El
2486 .TP
2487 .IR st_other
2488 .\"O This member defines the symbol visibility.
2489 ¤³¤Î¥á¥ó¥Ð¤Ï¥·¥ó¥Ü¥ë¤Î visibility (¸«¤¨¤ëÈÏ°Ï) ¤òµ¬Äꤹ¤ë¡£
2490 .\" .Bl -tag -width "STV_PROTECTED"
2491 .RS 10
2492 .TP 16
2493 .PD 0
2494 .BR STV_DEFAULT
2495 .\"O Default symbol visibility rules.
2496 ¥Ç¥Õ¥©¥ë¥È¤Î¥·¥ó¥Ü¥ë visibility ¥ë¡¼¥ë¡£
2497 .TP
2498 .BR STV_INTERNAL
2499 .\"O Processor-specific hidden class.
2500 ¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î±£¤·¥¯¥é¥¹¡£
2501 .TP
2502 .BR STV_HIDDEN
2503 .\"O Symbol is unavailable in other modules.
2504 ¥·¥ó¥Ü¥ë¤Ï¾¤Î¥â¥¸¥å¡¼¥ë¤«¤é¤ÏÍøÍѤǤ­¤Ê¤¤¡£
2505 .TP
2506 .BR STV_PROTECTED
2507 .\"O Not preemptible, not exported.
2508 ²£¼è¤ê¤Ç¤­¤º (not preemptible)¡¢¸ø³«¤µ¤ì¤Ê¤¤¡£
2509 .PD
2510 .PP
2511 .\"O There are macros for extracting the visibility type:
2512 visibility ¼ïÊ̤òÃê½Ð¤¹¤ë¤¿¤á¤Î¥Þ¥¯¥í¤¬¤¢¤ë¡£
2513 .PP
2514 .\"O .BR ELF32_ST_VISIBILITY (other)
2515 .\"O or
2516 .\"O .BR ELF64_ST_VISIBILITY (other)
2517 .BR ELF32_ST_VISIBILITY (other)
2518 ¤Þ¤¿¤Ï
2519 .BR ELF64_ST_VISIBILITY (other)
2520 .RE
2521 .\" .El
2522 .TP
2523 .IR st_shndx
2524 .\"O Every symbol table entry is
2525 .\"O "defined"
2526 .\"O in relation to some section.
2527 ³Æ¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥»¥¯¥·¥ç¥ó¤Ë´ØÏ¢¤·¤Æ
2528 "ÄêµÁ¤µ¤ì¤Æ¤¤¤ë"¡£
2529 .\"O This member holds the relevant section
2530 .\"O header table index.
2531 ¤³¤Î¥á¥ó¥Ð¤Ï´ØÏ¢¤¹¤ë¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÝ»ý¤¹¤ë¡£
2532 .\" .El
2533 .PP
2534 .\"O Relocation is the process of connecting symbolic references with
2535 .\"O symbolic definitions.
2536 ºÆÇÛÃ֤ϥ·¥ó¥Ü¥ë»²¾È¤È¥·¥ó¥Ü¥ëÄêµÁ¤ò·ë¹ç¤¹¤ë¥×¥í¥»¥¹¤Ç¤¢¤ë¡£
2537 .\"O Relocatable files must have information that
2538 .\"O describes how to modify their section contents, thus allowing executable
2539 .\"O and shared object files to hold the right information for a process's
2540 .\"O program image.
2541 ºÆÇÛÃÖ²Äǽ¥Õ¥¡¥¤¥ë¤Ï¥»¥¯¥·¥ç¥ó¤ÎÆâÍƤò¤É¤Î¤è¤¦¤Ë½¤Àµ¤¹¤ë¤«¤Ë´Ø¤¹¤ë
2542 ¾ðÊó¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
2543 ¤³¤ì¤Ë¤è¤ê¡¢¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤È¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï
2544 ¥×¥í¥»¥¹¤Î¥×¥í¥°¥é¥à¥¤¥á¡¼¥¸¤Ë¤Ä¤¤¤Æ¤ÎÀµ¤·¤¤¾ðÊó¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£
2545 .\"O Relocation entries are these data.
2546 ºÆÇÛÃÖ¥¨¥ó¥È¥ê¤Ï°Ê²¼¤Î¤è¤¦¤Ê¥Ç¡¼¥¿¤Ç¤¢¤ë¡£
2547 .PP
2548 .\"O Relocation structures that do not need an addend:
2549 ²Ã¿ô¤òɬÍפȤ·¤Ê¤¤ºÆÇÛÃÖ¹½Â¤ÂΡ£
2550 .in +4n
2551 .nf
2552
2553 typedef struct {
2554     Elf32_Addr r_offset;
2555     uint32_t   r_info;
2556 } Elf32_Rel;
2557 .fi
2558 .in
2559 .in +4n
2560 .nf
2561
2562 typedef struct {
2563     Elf64_Addr r_offset;
2564     uint64_t   r_info;
2565 } Elf64_Rel;
2566 .fi
2567 .in
2568 .PP
2569 .\"O Relocation structures that need an addend:
2570 ²Ã¿ô¤òɬÍפȤ¹¤ëºÆÇÛÃÖ¹½Â¤ÂΡ£
2571 .in +4n
2572 .nf
2573
2574 typedef struct {
2575     Elf32_Addr r_offset;
2576     uint32_t   r_info;
2577     int32_t    r_addend;
2578 } Elf32_Rela;
2579 .fi
2580 .in
2581 .in +4n
2582 .nf
2583
2584 typedef struct {
2585     Elf64_Addr r_offset;
2586     uint64_t   r_info;
2587     int64_t    r_addend;
2588 } Elf64_Rela;
2589 .fi
2590 .in
2591 .\" .Bl -tag -width "r_offset"
2592 .TP 12
2593 .IR r_offset
2594 .\"O This member gives the location at which to apply the relocation action.
2595 ¤³¤Î¥á¥ó¥Ð¤ÏºÆÇÛÃÖÆ°ºî¤¬Å¬ÍѤµ¤ì¤ë°ÌÃÖ¤òÍ¿¤¨¤ë¡£
2596 .\"O For a relocatable file, the value is the byte offset from the beginning
2597 .\"O of the section to the storage unit affected by the relocation.
2598 ºÆÇÛÃÖ²Äǽ¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢¤³¤ÎÃͤϥ»¥¯¥·¥ç¥ó¤ÎÀèƬ¤«¤é
2599 ºÆÇÛÃ֤DZƶÁ¤ò¼õ¤±¤ë³ÊǼñ°Ì (storage unit) ¤Þ¤Ç¤Î¥Ð¥¤¥È¥ª¥Õ¥»¥Ã¥È¤Ç¤¢¤ë¡£
2600 .\"O For an
2601 .\"O executable file or shared object, the value is the virtual address of
2602 .\"O the storage unit affected by the relocation.
2603 ¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ì¹ç¡¢
2604 ¤³¤ÎÃͤϺÆÇÛÃ֤DZƶÁ¤ò¼õ¤±¤ë³ÊǼñ°Ì¤Î²¾ÁÛ¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
2605 .TP
2606 .IR r_info
2607 .\"O This member gives both the symbol table index with respect to which the
2608 .\"O relocation must be made and the type of relocation to apply.
2609 ¤³¤Î¥á¥ó¥Ð¤Ï¡¢ºÆÇÛÃÖ¤¬¹Ô¤ï¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¡¢
2610 ŬÍѤµ¤ì¤ëºÆÇÛÃ֤Υ¿¥¤¥×¤ÎξÊý¤òÍ¿¤¨¤ë¡£
2611 .\"O Relocation
2612 .\"O types are processor specific.
2613 ºÆÇÛÃÖ¥¿¥¤¥×¤Ï¥×¥í¥»¥Ã¥µËè¤Ë°Û¤Ê¤ë¡£
2614 .\"O When the text refers to a relocation
2615 .\"O entry's relocation type or symbol table index, it means the result of
2616 .\"O applying
2617 .\"O .BR ELF_[32|64]_R_TYPE
2618 .\"O or
2619 .\"O .BR ELF[32|64]_R_SYM ,
2620 .\"O respectively, to the entry's
2621 .\"O .IR r_info
2622 .\"O member.
2623 ¥Æ¥­¥¹¥È¤¬ºÆÇÛÃÖ¥¨¥ó¥È¥ê¤ÎºÆÇÛÃÖ¥¿¥¤¥×
2624 ¤Þ¤¿¤Ï¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¡¢
2625 ¤½¤ì¤¾¤ì¥¨¥ó¥È¥ê¤Î
2626 .IR r_info
2627 ¥á¥ó¥Ð¤ËÂФ·¤Æ¡¢¤½¤ì¤¾¤ì
2628 .BR ELF_[32|64]_R_TYPE
2629 ¤È
2630 .BR ELF[32|64]_R_SYM
2631 ¤òŬÍѤ·¤¿·ë²Ì¤ò°ÕÌ£¤¹¤ë¡£
2632 .TP
2633 .IR r_addend
2634 .\"O This member specifies a constant addend used to compute the value to be
2635 .\"O stored into the relocatable field.
2636 ¤³¤Î¥á¥ó¥Ð¤ÏÄê¿ô¤Î²Ã¿ô¤ò»ØÄꤹ¤ë¡£
2637 ¤³¤Î²Ã¿ô¤ÏºÆÇÛÃÖ²Äǽ¥Õ¥£¡¼¥ë¥É¤Ë³ÊǼ¤µ¤ì¤ëÃͤò·×»»¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡£
2638 .\" .El
2639 .PP
2640 .\"O The .dynamic section contains a series of structures that hold relevant
2641 .\"O dynamic linking information.
2642 .\"O The d_tag member controls the interpretation
2643 .\"O of d_un.
2644 \&.dynamic ¥»¥¯¥·¥ç¥ó¤Ï¡¢´ØÏ¢¤¹¤ëưŪ¥ê¥ó¥¯¾ðÊó¤òÊÝ»ý¤·¤Æ¤¤¤ë
2645 °ìÏ¢¤Î¹½Â¤ÂΤòÊÝ»ý¤¹¤ë¡£
2646 d_tag ¥á¥ó¥Ð¤Ï d_un ¤Î²ò¼á¤òÀ©¸æ¤¹¤ë¡£
2647 .in +4n
2648 .nf
2649
2650 typedef struct {
2651     Elf32_Sword    d_tag;
2652     union {
2653         Elf32_Word d_val;
2654         Elf32_Addr d_ptr;
2655     } d_un;
2656 } Elf32_Dyn;
2657 extern Elf32_Dyn _DYNAMIC[];
2658 .fi
2659 .in
2660 .in +4n
2661 .nf
2662
2663 typedef struct {
2664     Elf64_Sxword    d_tag;
2665     union {
2666         Elf64_Xword d_val;
2667         Elf64_Addr  d_ptr;
2668     } d_un;
2669 } Elf64_Dyn;
2670 extern Elf64_Dyn _DYNAMIC[];
2671 .fi
2672 .in
2673 .\" .Bl -tag -width "d_tag"
2674 .TP 10
2675 .IR d_tag
2676 .\"O This member may have any of the following values:
2677 ¤³¤Î¥á¥ó¥Ð¤Ï°Ê²¼¤ÎÃͤò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë:
2678 .\" .Bl -tag -width "DT_SYMBOLIC"
2679 .RS 10
2680 .TP 12
2681 .BR DT_NULL
2682 .\"O Marks end of dynamic section
2683 ưŪ¥»¥¯¥·¥ç¥ó¤Î½ª¤ê¤Î¥Þ¡¼¥¯
2684 .TP
2685 .BR DT_NEEDED
2686 .\"O String table offset to name of a needed library
2687 ɬÍפʥ饤¥Ö¥é¥ê¤Î̾Á°¤Ø¤Îʸ»úÎó¥Æ¡¼¥Ö¥ë¥ª¥Õ¥»¥Ã¥È
2688 .TP
2689 .BR DT_PLTRELSZ
2690 .\"O Size in bytes of PLT relocs
2691 PLT ºÆÇÛÃÖ (reloc) ¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì)
2692 .TP
2693 .BR DT_PLTGOT
2694 .\"O Address of PLT and/or GOT
2695 PLT ¤È GOT (¤Þ¤¿¤Ï²¿¤ì¤«°ìÊý) ¤Î¥¢¥É¥ì¥¹
2696 .TP
2697 .BR DT_HASH
2698 .\"O Address of symbol hash table
2699 ¥·¥ó¥Ü¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¥¢¥É¥ì¥¹
2700 .TP
2701 .BR DT_STRTAB
2702 .\"O Address of string table
2703 ʸ»úÎó¥Æ¡¼¥Ö¥ë¤Î¥¢¥É¥ì¥¹
2704 .TP
2705 .BR DT_SYMTAB
2706 .\"O Address of symbol table
2707 ¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤Î¥¢¥É¥ì¥¹
2708 .TP
2709 .BR DT_RELA
2710 .\"O Address of Rela relocs table
2711 Rela ºÆÇÛÃ֥ơ¼¥Ö¥ë¤Î¥¢¥É¥ì¥¹
2712 .TP
2713 .BR DT_RELASZ
2714 .\"O Size in bytes of Rela table
2715 Rela ¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì)
2716 .TP
2717 .BR DT_RELAENT
2718 .\"O Size in bytes of a Rela table entry
2719 Rela ¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì)
2720 .TP
2721 .BR DT_STRSZ
2722 .\"O Size in bytes of string table
2723 ʸ»úÎó¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì)
2724 .TP
2725 .BR DT_SYMENT
2726 .\"O Size in bytes of a symbol table entry
2727 ¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì)
2728 .TP
2729 .BR DT_INIT
2730 .\"O Address of the initialization function
2731 ½é´ü²½´Ø¿ô¤Î¥¢¥É¥ì¥¹
2732 .TP
2733 .BR DT_FINI
2734 .\"O Address of the termination function
2735 ½ªÎ»´Ø¿ô¤Î¥¢¥É¥ì¥¹
2736 .TP
2737 .BR DT_SONAME
2738 .\"O String table offset to name of shared object
2739 ¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤Ø¤Îʸ»úÎó¥Æ¡¼¥Ö¥ë¥ª¥Õ¥»¥Ã¥È
2740 .TP
2741 .BR DT_RPATH
2742 .\"O String table offset to library search path (deprecated)
2743 ¥é¥¤¥Ö¥é¥ê¸¡º÷¥Ñ¥¹¤Ø¤Îʸ»úÎó¥Æ¡¼¥Ö¥ë¥ª¥Õ¥»¥Ã¥È (¿ä¾©¤µ¤ì¤Ê¤¤)
2744 .TP
2745 .BR DT_SYMBOLIC
2746 .\"O Alert linker to search this shared object before the executable for symbols
2747 ¥ê¥ó¥«¤¬¥·¥ó¥Ü¥ë¤Î¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤è¤êÁ°¤Ë
2748 ¤³¤Î¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤ò¸¡º÷¤·¤¿¾ì¹ç¤Ï¡¢·Ù¹ð¤ò½Ð¤¹¡£
2749 .TP
2750 .BR DT_REL
2751 .\"O Address of Rel relocs table
2752 Rel ºÆÇÛÃ֥ơ¼¥Ö¥ë¤Î¥¢¥É¥ì¥¹
2753 .TP
2754 .BR DT_RELSZ
2755 .\"O Size in bytes of Rel table
2756 Rel ¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì)
2757 .TP
2758 .BR DT_RELENT
2759 .\"O Size in bytes of a Rel table entry
2760 Rel ¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì)
2761 .TP
2762 .BR DT_PLTREL
2763 .\"O Type of reloc the PLT refers (Rela or Rel)
2764 PLT ¤¬»²¾È¤¹¤ëºÆÇÛÃ֥ơ¼¥Ö¥ë¤Î¥¿¥¤¥× (Rela ¤Þ¤¿¤Ï Rel)
2765 .TP
2766 .BR DT_DEBUG
2767 .\"O Undefined use for debugging
2768 ¥Ç¥Ð¥Ã¥°¤Î¤¿¤á¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ÆâÍƤÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
2769 .TP
2770 .BR DT_TEXTREL
2771 .\"O Absence of this indicates no relocs should apply to a nonwritable segment
2772 ¤³¤ì¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢
2773 ½ñ¤­¹þ¤ßÉԲĤΥ»¥°¥á¥ó¥È¤Ë¤ÏºÆÇÛÃÖ¤ÏŬÍѤµ¤ì¤Ê¤¤¡£
2774 .TP
2775 .BR DT_JMPREL
2776 .\"O Address of reloc entries solely for the PLT
2777 PLT ÀìÍѤκÆÇÛÃÖ¥¨¥ó¥È¥ê¤Î¥¢¥É¥ì¥¹
2778 .TP
2779 .BR DT_BIND_NOW
2780 .\"O Instruct dynamic linker to process all relocs before transferring control to
2781 .\"O the executable
2782 ¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤ËÀ©¸æ¤ò¾ù¤ëÁ°¤Ë¡¢
2783 Á´¤Æ¤ÎºÆÇÛÃÖ¤ò½èÍý¤¹¤ë¤è¤¦¤ËưŪ¥ê¥ó¥«¤Ë»Ø¼¨¤¹¤ë¡£
2784 .TP
2785 .BR DT_RUNPATH
2786 .\"O String table offset to library search path
2787 ¥é¥¤¥Ö¥é¥ê¸¡º÷¥Ñ¥¹¤Ø¤Îʸ»úÎó¥Æ¡¼¥Ö¥ë¥ª¥Õ¥»¥Ã¥È
2788 .TP
2789 .BR DT_LOPROC
2790 .\"O Start of processor-specific semantics
2791 ¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤Î³«»Ï
2792 .TP
2793 .BR DT_HIPROC
2794 .\"O End of processor-specific semantics
2795 ¥×¥í¥»¥Ã¥µ¸ÇÍ­¤Î°ÕÌ£¤Î½ªÎ»
2796 .RE
2797 .\" .El
2798 .TP
2799 .IR d_val
2800 .\"O This member represents integer values with various interpretations.
2801 ¤³¤Î¥á¥ó¥Ð¤ÏÍÍ¡¹¤Ê°ÕÌ£¤Ë²ò¼á¤µ¤ì¤ëÀ°¿ôÃͤǤ¢¤ë¡£
2802 .TP
2803 .IR d_ptr
2804 .\"O This member represents program virtual addresses.
2805 .\"O When interpreting
2806 .\"O these addresses, the actual address should be computed based on the
2807 .\"O original file value and memory base address.
2808 .\"O Files do not contain
2809 .\"O relocation entries to fixup these addresses.
2810 ¤³¤Î¥á¥ó¥Ð¤Ï¥×¥í¥°¥é¥à¤Î²¾ÁÛ¥¢¥É¥ì¥¹¤òɽ¤¹¡£
2811 ¤³¤ì¤é¤Î¥¢¥É¥ì¥¹¤ò²ò¼á¤¹¤ëºÝ¤Ë¡¢
2812 ¼ÂºÝ¤Î¥¢¥É¥ì¥¹¤Ï¸µ¡¹¤Î¥Õ¥¡¥¤¥ë¤ÎÃͤÈ
2813 ¥á¥â¥ê¤Î´ðÄ쥢¥É¥ì¥¹¤«¤é·×»»¤µ¤ì¤ë¡£
2814 ¥Õ¥¡¥¤¥ë¤Ë¤Ï¤³¤ì¤é¤Î¥¢¥É¥ì¥¹¤ò½¤Àµ¤¹¤ë¤¿¤á¤Î
2815 ºÆÇÛÃÖ¥¨¥ó¥È¥ê¤ò´Þ¤á¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
2816 .TP
2817 .IR _DYNAMIC
2818 .\"O Array containing all the dynamic structures in the .dynamic section.
2819 .\"O This is automatically populated by the linker.
2820 \&.dynamic ¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ëÁ´¤Æ¤ÎưŪ¹½Â¤ÂΤò´Þ¤àÇÛÎó¡£
2821 ¤³¤ì¤Ï¼«Æ°Åª¤Ë¥ê¥ó¥«¤ËÅϤµ¤ì¤ë¡£
2822 .\" .El
2823 .\"O .SH NOTES
2824 .SH È÷¹Í
2825 .\"O .\" OpenBSD
2826 .\"O .\" ELF support first appeared in
2827 .\"O .\" OpenBSD 1.2 ,
2828 .\"O .\" although not all supported platforms use it as the native
2829 .\"O .\" binary file format.
2830 .\" OpenBSD
2831 .\" ELF ¤Î¥µ¥Ý¡¼¥È¤Ï
2832 .\" OpenBSD 1.2
2833 .\" ¤Ç½é¤á¤ÆÅо줷¤¿¡£
2834 .\" ¤·¤«¤·¡¢¤³¤ì¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤ÎÁ´¤Æ¤¬
2835 .\" ¥Í¥¤¥Æ¥£¥Ö¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤È¤·¤Æ»È¤Ã¤Æ¤¤¤¿Ìõ¤Ç¤Ï¤Ê¤¤¡£
2836 .\"O ELF first appeared in
2837 .\"O System V.
2838 ELF ¤Ï System V ¤Ç½é¤á¤ÆÅо줷¤¿¡£
2839 .\"O ELF in itself first appeared in
2840 .\"O System V.
2841 ELF ¼«ÂΤÏ
2842 System V
2843 ¤Ç½é¤á¤ÆÅо줷¤¿¡£
2844 .\"O The ELF format is an adopted standard.
2845 ELF ¥Õ¥©¡¼¥Þ¥Ã¥È¤ÏºÎÂò¤µ¤ì¤¿É¸½à¤Ç¤¢¤ë¡£
2846 .\"O .\" .SH AUTHORS
2847 .\" .SH Ãø¼Ô
2848 .\"O .\" The original version of this manual page was written by
2849 .\"O .\" .An Jeroen Ruigrok van der Werven
2850 .\"O .\" .Aq asmodai@FreeBSD.org
2851 .\"O .\" with inspiration from BSDi's
2852 .\"O .\" .Bsx
2853 .\"O .\" .Nm elf
2854 .\"O .\" man page.
2855 .\" ¤³¤Î man ¥Ú¡¼¥¸¤Î¸µ¡¹¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢BSDi ¤Î
2856 .\" .Bsx
2857 .\" .Nm elf
2858 .\" man ¥Ú¡¼¥¸¤Ë»É·ã¤ò¼õ¤±¤Æ
2859 .\" .An Jeroen Ruigrok van der Werven
2860 .\" .Aq asmodai@FreeBSD.org
2861 .\" ¤¬½ñ¤¤¤¿¡£
2862 .\"O .SH SEE ALSO
2863 .SH ´ØÏ¢¹àÌÜ
2864 .BR as (1),
2865 .BR gdb (1),
2866 .BR ld (1),
2867 .BR objdump (1),
2868 .BR execve (2),
2869 .BR core (5)
2870 .PP
2871 Hewlett-Packard,
2872 .IR "Elf-64 Object File Format" .
2873 .PP
2874 Santa Cruz Operation,
2875 .IR "System V Application Binary Interface" .
2876 .PP
2877 Unix System Laboratories,
2878 "Object Files",
2879 .IR "Executable and Linking Format (ELF)" .