OSDN Git Service

f53634c09021ee76b20cbf16ca56d87d72646125
[linuxjm/LDP_man-pages.git] / po4a / ld / po / ja.po
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2015-01-23 22:24+0900\n"
10 "PO-Revision-Date: 2015-01-25 06:23+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man3/dl_iterate_phdr.3:25
20 #, no-wrap
21 msgid "DL_ITERATE_PHDR"
22 msgstr "DL_ITERATE_PHDR"
23
24 #. type: TH
25 #: build/C/man3/dl_iterate_phdr.3:25
26 #, no-wrap
27 msgid "2007-05-18"
28 msgstr "2007-05-18"
29
30 #. type: TH
31 #: build/C/man3/dl_iterate_phdr.3:25 build/C/man3/end.3:26
32 #: build/C/man8/ld.so.8:5 build/C/man8/ldconfig.8:22
33 #: build/C/man1/memusage.1:24 build/C/man1/memusagestat.1:23
34 #: build/C/man1/mtrace.1:23 build/C/man1/pldd.1:25 build/C/man8/sln.8:25
35 #, no-wrap
36 msgid "GNU"
37 msgstr "GNU"
38
39 #. type: TH
40 #: build/C/man3/dl_iterate_phdr.3:25 build/C/man3/dlopen.3:35
41 #: build/C/man5/elf.5:35 build/C/man3/end.3:26 build/C/man8/ld.so.8:5
42 #: build/C/man8/ldconfig.8:22 build/C/man1/ldd.1:14
43 #: build/C/man7/rtld-audit.7:28 build/C/man8/sln.8:25
44 #, no-wrap
45 msgid "Linux Programmer's Manual"
46 msgstr "Linux Programmer's Manual"
47
48 #. type: SH
49 #: build/C/man3/dl_iterate_phdr.3:26 build/C/man3/dlopen.3:36
50 #: build/C/man5/elf.5:36 build/C/man3/end.3:27 build/C/man8/ld.so.8:6
51 #: build/C/man8/ldconfig.8:23 build/C/man1/ldd.1:15 build/C/man1/memusage.1:25
52 #: build/C/man1/memusagestat.1:24 build/C/man1/mtrace.1:24
53 #: build/C/man1/pldd.1:26 build/C/man7/rtld-audit.7:29 build/C/man8/sln.8:26
54 #: build/C/man1/sprof.1:26
55 #, no-wrap
56 msgid "NAME"
57 msgstr "名前"
58
59 #. type: Plain text
60 #: build/C/man3/dl_iterate_phdr.3:28
61 msgid "dl_iterate_phdr - walk through list of shared objects"
62 msgstr "dl_iterate_phdr - 共有オブジェクトのリストを辿る"
63
64 #. type: SH
65 #: build/C/man3/dl_iterate_phdr.3:28 build/C/man3/dlopen.3:39
66 #: build/C/man5/elf.5:38 build/C/man3/end.3:29 build/C/man8/ld.so.8:8
67 #: build/C/man8/ldconfig.8:25 build/C/man1/ldd.1:17 build/C/man1/memusage.1:27
68 #: build/C/man1/memusagestat.1:26 build/C/man1/mtrace.1:26
69 #: build/C/man1/pldd.1:28 build/C/man7/rtld-audit.7:31 build/C/man8/sln.8:28
70 #: build/C/man1/sprof.1:28
71 #, no-wrap
72 msgid "SYNOPSIS"
73 msgstr "書式"
74
75 #. type: Plain text
76 #: build/C/man3/dl_iterate_phdr.3:32
77 #, no-wrap
78 msgid ""
79 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
80 "B<#include E<lt>link.hE<gt>>\n"
81 msgstr ""
82 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
83 "B<#include E<lt>link.hE<gt>>\n"
84
85 #. type: Plain text
86 #: build/C/man3/dl_iterate_phdr.3:37
87 #, no-wrap
88 msgid ""
89 "B<int dl_iterate_phdr(>\n"
90 "B<          int (*>I<callback>B<) (struct dl_phdr_info *>I<info>B<,>\n"
91 "B<                           size_t >I<size>B<, void *>I<data>B<),>\n"
92 "B<          void *>I<data>B<);>\n"
93 msgstr ""
94 "B<int dl_iterate_phdr(>\n"
95 "B<          int (*>I<callback>B<) (struct dl_phdr_info *>I<info>B<,>\n"
96 "B<                           size_t >I<size>B<, void *>I<data>B<),>\n"
97 "B<          void *>I<data>B<);>\n"
98
99 #. type: SH
100 #: build/C/man3/dl_iterate_phdr.3:38 build/C/man3/dlopen.3:51
101 #: build/C/man5/elf.5:43 build/C/man3/end.3:35 build/C/man8/ld.so.8:18
102 #: build/C/man8/ldconfig.8:54 build/C/man1/ldd.1:19 build/C/man1/memusage.1:29
103 #: build/C/man1/memusagestat.1:28 build/C/man1/mtrace.1:28
104 #: build/C/man1/pldd.1:33 build/C/man7/rtld-audit.7:35 build/C/man8/sln.8:32
105 #: build/C/man1/sprof.1:33
106 #, no-wrap
107 msgid "DESCRIPTION"
108 msgstr "説明"
109
110 #. type: Plain text
111 #: build/C/man3/dl_iterate_phdr.3:43
112 msgid "The B<dl_iterate_phdr>()  function allows an application to inquire at run time to find out which shared objects it has loaded."
113 msgstr "B<dl_iterate_phdr>()  関数を使うと、アプリケーションは実行時に どの共有オブジェクトをロードしたかを見つけることができる。"
114
115 #. type: Plain text
116 #: build/C/man3/dl_iterate_phdr.3:53
117 msgid "The B<dl_iterate_phdr>()  function walks through the list of an application's shared objects and calls the function I<callback> once for each object, until either all shared objects have been processed or I<callback> returns a nonzero value."
118 msgstr "B<dl_iterate_phdr>()  関数はアプリケーションの共有オブジェクトのリストを辿り、 各オブジェクトに対して関数 I<callback> を 1 回ずつ呼び出す。 これは全ての共有オブジェクトが処理されるか、 I<callback> が 0 以外の値を返すまで行われる。"
119
120 #. type: Plain text
121 #: build/C/man3/dl_iterate_phdr.3:70
122 msgid "Each call to I<callback> receives three arguments: I<info>, which is a pointer to a structure containing information about the shared object; I<size>, which is the size of the structure pointed to by I<info>; and I<data>, which is a copy of whatever value was passed by the calling program as the second argument (also named I<data>)  in the call to B<dl_iterate_phdr>()."
123 msgstr "各々の I<callback> 呼び出しは 3 つの引き数を受け取る: I<info> は共有オブジェクトの情報を保持する構造体へのポインターである。 I<size> は I<info> で指される構造体のサイズである。 I<data> は呼び出し元プログラムから B<dl_iterate_phdr>()  の呼び出しの (同じく I<data> という名前の) 第 2 引き数として渡される値のコピーである。"
124
125 #. type: Plain text
126 #: build/C/man3/dl_iterate_phdr.3:74
127 msgid "The I<info> argument is a structure of the following type:"
128 msgstr "I<info> 引き数は、以下のような型の構造体である。"
129
130 #. type: Plain text
131 #: build/C/man3/dl_iterate_phdr.3:86
132 #, no-wrap
133 msgid ""
134 "struct dl_phdr_info {\n"
135 "    ElfW(Addr)        dlpi_addr;  /* Base address of object */\n"
136 "    const char       *dlpi_name;  /* (Null-terminated) name of\n"
137 "                                     object */\n"
138 "    const ElfW(Phdr) *dlpi_phdr;  /* Pointer to array of\n"
139 "                                     ELF program headers\n"
140 "                                     for this object */\n"
141 "    ElfW(Half)        dlpi_phnum; /* # of items in I<dlpi_phdr> */\n"
142 "};\n"
143 msgstr ""
144 "struct dl_phdr_info {\n"
145 "    ElfW(Addr)        dlpi_addr;  /* オブジェクトのベースアドレス */\n"
146 "    const char       *dlpi_name;  /* (ヌル文字で終端された)\n"
147 "                                     オブジェクト名 */\n"
148 "    const ElfW(Phdr) *dlpi_phdr;  /* このオブジェクトの\n"
149 "                                     ELF プログラムヘッダの\n"
150 "                                     配列へのポインター */\n"
151 "    ElfW(Half)        dlpi_phnum; /* I<dlpi_phdr> のアイテム数 */\n"
152 "};\n"
153
154 #. type: Plain text
155 #: build/C/man3/dl_iterate_phdr.3:98
156 msgid "(The I<ElfW>()  macro definition turns its argument into the name of an ELF data type suitable for the hardware architecture.  For example, on a 32-bit platform, ElfW(Addr) yields the data type name Elf32_Addr.  Further information on these types can be found in the I<E<lt>elf.hE<gt>> and I<E<lt>link.hE<gt>> header files.)"
157 msgstr "(I<ElfW>()  マクロ定義は引き数をハードウェアアーキテクチャーに適した ELF データ型の名前に変換する。 たとえば、32 ビットプラットフォームでは ElfW(Addr) はデータ型名 Elf32_Addr を生成する。 これらの型についての更に詳細な情報は、ヘッダファイル I<E<lt>elf.hE<gt>> と I<E<lt>link.hE<gt>> にある。"
158
159 #. type: Plain text
160 #: build/C/man3/dl_iterate_phdr.3:109
161 msgid "The I<dlpi_addr> field indicates the base address of the shared object (i.e., the difference between the virtual memory address of the shared object and the offset of that object in the file from which it was loaded).  The I<dlpi_name> field is a null-terminated string giving the pathname from which the shared object was loaded."
162 msgstr "I<dlpi_addr> フィールドは共有オブジェクトのベースアドレス (つまり、共有オブジェクトの仮想メモリアドレスと、 ファイル (このファイルから共有オブジェクトがロードされる) における 共有オブジェクトのオフセットとの差分) を表す。 I<dlpi_name> はヌル文字で終端された文字列であり、 このパス名のファイルから共有オブジェクトがロードされる。"
163
164 #. type: Plain text
165 #: build/C/man3/dl_iterate_phdr.3:124
166 msgid "To understand the meaning of the I<dlpi_phdr> and I<dlpi_phnum> fields, we need to be aware that an ELF shared object consists of a number of segments, each of which has a corresponding program header describing the segment.  The I<dlpi_phdr> field is a pointer to an array of the program headers for this shared object.  The I<dlpi_phnum> field indicates the size of this array."
167 msgstr "I<dlpi_phdr> と I<dlpi_phnum> フィールドの意味を理解するには、 ELF 共有オブジェクトが幾つかのセグメントから構成されていることと、 各セグメントがそれに対応するプログラムヘッダ (そのセグメントを説明する) を持っていることを知っている必要がある。 I<dlpi_phdr> フィールドは、この共有オブジェクトのプログラムヘッダの配列へのポインターである。 I<dlpi_phnum> は、この配列のサイズを表す。"
168
169 #. type: Plain text
170 #: build/C/man3/dl_iterate_phdr.3:126
171 msgid "These program headers are structures of the following form:"
172 msgstr "これらのプログラムヘッダは以下のような形式の構造体である:"
173
174 #. type: Plain text
175 #: build/C/man3/dl_iterate_phdr.3:139
176 #, no-wrap
177 msgid ""
178 "typedef struct {\n"
179 "    Elf32_Word  p_type;    /* Segment type */\n"
180 "    Elf32_Off   p_offset;  /* Segment file offset */\n"
181 "    Elf32_Addr  p_vaddr;   /* Segment virtual address */\n"
182 "    Elf32_Addr  p_paddr;   /* Segment physical address */\n"
183 "    Elf32_Word  p_filesz;  /* Segment size in file */\n"
184 "    Elf32_Word  p_memsz;   /* Segment size in memory */\n"
185 "    Elf32_Word  p_flags;   /* Segment flags */\n"
186 "    Elf32_Word  p_align;   /* Segment alignment */\n"
187 "} Elf32_Phdr;\n"
188 msgstr ""
189 "typedef struct\n"
190 "{\n"
191 "    Elf32_Word  p_type;    /* セグメントの型 */\n"
192 "    Elf32_Off   p_offset;  /* セグメントのファイルオフセット */\n"
193 "    Elf32_Addr  p_vaddr;   /* セグメントの仮想アドレス */\n"
194 "    Elf32_Addr  p_paddr;   /* セグメントの物理アドレス */\n"
195 "    Elf32_Word  p_filesz;  /* ファイルにおけるセグメントサイズ */\n"
196 "    Elf32_Word  p_memsz;   /* メモリにおけるセグメントサイズ */\n"
197 "    Elf32_Word  p_flags;   /* セグメントフラグ */\n"
198 "    Elf32_Word  p_align;   /* セグメントの配置 (alignment) */\n"
199 "} Elf32_Phdr;\n"
200
201 #. type: Plain text
202 #: build/C/man3/dl_iterate_phdr.3:145
203 msgid "Note that we can calculate the location of a particular program header, I<x>, in virtual memory using the formula:"
204 msgstr "特定のプログラムヘッダ I<x> の仮想メモリにおける位置は、以下の式で計算できる点に注意すること:"
205
206 #. type: Plain text
207 #: build/C/man3/dl_iterate_phdr.3:148
208 #, no-wrap
209 msgid "  addr == info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[x].p_vaddr;\n"
210 msgstr "  addr == info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[x].p_vaddr;\n"
211
212 #. type: SH
213 #: build/C/man3/dl_iterate_phdr.3:149
214 #, no-wrap
215 msgid "RETURN VALUE"
216 msgstr "返り値"
217
218 #. type: Plain text
219 #: build/C/man3/dl_iterate_phdr.3:154
220 msgid "The B<dl_iterate_phdr>()  function returns whatever value was returned by the last call to I<callback>."
221 msgstr "B<dl_iterate_phdr>()  関数は最後の I<callback> の呼び出しで返された値を返す。"
222
223 #. type: SH
224 #: build/C/man3/dl_iterate_phdr.3:154 build/C/man1/pldd.1:50
225 #, no-wrap
226 msgid "VERSIONS"
227 msgstr "バージョン"
228
229 #. type: Plain text
230 #: build/C/man3/dl_iterate_phdr.3:157
231 msgid "B<dl_iterate_phdr>()  has been supported in glibc since version 2.2.4."
232 msgstr "B<dl_iterate_phdr>()  は glibc のバージョン 2.2.4 以降でサポートされている。"
233
234 #. type: SH
235 #: build/C/man3/dl_iterate_phdr.3:157 build/C/man3/dlopen.3:381
236 #: build/C/man3/end.3:50 build/C/man1/pldd.1:53 build/C/man7/rtld-audit.7:461
237 #: build/C/man1/sprof.1:75
238 #, no-wrap
239 msgid "CONFORMING TO"
240 msgstr "準拠"
241
242 #. type: Plain text
243 #: build/C/man3/dl_iterate_phdr.3:161
244 msgid "The B<dl_iterate_phdr>()  function is Linux-specific and should be avoided in portable applications."
245 msgstr "B<dl_iterate_phdr>()  関数は Linux 固有であり、移植を考えたアプリケーションでは避けるべきである。"
246
247 #. type: SH
248 #: build/C/man3/dl_iterate_phdr.3:161 build/C/man3/dlopen.3:446
249 #: build/C/man3/end.3:76 build/C/man1/memusage.1:201
250 #: build/C/man1/memusagestat.1:81 build/C/man1/pldd.1:71
251 #: build/C/man7/rtld-audit.7:502 build/C/man1/sprof.1:79
252 #, no-wrap
253 msgid "EXAMPLE"
254 msgstr "例"
255
256 #. type: Plain text
257 #: build/C/man3/dl_iterate_phdr.3:166
258 msgid "The following program displays a list of pathnames of the shared objects it has loaded.  For each shared object, the program lists the virtual addresses at which the object's ELF segments are loaded."
259 msgstr "以下のプログラムは、共有オブジェクトがロードされた パス名の一覧を表示する。 各共有オブジェクトについて、このプログラムは オブジェクトの ELF セグメントがロードされた 仮想アドレスの一覧を表示する。"
260
261 #. type: Plain text
262 #: build/C/man3/dl_iterate_phdr.3:172
263 #, no-wrap
264 msgid ""
265 "#define _GNU_SOURCE\n"
266 "#include E<lt>link.hE<gt>\n"
267 "#include E<lt>stdlib.hE<gt>\n"
268 "#include E<lt>stdio.hE<gt>\n"
269 msgstr ""
270 "#define _GNU_SOURCE\n"
271 "#include E<lt>link.hE<gt>\n"
272 "#include E<lt>stdlib.hE<gt>\n"
273 "#include E<lt>stdio.hE<gt>\n"
274
275 #. type: Plain text
276 #: build/C/man3/dl_iterate_phdr.3:177
277 #, no-wrap
278 msgid ""
279 "static int\n"
280 "callback(struct dl_phdr_info *info, size_t size, void *data)\n"
281 "{\n"
282 "    int j;\n"
283 msgstr ""
284 "static int\n"
285 "callback(struct dl_phdr_info *info, size_t size, void *data)\n"
286 "{\n"
287 "    int j;\n"
288
289 #. type: Plain text
290 #: build/C/man3/dl_iterate_phdr.3:180
291 #, no-wrap
292 msgid ""
293 "    printf(\"name=%s (%d segments)\\en\", info-E<gt>dlpi_name,\n"
294 "        info-E<gt>dlpi_phnum);\n"
295 msgstr ""
296 "    printf(\"name=%s (%d segments)\\en\", info-E<gt>dlpi_name,\n"
297 "        info-E<gt>dlpi_phnum);\n"
298
299 #. type: Plain text
300 #: build/C/man3/dl_iterate_phdr.3:186
301 #, no-wrap
302 msgid ""
303 "    for (j = 0; j E<lt> info-E<gt>dlpi_phnum; j++)\n"
304 "         printf(\"\\et\\et header %2d: address=%10p\\en\", j,\n"
305 "             (void *) (info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[j].p_vaddr));\n"
306 "    return 0;\n"
307 "}\n"
308 msgstr ""
309 "    for (j = 0; j E<lt> info-E<gt>dlpi_phnum; j++)\n"
310 "         printf(\"\\et\\et header %2d: address=%10p\\en\", j,\n"
311 "             (void *) (info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[j].p_vaddr));\n"
312 "    return 0;\n"
313 "}\n"
314
315 #. type: Plain text
316 #: build/C/man3/dl_iterate_phdr.3:191
317 #, no-wrap
318 msgid ""
319 "int\n"
320 "main(int argc, char *argv[])\n"
321 "{\n"
322 "    dl_iterate_phdr(callback, NULL);\n"
323 msgstr ""
324 "int\n"
325 "main(int argc, char *argv[])\n"
326 "{\n"
327 "    dl_iterate_phdr(callback, NULL);\n"
328
329 #. type: Plain text
330 #: build/C/man3/dl_iterate_phdr.3:194 build/C/man3/end.3:107
331 #, no-wrap
332 msgid ""
333 "    exit(EXIT_SUCCESS);\n"
334 "}\n"
335 msgstr ""
336 "    exit(EXIT_SUCCESS);\n"
337 "}\n"
338
339 #. type: SH
340 #: build/C/man3/dl_iterate_phdr.3:195 build/C/man3/dlopen.3:521
341 #: build/C/man5/elf.5:1939 build/C/man3/end.3:108 build/C/man8/ld.so.8:489
342 #: build/C/man8/ldconfig.8:175 build/C/man1/ldd.1:108
343 #: build/C/man1/memusage.1:271 build/C/man1/memusagestat.1:88
344 #: build/C/man1/mtrace.1:61 build/C/man1/pldd.1:91
345 #: build/C/man7/rtld-audit.7:602 build/C/man8/sln.8:60
346 #: build/C/man1/sprof.1:299
347 #, no-wrap
348 msgid "SEE ALSO"
349 msgstr "関連項目"
350
351 #. type: Plain text
352 #: build/C/man3/dl_iterate_phdr.3:202
353 msgid "B<ldd>(1), B<objdump>(1), B<readelf>(1), B<dlopen>(3), B<elf>(5), B<ld.so>(8)"
354 msgstr "B<ldd>(1), B<objdump>(1), B<readelf>(1), B<dlopen>(3), B<elf>(5), B<ld.so>(8)"
355
356 #. type: Plain text
357 #: build/C/man3/dl_iterate_phdr.3:205
358 msgid "I<Executable and Linking Format Specification>, available at various locations online."
359 msgstr "オンラインのいろいろな場所で入手できる I<Executable and Linking Format Specification>"
360
361 #. type: SH
362 #: build/C/man3/dl_iterate_phdr.3:205 build/C/man3/dlopen.3:531
363 #: build/C/man5/elf.5:1963 build/C/man3/end.3:113 build/C/man8/ld.so.8:505
364 #: build/C/man8/ldconfig.8:178 build/C/man1/ldd.1:113
365 #: build/C/man1/memusage.1:275 build/C/man1/memusagestat.1:91
366 #: build/C/man1/mtrace.1:64 build/C/man1/pldd.1:96
367 #: build/C/man7/rtld-audit.7:607 build/C/man8/sln.8:64
368 #: build/C/man1/sprof.1:303
369 #, no-wrap
370 msgid "COLOPHON"
371 msgstr "この文書について"
372
373 #. type: Plain text
374 #: build/C/man3/dl_iterate_phdr.3:213 build/C/man3/dlopen.3:539
375 #: build/C/man5/elf.5:1971 build/C/man3/end.3:121 build/C/man8/ld.so.8:513
376 #: build/C/man8/ldconfig.8:186 build/C/man1/ldd.1:121
377 #: build/C/man1/memusage.1:283 build/C/man1/memusagestat.1:99
378 #: build/C/man1/mtrace.1:72 build/C/man1/pldd.1:104
379 #: build/C/man7/rtld-audit.7:615 build/C/man8/sln.8:72
380 #: build/C/man1/sprof.1:311
381 msgid "This page is part of release 3.78 of the Linux I<man-pages> project.  A description of the project, information about reporting bugs, and the latest version of this page, can be found at \\%http://www.kernel.org/doc/man-pages/."
382 msgstr ""
383 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.78 の一部\n"
384 "である。プロジェクトの説明とバグ報告に関する情報は\n"
385 "http://www.kernel.org/doc/man-pages/ に書かれている。"
386
387 #. type: TH
388 #: build/C/man3/dlopen.3:35
389 #, no-wrap
390 msgid "DLOPEN"
391 msgstr "DLOPEN"
392
393 #. type: TH
394 #: build/C/man3/dlopen.3:35 build/C/man1/ldd.1:14
395 #, no-wrap
396 msgid "2014-10-02"
397 msgstr "2014-10-02"
398
399 #. type: TH
400 #: build/C/man3/dlopen.3:35 build/C/man5/elf.5:35 build/C/man7/rtld-audit.7:28
401 #: build/C/man1/sprof.1:25
402 #, no-wrap
403 msgid "Linux"
404 msgstr "Linux"
405
406 #. type: Plain text
407 #: build/C/man3/dlopen.3:39
408 msgid "dladdr, dlclose, dlerror, dlopen, dlsym, dlvsym - programming interface to dynamic linking loader"
409 msgstr "dlclose, dlerror, dlopen, dlsym - 動的リンクを行うローダーへの プログラミングインターフェース"
410
411 #. type: Plain text
412 #: build/C/man3/dlopen.3:41
413 msgid "B<#include E<lt>dlfcn.hE<gt>>"
414 msgstr "B<#include E<lt>dlfcn.hE<gt>>"
415
416 #. type: Plain text
417 #: build/C/man3/dlopen.3:43
418 msgid "B<void *dlopen(const char *>I<filename>B<, int >I<flag>B<);>"
419 msgstr "B<void *dlopen(const char *>I<filename>B<, int >I<flag>B<);>"
420
421 #. type: Plain text
422 #: build/C/man3/dlopen.3:45
423 msgid "B<char *dlerror(void);>"
424 msgstr "B<char *dlerror(void);>"
425
426 #. type: Plain text
427 #: build/C/man3/dlopen.3:47
428 msgid "B<void *dlsym(void *>I<handle>B<, const char *>I<symbol>B<);>"
429 msgstr "B<void *dlsym(void *>I<handle>B<, const char *>I<symbol>B<);>"
430
431 #. type: Plain text
432 #: build/C/man3/dlopen.3:49
433 msgid "B<int dlclose(void *>I<handle>B<);>"
434 msgstr "B<int dlclose(void *>I<handle>B<);>"
435
436 #. type: Plain text
437 #: build/C/man3/dlopen.3:51
438 msgid "Link with I<-ldl>."
439 msgstr "I<-ldl> でリンクする。"
440
441 #. type: Plain text
442 #: build/C/man3/dlopen.3:58
443 msgid "The four functions B<dlopen>(), B<dlsym>(), B<dlclose>(), B<dlerror>()  implement the interface to the dynamic linking loader."
444 msgstr "B<dlopen>(), B<dlsym>(), B<dlclose>(), B<dlerror>()  の 4つの関数は、動的リンク (dynamic linking) を行うローダーへの インターフェースを実装したものである。"
445
446 #. type: SS
447 #: build/C/man3/dlopen.3:58
448 #, no-wrap
449 msgid "dlerror()"
450 msgstr "dlerror()"
451
452 #. type: Plain text
453 #: build/C/man3/dlopen.3:71
454 msgid "The function B<dlerror>()  returns a human-readable string describing the most recent error that occurred from B<dlopen>(), B<dlsym>()  or B<dlclose>()  since the last call to B<dlerror>().  It returns NULL if no errors have occurred since initialization or since it was last called."
455 msgstr "関数 B<dlerror>()  は、前回 B<dlerror>()  が呼び出された後に、 B<dlopen>(), B<dlsym>(), B<dlclose>()  のいずれかで最後に発生したエラーについての説明メッセージを返す。 初期化後または前回呼び出された後で、エラーが発生していなければ NULL を返す。"
456
457 #. type: SS
458 #: build/C/man3/dlopen.3:71
459 #, no-wrap
460 msgid "dlopen()"
461 msgstr "dlopen()"
462
463 #. type: Plain text
464 #: build/C/man3/dlopen.3:89
465 msgid "The function B<dlopen>()  loads the dynamic library file named by the null-terminated string I<filename> and returns an opaque \"handle\" for the dynamic library.  If I<filename> is NULL, then the returned handle is for the main program.  If I<filename> contains a slash (\"/\"), then it is interpreted as a (relative or absolute) pathname.  Otherwise, the dynamic linker searches for the library as follows (see B<ld.so>(8)  for further details):"
466 msgstr "関数 B<dlopen>()  は、ヌル終端された文字列 I<filename> で指定されたファイル名の動的ライブラリ (dynamic library) をロードし、 その動的ライブラリへの内部「ハンドル」を返す。 I<filename> が NULL の場合、メインプログラムへのハンドルが返される。 I<filename> がスラッシュ (\"/\") を含む場合、(相対か絶対かの)パス名として解釈される。 それ以外の場合、動的リンカーは以下の手順でライブラリを検索する (詳細は B<ld.so>(8)  を参照):"
467
468 #. type: IP
469 #: build/C/man3/dlopen.3:89 build/C/man3/dlopen.3:93 build/C/man3/dlopen.3:100
470 #: build/C/man3/dlopen.3:104 build/C/man3/dlopen.3:111 build/C/man8/ld.so.8:56
471 #: build/C/man8/ld.so.8:61 build/C/man8/ld.so.8:66 build/C/man8/ld.so.8:70
472 #: build/C/man8/ld.so.8:80
473 #, no-wrap
474 msgid "o"
475 msgstr "o"
476
477 #. type: Plain text
478 #: build/C/man3/dlopen.3:93
479 msgid "(ELF only) If the executable file for the calling program contains a DT_RPATH tag, and does not contain a DT_RUNPATH tag, then the directories listed in the DT_RPATH tag are searched."
480 msgstr "(ELF のみ) 呼び出し元プログラムの実行ファイルに DT_RPATH タグが含まれており、 DT_RUNPATH タグが含まれていない場合、DT_RPATH タグに書かれている ディレクトリリストを検索する。"
481
482 #. type: Plain text
483 #: build/C/man3/dlopen.3:100
484 msgid "If, at the time that the program was started, the environment variable B<LD_LIBRARY_PATH> was defined to contain a colon-separated list of directories, then these are searched.  (As a security measure this variable is ignored for set-user-ID and set-group-ID programs.)"
485 msgstr "プログラムの開始時に環境変数 B<LD_LIBRARY_PATH> にコロン区切りのディレクトリのリストが定義されていれば、 この環境変数に定義されたディレクトリが検索される (セキュリティ上の理由で、この変数は set-UID や set-GID された プログラムの場合は無視される)。"
486
487 #. type: Plain text
488 #: build/C/man3/dlopen.3:104
489 msgid "(ELF only) If the executable file for the calling program contains a DT_RUNPATH tag, then the directories listed in that tag are searched."
490 msgstr "(ELF のみ) 呼び出し元プログラムの実行ファイルに DT_RUNPATH タグが含まれて いる場合、そのタグに書かれているディレクトリリストを検索する。"
491
492 #. type: Plain text
493 #: build/C/man3/dlopen.3:111
494 msgid "The cache file I</etc/ld.so.cache> (maintained by B<ldconfig>(8))  is checked to see whether it contains an entry for I<filename>."
495 msgstr "キャッシュファイル I</etc/ld.so.cache> の中に I<filename> のエントリが入っているかをチェックする (B</etc/ld.so.cache> は B<ldconfig>(8)  によって管理されている)。"
496
497 #. type: Plain text
498 #: build/C/man3/dlopen.3:117
499 msgid "The directories I</lib> and I</usr/lib> are searched (in that order)."
500 msgstr "ディレクトリ I</lib> と I</usr/lib> をこの順番で検索する。"
501
502 #. type: Plain text
503 #: build/C/man3/dlopen.3:123
504 msgid "If the library has dependencies on other shared libraries, then these are also automatically loaded by the dynamic linker using the same rules.  (This process may occur recursively, if those libraries in turn have dependencies, and so on.)"
505 msgstr "そのライブラリが他の共有ライブラリに依存している場合は、 依存しているライブラリも動的リンカーが同じ検索ルールに基づいて 自動的にロードする (それらのライブラリにさらに依存関係がある場合などは この処理は再帰的に行われる)。"
506
507 #. type: Plain text
508 #: build/C/man3/dlopen.3:126
509 msgid "One of the following two values must be included in I<flag>:"
510 msgstr "I<flag> には以下の 2 つの値のいずれかを含めなければならない:"
511
512 #. type: TP
513 #: build/C/man3/dlopen.3:126
514 #, no-wrap
515 msgid "B<RTLD_LAZY>"
516 msgstr "B<RTLD_LAZY>"
517
518 #. type: Plain text
519 #: build/C/man3/dlopen.3:134
520 msgid "Perform lazy binding.  Only resolve symbols as the code that references them is executed.  If the symbol is never referenced, then it is never resolved.  (Lazy binding is performed only for function references; references to variables are always immediately bound when the library is loaded.)"
521 msgstr "lazy binding (手抜きなシンボルの結び付け) が行う。 シンボルの解決はそのシンボルを参照するコードが実行されるときにのみ 行われる。シンボルが一度も参照されなかった場合には、そのシンボルは 解決されないままとなる。 (lazy binding は関数参照についてのみ実施される; 変数への参照は常に ライブラリがロードされた時点で直ちに解決される。)"
522
523 #. type: TP
524 #: build/C/man3/dlopen.3:134
525 #, no-wrap
526 msgid "B<RTLD_NOW>"
527 msgstr "B<RTLD_NOW>"
528
529 #. type: Plain text
530 #: build/C/man3/dlopen.3:143
531 msgid "If this value is specified, or the environment variable B<LD_BIND_NOW> is set to a nonempty string, all undefined symbols in the library are resolved before B<dlopen>()  returns.  If this cannot be done, an error is returned."
532 msgstr "この値が指定されるか、環境変数 B<LD_BIND_NOW> に空でない文字列が設定された場合、 ライブラリ中の未定義のシンボルを全て解決してから B<dlopen>()  は復帰する。解決できなかったときにはエラーが返される。"
533
534 #. type: Plain text
535 #: build/C/man3/dlopen.3:146
536 msgid "Zero or more of the following values may also be ORed in I<flag>:"
537 msgstr "以下の値のうち 0 個以上を論理和 (OR) の形で I<flag> に追加することもできる:"
538
539 #. type: TP
540 #: build/C/man3/dlopen.3:146
541 #, no-wrap
542 msgid "B<RTLD_GLOBAL>"
543 msgstr "B<RTLD_GLOBAL>"
544
545 #. type: Plain text
546 #: build/C/man3/dlopen.3:150
547 msgid "The symbols defined by this library will be made available for symbol resolution of subsequently loaded libraries."
548 msgstr "このライブラリで定義されているシンボルが、これより後でロードされる ライブラリのシンボル解決で利用できるようになる。"
549
550 #. type: TP
551 #: build/C/man3/dlopen.3:150
552 #, no-wrap
553 msgid "B<RTLD_LOCAL>"
554 msgstr "B<RTLD_LOCAL>"
555
556 #. type: Plain text
557 #: build/C/man3/dlopen.3:157
558 msgid "This is the converse of B<RTLD_GLOBAL>, and the default if neither flag is specified.  Symbols defined in this library are not made available to resolve references in subsequently loaded libraries."
559 msgstr "このフラグは B<RTLD_GLOBAL> の反対の意味であり、どちらのフラグも指定されなかった場合は こちらがデフォルトとなる。 このライブラリで定義されているシンボルは、これより後でロードされる ライブラリでのシンボル参照で利用できない。"
560
561 #. type: TP
562 #: build/C/man3/dlopen.3:157
563 #, no-wrap
564 msgid "B<RTLD_NODELETE> (since glibc 2.2)"
565 msgstr "B<RTLD_NODELETE> (glibc 2.2 以降)"
566
567 #.  (But it is present on Solaris.)
568 #. type: Plain text
569 #: build/C/man3/dlopen.3:167
570 msgid "Do not unload the library during B<dlclose>().  Consequently, the library's static variables are not reinitialized if the library is reloaded with B<dlopen>()  at a later time.  This flag is not specified in POSIX.1-2001."
571 msgstr "B<dlclose>()  中にそのライブラリをアンロードしない。 そのため、同じライブラリをこれ以降に B<dlopen>()  で再度ロードした場合に、ライブラリ内の静的変数は再初期化されない。 このフラグは POSIX.1-2001 では規定されていない。"
572
573 #. type: TP
574 #: build/C/man3/dlopen.3:167
575 #, no-wrap
576 msgid "B<RTLD_NOLOAD> (since glibc 2.2)"
577 msgstr "B<RTLD_NOLOAD> (glibc 2.2 以降)"
578
579 #.  (But it is present on Solaris.)
580 #. type: Plain text
581 #: build/C/man3/dlopen.3:182
582 msgid "Don't load the library.  This can be used to test if the library is already resident (B<dlopen>()  returns NULL if it is not, or the library's handle if it is resident).  This flag can also be used to promote the flags on a library that is already loaded.  For example, a library that was previously loaded with B<RTLD_LOCAL> can be reopened with B<RTLD_NOLOAD\\ |\\ RTLD_GLOBAL>.  This flag is not specified in POSIX.1-2001."
583 msgstr "そのライブラリをロードしない。 このフラグはそのライブラリがすでに組み込まれているかを検査するのに 利用できる (B<dlopen>()  は、ライブラリが組み込まれていなければ NULL を返し、 すでに組み込まれていればそのライブラリのハンドルを返す)。 また、すでにロードされているライブラリのフラグを昇格させるのにも 利用できる。例えば、過去に B<RTLD_LOCAL> でロードしたライブラリを B<RTLD_NOLOAD\\ |\\ RTLD_GLOBAL> で再オープンすることができる。 このフラグは POSIX.1-2001 では規定されていない。"
584
585 #. type: TP
586 #: build/C/man3/dlopen.3:182
587 #, no-wrap
588 msgid "B<RTLD_DEEPBIND> (since glibc 2.3.4)"
589 msgstr "B<RTLD_DEEPBIND> (glibc 2.3.4 以降)"
590
591 #.  Inimitably described by UD in
592 #.  http://sources.redhat.com/ml/libc-hacker/2004-09/msg00083.html.
593 #. type: Plain text
594 #: build/C/man3/dlopen.3:192
595 msgid "Place the lookup scope of the symbols in this library ahead of the global scope.  This means that a self-contained library will use its own symbols in preference to global symbols with the same name contained in libraries that have already been loaded.  This flag is not specified in POSIX.1-2001."
596 msgstr "このライブラリ内のシンボルの参照領域をグローバル領域よりも前に配置する。 つまり、内蔵型のライブラリでは、すでにロードされたライブラリに含まれる 同じ名前のグローバルなシンボルよりも自ライブラリ内のシンボルが優先して 使われる。 このフラグは POSIX.1-2001 では規定されていない。"
597
598 #. type: Plain text
599 #: build/C/man3/dlopen.3:204
600 msgid "If I<filename> is NULL, then the returned handle is for the main program.  When given to B<dlsym>(), this handle causes a search for a symbol in the main program, followed by all shared libraries loaded at program startup, and then all shared libraries loaded by B<dlopen>()  with the flag B<RTLD_GLOBAL>."
601 msgstr "I<filename> が NULL である場合は、 返されるハンドルはメインプログラムのものになる。 このハンドルが B<dlsym>()  に渡されると、シンボルの検索は、メインプログラム内、 プログラムの起動時にロードされる全ての共有ライブラリ、 B<dlopen>()  によって B<RTLD_GLOBAL> フラグ付きでロードされた全ての共有ライブラリ、の順序で行われる。"
602
603 #. type: Plain text
604 #: build/C/man3/dlopen.3:214
605 msgid "External references in the library are resolved using the libraries in that library's dependency list and any other libraries previously opened with the B<RTLD_GLOBAL> flag.  If the executable was linked with the flag \"-rdynamic\" (or, synonymously, \"--export-dynamic\"), then the global symbols in the executable will also be used to resolve references in a dynamically loaded library."
606 msgstr "オープンされたライブラリ中での外部参照は、 そのライブラリの依存リストにあるライブラリか、 B<RTLD_GLOBAL> フラグ付きで既にオープンされているライブラリを使って解決される。 実行ファイルが \"-rdynamic\" フラグ (\"--export-dynamic\" も同義)  付きでリンクされている場合は、実行ファイル中のグローバルシンボルも、 動的にロードされるライブラリ内の参照解決に用いられる。"
607
608 #. type: Plain text
609 #: build/C/man3/dlopen.3:232
610 msgid "If the same library is loaded again with B<dlopen>(), the same library handle is returned.  The dl library maintains reference counts for library handles, so a dynamic library is not deallocated until B<dlclose>()  has been called on it as many times as B<dlopen>()  has succeeded on it.  The B<_init>()  routine, if present, is called only once.  But a subsequent call with B<RTLD_NOW> may force symbol resolution for a library earlier loaded with B<RTLD_LAZY>."
611 msgstr "同じライブラリが B<dlopen>()  によって再度ロードされた場合には、同じライブラリハンドルが返される。 dl ライブラリはライブラリハンドルのリンク数を管理している。 したがって動的ライブラリは B<dlclose>()  が B<dlopen>()  と同じ回数だけ呼び出されない限りアンロードされない。 B<_init>()  ルーチンは一度だけ呼び出される (B<_init>()  が存在する場合のみ)。 B<RTLD_NOW> が指定されて B<dlopen>()  が呼び出された場合、 B<RTLD_LAZY> で以前にロードされたライブラリのシンボル解決が実行されることがある。"
612
613 #. type: Plain text
614 #: build/C/man3/dlopen.3:236
615 msgid "If B<dlopen>()  fails for any reason, it returns NULL."
616 msgstr "B<dlopen>()  は、何らかの理由で失敗すると NULL を返す。"
617
618 #. type: SS
619 #: build/C/man3/dlopen.3:236
620 #, no-wrap
621 msgid "dlsym()"
622 msgstr "dlsym()"
623
624 #. type: Plain text
625 #: build/C/man3/dlopen.3:265
626 msgid "The function B<dlsym>()  takes a \"handle\" of a dynamic library returned by B<dlopen>()  and the null-terminated symbol name, returning the address where that symbol is loaded into memory.  If the symbol is not found, in the specified library or any of the libraries that were automatically loaded by B<dlopen>()  when that library was loaded, B<dlsym>()  returns NULL.  (The search performed by B<dlsym>()  is breadth first through the dependency tree of these libraries.)  Since the value of the symbol could actually be NULL (so that a NULL return from B<dlsym>()  need not indicate an error), the correct way to test for an error is to call B<dlerror>()  to clear any old error conditions, then call B<dlsym>(), and then call B<dlerror>()  again, saving its return value into a variable, and check whether this saved value is not NULL."
627 msgstr "関数 B<dlsym>()  は、 B<dlopen>()  が返した動的ライブラリの「ハンドル」と、 NULL 終端されたシンボル名の文字列を引き数に取り、 そのシンボルがロードされたメモリのアドレスを返す。 シンボルが、指定されたライブラリと、指定されたライブラリがロードされる際に B<dlopen>()  が自動的にロードしてライブラリのいずれにも見つからない場合には、 B<dlsym>()  は NULL を返す (B<dlsym>()  による検索は、これらのライブラリの依存関係のツリーを先頭から 辿って行われる)。 実際にはシンボルの値自体が NULL になることもある (そのため、 B<dlsym>()  の返り値が NULL であったとしても必ずしもエラーという訳ではない)。 エラーかどうかを確認する正しい方法は以下の通りである: B<dlerror>()  を呼び出して以前のエラー状態をクリアしてから、 B<dlsym>()  を呼び出す。その後でもう一度 B<dlerror>()  を呼び出して、 B<dlerror>()  の返り値を変数に保存し、保存した値が NULL であるか判定する。"
628
629 #. type: Plain text
630 #: build/C/man3/dlopen.3:277
631 msgid "There are two special pseudo-handles, B<RTLD_DEFAULT> and B<RTLD_NEXT>.  The former will find the first occurrence of the desired symbol using the default library search order.  The latter will find the next occurrence of a function in the search order after the current library.  This allows one to provide a wrapper around a function in another shared library."
632 msgstr "B<RTLD_DEFAULT> と B<RTLD_NEXT> という二つの特別な擬似ハンドルがある。 B<RTLD_DEFAULT> は、デフォルトのライブラリ検索順序にしたがって、 検索対象のシンボルが最初に現れるところを探す。 B<RTLD_NEXT> は、ライブラリ検索順序の中で現在のライブラリ以降で最初に 関数が現れるところを探す。この機能を使うことで、別の共有ライブラリの 関数へのラッパーを提供することができる。"
633
634 #. type: SS
635 #: build/C/man3/dlopen.3:277
636 #, no-wrap
637 msgid "dlclose()"
638 msgstr "dlclose()"
639
640 #. type: Plain text
641 #: build/C/man3/dlopen.3:284
642 msgid "The function B<dlclose>()  decrements the reference count on the dynamic library handle I<handle>.  If the reference count drops to zero and no other loaded libraries use symbols in it, then the dynamic library is unloaded."
643 msgstr "関数 B<dlclose>()  は動的ライブラリのハンドル I<handle> の参照カウントを 1 減らす。参照カウントが 0 になり、ロードされている 他のライブラリからそのライブラリ内のシンボルが使われていなければ、 その動的ライブラリをアンロードする。"
644
645 #. type: Plain text
646 #: build/C/man3/dlopen.3:288
647 msgid "The function B<dlclose>()  returns 0 on success, and nonzero on error."
648 msgstr "関数 B<dlclose>()  は、成功した場合は 0 を返し、エラーの場合 0 以外を返す。"
649
650 #. type: SS
651 #: build/C/man3/dlopen.3:288
652 #, no-wrap
653 msgid "The obsolete symbols _init() and _fini()"
654 msgstr "廃止されたシンボル _init() と _fini()"
655
656 #. type: Plain text
657 #: build/C/man3/dlopen.3:306
658 msgid "The linker recognizes special symbols B<_init> and B<_fini>.  If a dynamic library exports a routine named B<_init>(), then that code is executed after the loading, before B<dlopen>()  returns.  If the dynamic library exports a routine named B<_fini>(), then that routine is called just before the library is unloaded.  In case you need to avoid linking against the system startup files, this can be done by using the B<gcc>(1)  I<-nostartfiles> command-line option."
659 msgstr "リンカーは B<_init> と B<_fini> を特別なシンボルと解釈する。 ある動的ライブラリで B<_init>()  という名前のルーチンがエクスポートされていれば、 そのコードは、ライブラリのロード後、かつ B<dlopen>()  が復帰する前に実行される。 その動的ライブラリで B<_fini>()  という名前のルーチンがエクスポートされていれば、 ライブラリがアンロードされる直前にそのルーチンが呼び出される。 システムの起動ファイルに対するリンクを避ける必要がある場合、 B<gcc>(1)  のコマンドラインに I<-nostartfiles> オプションを指定すればよい。"
660
661 #.  void _init(void) __attribute__((constructor));
662 #.  void _fini(void) __attribute__((destructor));
663 #. type: Plain text
664 #: build/C/man3/dlopen.3:317
665 msgid "Using these routines, or the gcc B<-nostartfiles> or B<-nostdlib> options, is not recommended.  Their use may result in undesired behavior, since the constructor/destructor routines will not be executed (unless special measures are taken)."
666 msgstr "このルーチンや、gcc のオプション B<-nostartfiles> や B<-nostdlib> は使用しないことを推奨する。 これらを使うと、望ましくない動作をすることがある。 なぜなら、(特別な措置が行われない限り) これらの constructor/destructor ルーチンは実行されないからである。"
667
668 #. type: Plain text
669 #: build/C/man3/dlopen.3:329
670 msgid "Instead, libraries should export routines using the B<__attribute__((constructor))> and B<__attribute__((destructor))> function attributes.  See the gcc info pages for information on these.  Constructor routines are executed before B<dlopen>()  returns, and destructor routines are executed before B<dlclose>()  returns."
671 msgstr "代わりに、ライブラリは B<__attribute__((constructor))> や B<__attribute__((destructor))> の関数属性を使って必要なルーチンをエクスポートするのがよい。 これらについては gcc の info ページを参照のこと。 constructor ルーチンは B<dlopen>()  が復帰する前に実行され、 destructor ルーチンは B<dlclose>()  が復帰する前に実行される。"
672
673 #. type: SS
674 #: build/C/man3/dlopen.3:329
675 #, no-wrap
676 msgid "Glibc extensions: dladdr() and dlvsym()"
677 msgstr "GNU での拡張: dladdr() と dlvsym()"
678
679 #. type: Plain text
680 #: build/C/man3/dlopen.3:331
681 msgid "Glibc adds two functions not described by POSIX, with prototypes"
682 msgstr "glibc では POSIX には記載されていない関数が 2つ追加されている。 プロトタイプは以下の通りである。"
683
684 #. type: Plain text
685 #: build/C/man3/dlopen.3:335
686 #, no-wrap
687 msgid ""
688 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
689 "B<#include E<lt>dlfcn.hE<gt>>\n"
690 msgstr ""
691 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
692 "B<#include E<lt>dlfcn.hE<gt>>\n"
693
694 #. type: Plain text
695 #: build/C/man3/dlopen.3:337
696 #, no-wrap
697 msgid "B<int dladdr(void *>I<addr>B<, Dl_info *>I<info>B<);>\n"
698 msgstr "B<int dladdr(void *>I<addr>B<, Dl_info *>I<info>B<);>\n"
699
700 #. type: Plain text
701 #: build/C/man3/dlopen.3:339
702 #, no-wrap
703 msgid "B<void *dlvsym(void *>I<handle>B<, char *>I<symbol>B<, char *>I<version>B<);>\n"
704 msgstr "B<void *dlvsym(void *>I<handle>B<, char *>I<symbol>B<, char *>I<version>B<);>\n"
705
706 #. type: Plain text
707 #: build/C/man3/dlopen.3:348
708 msgid "The function B<dladdr>()  takes a function pointer and tries to resolve name and file where it is located.  Information is stored in the I<Dl_info> structure:"
709 msgstr "関数 B<dladdr>()  は、関数のポインターを引き数にとり、関数の名前と関数が定義されている ファイルの解決を試みる。情報は I<Dl_info> 構造体に格納される。"
710
711 #. type: Plain text
712 #: build/C/man3/dlopen.3:361
713 #, no-wrap
714 msgid ""
715 "typedef struct {\n"
716 "    const char *dli_fname;  /* Pathname of shared object that\n"
717 "                               contains address */\n"
718 "    void       *dli_fbase;  /* Address at which shared object\n"
719 "                               is loaded */\n"
720 "    const char *dli_sname;  /* Name of symbol whose definition\n"
721 "                               overlaps I<addr> */\n"
722 "    void       *dli_saddr;  /* Exact address of symbol named\n"
723 "                               in I<dli_sname> */\n"
724 "} Dl_info;\n"
725 msgstr ""
726 "typedef struct {\n"
727 "    const char *dli_fname;  /* Pathname of shared object that\n"
728 "                               contains address */\n"
729 "    void       *dli_fbase;  /* Address at which shared object\n"
730 "                               is loaded */\n"
731 "    const char *dli_sname;  /* Name of symbol whose definition\n"
732 "                               overlaps I<addr> */\n"
733 "    void       *dli_saddr;  /* Exact address of symbol named\n"
734 "                               in I<dli_sname> */\n"
735 "} Dl_info;\n"
736
737 #. type: Plain text
738 #: build/C/man3/dlopen.3:371
739 msgid "If no symbol matching I<addr> could be found, then I<dli_sname> and I<dli_saddr> are set to NULL."
740 msgstr "I<addr> にマッチするシンボルが見つからなかった場合、 I<dli_sname> と I<dli_saddr> は NULL にセットされる。"
741
742 #. type: Plain text
743 #: build/C/man3/dlopen.3:374
744 msgid "B<dladdr>()  returns 0 on error, and nonzero on success."
745 msgstr "B<dladdr>()  は、エラー時には 0 を返し、成功した場合は 0 以外を返す。"
746
747 #. type: Plain text
748 #: build/C/man3/dlopen.3:381
749 msgid "The function B<dlvsym>(), provided by glibc since version 2.1, does the same as B<dlsym>()  but takes a version string as an additional argument."
750 msgstr "関数 B<dlvsym>()  は B<dlsym>()  と同じ動作をするが、バージョンの文字列を渡す引き数が 追加されている点が異なる (B<dlvsym>()  はバージョン 2.1 以降の glibc で提供されている)。"
751
752 #. type: Plain text
753 #: build/C/man3/dlopen.3:388
754 msgid "POSIX.1-2001 describes B<dlclose>(), B<dlerror>(), B<dlopen>(), and B<dlsym>()."
755 msgstr "POSIX.1-2003 には B<dlclose>(), B<dlerror>(), B<dlopen>(), B<dlsym>().  の記載がある。"
756
757 #. type: SH
758 #: build/C/man3/dlopen.3:388 build/C/man5/elf.5:1912 build/C/man3/end.3:53
759 #: build/C/man8/ld.so.8:483 build/C/man1/pldd.1:84
760 #: build/C/man7/rtld-audit.7:467
761 #, no-wrap
762 msgid "NOTES"
763 msgstr "注意"
764
765 #.  .LP
766 #.  The string returned by
767 #.  .BR dlerror ()
768 #.  should not be modified.
769 #.  Some systems give the prototype as
770 #.  .sp
771 #.  .in +5
772 #.  .B "const char *dlerror(void);"
773 #.  .in
774 #. type: Plain text
775 #: build/C/man3/dlopen.3:407
776 msgid "The symbols B<RTLD_DEFAULT> and B<RTLD_NEXT> are defined by I<E<lt>dlfcn.hE<gt>> only when B<_GNU_SOURCE> was defined before including it."
777 msgstr "シンボル B<RTLD_DEFAULT> と B<RTLD_NEXT> は I<E<lt>dlfcn.hE<gt>> で定義されており、 I<E<lt>dlfcn.hE<gt>> のインクルード前に B<_GNU_SOURCE> が定義されている場合のみ有効となる。"
778
779 #. type: Plain text
780 #: build/C/man3/dlopen.3:412
781 msgid "Since glibc 2.2.3, B<atexit>(3)  can be used to register an exit handler that is automatically called when a library is unloaded."
782 msgstr "glibc 2.2.3 以降では、 B<atexit>(3)  を使って、ライブラリがアンロードされる際に自動的に呼び出される 終了ハンドラー (exit handler) を登録することができる。"
783
784 #. type: SS
785 #: build/C/man3/dlopen.3:412
786 #, no-wrap
787 msgid "History"
788 msgstr "歴史"
789
790 #. type: Plain text
791 #: build/C/man3/dlopen.3:418
792 msgid "The dlopen interface standard comes from SunOS.  That system also has B<dladdr>(), but not B<dlvsym>()."
793 msgstr "dlopen インターフェースの標準は SunOS をもとにしている。 SunOS には B<dladdr>()  もあったが、 B<dlvsym>()  はなかった。"
794
795 #. type: SH
796 #: build/C/man3/dlopen.3:418 build/C/man1/ldd.1:91 build/C/man1/memusage.1:267
797 #: build/C/man1/memusagestat.1:84 build/C/man1/mtrace.1:58
798 #: build/C/man7/rtld-audit.7:492
799 #, no-wrap
800 msgid "BUGS"
801 msgstr "バグ"
802
803 #. type: Plain text
804 #: build/C/man3/dlopen.3:430
805 msgid "Sometimes, the function pointers you pass to B<dladdr>()  may surprise you.  On some architectures (notably i386 and x86_64), I<dli_fname> and I<dli_fbase> may end up pointing back at the object from which you called B<dladdr>(), even if the function used as an argument should come from a dynamically linked library."
806 msgstr "時として、 B<dladdr>()  に渡した関数ポインターは驚くような値になることがある。 いくつかのアーキテクチャー (特に i386 と x86_64) では、 引き数として使用した関数が動的リンクライブラリで定義されるもので あったとしても、 I<dli_fname> と I<dli_fbase> が B<dladdr>()  を呼び出したオブジェクトを参照した状態で終わっていることがある。"
807
808 #. type: Plain text
809 #: build/C/man3/dlopen.3:446
810 msgid "The problem is that the function pointer will still be resolved at compile time, but merely point to the I<plt> (Procedure Linkage Table)  section of the original object (which dispatches the call after asking the dynamic linker to resolve the symbol).  To work around this, you can try to compile the code to be position-independent: then, the compiler cannot prepare the pointer at compile time anymore and today's B<gcc>(1)  will generate code that just loads the final symbol address from the I<got> (Global Offset Table) at run time before passing it to B<dladdr>()."
811 msgstr "問題は、関数ポインターの解決は今なおコンパイル時に行われるが、 そのポインターは元のオブジェクトの I<plt> (Procedure Linkage Table) セクションを指しているだけだという点にある (オブジェクト自体は、ダイナミックリンカーによってシンボルの解決が行われた後に、 関数の呼び出しを行う)。 これに対処する方法としては、 コードを position-independent でコンパイルするという方法がある。 そうすると、コンパイラはコンパイル時にポインターを用意することができず、 今日の B<gcc>(1)  では、実行時に B<dladdr>()  に関数ポインターを渡す前に、 I<got> (Global Offset Table) から最終的なシンボルのアドレスをロードするだけの コードが生成される。"
812
813 #. type: Plain text
814 #: build/C/man3/dlopen.3:448
815 msgid "Load the math library, and print the cosine of 2.0:"
816 msgstr "math ライブラリをロードし、2.0 の余弦を表示する"
817
818 #. type: Plain text
819 #: build/C/man3/dlopen.3:453
820 #, no-wrap
821 msgid ""
822 "#include E<lt>stdio.hE<gt>\n"
823 "#include E<lt>stdlib.hE<gt>\n"
824 "#include E<lt>dlfcn.hE<gt>\n"
825 msgstr ""
826 "#include E<lt>stdio.hE<gt>\n"
827 "#include E<lt>stdlib.hE<gt>\n"
828 "#include E<lt>dlfcn.hE<gt>\n"
829
830 #. type: Plain text
831 #: build/C/man3/dlopen.3:460
832 #, no-wrap
833 msgid ""
834 "int\n"
835 "main(int argc, char **argv)\n"
836 "{\n"
837 "    void *handle;\n"
838 "    double (*cosine)(double);\n"
839 "    char *error;\n"
840 msgstr ""
841 "int\n"
842 "main(int argc, char **argv)\n"
843 "{\n"
844 "    void *handle;\n"
845 "    double (*cosine)(double);\n"
846 "    char *error;\n"
847
848 #. type: Plain text
849 #: build/C/man3/dlopen.3:466
850 #, no-wrap
851 msgid ""
852 "    handle = dlopen(\"libm.so\", RTLD_LAZY);\n"
853 "    if (!handle) {\n"
854 "        fprintf(stderr, \"%s\\en\", dlerror());\n"
855 "        exit(EXIT_FAILURE);\n"
856 "    }\n"
857 msgstr ""
858 "    handle = dlopen(\"libm.so\", RTLD_LAZY);\n"
859 "    if (!handle) {\n"
860 "        fprintf(stderr, \"%s\\en\", dlerror());\n"
861 "        exit(EXIT_FAILURE);\n"
862 "    }\n"
863
864 #. type: Plain text
865 #: build/C/man3/dlopen.3:468
866 #, no-wrap
867 msgid "    dlerror();    /* Clear any existing error */\n"
868 msgstr "    dlerror();    /* Clear any existing error */\n"
869
870 #. type: Plain text
871 #: build/C/man3/dlopen.3:470
872 #, no-wrap
873 msgid "    cosine = (double (*)(double)) dlsym(handle, \"cos\");\n"
874 msgstr "    cosine = (double (*)(double)) dlsym(handle, \"cos\");\n"
875
876 #. type: Plain text
877 #: build/C/man3/dlopen.3:475
878 #, no-wrap
879 msgid ""
880 "    /* According to the ISO C standard, casting between function\n"
881 "       pointers and 'void *', as done above, produces undefined results.\n"
882 "       POSIX.1-2003 and POSIX.1-2008 accepted this state of affairs and\n"
883 "       proposed the following workaround:\n"
884 msgstr ""
885 "    /* ISO の C 標準によれば、上のような、関数ポインターと 'void *' 間の\n"
886 "       キャストを行った場合に得られる結果は不定である。\n"
887 "       POSIX.1-2003 と POSIX.1-2008 では、この状況は認められており、\n"
888 "       以下のようなワークアラウンドが提案されている。\n"
889
890 #. type: Plain text
891 #: build/C/man3/dlopen.3:477
892 #, no-wrap
893 msgid "           *(void **) (&cosine) = dlsym(handle, \"cos\");\n"
894 msgstr "           *(void **) (&cosine) = dlsym(handle, \"cos\");\n"
895
896 #. type: Plain text
897 #: build/C/man3/dlopen.3:480
898 #, no-wrap
899 msgid ""
900 "       This (clumsy) cast conforms with the ISO C standard and will\n"
901 "       avoid any compiler warnings.\n"
902 msgstr ""
903 "       この (ぶかっこうな) キャストは ISO の C 標準に従っており、\n"
904 "       コンパイラの警告を避けることができる。\n"
905
906 #.  http://pubs.opengroup.org/onlinepubs/009695399/functions/dlsym.html#tag_03_112_08
907 #.  http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlsym.html#tag_16_96_07
908 #.  http://austingroupbugs.net/view.php?id=74
909 #. type: Plain text
910 #: build/C/man3/dlopen.3:489
911 #, no-wrap
912 msgid ""
913 "       The 2013 Technical Corrigendum to POSIX.1-2008 (a.k.a.\n"
914 "       POSIX.1-2013) improved matters by requiring that conforming\n"
915 "       implementations support casting 'void *' to a function pointer.\n"
916 "       Nevertheless, some compilers (e.g., gcc with the '-pedantic'\n"
917 "       option) may complain about the cast used in this program. */\n"
918 msgstr ""
919 "       POSIX.1-2008 の 2013 Technical Corrigendum (別名 POSIX.1-2013)\n"
920 "       では、 POSIX に準拠する実装では 'void *' から関数ポインターへの\n"
921 "       キャストをサポートすることが要求されるようになり、状況が改善\n"
922 "       された。にもかかわらず、('-pedantic' オプションを指定した gcc\n"
923 "       などの) いくつかのコンパイラは、このプログラムで使用されている\n"
924 "       キャストについて文句を言うのだ。\n"
925
926 #. type: Plain text
927 #: build/C/man3/dlopen.3:495
928 #, no-wrap
929 msgid ""
930 "    error = dlerror();\n"
931 "    if (error != NULL) {\n"
932 "        fprintf(stderr, \"%s\\en\", error);\n"
933 "        exit(EXIT_FAILURE);\n"
934 "    }\n"
935 msgstr ""
936 "    error = dlerror();\n"
937 "    if (error != NULL) {\n"
938 "        fprintf(stderr, \"%s\\en\", error);\n"
939 "        exit(EXIT_FAILURE);\n"
940 "    }\n"
941
942 #. type: Plain text
943 #: build/C/man3/dlopen.3:500
944 #, no-wrap
945 msgid ""
946 "    printf(\"%f\\en\", (*cosine)(2.0));\n"
947 "    dlclose(handle);\n"
948 "    exit(EXIT_SUCCESS);\n"
949 "}\n"
950 msgstr ""
951 "    printf(\"%f\\en\", (*cosine)(2.0));\n"
952 "    dlclose(handle);\n"
953 "    exit(EXIT_SUCCESS);\n"
954 "}\n"
955
956 #. type: Plain text
957 #: build/C/man3/dlopen.3:504
958 msgid "If this program were in a file named \"foo.c\", you would build the program with the following command:"
959 msgstr "このプログラムを \"foo.c\" に書いたとすると、以下のコマンドでプログラムを ビルドできる。"
960
961 #. type: Plain text
962 #: build/C/man3/dlopen.3:507
963 #, no-wrap
964 msgid "    gcc -rdynamic -o foo foo.c -ldl\n"
965 msgstr "    gcc -rdynamic -o foo foo.c -ldl\n"
966
967 #. type: Plain text
968 #: build/C/man3/dlopen.3:517
969 msgid "Libraries exporting B<_init>()  and B<_fini>()  will want to be compiled as follows, using I<bar.c> as the example name:"
970 msgstr "B<_init>()  と B<_fini>()  をエクスポートするライブラリの場合は 以下のようにしてコンパイルする必要がある。 例として I<bar.c> をコンパイルする場合:"
971
972 #. type: Plain text
973 #: build/C/man3/dlopen.3:520
974 #, no-wrap
975 msgid "    gcc -shared -nostartfiles -o bar bar.c\n"
976 msgstr "    gcc -shared -nostartfiles -o bar bar.c\n"
977
978 #. type: Plain text
979 #: build/C/man3/dlopen.3:529
980 msgid "B<ld>(1), B<ldd>(1), B<pldd>(1), B<dl_iterate_phdr>(3), B<rtld-audit>(7), B<ld.so>(8), B<ldconfig>(8)"
981 msgstr "B<ld>(1), B<ldd>(1), B<pldd>(1), B<dl_iterate_phdr>(3), B<rtld-audit>(7), B<ld.so>(8), B<ldconfig>(8)"
982
983 #. type: Plain text
984 #: build/C/man3/dlopen.3:531
985 msgid "ld.so info pages, gcc info pages, ld info pages"
986 msgstr "ld.so info pages, gcc info pages, ld info pages"
987
988 #. type: TH
989 #: build/C/man5/elf.5:35
990 #, no-wrap
991 msgid "ELF"
992 msgstr "ELF"
993
994 #. type: TH
995 #: build/C/man5/elf.5:35
996 #, no-wrap
997 msgid "2013-04-17"
998 msgstr "2013-04-17"
999
1000 #. type: Plain text
1001 #: build/C/man5/elf.5:38
1002 msgid "elf - format of Executable and Linking Format (ELF) files"
1003 msgstr "elf - 実行可能リンクフォーマット (ELF) ファイルのフォーマット"
1004
1005 #.  .B #include <elf_abi.h>
1006 #. type: Plain text
1007 #: build/C/man5/elf.5:42
1008 #, no-wrap
1009 msgid "B<#include E<lt>elf.hE<gt>>\n"
1010 msgstr "B<#include E<lt>elf.hE<gt>>\n"
1011
1012 #. type: Plain text
1013 #: build/C/man5/elf.5:50
1014 msgid "The header file I<E<lt>elf.hE<gt>> defines the format of ELF executable binary files.  Amongst these files are normal executable files, relocatable object files, core files and shared libraries."
1015 msgstr "ヘッダファイル I<E<lt>elf.hE<gt>> は ELF 実行可能バイナリファイルのフォーマットを定義する。 これらのファイルとしては、通常の実行可能ファイル・ 再配置可能オブジェクトファイル・コアファイル・共有ライブラリがある。"
1016
1017 #. type: Plain text
1018 #: build/C/man5/elf.5:59
1019 msgid "An executable file using the ELF file format consists of an ELF header, followed by a program header table or a section header table, or both.  The ELF header is always at offset zero of the file.  The program header table and the section header table's offset in the file are defined in the ELF header.  The two tables describe the rest of the particularities of the file."
1020 msgstr "ELF ファイルフォーマットを使う実行可能ファイルは、 ELF ヘッダの後にプログラムヘッダテーブルまたは セクションヘッダテーブル (またはその両方) が続く構成である。 ELF ヘッダは常にファイルのオフセット 0 にある。 プログラムヘッダテーブルとセクションヘッダテーブルの ファイル内でのオフセットは、ELF ヘッダに定義されている。 この 2 つのテーブルはファイルの残りの部分の詳細を記述する。"
1021
1022 #.  Applications which wish to process ELF binary files for their native
1023 #.  architecture only should include
1024 #.  .I <elf_abi.h>
1025 #.  in their source code.
1026 #.  These applications should need to refer to
1027 #.  all the types and structures by their generic names
1028 #.  "Elf_xxx"
1029 #.  and to the macros by
1030 #.  ELF_xxx".
1031 #.  Applications written this way can be compiled on any architecture,
1032 #.  regardless of whether the host is 32-bit or 64-bit.
1033 #.  .PP
1034 #.  Should an application need to process ELF files of an unknown
1035 #.  architecture, then the application needs to explicitly use either
1036 #.  "Elf32_xxx"
1037 #.  or
1038 #.  "Elf64_xxx"
1039 #.  type and structure names.
1040 #.  Likewise, the macros need to be identified by
1041 #.  "ELF32_xxx"
1042 #.  or
1043 #.  "ELF64_xxx".
1044 #.  .PP
1045 #. type: Plain text
1046 #: build/C/man5/elf.5:86
1047 msgid "This header file describes the above mentioned headers as C structures and also includes structures for dynamic sections, relocation sections and symbol tables."
1048 msgstr "このヘッダファイルは上記のヘッダを C 言語の構造体で記述し、 また動的セクション・再配置可能セクション・シンボルテーブルの構造体も 含んでいる。"
1049
1050 #. type: Plain text
1051 #: build/C/man5/elf.5:98
1052 msgid "The following types are used for N-bit architectures (N=32,64, I<ElfN> stands for I<Elf32> or I<Elf64>, I<uintN_t> stands for I<uint32_t> or I<uint64_t>):"
1053 msgstr "以下の型は N ビットアーキテクチャーで使われる (N=32,64 であり I<ElfN> は I<Elf32> または I<Elf64> を表し、 I<uintN_t> は I<uint32_t> または I<uint64_t> を表す):"
1054
1055 #.  Elf32_Size  Unsigned object size
1056 #. type: Plain text
1057 #: build/C/man5/elf.5:112
1058 #, no-wrap
1059 msgid ""
1060 "ElfN_Addr       Unsigned program address, uintN_t\n"
1061 "ElfN_Off        Unsigned file offset, uintN_t\n"
1062 "ElfN_Section    Unsigned section index, uint16_t\n"
1063 "ElfN_Versym     Unsigned version symbol information, uint16_t\n"
1064 "Elf_Byte        unsigned char\n"
1065 "ElfN_Half       uint16_t\n"
1066 "ElfN_Sword      int32_t\n"
1067 "ElfN_Word       uint32_t\n"
1068 "ElfN_Sxword     int64_t\n"
1069 "ElfN_Xword      uint64_t\n"
1070 msgstr ""
1071 "ElfN_Addr       符号なしのプログラムアドレス, uintN_t\n"
1072 "ElfN_Off        符号なしのファイルオフセット, uintN_t\n"
1073 "ElfN_Section    符号なしのセクションインデックス, uint16_t\n"
1074 "ElfN_Versym     符号なしのバージョンシンボル情報, uint16_t\n"
1075 "Elf_Byte        unsigned char\n"
1076 "ElfN_Half       uint16_t\n"
1077 "ElfN_Sword      int32_t\n"
1078 "ElfN_Word       uint32_t\n"
1079 "ElfN_Sxword     int64_t\n"
1080 "ElfN_Xword      uint64_t\n"
1081
1082 #. type: Plain text
1083 #: build/C/man5/elf.5:127
1084 msgid "(Note: The *BSD terminology is a bit different.  There I<Elf64_Half> is twice as large as I<Elf32_Half>, and I<Elf64Quarter> is used for I<uint16_t>.  In order to avoid confusion these types are replaced by explicit ones in the below.)"
1085 msgstr "(注意: *BSD での用語は少し異なる。 I<Elf64_Half> は I<Elf32_Half> の 2 倍であり、 I<Elf64Quarter> が I<uint16_t> に用いられる。 混乱を避けるため、以下では、これらの型はサイズが自明な型に置き換えてある。)"
1086
1087 #. type: Plain text
1088 #: build/C/man5/elf.5:134
1089 msgid "All data structures that the file format defines follow the \"natural\" size and alignment guidelines for the relevant class.  If necessary, data structures contain explicit padding to ensure 4-byte alignment for 4-byte objects, to force structure sizes to a multiple of 4, and so on."
1090 msgstr "このファイルフォーマットが定義する全てのデータ構造体は、 関連するクラスの \"自然な\" サイズと配置の指針に従う。 必要な場合、データ構造体では明示的なパディング (padding, 詰め込み)  が行なわれる。これは 4 バイトオブジェクトに対する 4 バイト配置を保証するためや、 構造体のサイズを 4 の倍数にするためなどである。"
1091
1092 #. type: Plain text
1093 #: build/C/man5/elf.5:139
1094 msgid "The ELF header is described by the type I<Elf32_Ehdr> or I<Elf64_Ehdr>:"
1095 msgstr "ELF ヘッダは型 I<Elf32_Ehdr> または I<Elf64_Ehdr> で記述される:"
1096
1097 #. type: Plain text
1098 #: build/C/man5/elf.5:143
1099 #, no-wrap
1100 msgid "#define EI_NIDENT 16\n"
1101 msgstr "#define EI_NIDENT 16\n"
1102
1103 #. type: Plain text
1104 #: build/C/man5/elf.5:160
1105 #, no-wrap
1106 msgid ""
1107 "typedef struct {\n"
1108 "    unsigned char e_ident[EI_NIDENT];\n"
1109 "    uint16_t      e_type;\n"
1110 "    uint16_t      e_machine;\n"
1111 "    uint32_t      e_version;\n"
1112 "    ElfN_Addr     e_entry;\n"
1113 "    ElfN_Off      e_phoff;\n"
1114 "    ElfN_Off      e_shoff;\n"
1115 "    uint32_t      e_flags;\n"
1116 "    uint16_t      e_ehsize;\n"
1117 "    uint16_t      e_phentsize;\n"
1118 "    uint16_t      e_phnum;\n"
1119 "    uint16_t      e_shentsize;\n"
1120 "    uint16_t      e_shnum;\n"
1121 "    uint16_t      e_shstrndx;\n"
1122 "} ElfN_Ehdr;\n"
1123 msgstr ""
1124 "typedef struct {\n"
1125 "    unsigned char e_ident[EI_NIDENT];\n"
1126 "    uint16_t      e_type;\n"
1127 "    uint16_t      e_machine;\n"
1128 "    uint32_t      e_version;\n"
1129 "    ElfN_Addr     e_entry;\n"
1130 "    ElfN_Off      e_phoff;\n"
1131 "    ElfN_Off      e_shoff;\n"
1132 "    uint32_t      e_flags;\n"
1133 "    uint16_t      e_ehsize;\n"
1134 "    uint16_t      e_phentsize;\n"
1135 "    uint16_t      e_phnum;\n"
1136 "    uint16_t      e_shentsize;\n"
1137 "    uint16_t      e_shnum;\n"
1138 "    uint16_t      e_shstrndx;\n"
1139 "} ElfN_Ehdr;\n"
1140
1141 #.  .Bl -tag -width "e_phentsize"
1142 #. type: Plain text
1143 #: build/C/man5/elf.5:165
1144 msgid "The fields have the following meanings:"
1145 msgstr "フィールドは以下の意味を持つ:"
1146
1147 #. type: TP
1148 #: build/C/man5/elf.5:165
1149 #, no-wrap
1150 msgid "I<e_ident>"
1151 msgstr "I<e_ident>"
1152
1153 #. type: Plain text
1154 #: build/C/man5/elf.5:175
1155 msgid "This array of bytes specifies to interpret the file, independent of the processor or the file's remaining contents.  Within this array everything is named by macros, which start with the prefix B<EI_> and may contain values which start with the prefix B<ELF>.  The following macros are defined:"
1156 msgstr "このバイト配列は、プロセッサやファイルの他の部分には依存せずに、 ファイルを解釈 (interpret) するために指定される。 この配列内のすべてのものは、接頭辞 B<EI_> で始まるマクロの名前が付き、接頭辞 B<ELF> で始まる値を持つ。 以下のマクロが定義されている:"
1157
1158 #. type: TP
1159 #: build/C/man5/elf.5:177
1160 #, no-wrap
1161 msgid "B<EI_MAG0>"
1162 msgstr "B<EI_MAG0>"
1163
1164 #. type: Plain text
1165 #: build/C/man5/elf.5:183
1166 msgid "The first byte of the magic number.  It must be filled with B<ELFMAG0>.  (0: 0x7f)"
1167 msgstr "マジックナンバーの第 1 バイト。 B<ELFMAG0> で埋めなければならない。 (0: 0x7f)"
1168
1169 #. type: TP
1170 #: build/C/man5/elf.5:183
1171 #, no-wrap
1172 msgid "B<EI_MAG1>"
1173 msgstr "B<EI_MAG1>"
1174
1175 #. type: Plain text
1176 #: build/C/man5/elf.5:189
1177 msgid "The second byte of the magic number.  It must be filled with B<ELFMAG1>.  (1: \\(aqE\\(aq)"
1178 msgstr "マジックナンバーの第 2 バイト。 B<ELFMAG1> で埋めなければならない。 (1: \\(aqE\\(aq)"
1179
1180 #. type: TP
1181 #: build/C/man5/elf.5:189
1182 #, no-wrap
1183 msgid "B<EI_MAG2>"
1184 msgstr "B<EI_MAG2>"
1185
1186 #. type: Plain text
1187 #: build/C/man5/elf.5:195
1188 msgid "The third byte of the magic number.  It must be filled with B<ELFMAG2>.  (2: \\(aqL\\(aq)"
1189 msgstr "マジックナンバーの第 3 バイト。 B<ELFMAG2> で埋めなければならない。 (2: \\(aqL\\(aq)"
1190
1191 #. type: TP
1192 #: build/C/man5/elf.5:195
1193 #, no-wrap
1194 msgid "B<EI_MAG3>"
1195 msgstr "B<EI_MAG3>"
1196
1197 #. type: Plain text
1198 #: build/C/man5/elf.5:201
1199 msgid "The fourth byte of the magic number.  It must be filled with B<ELFMAG3>.  (3: \\(aqF\\(aq)"
1200 msgstr "マジックナンバーの第 4 バイト。 B<ELFMAG3> で埋めなければならない。 (3: \\(aqF\\(aq)"
1201
1202 #. type: TP
1203 #: build/C/man5/elf.5:201
1204 #, no-wrap
1205 msgid "B<EI_CLASS>"
1206 msgstr "B<EI_CLASS>"
1207
1208 #. type: Plain text
1209 #: build/C/man5/elf.5:204
1210 msgid "The fifth byte identifies the architecture for this binary:"
1211 msgstr "第 5 バイトは、このバイナリのアーキテクチャーを示す:"
1212
1213 #. type: TP
1214 #: build/C/man5/elf.5:206
1215 #, no-wrap
1216 msgid "B<ELFCLASSNONE>"
1217 msgstr "B<ELFCLASSNONE>"
1218
1219 #. type: Plain text
1220 #: build/C/man5/elf.5:210
1221 msgid "This class is invalid."
1222 msgstr "このクラスは不正である。"
1223
1224 #. type: TP
1225 #: build/C/man5/elf.5:210
1226 #, no-wrap
1227 msgid "B<ELFCLASS32>"
1228 msgstr "B<ELFCLASS32>"
1229
1230 #. type: Plain text
1231 #: build/C/man5/elf.5:215
1232 msgid "This defines the 32-bit architecture.  It supports machines with files and virtual address spaces up to 4 Gigabytes."
1233 msgstr "32 ビットアーキテクチャーを定義する。 ファイルと仮想アドレス空間が 4 ギガバイトまでのマシンをサポートする。"
1234
1235 #. type: TP
1236 #: build/C/man5/elf.5:215
1237 #, no-wrap
1238 msgid "B<ELFCLASS64>"
1239 msgstr "B<ELFCLASS64>"
1240
1241 #. type: Plain text
1242 #: build/C/man5/elf.5:218
1243 msgid "This defines the 64-bit architecture."
1244 msgstr "64 ビットアーキテクチャーを定義する。"
1245
1246 #. type: TP
1247 #: build/C/man5/elf.5:221
1248 #, no-wrap
1249 msgid "B<EI_DATA>"
1250 msgstr "B<EI_DATA>"
1251
1252 #.  .Bl -tag -width "ELFDATA2LSB" -compact
1253 #. type: Plain text
1254 #: build/C/man5/elf.5:227
1255 msgid "The sixth byte specifies the data encoding of the processor-specific data in the file.  Currently these encodings are supported:"
1256 msgstr "第 6 バイトはファイル内のプロセッサ固有データの データエンコーディングを指定する。 現在のところ以下のエンコーディングがサポートされている:"
1257
1258 #. type: TP
1259 #: build/C/man5/elf.5:228
1260 #, no-wrap
1261 msgid "B<ELFDATANONE>"
1262 msgstr "B<ELFDATANONE>"
1263
1264 #. type: Plain text
1265 #: build/C/man5/elf.5:232
1266 msgid "Unknown data format."
1267 msgstr "不明なデータフォーマット。"
1268
1269 #. type: TP
1270 #: build/C/man5/elf.5:232
1271 #, no-wrap
1272 msgid "B<ELFDATA2LSB>"
1273 msgstr "B<ELFDATA2LSB>"
1274
1275 #. type: Plain text
1276 #: build/C/man5/elf.5:235
1277 msgid "Two's complement, little-endian."
1278 msgstr "2 の補数、リトルエンディアン。"
1279
1280 #. type: TP
1281 #: build/C/man5/elf.5:235
1282 #, no-wrap
1283 msgid "B<ELFDATA2MSB>"
1284 msgstr "B<ELFDATA2MSB>"
1285
1286 #. type: Plain text
1287 #: build/C/man5/elf.5:238
1288 msgid "Two's complement, big-endian."
1289 msgstr "2 の補数、ビッグエンディアン。"
1290
1291 #. type: TP
1292 #: build/C/man5/elf.5:241
1293 #, no-wrap
1294 msgid "B<EI_VERSION>"
1295 msgstr "B<EI_VERSION>"
1296
1297 #.  .Bl -tag -width "EV_CURRENT" -compact
1298 #. type: Plain text
1299 #: build/C/man5/elf.5:246
1300 msgid "The seventh byte is the version number of the ELF specification:"
1301 msgstr "第 7 バイトは ELF 仕様のバージョン番号である:"
1302
1303 #. type: TP
1304 #: build/C/man5/elf.5:247 build/C/man5/elf.5:501
1305 #, no-wrap
1306 msgid "B<EV_NONE>"
1307 msgstr "B<EV_NONE>"
1308
1309 #. type: Plain text
1310 #: build/C/man5/elf.5:250 build/C/man5/elf.5:505
1311 msgid "Invalid version."
1312 msgstr "不正なバージョン。"
1313
1314 #. type: TP
1315 #: build/C/man5/elf.5:250 build/C/man5/elf.5:505
1316 #, no-wrap
1317 msgid "B<EV_CURRENT>"
1318 msgstr "B<EV_CURRENT>"
1319
1320 #.  .El
1321 #. type: Plain text
1322 #: build/C/man5/elf.5:253 build/C/man5/elf.5:509
1323 msgid "Current version."
1324 msgstr "現在のバージョン。"
1325
1326 #. type: TP
1327 #: build/C/man5/elf.5:256
1328 #, no-wrap
1329 msgid "B<EI_OSABI>"
1330 msgstr "B<EI_OSABI>"
1331
1332 #.  .Bl -tag -width "ELFOSABI_STANDALONE" -compact
1333 #. type: Plain text
1334 #: build/C/man5/elf.5:265
1335 msgid "The eighth byte identifies the operating system and ABI to which the object is targeted.  Some fields in other ELF structures have flags and values that have platform-specific meanings; the interpretation of those fields is determined by the value of this byte.  For example:"
1336 msgstr "第 8 バイトはオブジェクトのターゲットとなるオペレーティングシステムと ABI を示す。他の ELF 構造体のフィールドには、プラットフォーム固有の意味を持つフラグや値を持つものもある。これらのフィールドの解釈は、このバイトの値によって決定される。以下に例を挙げる。"
1337
1338 #. type: TP
1339 #: build/C/man5/elf.5:266
1340 #, no-wrap
1341 msgid "B<ELFOSABI_NONE>"
1342 msgstr "B<ELFOSABI_NONE>"
1343
1344 #.  0
1345 #. type: Plain text
1346 #: build/C/man5/elf.5:271
1347 msgid "Same as ELFOSABI_SYSV"
1348 msgstr "ELFOSABI_SYSV と同じ。"
1349
1350 #. type: TP
1351 #: build/C/man5/elf.5:271
1352 #, no-wrap
1353 msgid "B<ELFOSABI_SYSV>"
1354 msgstr "B<ELFOSABI_SYSV>"
1355
1356 #.  0
1357 #.  synonym: ELFOSABI_NONE
1358 #. type: Plain text
1359 #: build/C/man5/elf.5:276
1360 msgid "UNIX System V ABI."
1361 msgstr "UNIX System V ABI."
1362
1363 #. type: TP
1364 #: build/C/man5/elf.5:276
1365 #, no-wrap
1366 msgid "B<ELFOSABI_HPUX>"
1367 msgstr "B<ELFOSABI_HPUX>"
1368
1369 #.  1
1370 #. type: Plain text
1371 #: build/C/man5/elf.5:280
1372 msgid "HP-UX ABI."
1373 msgstr "HP-UX ABI."
1374
1375 #. type: TP
1376 #: build/C/man5/elf.5:280
1377 #, no-wrap
1378 msgid "B<ELFOSABI_NETBSD>"
1379 msgstr "B<ELFOSABI_NETBSD>"
1380
1381 #.  2
1382 #. type: Plain text
1383 #: build/C/man5/elf.5:284
1384 msgid "NetBSD ABI."
1385 msgstr "NetBSD ABI."
1386
1387 #. type: TP
1388 #: build/C/man5/elf.5:284
1389 #, no-wrap
1390 msgid "B<ELFOSABI_LINUX>"
1391 msgstr "B<ELFOSABI_LINUX>"
1392
1393 #.  3
1394 #.  .TP
1395 #.  .BR ELFOSABI_HURD
1396 #.  Hurd ABI.
1397 #.  4
1398 #.  .TP
1399 #.  .BR ELFOSABI_86OPEN
1400 #.  86Open Common IA32 ABI.
1401 #.  5
1402 #. type: Plain text
1403 #: build/C/man5/elf.5:296
1404 msgid "Linux ABI."
1405 msgstr "Linux ABI."
1406
1407 #. type: TP
1408 #: build/C/man5/elf.5:296
1409 #, no-wrap
1410 msgid "B<ELFOSABI_SOLARIS>"
1411 msgstr "B<ELFOSABI_SOLARIS>"
1412
1413 #.  6
1414 #.  .TP
1415 #.  .BR ELFOSABI_MONTEREY
1416 #.  Monterey project ABI.
1417 #.  Now replaced by
1418 #.  ELFOSABI_AIX
1419 #.  7
1420 #. type: Plain text
1421 #: build/C/man5/elf.5:306
1422 msgid "Solaris ABI."
1423 msgstr "Solaris ABI."
1424
1425 #. type: TP
1426 #: build/C/man5/elf.5:306
1427 #, no-wrap
1428 msgid "B<ELFOSABI_IRIX>"
1429 msgstr "B<ELFOSABI_IRIX>"
1430
1431 #.  8
1432 #. type: Plain text
1433 #: build/C/man5/elf.5:310
1434 msgid "IRIX ABI."
1435 msgstr "IRIX ABI."
1436
1437 #. type: TP
1438 #: build/C/man5/elf.5:310
1439 #, no-wrap
1440 msgid "B<ELFOSABI_FREEBSD>"
1441 msgstr "B<ELFOSABI_FREEBSD>"
1442
1443 #.  9
1444 #. type: Plain text
1445 #: build/C/man5/elf.5:314
1446 msgid "FreeBSD ABI."
1447 msgstr "FreeBSD ABI."
1448
1449 #. type: TP
1450 #: build/C/man5/elf.5:314
1451 #, no-wrap
1452 msgid "B<ELFOSABI_TRU64>"
1453 msgstr "B<ELFOSABI_TRU64>"
1454
1455 #.  10
1456 #.  ELFOSABI_MODESTO
1457 #.  11
1458 #.  ELFOSABI_OPENBSD
1459 #.  12
1460 #. type: Plain text
1461 #: build/C/man5/elf.5:322
1462 msgid "TRU64 UNIX ABI."
1463 msgstr "TRU64 UNIX ABI."
1464
1465 #. type: TP
1466 #: build/C/man5/elf.5:322
1467 #, no-wrap
1468 msgid "B<ELFOSABI_ARM>"
1469 msgstr "B<ELFOSABI_ARM>"
1470
1471 #.  97
1472 #. type: Plain text
1473 #: build/C/man5/elf.5:326
1474 msgid "ARM architecture ABI."
1475 msgstr "ARM アーキテクチャー ABI."
1476
1477 #. type: TP
1478 #: build/C/man5/elf.5:326
1479 #, no-wrap
1480 msgid "B<ELFOSABI_STANDALONE>"
1481 msgstr "B<ELFOSABI_STANDALONE>"
1482
1483 #.  255
1484 #.  .El
1485 #. type: Plain text
1486 #: build/C/man5/elf.5:331
1487 msgid "Stand-alone (embedded) ABI."
1488 msgstr "スタンドアロン (組み込み) ABI."
1489
1490 #. type: TP
1491 #: build/C/man5/elf.5:333
1492 #, no-wrap
1493 msgid "B<EI_ABIVERSION>"
1494 msgstr "B<EI_ABIVERSION>"
1495
1496 #. type: Plain text
1497 #: build/C/man5/elf.5:343
1498 msgid "The ninth byte identifies the version of the ABI to which the object is targeted.  This field is used to distinguish among incompatible versions of an ABI.  The interpretation of this version number is dependent on the ABI identified by the B<EI_OSABI> field.  Applications conforming to this specification use the value 0."
1499 msgstr "第 9 バイトはオブジェクトがターゲットとしている ABI のバージョンを示す。 このフィールドは互換性のない ABI のバージョンを区別するために使われる。 このバージョン番号の解釈は、 B<EI_OSABI> フィールドで識別される ABI に依存する。 この仕様に準拠するアプリケーションでは、値 0 を使う。"
1500
1501 #. type: TP
1502 #: build/C/man5/elf.5:343
1503 #, no-wrap
1504 msgid "B<EI_PAD>"
1505 msgstr "B<EI_PAD>"
1506
1507 #.  As reported by Yuri Kozlov and confirmed by Mike Frysinger, EI_BRAND is
1508 #.  not in GABI (http://www.sco.com/developers/gabi/latest/ch4.eheader.html)
1509 #.  It looks to be a BSDism
1510 #.  .TP
1511 #.  .BR EI_BRAND
1512 #.  Start of architecture identification.
1513 #. type: Plain text
1514 #: build/C/man5/elf.5:359
1515 msgid "Start of padding.  These bytes are reserved and set to zero.  Programs which read them should ignore them.  The value for B<EI_PAD> will change in the future if currently unused bytes are given meanings."
1516 msgstr "パディングの開始。 これらのバイトは予約されており、0 に設定されている。 これらを読み込むプログラムは、これらのバイトを無視すべきである。 現在使われていないバイトに意味が与えられる場合、 B<EI_PAD> の値は将来変更されるかもしれない。"
1517
1518 #. type: TP
1519 #: build/C/man5/elf.5:359
1520 #, no-wrap
1521 msgid "B<EI_NIDENT>"
1522 msgstr "B<EI_NIDENT>"
1523
1524 #.  .El
1525 #. type: Plain text
1526 #: build/C/man5/elf.5:365
1527 msgid "The size of the I<e_ident> array."
1528 msgstr "I<e_ident> 配列のサイズ。"
1529
1530 #. type: TP
1531 #: build/C/man5/elf.5:366
1532 #, no-wrap
1533 msgid "I<e_type>"
1534 msgstr "I<e_type>"
1535
1536 #. type: Plain text
1537 #: build/C/man5/elf.5:369
1538 msgid "This member of the structure identifies the object file type:"
1539 msgstr "この構造体のメンバはオブジェクトファイルタイプを示す:"
1540
1541 #. type: TP
1542 #: build/C/man5/elf.5:371
1543 #, no-wrap
1544 msgid "B<ET_NONE>"
1545 msgstr "B<ET_NONE>"
1546
1547 #. type: Plain text
1548 #: build/C/man5/elf.5:375
1549 msgid "An unknown type."
1550 msgstr "不明なタイプ。"
1551
1552 #. type: TP
1553 #: build/C/man5/elf.5:375
1554 #, no-wrap
1555 msgid "B<ET_REL>"
1556 msgstr "B<ET_REL>"
1557
1558 #. type: Plain text
1559 #: build/C/man5/elf.5:378
1560 msgid "A relocatable file."
1561 msgstr "再配置可能ファイル。"
1562
1563 #. type: TP
1564 #: build/C/man5/elf.5:378
1565 #, no-wrap
1566 msgid "B<ET_EXEC>"
1567 msgstr "B<ET_EXEC>"
1568
1569 #. type: Plain text
1570 #: build/C/man5/elf.5:381
1571 msgid "An executable file."
1572 msgstr "実行可能ファイル。"
1573
1574 #. type: TP
1575 #: build/C/man5/elf.5:381
1576 #, no-wrap
1577 msgid "B<ET_DYN>"
1578 msgstr "B<ET_DYN>"
1579
1580 #. type: Plain text
1581 #: build/C/man5/elf.5:384
1582 msgid "A shared object."
1583 msgstr "共有オブジェクト。"
1584
1585 #. type: TP
1586 #: build/C/man5/elf.5:384
1587 #, no-wrap
1588 msgid "B<ET_CORE>"
1589 msgstr "B<ET_CORE>"
1590
1591 #. type: Plain text
1592 #: build/C/man5/elf.5:387
1593 msgid "A core file."
1594 msgstr "コアファイル。"
1595
1596 #. type: TP
1597 #: build/C/man5/elf.5:390
1598 #, no-wrap
1599 msgid "I<e_machine>"
1600 msgstr "I<e_machine>"
1601
1602 #. type: Plain text
1603 #: build/C/man5/elf.5:394
1604 msgid "This member specifies the required architecture for an individual file.  For example:"
1605 msgstr "このメンバは個々のファイルに必要とされるアーキテクチャーを指定する。 例:"
1606
1607 #. type: TP
1608 #: build/C/man5/elf.5:396
1609 #, no-wrap
1610 msgid "B<EM_NONE>"
1611 msgstr "B<EM_NONE>"
1612
1613 #.  0
1614 #. type: Plain text
1615 #: build/C/man5/elf.5:401
1616 msgid "An unknown machine."
1617 msgstr "不明なマシン。"
1618
1619 #. type: TP
1620 #: build/C/man5/elf.5:401
1621 #, no-wrap
1622 msgid "B<EM_M32>"
1623 msgstr "B<EM_M32>"
1624
1625 #.  1
1626 #. type: Plain text
1627 #: build/C/man5/elf.5:405
1628 msgid "AT&T WE 32100."
1629 msgstr "AT&T WE 32100."
1630
1631 #. type: TP
1632 #: build/C/man5/elf.5:405
1633 #, no-wrap
1634 msgid "B<EM_SPARC>"
1635 msgstr "B<EM_SPARC>"
1636
1637 #.  2
1638 #. type: Plain text
1639 #: build/C/man5/elf.5:409
1640 msgid "Sun Microsystems SPARC."
1641 msgstr "Sun Microsystems SPARC."
1642
1643 #. type: TP
1644 #: build/C/man5/elf.5:409
1645 #, no-wrap
1646 msgid "B<EM_386>"
1647 msgstr "B<EM_386>"
1648
1649 #.  3
1650 #. type: Plain text
1651 #: build/C/man5/elf.5:413
1652 msgid "Intel 80386."
1653 msgstr "Intel 80386."
1654
1655 #. type: TP
1656 #: build/C/man5/elf.5:413
1657 #, no-wrap
1658 msgid "B<EM_68K>"
1659 msgstr "B<EM_68K>"
1660
1661 #.  4
1662 #. type: Plain text
1663 #: build/C/man5/elf.5:417
1664 msgid "Motorola 68000."
1665 msgstr "Motorola 68000."
1666
1667 #. type: TP
1668 #: build/C/man5/elf.5:417
1669 #, no-wrap
1670 msgid "B<EM_88K>"
1671 msgstr "B<EM_88K>"
1672
1673 #.  5
1674 #.  .TP
1675 #.  .BR EM_486
1676 #.  Intel 80486.
1677 #.  6
1678 #. type: Plain text
1679 #: build/C/man5/elf.5:425
1680 msgid "Motorola 88000."
1681 msgstr "Motorola 88000."
1682
1683 #. type: TP
1684 #: build/C/man5/elf.5:425
1685 #, no-wrap
1686 msgid "B<EM_860>"
1687 msgstr "B<EM_860>"
1688
1689 #.  7
1690 #. type: Plain text
1691 #: build/C/man5/elf.5:429
1692 msgid "Intel 80860."
1693 msgstr "Intel 80860."
1694
1695 #. type: TP
1696 #: build/C/man5/elf.5:429
1697 #, no-wrap
1698 msgid "B<EM_MIPS>"
1699 msgstr "B<EM_MIPS>"
1700
1701 #.  8
1702 #.  EM_S370
1703 #.  9
1704 #.  .TP
1705 #.  .BR EM_MIPS_RS4_BE
1706 #.  MIPS RS4000 (big-endian only). Deprecated.
1707 #.  10
1708 #.  EM_MIPS_RS3_LE (MIPS R3000 little-endian)
1709 #.  10
1710 #. type: Plain text
1711 #: build/C/man5/elf.5:441
1712 msgid "MIPS RS3000 (big-endian only)."
1713 msgstr "MIPS RS3000 (ビッグエンディアンのみ)。"
1714
1715 #. type: TP
1716 #: build/C/man5/elf.5:441
1717 #, no-wrap
1718 msgid "B<EM_PARISC>"
1719 msgstr "B<EM_PARISC>"
1720
1721 #.  15
1722 #. type: Plain text
1723 #: build/C/man5/elf.5:445
1724 msgid "HP/PA."
1725 msgstr "HP/PA."
1726
1727 #. type: TP
1728 #: build/C/man5/elf.5:445
1729 #, no-wrap
1730 msgid "B<EM_SPARC32PLUS>"
1731 msgstr "B<EM_SPARC32PLUS>"
1732
1733 #.  18
1734 #. type: Plain text
1735 #: build/C/man5/elf.5:449
1736 msgid "SPARC with enhanced instruction set."
1737 msgstr "拡張命令セット付き SPARC。"
1738
1739 #. type: TP
1740 #: build/C/man5/elf.5:449
1741 #, no-wrap
1742 msgid "B<EM_PPC>"
1743 msgstr "B<EM_PPC>"
1744
1745 #.  20
1746 #. type: Plain text
1747 #: build/C/man5/elf.5:453
1748 msgid "PowerPC."
1749 msgstr "PowerPC."
1750
1751 #. type: TP
1752 #: build/C/man5/elf.5:453
1753 #, no-wrap
1754 msgid "B<EM_PPC64>"
1755 msgstr "B<EM_PPC64>"
1756
1757 #.  21
1758 #. type: Plain text
1759 #: build/C/man5/elf.5:457
1760 msgid "PowerPC 64-bit."
1761 msgstr "PowerPC 64-bit."
1762
1763 #. type: TP
1764 #: build/C/man5/elf.5:457
1765 #, no-wrap
1766 msgid "B<EM_S390>"
1767 msgstr "B<EM_S390>"
1768
1769 #.  22
1770 #. type: Plain text
1771 #: build/C/man5/elf.5:461
1772 msgid "IBM S/390"
1773 msgstr "IBM S/390"
1774
1775 #. type: TP
1776 #: build/C/man5/elf.5:461
1777 #, no-wrap
1778 msgid "B<EM_ARM>"
1779 msgstr "B<EM_ARM>"
1780
1781 #.  40
1782 #. type: Plain text
1783 #: build/C/man5/elf.5:465
1784 msgid "Advanced RISC Machines"
1785 msgstr "Advanced RISC Machines"
1786
1787 #. type: TP
1788 #: build/C/man5/elf.5:465
1789 #, no-wrap
1790 msgid "B<EM_SH>"
1791 msgstr "B<EM_SH>"
1792
1793 #.  42
1794 #. type: Plain text
1795 #: build/C/man5/elf.5:469
1796 msgid "Renesas SuperH"
1797 msgstr "Renesas SuperH"
1798
1799 #. type: TP
1800 #: build/C/man5/elf.5:469
1801 #, no-wrap
1802 msgid "B<EM_SPARCV9>"
1803 msgstr "B<EM_SPARCV9>"
1804
1805 #.  43
1806 #. type: Plain text
1807 #: build/C/man5/elf.5:473
1808 msgid "SPARC v9 64-bit."
1809 msgstr "SPARC v9 64-bit."
1810
1811 #. type: TP
1812 #: build/C/man5/elf.5:473
1813 #, no-wrap
1814 msgid "B<EM_IA_64>"
1815 msgstr "B<EM_IA_64>"
1816
1817 #.  50
1818 #. type: Plain text
1819 #: build/C/man5/elf.5:477
1820 msgid "Intel Itanium"
1821 msgstr "Intel Itanium"
1822
1823 #. type: TP
1824 #: build/C/man5/elf.5:477
1825 #, no-wrap
1826 msgid "B<EM_X86_64>"
1827 msgstr "B<EM_X86_64>"
1828
1829 #.  62
1830 #. type: Plain text
1831 #: build/C/man5/elf.5:481
1832 msgid "AMD x86-64"
1833 msgstr "AMD x86-64"
1834
1835 #. type: TP
1836 #: build/C/man5/elf.5:481
1837 #, no-wrap
1838 msgid "B<EM_VAX>"
1839 msgstr "B<EM_VAX>"
1840
1841 #.  75
1842 #.  EM_CRIS
1843 #.  76
1844 #.  .TP
1845 #.  .BR EM_ALPHA
1846 #.  Compaq [DEC] Alpha.
1847 #.  .TP
1848 #.  .BR EM_ALPHA_EXP
1849 #.  Compaq [DEC] Alpha with enhanced instruction set.
1850 #. type: Plain text
1851 #: build/C/man5/elf.5:493
1852 msgid "DEC Vax."
1853 msgstr "DEC Vax."
1854
1855 #. type: TP
1856 #: build/C/man5/elf.5:496
1857 #, no-wrap
1858 msgid "I<e_version>"
1859 msgstr "I<e_version>"
1860
1861 #.  .Bl -tag -width "EV_CURRENT" -compact
1862 #. type: Plain text
1863 #: build/C/man5/elf.5:500
1864 msgid "This member identifies the file version:"
1865 msgstr "このメンバはファイルバージョンを示す:"
1866
1867 #. type: TP
1868 #: build/C/man5/elf.5:511
1869 #, no-wrap
1870 msgid "I<e_entry>"
1871 msgstr "I<e_entry>"
1872
1873 #. type: Plain text
1874 #: build/C/man5/elf.5:517
1875 msgid "This member gives the virtual address to which the system first transfers control, thus starting the process.  If the file has no associated entry point, this member holds zero."
1876 msgstr "このメンバは、システムが最初に制御を渡す、 つまりプロセスを開始する仮想アドレスを指定する。 ファイルにエントリポイントが関連付けられていない場合、 このメンバには 0 が入る。"
1877
1878 #. type: TP
1879 #: build/C/man5/elf.5:517
1880 #, no-wrap
1881 msgid "I<e_phoff>"
1882 msgstr "I<e_phoff>"
1883
1884 #. type: Plain text
1885 #: build/C/man5/elf.5:522
1886 msgid "This member holds the program header table's file offset in bytes.  If the file has no program header table, this member holds zero."
1887 msgstr "このメンバはプログラムヘッダテーブルの ファイルオフセット (バイト単位) を保持する。 ファイルにプログラムヘッダテーブルがない場合、 このメンバには 0 が入る。"
1888
1889 #. type: TP
1890 #: build/C/man5/elf.5:522
1891 #, no-wrap
1892 msgid "I<e_shoff>"
1893 msgstr "I<e_shoff>"
1894
1895 #. type: Plain text
1896 #: build/C/man5/elf.5:527
1897 msgid "This member holds the section header table's file offset in bytes.  If the file has no section header table, this member holds zero."
1898 msgstr "このメンバはセクションヘッダテーブルの ファイルオフセット (バイト単位) を保持する。 ファイルにセクションヘッダテーブルがない場合、 このメンバには 0 が入る。"
1899
1900 #. type: TP
1901 #: build/C/man5/elf.5:527
1902 #, no-wrap
1903 msgid "I<e_flags>"
1904 msgstr "I<e_flags>"
1905
1906 #. type: Plain text
1907 #: build/C/man5/elf.5:532
1908 msgid "This member holds processor-specific flags associated with the file.  Flag names take the form EF_`machine_flag'.  Currently no flags have been defined."
1909 msgstr "このメンバはファイルに関連付けられたプロセッサ固有のフラグを保持する。 フラグの名前は EF_`machine_flag' という形式である。 現在のところフラグは定義されていない。"
1910
1911 #. type: TP
1912 #: build/C/man5/elf.5:532
1913 #, no-wrap
1914 msgid "I<e_ehsize>"
1915 msgstr "I<e_ehsize>"
1916
1917 #. type: Plain text
1918 #: build/C/man5/elf.5:535
1919 msgid "This member holds the ELF header's size in bytes."
1920 msgstr "このメンバは ELF ヘッダサイズ (バイト単位) を保持する。"
1921
1922 #. type: TP
1923 #: build/C/man5/elf.5:535
1924 #, no-wrap
1925 msgid "I<e_phentsize>"
1926 msgstr "I<e_phentsize>"
1927
1928 #. type: Plain text
1929 #: build/C/man5/elf.5:539
1930 msgid "This member holds the size in bytes of one entry in the file's program header table; all entries are the same size."
1931 msgstr "このメンバはこのファイルのプログラムヘッダテーブルの 1 エントリあたりのサイズ (バイト単位) を保持する; 全てのエントリは同じサイズである。"
1932
1933 #. type: TP
1934 #: build/C/man5/elf.5:539
1935 #, no-wrap
1936 msgid "I<e_phnum>"
1937 msgstr "I<e_phnum>"
1938
1939 #. type: Plain text
1940 #: build/C/man5/elf.5:552
1941 msgid "This member holds the number of entries in the program header table.  Thus the product of I<e_phentsize> and I<e_phnum> gives the table's size in bytes.  If a file has no program header, I<e_phnum> holds the value zero."
1942 msgstr "このメンバはプログラムヘッダテーブルにあるエントリの数を保持する。 よって I<e_phentsize> と I<e_phnum> の積がテーブルサイズ (バイト単位) になる。 ファイルにプログラムヘッダがない場合、 I<e_phnum> は値 0 を保持する。"
1943
1944 #.  This is a Linux extension, added in Linux 2.6.34.
1945 #.  .Bl -tag -width "PN_XNUM"
1946 #. type: Plain text
1947 #: build/C/man5/elf.5:566
1948 msgid "If the number of entries in the program header table is larger than or equal to B<PN_XNUM> (0xffff), this member holds B<PN_XNUM> (0xffff) and the real number of entries in the program header table is held in the I<sh_info> member of the initial entry in section header table.  Otherwise, the I<sh_info> member of the initial entry contains the value zero."
1949 msgstr ""
1950 "プログラムヘッダテーブルのエントリー数が B<PN_XNUM> (0xffff) 以上の場合、\n"
1951 "このメンバは B<PN_XNUM> (0xffff) になり、プログラムヘッダテーブルの\n"
1952 "エントリーの実際の数は、セクションヘッダテーブルの最初のエントリーの \n"
1953 "I<sh_info> メンバに格納される。それ以外の場合、セクションヘッダテーブルの\n"
1954 "最初のエントリーの I<sh_info> メンバには値 0 が格納される。"
1955
1956 #. type: TP
1957 #: build/C/man5/elf.5:567
1958 #, no-wrap
1959 msgid "B<PN_XNUM>"
1960 msgstr "B<PN_XNUM>"
1961
1962 #. type: Plain text
1963 #: build/C/man5/elf.5:572
1964 msgid "This is defined as 0xffff, the largest number I<e_phnum> can have, specifying where the actual number of program headers is assigned."
1965 msgstr ""
1966 "I<e_phnum> が保持できる最大値を表し、 0xffff に定義されている。 I<e_phnum> \n"
1967 "はプログラムヘッダの実際の数がどこに割り当てられているかを示す。"
1968
1969 #. type: TP
1970 #: build/C/man5/elf.5:576
1971 #, no-wrap
1972 msgid "I<e_shentsize>"
1973 msgstr "I<e_shentsize>"
1974
1975 #. type: Plain text
1976 #: build/C/man5/elf.5:581
1977 msgid "This member holds a sections header's size in bytes.  A section header is one entry in the section header table; all entries are the same size."
1978 msgstr "このメンバはセクションヘッダのサイズ (バイト単位) を保持する。 セクションヘッダはセクションヘッダテーブルの 1 つのエントリである; 全てのエントリは同じサイズである。"
1979
1980 #. type: TP
1981 #: build/C/man5/elf.5:581
1982 #, no-wrap
1983 msgid "I<e_shnum>"
1984 msgstr "I<e_shnum>"
1985
1986 #. type: Plain text
1987 #: build/C/man5/elf.5:594
1988 msgid "This member holds the number of entries in the section header table.  Thus the product of I<e_shentsize> and I<e_shnum> gives the section header table's size in bytes.  If a file has no section header table, I<e_shnum> holds the value of zero."
1989 msgstr "このメンバはセクションヘッダテーブルにあるエントリの数を保持する。 よって I<e_shentsize> と I<e_shnum> の積はセクションヘッダテーブルのサイズ (バイト単位) になる。 ファイルにセクションヘッダテーブルがない場合、 I<e_shnum> は値 0 を保持する。"
1990
1991 #. type: Plain text
1992 #: build/C/man5/elf.5:606
1993 msgid "If the number of entries in the section header table is larger than or equal to B<SHN_LORESERVE> (0xff00), I<e_shnum> holds the value zero and the real number of entries in the section header table is held in the I<sh_size> member of the initial entry in section header table.  Otherwise, the I<sh_size> member of the initial entry in the section header table holds the value zero."
1994 msgstr ""
1995 "セクションヘッダテーブルのエントリー数が B<SHN_LORESERVE> (0xff00) 以上の場合、\n"
1996 "I<e_shnum> には値 0 が入り、セクションヘッダテーブルのエントリーの実際の数は\n"
1997 "セクションヘッダテーブルの最初のエントリーの I<sh_size> メンバに格納される。\n"
1998 "それ以外の場合、セクションヘッダテーブルの最初のエントリーの I<sh_info> メンバ\n"
1999 "には値 0 が格納される。"
2000
2001 #. type: TP
2002 #: build/C/man5/elf.5:606
2003 #, no-wrap
2004 msgid "I<e_shstrndx>"
2005 msgstr "I<e_shstrndx>"
2006
2007 #. type: Plain text
2008 #: build/C/man5/elf.5:613
2009 msgid "This member holds the section header table index of the entry associated with the section name string table.  If the file has no section name string table, this member holds the value B<SHN_UNDEF>."
2010 msgstr "このメンバはセクション名文字列テーブルに関連付けられたエントリの セクションヘッダテーブルインデックスを保持する。 ファイルにセクション名文字列テーブルがない場合、 このメンバは値 B<SHN_UNDEF> を保持する。 B<SHN_UNDEF>."
2011
2012 #. type: Plain text
2013 #: build/C/man5/elf.5:625
2014 msgid "If the index of section name string table section is larger than or equal to B<SHN_LORESERVE> (0xff00), this member holds B<SHN_XINDEX> (0xffff) and the real index of the section name string table section is held in the I<sh_link> member of the initial entry in section header table.  Otherwise, the I<sh_link> member of the initial entry in section header table contains the value zero."
2015 msgstr ""
2016 "セクション名前文字列テーブルのインデックスが B<SHN_LORESERVE> (0xff00) 以上の\n"
2017 "場合、このメンバには B<SHN_XINDEX> (0xffff) が入り、セクション名前文字列\n"
2018 "テーブルの実際のインデックスはセクションヘッダテーブルの最初のエントリーの\n"
2019 "I<sh_link> メンバに格納される。それ以外の場合、セクションヘッダテーブルの\n"
2020 "最初のエントリーの I<sh_link> メンバには値 0 が格納される。"
2021
2022 #. type: TP
2023 #: build/C/man5/elf.5:627 build/C/man5/elf.5:914
2024 #, no-wrap
2025 msgid "B<SHN_UNDEF>"
2026 msgstr "B<SHN_UNDEF>"
2027
2028 #. type: Plain text
2029 #: build/C/man5/elf.5:636
2030 msgid "This value marks an undefined, missing, irrelevant, or otherwise meaningless section reference.  For example, a symbol \"defined\" relative to section number B<SHN_UNDEF> is an undefined symbol."
2031 msgstr "この値は未定義・存在しない・無関係その他、 意味のないセクションの参照であることを表す。 例えば、セクション番号 B<SHN_UNDEF> に関連づけて「定義」されたシンボルは、「未定義」なシンボルである。"
2032
2033 #. type: TP
2034 #: build/C/man5/elf.5:636 build/C/man5/elf.5:918
2035 #, no-wrap
2036 msgid "B<SHN_LORESERVE>"
2037 msgstr "B<SHN_LORESERVE>"
2038
2039 #. type: Plain text
2040 #: build/C/man5/elf.5:639 build/C/man5/elf.5:921
2041 msgid "This value specifies the lower bound of the range of reserved indices."
2042 msgstr "この値は予約済みのインデックス領域の下限を指定する。"
2043
2044 #. type: TP
2045 #: build/C/man5/elf.5:639 build/C/man5/elf.5:921
2046 #, no-wrap
2047 msgid "B<SHN_LOPROC>"
2048 msgstr "B<SHN_LOPROC>"
2049
2050 #. type: Plain text
2051 #: build/C/man5/elf.5:644 build/C/man5/elf.5:926
2052 msgid "Values greater than or equal to B<SHN_HIPROC> are reserved for processor-specific semantics."
2053 msgstr "この値以上で B<SHN_HIPROC> 以下の値はプロセッサ固有の意味に予約されている。"
2054
2055 #. type: TP
2056 #: build/C/man5/elf.5:644 build/C/man5/elf.5:926
2057 #, no-wrap
2058 msgid "B<SHN_HIPROC>"
2059 msgstr "B<SHN_HIPROC>"
2060
2061 #. type: Plain text
2062 #: build/C/man5/elf.5:649 build/C/man5/elf.5:931
2063 msgid "Values less than or equal to B<SHN_LOPROC> are reserved for processor-specific semantics."
2064 msgstr "この値以下で B<SHN_HIPROC> 以上の値はプロセッサ固有の意味に予約されている。"
2065
2066 #. type: TP
2067 #: build/C/man5/elf.5:649 build/C/man5/elf.5:931
2068 #, no-wrap
2069 msgid "B<SHN_ABS>"
2070 msgstr "B<SHN_ABS>"
2071
2072 #. type: Plain text
2073 #: build/C/man5/elf.5:656
2074 msgid "This value specifies absolute values for the corresponding reference.  For example, symbols defined relative to section number B<SHN_ABS> have absolute values and are not affected by relocation."
2075 msgstr "この値は対応する参照の絶対値を指定する。 例えば、セクション番号 B<SHN_ABS> に関連づけられたシンボルは絶対値を保持し、再配置に影響されない。"
2076
2077 #. type: TP
2078 #: build/C/man5/elf.5:656 build/C/man5/elf.5:938
2079 #, no-wrap
2080 msgid "B<SHN_COMMON>"
2081 msgstr "B<SHN_COMMON>"
2082
2083 #. type: Plain text
2084 #: build/C/man5/elf.5:660
2085 msgid "Symbols defined relative to this section are common symbols, such as Fortran COMMON or unallocated C external variables."
2086 msgstr "このセクションに関連して定義されたシンボルは、 Fortran の COMMON や C の未割り当て external 変数のような、 共通シンボルである。"
2087
2088 #. type: TP
2089 #: build/C/man5/elf.5:660 build/C/man5/elf.5:942
2090 #, no-wrap
2091 msgid "B<SHN_HIRESERVE>"
2092 msgstr "B<SHN_HIRESERVE>"
2093
2094 #. type: Plain text
2095 #: build/C/man5/elf.5:673
2096 msgid "This value specifies the upper bound of the range of reserved indices between B<SHN_LORESERVE> and B<SHN_HIRESERVE>, inclusive; the values do not reference the section header table.  That is, the section header table does I<not> contain entries for the reserved indices."
2097 msgstr "この値は予約されたインデックスの範囲の上限を指定する。 B<SHN_LORESERVE> と B<SHN_HIRESERVE> は含まれる。 この値はセクションヘッダテーブルを参照しない。 つまり、セクションヘッダテーブルは 予約されたインデックスのエントリを I<含まない 。>"
2098
2099 #. type: Plain text
2100 #: build/C/man5/elf.5:695
2101 msgid "An executable or shared object file's program header table is an array of structures, each describing a segment or other information the system needs to prepare the program for execution.  An object file I<segment> contains one or more I<sections>.  Program headers are meaningful only for executable and shared object files.  A file specifies its own program header size with the ELF header's I<e_phentsize> and I<e_phnum> members.  The ELF program header is described by the type I<Elf32_Phdr> or I<Elf64_Phdr> depending on the architecture:"
2102 msgstr "実行可能ファイルまたは共有オブジェクトファイルのプログラムヘッダテーブルは、 システムによるプログラム実行準備に必要な、 セグメント等の情報を記述する構造体の配列である。 オブジェクトファイルの I<セグメント> には 1 つ以上の I<セクション> が含まれる。 プログラムヘッダは実行可能ファイルと共有オブジェクトファイルでのみ意味を持つ。 ファイルは自身のプログラムヘッダサイズを ELF ヘッダの I<e_phentsize> メンバと I<e_phnum> メンバで指定する。 ELF プログラムヘッダは I<Elf32_Phdr> 型または I<Elf64_Phdr> 型で記述される (どちらになるかはアーキテクチャー依存):"
2103
2104 #. type: Plain text
2105 #: build/C/man5/elf.5:708
2106 #, no-wrap
2107 msgid ""
2108 "typedef struct {\n"
2109 "    uint32_t   p_type;\n"
2110 "    Elf32_Off  p_offset;\n"
2111 "    Elf32_Addr p_vaddr;\n"
2112 "    Elf32_Addr p_paddr;\n"
2113 "    uint32_t   p_filesz;\n"
2114 "    uint32_t   p_memsz;\n"
2115 "    uint32_t   p_flags;\n"
2116 "    uint32_t   p_align;\n"
2117 "} Elf32_Phdr;\n"
2118 msgstr ""
2119 "typedef struct {\n"
2120 "    uint32_t   p_type;\n"
2121 "    Elf32_Off  p_offset;\n"
2122 "    Elf32_Addr p_vaddr;\n"
2123 "    Elf32_Addr p_paddr;\n"
2124 "    uint32_t   p_filesz;\n"
2125 "    uint32_t   p_memsz;\n"
2126 "    uint32_t   p_flags;\n"
2127 "    uint32_t   p_align;\n"
2128 "} Elf32_Phdr;\n"
2129
2130 #. type: Plain text
2131 #: build/C/man5/elf.5:723
2132 #, no-wrap
2133 msgid ""
2134 "typedef struct {\n"
2135 "    uint32_t   p_type;\n"
2136 "    uint32_t   p_flags;\n"
2137 "    Elf64_Off  p_offset;\n"
2138 "    Elf64_Addr p_vaddr;\n"
2139 "    Elf64_Addr p_paddr;\n"
2140 "    uint64_t   p_filesz;\n"
2141 "    uint64_t   p_memsz;\n"
2142 "    uint64_t   p_align;\n"
2143 "} Elf64_Phdr;\n"
2144 msgstr ""
2145 "typedef struct {\n"
2146 "    uint32_t   p_type;\n"
2147 "    uint32_t   p_flags;\n"
2148 "    Elf64_Off  p_offset;\n"
2149 "    Elf64_Addr p_vaddr;\n"
2150 "    Elf64_Addr p_paddr;\n"
2151 "    uint64_t   p_filesz;\n"
2152 "    uint64_t   p_memsz;\n"
2153 "    uint64_t   p_align;\n"
2154 "} Elf64_Phdr;\n"
2155
2156 #.  .Bl -tag -width "p_offset"
2157 #. type: Plain text
2158 #: build/C/man5/elf.5:731
2159 msgid "The main difference between the 32-bit and the 64-bit program header lies in the location of the I<p_flags> member in the total struct."
2160 msgstr "32 ビットと 64 ビットのプログラムヘッダの主な違いは、構造体における I<p_flags> メンバの位置にある。"
2161
2162 #. type: TP
2163 #: build/C/man5/elf.5:731
2164 #, no-wrap
2165 msgid "I<p_type>"
2166 msgstr "I<p_type>"
2167
2168 #.  .Bl -tag -width "PT_DYNAMIC"
2169 #. type: Plain text
2170 #: build/C/man5/elf.5:736
2171 msgid "This member of the Phdr struct tells what kind of segment this array element describes or how to interpret the array element's information."
2172 msgstr "Phdr 構造体のこのメンバは、 この配列要素がどのような種類のセグメントを記述しているか、 またはこの配列要素の情報をどのように解釈するか、を表す。"
2173
2174 #. type: TP
2175 #: build/C/man5/elf.5:737
2176 #, no-wrap
2177 msgid "B<PT_NULL>"
2178 msgstr "B<PT_NULL>"
2179
2180 #. type: Plain text
2181 #: build/C/man5/elf.5:741
2182 msgid "The array element is unused and the other members' values are undefined.  This lets the program header have ignored entries."
2183 msgstr "この配列要素は使用されておらず、その他のメンバの値は未定義である。 これにより、このプログラムヘッダのエントリは無視される。"
2184
2185 #. type: TP
2186 #: build/C/man5/elf.5:741
2187 #, no-wrap
2188 msgid "B<PT_LOAD>"
2189 msgstr "B<PT_LOAD>"
2190
2191 #. type: Plain text
2192 #: build/C/man5/elf.5:762
2193 msgid "The array element specifies a loadable segment, described by I<p_filesz> and I<p_memsz>.  The bytes from the file are mapped to the beginning of the memory segment.  If the segment's memory size I<p_memsz> is larger than the file size I<p_filesz>, the \"extra\" bytes are defined to hold the value 0 and to follow the segment's initialized area.  The file size may not be larger than the memory size.  Loadable segment entries in the program header table appear in ascending order, sorted on the I<p_vaddr> member."
2194 msgstr "この配列要素は I<p_filesz> と I<p_memsz> で記述されるロード可能セグメントを指定する。 このファイルからのバイトデータが、このメモリセグメントの先頭からマップされる。 セグメントのメモリサイズ I<Sy>p_memsz がファイルサイズ I<Sy>p_filesz より大きい場合、 「余った」バイトは値 0 となり、 そのセグメント初期化データの後ろに置かれると定められている。 ファイルサイズはメモリサイズより大きくてはいけない。 プログラムヘッダテーブルのロード可能セグメントエントリは、 I<p_vaddr> メンバの昇順にソートされて出現する。"
2195
2196 #. type: TP
2197 #: build/C/man5/elf.5:762
2198 #, no-wrap
2199 msgid "B<PT_DYNAMIC>"
2200 msgstr "B<PT_DYNAMIC>"
2201
2202 #. type: Plain text
2203 #: build/C/man5/elf.5:765
2204 msgid "The array element specifies dynamic linking information."
2205 msgstr "この配列要素は動的リンク情報を指定する。"
2206
2207 #. type: TP
2208 #: build/C/man5/elf.5:765
2209 #, no-wrap
2210 msgid "B<PT_INTERP>"
2211 msgstr "B<PT_INTERP>"
2212
2213 #. type: Plain text
2214 #: build/C/man5/elf.5:773
2215 msgid "The array element specifies the location and size of a null-terminated pathname to invoke as an interpreter.  This segment type is meaningful only for executable files (though it may occur for shared objects).  However it may not occur more than once in a file.  If it is present, it must precede any loadable segment entry."
2216 msgstr "この配列要素は、インタプリタとして起動されるパス名 (ヌル文字終端)  の位置とサイズを指定する。 このセグメント型は (共有オブジェクトにもあるかも知れないが)  実行可能ファイルでのみ意味を持つ。 ただし、このセグメント型は 1 つのファイルに 2 回以上出現してはならない。 もし存在する場合、このセグメント型は 全てのロード可能セグメントエントリより前になければならない。"
2217
2218 #. type: TP
2219 #: build/C/man5/elf.5:773
2220 #, no-wrap
2221 msgid "B<PT_NOTE>"
2222 msgstr "B<PT_NOTE>"
2223
2224 #. type: Plain text
2225 #: build/C/man5/elf.5:776
2226 msgid "The array element specifies the location and size for auxiliary information."
2227 msgstr "この配列要素は補足情報 (auxiliary information) の位置とサイズを指定する。"
2228
2229 #. type: TP
2230 #: build/C/man5/elf.5:776
2231 #, no-wrap
2232 msgid "B<PT_SHLIB>"
2233 msgstr "B<PT_SHLIB>"
2234
2235 #. type: Plain text
2236 #: build/C/man5/elf.5:781
2237 msgid "This segment type is reserved but has unspecified semantics.  Programs that contain an array element of this type do not conform to the ABI."
2238 msgstr "このセグメント型は予約されているが、意味は指定されていない。 この型の配列要素を保持するプログラムは ABI に準拠しない。"
2239
2240 #. type: TP
2241 #: build/C/man5/elf.5:781
2242 #, no-wrap
2243 msgid "B<PT_PHDR>"
2244 msgstr "B<PT_PHDR>"
2245
2246 #. type: Plain text
2247 #: build/C/man5/elf.5:790
2248 msgid "The array element, if present, specifies the location and size of the program header table itself, both in the file and in the memory image of the program.  This segment type may not occur more than once in a file.  Moreover, it may occur only if the program header table is part of the memory image of the program.  If it is present, it must precede any loadable segment entry."
2249 msgstr "この配列要素は、もし存在しているならば、 ファイルおよびプログラムのメモリイメージ双方における プログラムヘッダテーブル自身の位置とサイズを指定する。 このセグメント型は 1 つのファイルに 2 回以上出現してはならない。 さらに、このセグメント型が存在してもよいのは、プログラムヘッダテーブルが プログラムのメモリイメージの一部である場合のみである。 もし存在する場合、これは全てのロード可能セグメントエントリより 前になければならない。"
2250
2251 #. type: TP
2252 #: build/C/man5/elf.5:790
2253 #, no-wrap
2254 msgid "B<PT_LOPROC>"
2255 msgstr "B<PT_LOPROC>"
2256
2257 #. type: Plain text
2258 #: build/C/man5/elf.5:795
2259 msgid "Values greater than or equal to B<PT_HIPROC> are reserved for processor-specific semantics."
2260 msgstr "この値以上で B<PT_HIPROC> 以下の値はプロセッサ固有の意味に予約されている。"
2261
2262 #. type: TP
2263 #: build/C/man5/elf.5:795
2264 #, no-wrap
2265 msgid "B<PT_HIPROC>"
2266 msgstr "B<PT_HIPROC>"
2267
2268 #. type: Plain text
2269 #: build/C/man5/elf.5:800
2270 msgid "Values less than or equal to B<PT_LOPROC> are reserved for processor-specific semantics."
2271 msgstr "この値以下で B<PT_LOPROC> 以上の値はプロセッサ固有の意味に予約されている。"
2272
2273 #. type: TP
2274 #: build/C/man5/elf.5:800
2275 #, no-wrap
2276 msgid "B<PT_GNU_STACK>"
2277 msgstr "B<PT_GNU_STACK>"
2278
2279 #.  .El
2280 #. type: Plain text
2281 #: build/C/man5/elf.5:807
2282 msgid "GNU extension which is used by the Linux kernel to control the state of the stack via the flags set in the I<p_flags> member."
2283 msgstr "GNU 拡張であり、Linux カーネルが I<p_flags> のメンバーにセットされたフラグ経由でスタックの状態を制御するために使用する。"
2284
2285 #. type: TP
2286 #: build/C/man5/elf.5:808
2287 #, no-wrap
2288 msgid "I<p_offset>"
2289 msgstr "I<p_offset>"
2290
2291 #. type: Plain text
2292 #: build/C/man5/elf.5:812
2293 msgid "This member holds the offset from the beginning of the file at which the first byte of the segment resides."
2294 msgstr "このメンバは、セグメントの先頭バイトがある (ファイル先頭からの) オフセットを保持する。"
2295
2296 #. type: TP
2297 #: build/C/man5/elf.5:812
2298 #, no-wrap
2299 msgid "I<p_vaddr>"
2300 msgstr "I<p_vaddr>"
2301
2302 #. type: Plain text
2303 #: build/C/man5/elf.5:816
2304 msgid "This member holds the virtual address at which the first byte of the segment resides in memory."
2305 msgstr "このメンバは、セグメントの先頭バイトがある メモリの仮想アドレスを保持する。"
2306
2307 #. type: TP
2308 #: build/C/man5/elf.5:816
2309 #, no-wrap
2310 msgid "I<p_paddr>"
2311 msgstr "I<p_paddr>"
2312
2313 #. type: Plain text
2314 #: build/C/man5/elf.5:824
2315 msgid "On systems for which physical addressing is relevant, this member is reserved for the segment's physical address.  Under BSD this member is not used and must be zero."
2316 msgstr "物理アドレスが意味をもつシステムでは、 このメンバはセグメントの物理アドレスとして予約されている。 BSD ではこのメンバは使用されない。0 でなければならない。"
2317
2318 #. type: TP
2319 #: build/C/man5/elf.5:824
2320 #, no-wrap
2321 msgid "I<p_filesz>"
2322 msgstr "I<p_filesz>"
2323
2324 #. type: Plain text
2325 #: build/C/man5/elf.5:828
2326 msgid "This member holds the number of bytes in the file image of the segment.  It may be zero."
2327 msgstr "このメンバはセグメントのファイルイメージのバイト数を保持する。 これは 0 でもよい。"
2328
2329 #. type: TP
2330 #: build/C/man5/elf.5:828
2331 #, no-wrap
2332 msgid "I<p_memsz>"
2333 msgstr "I<p_memsz>"
2334
2335 #. type: Plain text
2336 #: build/C/man5/elf.5:832
2337 msgid "This member holds the number of bytes in the memory image of the segment.  It may be zero."
2338 msgstr "このメンバはセグメントのメモリイメージのバイト数を保持する。 これは 0 でもよい。"
2339
2340 #. type: TP
2341 #: build/C/man5/elf.5:832
2342 #, no-wrap
2343 msgid "I<p_flags>"
2344 msgstr "I<p_flags>"
2345
2346 #.  .Bl -tag -width "PF_X" -compact
2347 #. type: Plain text
2348 #: build/C/man5/elf.5:836
2349 msgid "This member holds a bit mask of flags relevant to the segment:"
2350 msgstr "このメンバはセグメントに関連するフラグのビットマスクを保持する:"
2351
2352 #. type: TP
2353 #: build/C/man5/elf.5:837
2354 #, no-wrap
2355 msgid "B<PF_X>"
2356 msgstr "B<PF_X>"
2357
2358 #. type: Plain text
2359 #: build/C/man5/elf.5:841
2360 msgid "An executable segment."
2361 msgstr "実行可能セグメント。"
2362
2363 #. type: TP
2364 #: build/C/man5/elf.5:841
2365 #, no-wrap
2366 msgid "B<PF_W>"
2367 msgstr "B<PF_W>"
2368
2369 #. type: Plain text
2370 #: build/C/man5/elf.5:844
2371 msgid "A writable segment."
2372 msgstr "書き込み可能セグメント."
2373
2374 #. type: TP
2375 #: build/C/man5/elf.5:844
2376 #, no-wrap
2377 msgid "B<PF_R>"
2378 msgstr "B<PF_R>"
2379
2380 #. type: Plain text
2381 #: build/C/man5/elf.5:847
2382 msgid "A readable segment."
2383 msgstr "読み込み可能セグメント。"
2384
2385 #. type: Plain text
2386 #: build/C/man5/elf.5:860
2387 msgid "A text segment commonly has the flags B<PF_X> and B<PF_R>.  A data segment commonly has B<PF_X>, B<PF_W> and B<PF_R>."
2388 msgstr "テキストセグメントは一般にフラグ B<PF_X> と B<PF_R> を持つ。 データセグメントは一般に B<PF_X>, B<PF_W>, B<PF_R> を持つ。"
2389
2390 #. type: TP
2391 #: build/C/man5/elf.5:860
2392 #, no-wrap
2393 msgid "I<p_align>"
2394 msgstr "I<p_align>"
2395
2396 #.  .El
2397 #. type: Plain text
2398 #: build/C/man5/elf.5:879
2399 msgid "This member holds the value to which the segments are aligned in memory and in the file.  Loadable process segments must have congruent values for I<p_vaddr> and I<p_offset>, modulo the page size.  Values of zero and one mean no alignment is required.  Otherwise, I<p_align> should be a positive, integral power of two, and I<p_vaddr> should equal I<p_offset>, modulo I<p_align>."
2400 msgstr "このメンバは、セグメントがメモリおよびファイルにおいて配置 (align)  される値を保持する。 ロード可能プロセスセグメントは、ページサイズを法として I<p_vaddr> と I<p_offset> と合同でなければならない (訳注:「p_vaddr mod ページサイズ = p_offset mod ページサイズ」 でなければならない)。。 0 と 1 という値は配置が必要ないことを意味する。 それ以外の場合、 I<p_align> は正で 2 の整数乗でなければならず、 I<p_vaddr> は I<p_align> を法として I<p_offset> と合同でなければならない (訳注:「p_vaddr mod p_align = p_offset mod p_align」でなければならない)。"
2401
2402 #. type: Plain text
2403 #: build/C/man5/elf.5:896
2404 msgid "A file's section header table lets one locate all the file's sections.  The section header table is an array of I<Elf32_Shdr> or I<Elf64_Shdr> structures.  The ELF header's I<e_shoff> member gives the byte offset from the beginning of the file to the section header table.  I<e_shnum> holds the number of entries the section header table contains.  I<e_shentsize> holds the size in bytes of each entry."
2405 msgstr "ファイルのセクションヘッダテーブルには、 全てのファイルセクションの場所が記述されている。 セクションヘッダテーブルは I<Elf32_Shdr> 構造体または I<Elf64_Shdr> 構造体の配列である。 ELF ヘッダの I<e_shoff> メンバはファイルの先頭から セクションヘッダテーブルへのバイトオフセットである。 I<e_shnum> はセクションヘッダテーブルに含まれるエントリの数を保持する。 I<e_shentsize> は各エントリのサイズ (バイト単位) を保持する。"
2406
2407 #.  .Bl -tag -width "SHN_LORESERVE"
2408 #. type: Plain text
2409 #: build/C/man5/elf.5:913
2410 msgid "A section header table index is a subscript into this array.  Some section header table indices are reserved: the initial entry and the indices between B<SHN_LORESERVE> and B<SHN_HIRESERVE>.  The initial entry is used in ELF extensions for I<e_phnum>, I<e_shnum> and I<e_strndx>; in other cases, each field in the initial entry is set to zero.  An object file does not have sections for these special indices:"
2411 msgstr ""
2412 "セクションヘッダテーブルインデックスは、この配列の添字である。\n"
2413 "いくつかのセクションヘッダテーブルインデックスは予約されている。予約されて\n"
2414 "いるのは、最初のエントリーと、B<SHN_LORESERVE> と B<SHN_HIRESERVE> の間の\n"
2415 "インデックスである。\n"
2416 "最初のエントリーは、ELF 拡張で I<e_phnum>, I<e_shnum>, I<e_strndx> に使用\n"
2417 "される。それ以外の場合、最初のエントリーの各フィールドには 0 が設定される。\n"
2418 "オブジェクトファイルにはこれらの特別なインデックスに対応するセクションはない。"
2419
2420 #. type: Plain text
2421 #: build/C/man5/elf.5:918
2422 msgid "This value marks an undefined, missing, irrelevant, or otherwise meaningless section reference."
2423 msgstr "この値は、未定義 (undefined)、不足 (missing)、無関係 (irrelevant)、その他無意味なセクション参照を示す。"
2424
2425 #. type: Plain text
2426 #: build/C/man5/elf.5:938
2427 msgid "This value specifies the absolute value for the corresponding reference.  For example, a symbol defined relative to section number B<SHN_ABS> has an absolute value and is not affected by relocation."
2428 msgstr "この値は対応する参照の絶対値を指定する。 例えば、セクション番号 B<SHN_ABS> に関連して定義されているシンボルは、 絶対値を保持しているので、再配置に影響されない。"
2429
2430 #. type: Plain text
2431 #: build/C/man5/elf.5:942
2432 msgid "Symbols defined relative to this section are common symbols, such as FORTRAN COMMON or unallocated C external variables."
2433 msgstr "このセクションに関連して定義されているシンボルは、 FORTRAN の COMMON や C の未割り当て外部変数のような共通シンボルである。"
2434
2435 #. type: Plain text
2436 #: build/C/man5/elf.5:953
2437 msgid "This value specifies the upper bound of the range of reserved indices.  The system reserves indices between B<SHN_LORESERVE> and B<SHN_HIRESERVE>, inclusive.  The section header table does not contain entries for the reserved indices."
2438 msgstr "この値は予約済みのインデックス領域の上限を指定する。 システムは B<SHN_LORESERVE> と B<SHN_HIRESERVE> を含む範囲を予約する。 セクションヘッダテーブルは予約されたインデックスに対応するエントリを持たない。"
2439
2440 #. type: Plain text
2441 #: build/C/man5/elf.5:957
2442 msgid "The section header has the following structure:"
2443 msgstr "セクションヘッダは以下の構造体を持つ:"
2444
2445 #. type: Plain text
2446 #: build/C/man5/elf.5:972
2447 #, no-wrap
2448 msgid ""
2449 "typedef struct {\n"
2450 "    uint32_t   sh_name;\n"
2451 "    uint32_t   sh_type;\n"
2452 "    uint32_t   sh_flags;\n"
2453 "    Elf32_Addr sh_addr;\n"
2454 "    Elf32_Off  sh_offset;\n"
2455 "    uint32_t   sh_size;\n"
2456 "    uint32_t   sh_link;\n"
2457 "    uint32_t   sh_info;\n"
2458 "    uint32_t   sh_addralign;\n"
2459 "    uint32_t   sh_entsize;\n"
2460 "} Elf32_Shdr;\n"
2461 msgstr ""
2462 "typedef struct {\n"
2463 "    uint32_t   sh_name;\n"
2464 "    uint32_t   sh_type;\n"
2465 "    uint32_t   sh_flags;\n"
2466 "    Elf32_Addr sh_addr;\n"
2467 "    Elf32_Off  sh_offset;\n"
2468 "    uint32_t   sh_size;\n"
2469 "    uint32_t   sh_link;\n"
2470 "    uint32_t   sh_info;\n"
2471 "    uint32_t   sh_addralign;\n"
2472 "    uint32_t   sh_entsize;\n"
2473 "} Elf32_Shdr;\n"
2474
2475 #. type: Plain text
2476 #: build/C/man5/elf.5:989
2477 #, no-wrap
2478 msgid ""
2479 "typedef struct {\n"
2480 "    uint32_t   sh_name;\n"
2481 "    uint32_t   sh_type;\n"
2482 "    uint64_t   sh_flags;\n"
2483 "    Elf64_Addr sh_addr;\n"
2484 "    Elf64_Off  sh_offset;\n"
2485 "    uint64_t   sh_size;\n"
2486 "    uint32_t   sh_link;\n"
2487 "    uint32_t   sh_info;\n"
2488 "    uint64_t   sh_addralign;\n"
2489 "    uint64_t   sh_entsize;\n"
2490 "} Elf64_Shdr;\n"
2491 msgstr ""
2492 "typedef struct {\n"
2493 "    uint32_t   sh_name;\n"
2494 "    uint32_t   sh_type;\n"
2495 "    uint64_t   sh_flags;\n"
2496 "    Elf64_Addr sh_addr;\n"
2497 "    Elf64_Off  sh_offset;\n"
2498 "    uint64_t   sh_size;\n"
2499 "    uint32_t   sh_link;\n"
2500 "    uint32_t   sh_info;\n"
2501 "    uint64_t   sh_addralign;\n"
2502 "    uint64_t   sh_entsize;\n"
2503 "} Elf64_Shdr;\n"
2504
2505 #.  .Bl -tag -width "sh_addralign"
2506 #. type: Plain text
2507 #: build/C/man5/elf.5:994
2508 msgid "No real differences exist between the 32-bit and 64-bit section headers."
2509 msgstr "32 ビットと 64 ビットのセクションヘッダには実際の違いはない。"
2510
2511 #. type: TP
2512 #: build/C/man5/elf.5:994
2513 #, no-wrap
2514 msgid "I<sh_name>"
2515 msgstr "I<sh_name>"
2516
2517 #. type: Plain text
2518 #: build/C/man5/elf.5:1000
2519 msgid "This member specifies the name of the section.  Its value is an index into the section header string table section, giving the location of a null-terminated string."
2520 msgstr "このメンバはセクション名を定める。 この値はセクションヘッダ文字列テーブルセクションのインデックスであり、 ヌル文字で終端された文字列の場所を示す。"
2521
2522 #. type: TP
2523 #: build/C/man5/elf.5:1000
2524 #, no-wrap
2525 msgid "I<sh_type>"
2526 msgstr "I<sh_type>"
2527
2528 #.  .Bl -tag -width "SHT_PROGBITS"
2529 #. type: Plain text
2530 #: build/C/man5/elf.5:1004
2531 msgid "This member categorizes the section's contents and semantics."
2532 msgstr "このメンバはセクションの内容と意味が含まれるカテゴリを示す。"
2533
2534 #. type: TP
2535 #: build/C/man5/elf.5:1005
2536 #, no-wrap
2537 msgid "B<SHT_NULL>"
2538 msgstr "B<SHT_NULL>"
2539
2540 #. type: Plain text
2541 #: build/C/man5/elf.5:1012
2542 msgid "This value marks the section header as inactive.  It does not have an associated section.  Other members of the section header have undefined values."
2543 msgstr "この値はセクションヘッダが不活性であることを示す。 これは関連するセクションを持たない。 このセクションヘッダの他のメンバは、未定義の値を持つ。"
2544
2545 #. type: TP
2546 #: build/C/man5/elf.5:1012
2547 #, no-wrap
2548 msgid "B<SHT_PROGBITS>"
2549 msgstr "B<SHT_PROGBITS>"
2550
2551 #. type: Plain text
2552 #: build/C/man5/elf.5:1016
2553 msgid "This section holds information defined by the program, whose format and meaning are determined solely by the program."
2554 msgstr "このセクションはプログラムにより定義される情報を保持する。 この情報の形式と意味は、ひとえにプログラムによって決定される。"
2555
2556 #. type: TP
2557 #: build/C/man5/elf.5:1016
2558 #, no-wrap
2559 msgid "B<SHT_SYMTAB>"
2560 msgstr "B<SHT_SYMTAB>"
2561
2562 #. type: Plain text
2563 #: build/C/man5/elf.5:1029
2564 msgid "This section holds a symbol table.  Typically, B<SHT_SYMTAB> provides symbols for link editing, though it may also be used for dynamic linking.  As a complete symbol table, it may contain many symbols unnecessary for dynamic linking.  An object file can also contain a B<SHT_DYNSYM> section."
2565 msgstr "このセクションはシンボルテーブルを保持する。 一般には B<SHT_SYMTAB> はリンク編集のためのシンボルを提供するが、 動的リンクにも使われる。 完全なシンボルテーブルとして、動的リンクには不要な 多くのシンボルを保持できる。 オブジェクトファイルも B<SHT_DYNSYM> セクションを持つことができる。"
2566
2567 #. type: TP
2568 #: build/C/man5/elf.5:1029
2569 #, no-wrap
2570 msgid "B<SHT_STRTAB>"
2571 msgstr "B<SHT_STRTAB>"
2572
2573 #. type: Plain text
2574 #: build/C/man5/elf.5:1034
2575 msgid "This section holds a string table.  An object file may have multiple string table sections."
2576 msgstr "このセクションは文字列テーブルを保持する。 オブジェクトファイルは複数の文字列テーブルセクションを持つことができる。"
2577
2578 #. type: TP
2579 #: build/C/man5/elf.5:1034
2580 #, no-wrap
2581 msgid "B<SHT_RELA>"
2582 msgstr "B<SHT_RELA>"
2583
2584 #. type: Plain text
2585 #: build/C/man5/elf.5:1042
2586 msgid "This section holds relocation entries with explicit addends, such as type I<Elf32_Rela> for the 32-bit class of object files.  An object may have multiple relocation sections."
2587 msgstr "このセクションは明示的な加数 (addend) を持つ再配置エントリを保持する。 再配置エントリの型は、オブジェクトファイルの 32 ビットクラスでは I<Elf32_Rela> である。 オブジェクトファイルは複数の再配置セクションを持つことができる。"
2588
2589 #. type: TP
2590 #: build/C/man5/elf.5:1042
2591 #, no-wrap
2592 msgid "B<SHT_HASH>"
2593 msgstr "B<SHT_HASH>"
2594
2595 #. type: Plain text
2596 #: build/C/man5/elf.5:1049
2597 msgid "This section holds a symbol hash table.  An object participating in dynamic linking must contain a symbol hash table.  An object file may have only one hash table."
2598 msgstr "このセクションはシンボルハッシュテーブルを保持する。 動的リンクされるオブジェクトは、 シンボルハッシュテーブルを含んでいなければならない。 オブジェクトファイルは 1 つのハッシュテーブルのみを持つことができる。"
2599
2600 #. type: TP
2601 #: build/C/man5/elf.5:1049
2602 #, no-wrap
2603 msgid "B<SHT_DYNAMIC>"
2604 msgstr "B<SHT_DYNAMIC>"
2605
2606 #. type: Plain text
2607 #: build/C/man5/elf.5:1054
2608 msgid "This section holds information for dynamic linking.  An object file may have only one dynamic section."
2609 msgstr "このセクションは動的リンクの情報を保持する。 オブジェクトファイルは 1 つの動的セクションのみを持つことができる。"
2610
2611 #. type: TP
2612 #: build/C/man5/elf.5:1054
2613 #, no-wrap
2614 msgid "B<SHT_NOTE>"
2615 msgstr "B<SHT_NOTE>"
2616
2617 #. type: Plain text
2618 #: build/C/man5/elf.5:1057
2619 msgid "This section holds information that marks the file in some way."
2620 msgstr "このセクションはファイルに何らかの印を付ける情報を保持する。"
2621
2622 #. type: TP
2623 #: build/C/man5/elf.5:1057
2624 #, no-wrap
2625 msgid "B<SHT_NOBITS>"
2626 msgstr "B<SHT_NOBITS>"
2627
2628 #. type: Plain text
2629 #: build/C/man5/elf.5:1065
2630 msgid "A section of this type occupies no space in the file but otherwise resembles B<SHT_PROGBITS>.  Although this section contains no bytes, the I<sh_offset> member contains the conceptual file offset."
2631 msgstr "このタイプのセクションはファイルの領域を使わないという以外は、 B<SHT_PROGBITS> と似ている。 このセクションは 1 バイトも含まないが、 I<sh_offset> メンバは概念的なファイルオフセットを持つ。"
2632
2633 #. type: TP
2634 #: build/C/man5/elf.5:1065
2635 #, no-wrap
2636 msgid "B<SHT_REL>"
2637 msgstr "B<SHT_REL>"
2638
2639 #. type: Plain text
2640 #: build/C/man5/elf.5:1073
2641 msgid "This section holds relocation offsets without explicit addends, such as type I<Elf32_Rel> for the 32-bit class of object files.  An object file may have multiple relocation sections."
2642 msgstr "このセクションは明示的な加数を持たない再配置オフセットを保持する。 再配置オフセットの型は、オブジェクトファイルの 32 ビットクラスでは I<Elf32_Rel> である。 オブジェクトファイルは複数の再配置セクションを持つことができる。"
2643
2644 #. type: TP
2645 #: build/C/man5/elf.5:1073
2646 #, no-wrap
2647 msgid "B<SHT_SHLIB>"
2648 msgstr "B<SHT_SHLIB>"
2649
2650 #. type: Plain text
2651 #: build/C/man5/elf.5:1076
2652 msgid "This section is reserved but has unspecified semantics."
2653 msgstr "このセクションは予約されているが、意味は指定されていない。"
2654
2655 #. type: TP
2656 #: build/C/man5/elf.5:1076
2657 #, no-wrap
2658 msgid "B<SHT_DYNSYM>"
2659 msgstr "B<SHT_DYNSYM>"
2660
2661 #. type: Plain text
2662 #: build/C/man5/elf.5:1083
2663 msgid "This section holds a minimal set of dynamic linking symbols.  An object file can also contain a B<SHT_SYMTAB> section."
2664 msgstr "このセクションは動的リンクシンボルの最小セットを保持する。 オブジェクトファイルは B<SHT_SYMTAB> セクションも含むことができる。"
2665
2666 #. type: TP
2667 #: build/C/man5/elf.5:1083
2668 #, no-wrap
2669 msgid "B<SHT_LOPROC>"
2670 msgstr "B<SHT_LOPROC>"
2671
2672 #. type: Plain text
2673 #: build/C/man5/elf.5:1088
2674 msgid "This value up to and including B<SHT_HIPROC> is reserved for processor-specific semantics."
2675 msgstr "この値以上で B<SHT_HIPROC> 以下の範囲はプロセッサ固有の意味に予約されている。"
2676
2677 #. type: TP
2678 #: build/C/man5/elf.5:1088
2679 #, no-wrap
2680 msgid "B<SHT_HIPROC>"
2681 msgstr "B<SHT_HIPROC>"
2682
2683 #. type: Plain text
2684 #: build/C/man5/elf.5:1093
2685 msgid "This value down to and including B<SHT_LOPROC> is reserved for processor-specific semantics."
2686 msgstr "この値以下で B<SHT_LOPROC> 以上の範囲はプロセッサ固有の意味に予約されている。"
2687
2688 #. type: TP
2689 #: build/C/man5/elf.5:1093
2690 #, no-wrap
2691 msgid "B<SHT_LOUSER>"
2692 msgstr "B<SHT_LOUSER>"
2693
2694 #. type: Plain text
2695 #: build/C/man5/elf.5:1097
2696 msgid "This value specifies the lower bound of the range of indices reserved for application programs."
2697 msgstr "この値はアプリケーションプログラムのために予約される インデックス範囲の下限を指定する。"
2698
2699 #. type: TP
2700 #: build/C/man5/elf.5:1097
2701 #, no-wrap
2702 msgid "B<SHT_HIUSER>"
2703 msgstr "B<SHT_HIUSER>"
2704
2705 #.  .El
2706 #. type: Plain text
2707 #: build/C/man5/elf.5:1108
2708 msgid "This value specifies the upper bound of the range of indices reserved for application programs.  Section types between B<SHT_LOUSER> and B<SHT_HIUSER> may be used by the application, without conflicting with current or future system-defined section types."
2709 msgstr "この値はアプリケーションプログラムのために予約される インデックス範囲の上限を指定する。 B<SHT_LOUSER> から B<SHT_HIUSER> の間のセクションタイプは、 現在または将来のシステム定義セクションタイプと衝突することなく、 アプリケーションで使用することができる。"
2710
2711 #. type: TP
2712 #: build/C/man5/elf.5:1109
2713 #, no-wrap
2714 msgid "I<sh_flags>"
2715 msgstr "I<sh_flags>"
2716
2717 #.  .Bl -tag -width "SHF_EXECINSTR" -compact
2718 #. type: Plain text
2719 #: build/C/man5/elf.5:1122
2720 msgid "Sections support one-bit flags that describe miscellaneous attributes.  If a flag bit is set in I<sh_flags>, the attribute is \"on\" for the section.  Otherwise, the attribute is \"off\" or does not apply.  Undefined attributes are set to zero."
2721 msgstr "様々な属性を記述するための 1 ビットのフラグをサポートするセクション。 フラグビットが I<sh_flags> に設定された場合、そのセクションについての属性は \"オン\" になる。 それ以外の場合、属性が \"オフ\" であるか属性が適用されない。 未定義の属性は 0 に設定される。"
2722
2723 #. type: TP
2724 #: build/C/man5/elf.5:1123
2725 #, no-wrap
2726 msgid "B<SHF_WRITE>"
2727 msgstr "B<SHF_WRITE>"
2728
2729 #. type: Plain text
2730 #: build/C/man5/elf.5:1127
2731 msgid "This section contains data that should be writable during process execution."
2732 msgstr "このセクションはプロセス実行中に書き込み可能なデータを含む。"
2733
2734 #. type: TP
2735 #: build/C/man5/elf.5:1127
2736 #, no-wrap
2737 msgid "B<SHF_ALLOC>"
2738 msgstr "B<SHF_ALLOC>"
2739
2740 #. type: Plain text
2741 #: build/C/man5/elf.5:1134
2742 msgid "This section occupies memory during process execution.  Some control sections do not reside in the memory image of an object file.  This attribute is off for those sections."
2743 msgstr "このセクションはプロセス実行中にメモリを使用する。 制御セクションの中には、オブジェクトファイルのメモリイメージには 存在しないものもある。 そうしたセクションの場合、この属性はオフである。"
2744
2745 #. type: TP
2746 #: build/C/man5/elf.5:1134
2747 #, no-wrap
2748 msgid "B<SHF_EXECINSTR>"
2749 msgstr "B<SHF_EXECINSTR>"
2750
2751 #. type: Plain text
2752 #: build/C/man5/elf.5:1137
2753 msgid "This section contains executable machine instructions."
2754 msgstr "このセクションは実行可能なマシン命令を含む。"
2755
2756 #. type: TP
2757 #: build/C/man5/elf.5:1137
2758 #, no-wrap
2759 msgid "B<SHF_MASKPROC>"
2760 msgstr "B<SHF_MASKPROC>"
2761
2762 #. type: Plain text
2763 #: build/C/man5/elf.5:1141
2764 msgid "All bits included in this mask are reserved for processor-specific semantics."
2765 msgstr "このマスクに含まれる全てのビットはプロセッサ固有の意味に予約されている。"
2766
2767 #. type: TP
2768 #: build/C/man5/elf.5:1143
2769 #, no-wrap
2770 msgid "I<sh_addr>"
2771 msgstr "I<sh_addr>"
2772
2773 #. type: Plain text
2774 #: build/C/man5/elf.5:1148
2775 msgid "If this section appears in the memory image of a process, this member holds the address at which the section's first byte should reside.  Otherwise, the member contains zero."
2776 msgstr "このセクションがプロセスのメモリイメージにある場合、 このメンバはセクションの最初のバイトが存在するアドレスを保持する。 それ以外の場合、このメンバは 0 である。"
2777
2778 #. type: TP
2779 #: build/C/man5/elf.5:1148
2780 #, no-wrap
2781 msgid "I<sh_offset>"
2782 msgstr "I<sh_offset>"
2783
2784 #. type: Plain text
2785 #: build/C/man5/elf.5:1157
2786 msgid "This member's value holds the byte offset from the beginning of the file to the first byte in the section.  One section type, B<SHT_NOBITS>, occupies no space in the file, and its I<sh_offset> member locates the conceptual placement in the file."
2787 msgstr "このメンバの値は、ファイルの先頭からセクションの最初のバイトへの バイトオフセットを保持する。 セクションタイプ B<SHT_NOBITS> はファイルの領域を全く使用せず、このタイプの I<sh_offset> メンバはファイルの概念的な位置を示す。"
2788
2789 #. type: TP
2790 #: build/C/man5/elf.5:1157
2791 #, no-wrap
2792 msgid "I<sh_size>"
2793 msgstr "I<sh_size>"
2794
2795 #. type: Plain text
2796 #: build/C/man5/elf.5:1169
2797 msgid "This member holds the section's size in bytes.  Unless the section type is B<SHT_NOBITS>, the section occupies I<sh_size> bytes in the file.  A section of type B<SHT_NOBITS> may have a nonzero size, but it occupies no space in the file."
2798 msgstr "このメンバはセクションのサイズ (バイト単位) を保持する。 セクションタイプが B<SHT_NOBITS> でない限り、そのセクションはファイル中の I<sh_size> バイトを使用する。 タイプが B<SHT_NOBITS> のセクションはサイズが 0 でないが、ファイルの領域を使用しない。"
2799
2800 #. type: TP
2801 #: build/C/man5/elf.5:1169
2802 #, no-wrap
2803 msgid "I<sh_link>"
2804 msgstr "I<sh_link>"
2805
2806 #. type: Plain text
2807 #: build/C/man5/elf.5:1173
2808 msgid "This member holds a section header table index link, whose interpretation depends on the section type."
2809 msgstr "このメンバは、セクションヘッダテーブルインデックスリンクを保持する。 この解釈はセクションタイプに依存する。"
2810
2811 #. type: TP
2812 #: build/C/man5/elf.5:1173
2813 #, no-wrap
2814 msgid "I<sh_info>"
2815 msgstr "I<sh_info>"
2816
2817 #. type: Plain text
2818 #: build/C/man5/elf.5:1177
2819 msgid "This member holds extra information, whose interpretation depends on the section type."
2820 msgstr "このメンバは追加情報を保持する。 この解釈はセクションタイプに依存する。"
2821
2822 #. type: TP
2823 #: build/C/man5/elf.5:1177
2824 #, no-wrap
2825 msgid "I<sh_addralign>"
2826 msgstr "I<sh_addralign>"
2827
2828 #. type: Plain text
2829 #: build/C/man5/elf.5:1190
2830 msgid "Some sections have address alignment constraints.  If a section holds a doubleword, the system must ensure doubleword alignment for the entire section.  That is, the value of I<sh_addr> must be congruent to zero, modulo the value of I<sh_addralign>.  Only zero and positive integral powers of two are allowed.  Values of zero or one mean the section has no alignment constraints."
2831 msgstr "アドレス配置に制約があるセクションもある。 セクションが倍長語 (doubleword) を保持する場合、 システムは全てのセクションについて倍長語の配置を保証しなければならない。 つまり、 I<sh_addr> の値は I<sh_addralign> の値を法として 0 と合同でなければならない (訳注:「sh_addr mod sh_addralign = 0 でなければならない)。 2 の 0 乗と正の整数乗のみが許可される。 0 または 1 はセクションの配置に制約がないことを意味する。"
2832
2833 #. type: TP
2834 #: build/C/man5/elf.5:1190
2835 #, no-wrap
2836 msgid "I<sh_entsize>"
2837 msgstr "I<sh_entsize>"
2838
2839 #.  .El
2840 #. type: Plain text
2841 #: build/C/man5/elf.5:1197
2842 msgid "Some sections hold a table of fixed-sized entries, such as a symbol table.  For such a section, this member gives the size in bytes for each entry.  This member contains zero if the section does not hold a table of fixed-size entries."
2843 msgstr "シンボルテーブルのような固定サイズエントリのテーブルを保持する セクションもある。 このようなセクションでは、 このメンバは各エントリのサイズ (バイト単位) を表す。 このメンバが 0 の場合、 そのセクションは固定サイズエントリのテーブルを保持しない。"
2844
2845 #.  .Bl -tag -width ".shstrtab"
2846 #. type: Plain text
2847 #: build/C/man5/elf.5:1200
2848 msgid "Various sections hold program and control information:"
2849 msgstr "さまざまなセクションにプログラム情報・制御情報が保持される:"
2850
2851 #. type: TP
2852 #: build/C/man5/elf.5:1200
2853 #, no-wrap
2854 msgid "I<.bss>"
2855 msgstr "I<.bss>"
2856
2857 #. type: Plain text
2858 #: build/C/man5/elf.5:1212
2859 msgid "This section holds uninitialized data that contributes to the program's memory image.  By definition, the system initializes the data with zeros when the program begins to run.  This section is of type B<SHT_NOBITS>.  The attribute types are B<SHF_ALLOC> and B<SHF_WRITE>."
2860 msgstr "このセクションはプログラムのメモリイメージに配置される 非初期化データを保持する。 定義上、システムはプログラムの実行開始時に、データを 0 で初期化する。 このセクションのタイプは B<SHT_NOBITS> である。 属性タイプは B<SHF_ALLOC> と B<SHF_WRITE> である。"
2861
2862 #. type: TP
2863 #: build/C/man5/elf.5:1212
2864 #, no-wrap
2865 msgid "I<.comment>"
2866 msgstr "I<.comment>"
2867
2868 #. type: Plain text
2869 #: build/C/man5/elf.5:1218
2870 msgid "This section holds version control information.  This section is of type B<SHT_PROGBITS>.  No attribute types are used."
2871 msgstr "このセクションはバージョン制御情報を保持する。 このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは使用されない。"
2872
2873 #. type: TP
2874 #: build/C/man5/elf.5:1218
2875 #, no-wrap
2876 msgid "I<.ctors>"
2877 msgstr "I<.ctors>"
2878
2879 #. type: Plain text
2880 #: build/C/man5/elf.5:1227
2881 msgid "This section holds initialized pointers to the C++ constructor functions.  This section is of type B<SHT_PROGBITS>.  The attribute types are B<SHF_ALLOC> and B<SHF_WRITE>."
2882 msgstr "このセクションは C++ コンストラクタ関数への初期化されたポインターを保持する。 このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは B<SHF_ALLOC> と B<SHF_WRITE> である。"
2883
2884 #. type: TP
2885 #: build/C/man5/elf.5:1227
2886 #, no-wrap
2887 msgid "I<.data>"
2888 msgstr "I<.data>"
2889
2890 #. type: Plain text
2891 #: build/C/man5/elf.5:1237 build/C/man5/elf.5:1247
2892 msgid "This section holds initialized data that contribute to the program's memory image.  This section is of type B<SHT_PROGBITS>.  The attribute types are B<SHF_ALLOC> and B<SHF_WRITE>."
2893 msgstr "このセクションはプログラムのメモリイメージに配置される 初期化済みデータを保持する。 このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは B<SHF_ALLOC> と B<SHF_WRITE> である。"
2894
2895 #. type: TP
2896 #: build/C/man5/elf.5:1237
2897 #, no-wrap
2898 msgid "I<.data1>"
2899 msgstr "I<.data1>"
2900
2901 #. type: TP
2902 #: build/C/man5/elf.5:1247
2903 #, no-wrap
2904 msgid "I<.debug>"
2905 msgstr "I<.debug>"
2906
2907 #. type: Plain text
2908 #: build/C/man5/elf.5:1255
2909 msgid "This section holds information for symbolic debugging.  The contents are unspecified.  This section is of type B<SHT_PROGBITS>.  No attribute types are used."
2910 msgstr "このセクションはシンボリックデバッグ用の情報を保持する。 その内容は指定されていない。 このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは使用されない。"
2911
2912 #. type: TP
2913 #: build/C/man5/elf.5:1255
2914 #, no-wrap
2915 msgid "I<.dtors>"
2916 msgstr "I<.dtors>"
2917
2918 #. type: Plain text
2919 #: build/C/man5/elf.5:1264
2920 msgid "This section holds initialized pointers to the C++ destructor functions.  This section is of type B<SHT_PROGBITS>.  The attribute types are B<SHF_ALLOC> and B<SHF_WRITE>."
2921 msgstr "このセクションは C++ デストラクタ関数への初期化されたポインターを保持する。 このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは B<SHF_ALLOC> と B<SHF_WRITE> である。"
2922
2923 #. type: TP
2924 #: build/C/man5/elf.5:1264
2925 #, no-wrap
2926 msgid "I<.dynamic>"
2927 msgstr "I<.dynamic>"
2928
2929 #. type: Plain text
2930 #: build/C/man5/elf.5:1277
2931 msgid "This section holds dynamic linking information.  The section's attributes will include the B<SHF_ALLOC> bit.  Whether the B<SHF_WRITE> bit is set is processor-specific.  This section is of type B<SHT_DYNAMIC>.  See the attributes above."
2932 msgstr "このセクションは動的リンク情報を保持する。 このセクションの属性は B<SHF_ALLOC> ビットを含む。 B<SHF_WRITE> ビットが設定されるか否かはプロセッサによる。 このセクションのタイプは B<SHT_DYNAMIC> である。 上記の属性を参照すること。"
2933
2934 #. type: TP
2935 #: build/C/man5/elf.5:1277
2936 #, no-wrap
2937 msgid "I<.dynstr>"
2938 msgstr "I<.dynstr>"
2939
2940 #. type: Plain text
2941 #: build/C/man5/elf.5:1285
2942 msgid "This section holds strings needed for dynamic linking, most commonly the strings that represent the names associated with symbol table entries.  This section is of type B<SHT_STRTAB>.  The attribute type used is B<SHF_ALLOC>."
2943 msgstr "このセクションは動的リンクに必要な文字列を保持する。 最も一般的には、この文字列はシンボルテーブルエントリと 関連づけられた名前を表す。 このセクションのタイプは B<SHT_STRTAB> である。 使用される属性タイプは B<SHF_ALLOC> である。"
2944
2945 #. type: TP
2946 #: build/C/man5/elf.5:1285
2947 #, no-wrap
2948 msgid "I<.dynsym>"
2949 msgstr "I<.dynsym>"
2950
2951 #. type: Plain text
2952 #: build/C/man5/elf.5:1292
2953 msgid "This section holds the dynamic linking symbol table.  This section is of type B<SHT_DYNSYM>.  The attribute used is B<SHF_ALLOC>."
2954 msgstr "このセクションは動的リンクシンボルテーブルを保持する。 このセクションのタイプは B<SHT_DYNSYM> である。 使用される属性タイプは B<SHF_ALLOC> である。"
2955
2956 #. type: TP
2957 #: build/C/man5/elf.5:1292
2958 #, no-wrap
2959 msgid "I<.fini>"
2960 msgstr "I<.fini>"
2961
2962 #. type: Plain text
2963 #: build/C/man5/elf.5:1304
2964 msgid "This section holds executable instructions that contribute to the process termination code.  When a program exits normally the system arranges to execute the code in this section.  This section is of type B<SHT_PROGBITS>.  The attributes used are B<SHF_ALLOC> and B<SHF_EXECINSTR>."
2965 msgstr "このセクションはプロセス終了コードに置かれる実行可能命令を保持する。 プロセスが正常に終了した場合、システムはこのセクションにある コードを配置して実行する。 このセクションのタイプは B<SHT_PROGBITS> である。 使用される属性タイプは B<SHF_ALLOC> と B<SHF_EXECINSTR> である。"
2966
2967 #. type: TP
2968 #: build/C/man5/elf.5:1304
2969 #, no-wrap
2970 msgid "I<.gnu.version>"
2971 msgstr "I<.gnu.version>"
2972
2973 #. type: Plain text
2974 #: build/C/man5/elf.5:1313
2975 msgid "This section holds the version symbol table, an array of I<ElfN_Half> elements.  This section is of type B<SHT_GNU_versym>.  The attribute type used is B<SHF_ALLOC>."
2976 msgstr "このセクションはバージョンシンボルテーブルを保持する。 その内容は I<ElfN_Half> 要素の配列である。 このセクションのタイプは B<SHT_GNU_versym> である。 使用される属性タイプは B<SHF_ALLOC> である。"
2977
2978 #. type: TP
2979 #: build/C/man5/elf.5:1313
2980 #, no-wrap
2981 msgid "I<.gnu.version_d>"
2982 msgstr "I<.gnu.version_d>"
2983
2984 #. type: Plain text
2985 #: build/C/man5/elf.5:1322
2986 msgid "This section holds the version symbol definitions, a table of I<ElfN_Verdef> structures.  This section is of type B<SHT_GNU_verdef>.  The attribute type used is B<SHF_ALLOC>."
2987 msgstr "このセクションはバージョンシンボルの定義を保持する。 その内容は I<ElfN_Verdef> 構造体のテーブルである。 このセクションのタイプは B<SHT_GNU_verdef> である。 使用される属性タイプは B<SHF_ALLOC> である。"
2988
2989 #. type: TP
2990 #: build/C/man5/elf.5:1322
2991 #, no-wrap
2992 msgid "I<.gnu.version_r>"
2993 msgstr "I<.gnu.version_r>"
2994
2995 #. type: Plain text
2996 #: build/C/man5/elf.5:1332
2997 msgid "This section holds the version symbol needed elements, a table of I<ElfN_Verneed> structures.  This section is of type B<SHT_GNU_versym>.  The attribute type used is B<SHF_ALLOC>."
2998 msgstr "このセクションはバージョンシンボルが必要とする要素を保持する。 その内容は I<ElfN_Verneed> 構造体のテーブルである。 このセクションのタイプは B<SHT_GNU_versym> である。 使用される属性タイプは B<shf_alloc> である。"
2999
3000 #. type: TP
3001 #: build/C/man5/elf.5:1332
3002 #, no-wrap
3003 msgid "I<.got>"
3004 msgstr "I<.got>"
3005
3006 #. type: Plain text
3007 #: build/C/man5/elf.5:1338
3008 msgid "This section holds the global offset table.  This section is of type B<SHT_PROGBITS>.  The attributes are processor-specific."
3009 msgstr "このセクションはグローバルオフセットテーブルを保持する。 このセクションのタイプは B<SHT_PROGBITS> である。 属性はプロセッサ毎に異なる。"
3010
3011 #. type: TP
3012 #: build/C/man5/elf.5:1338
3013 #, no-wrap
3014 msgid "I<.hash>"
3015 msgstr "I<.hash>"
3016
3017 #. type: Plain text
3018 #: build/C/man5/elf.5:1345
3019 msgid "This section holds a symbol hash table.  This section is of type B<SHT_HASH>.  The attribute used is B<SHF_ALLOC>."
3020 msgstr "このセクションはシンボルハッシュテーブルを保持する。 セクションのタイプは B<SHT_HASH> である。 使用される属性は B<SHF_ALLOC> である。"
3021
3022 #. type: TP
3023 #: build/C/man5/elf.5:1345
3024 #, no-wrap
3025 msgid "I<.init>"
3026 msgstr "I<.init>"
3027
3028 #. type: Plain text
3029 #: build/C/man5/elf.5:1357
3030 msgid "This section holds executable instructions that contribute to the process initialization code.  When a program starts to run the system arranges to execute the code in this section before calling the main program entry point.  This section is of type B<SHT_PROGBITS>.  The attributes used are B<SHF_ALLOC> and B<SHF_EXECINSTR>."
3031 msgstr "このセクションはプロセス初期化コードに配置される実行可能命令を保持する。 プログラムが実行を開始すると、 システムはメインプログラムエントリポイントを呼び出す前に、 このセクションにあるコードを配置して実行する。 このセクションはのタイプは B<SHT_PROGBITS> である。 使用される属性は B<SHF_ALLOC> と B<SHF_EXECINSTR> である。"
3032
3033 #. type: TP
3034 #: build/C/man5/elf.5:1357
3035 #, no-wrap
3036 msgid "I<.interp>"
3037 msgstr "I<.interp>"
3038
3039 #. type: Plain text
3040 #: build/C/man5/elf.5:1368
3041 msgid "This section holds the pathname of a program interpreter.  If the file has a loadable segment that includes the section, the section's attributes will include the B<SHF_ALLOC> bit.  Otherwise, that bit will be off.  This section is of type B<SHT_PROGBITS>."
3042 msgstr "このセクションはプログラムインタプリタのパス名を保持する。 ファイルにこのセクションを含むロード可能セグメントがある場合、 そのセクションの属性には B<SHF_ALLOC> ビットが含まれる。 それ以外の場合このビットはオフになる。 このセクションのタイプは B<SHT_PROGBITS> である。"
3043
3044 #. type: TP
3045 #: build/C/man5/elf.5:1368
3046 #, no-wrap
3047 msgid "I<.line>"
3048 msgstr "I<.line>"
3049
3050 #. type: Plain text
3051 #: build/C/man5/elf.5:1376
3052 msgid "This section holds line number information for symbolic debugging, which describes the correspondence between the program source and the machine code.  The contents are unspecified.  This section is of type B<SHT_PROGBITS>.  No attribute types are used."
3053 msgstr "このセクションはシンボリックデバッグのための行番号情報を保持する。 ここにはプログラムソースコードとマシンコードの対応関係が記述される。 内容は指定されていない。 このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは使用されない。"
3054
3055 #. type: TP
3056 #: build/C/man5/elf.5:1376
3057 #, no-wrap
3058 msgid "I<.note>"
3059 msgstr "I<.note>"
3060
3061 #. type: Plain text
3062 #: build/C/man5/elf.5:1389
3063 msgid "This section holds information in the \"Note Section\" format.  This section is of type B<SHT_NOTE>.  No attribute types are used.  OpenBSD native executables usually contain a I<.note.openbsd.ident> section to identify themselves, for the kernel to bypass any compatibility ELF binary emulation tests when loading the file."
3064 msgstr ""
3065 "このセクションは \"Note Section\" 形式で情報を保持する。このセクションのタイプ\n"
3066 "は B<SHT_NOTE> である。属性タイプは使用されない。通常 OpenBSD ネイティブ実行\n"
3067 "可能ファイルは自身を識別するために I<.note.openbsd.ident> セクションを持つ。\n"
3068 "これによりカーネルは、ファイルをロードする際に 互換 ELF バイナリエミュレーショ\n"
3069 "ンテストを回避できる。"
3070
3071 #. type: TP
3072 #: build/C/man5/elf.5:1389
3073 #, no-wrap
3074 msgid "I<.note.GNU-stack>"
3075 msgstr "I<.note.GNU-stack>"
3076
3077 #. type: Plain text
3078 #: build/C/man5/elf.5:1398
3079 msgid "This section is used in Linux object files for declaring stack attributes.  This section is of type B<SHT_PROGBITS>.  The only attribute used is B<SHF_EXECINSTR>.  This indicates to the GNU linker that the object file requires an executable stack."
3080 msgstr "このセクションは Linux のオブジェクトファイルで スタック属性を宣言するのに使用される。 セクションのタイプは B<SHT_PROGBITS> である。使用される属性は B<SHF_EXECINSTR> だけである。この属性は GNU リンカーに対して オブジェクトファイルが実行可能なスタック (executable stack) を必要とする 示すものである。"
3081
3082 #. type: TP
3083 #: build/C/man5/elf.5:1398
3084 #, no-wrap
3085 msgid "I<.plt>"
3086 msgstr "I<.plt>"
3087
3088 #. type: Plain text
3089 #: build/C/man5/elf.5:1404
3090 msgid "This section holds the procedure linkage table.  This section is of type B<SHT_PROGBITS>.  The attributes are processor-specific."
3091 msgstr "このセクションは手続き (procedure) リンクテーブルを保持する。 このセクションのタイプは B<SHT_PROGBITS> である。 属性はプロセッサ毎に異なる。"
3092
3093 #. type: TP
3094 #: build/C/man5/elf.5:1404
3095 #, no-wrap
3096 msgid "I<.relNAME>"
3097 msgstr "I<.relNAME>"
3098
3099 #. type: Plain text
3100 #: build/C/man5/elf.5:1423
3101 msgid "This section holds relocation information as described below.  If the file has a loadable segment that includes relocation, the section's attributes will include the B<SHF_ALLOC> bit.  Otherwise, the bit will be off.  By convention, \"NAME\" is supplied by the section to which the relocations apply.  Thus a relocation section for B<.text> normally would have the name B<.rel.text>.  This section is of type B<SHT_REL>."
3102 msgstr "このセクションは以下に記述される再配置情報を保持する。 ファイルが再配置を含むロード可能セグメントを持っている場合、 このセクションの属性は B<SHF_ALLOC> ビットを含む。 それ以外の場合、そのビットはオフである。 慣例として、 \"NAME\" は再配置が適用されるセクションが指定される。 よって B<.text> についての再配置セクションは、通常は B<.rel.text> という名前を持つ。 このセクションのタイプは B<SHT_REL> である。"
3103
3104 #. type: TP
3105 #: build/C/man5/elf.5:1423
3106 #, no-wrap
3107 msgid "I<.relaNAME>"
3108 msgstr "I<.relaNAME>"
3109
3110 #. type: Plain text
3111 #: build/C/man5/elf.5:1442
3112 msgid "This section holds relocation information as described below.  If the file has a loadable segment that includes relocation, the section's attributes will include the B<SHF_ALLOC> bit.  Otherwise, the bit will be off.  By convention, \"NAME\" is supplied by the section to which the relocations apply.  Thus a relocation section for B<.text> normally would have the name B<.rela.text>.  This section is of type B<SHT_RELA>."
3113 msgstr "このセクションは以下に記述される再配置情報を保持する。 ファイルが再配置を含むロード可能セグメントを持っている場合、 このセクションの属性は B<SHF_ALLOC> ビットを含む。 それ以外の場合、そのビットはオフである。 慣例として、 \"NAME\" は再配置が適用されるセクションが指定される。 よって B<.text> についての再配置セクションは、通常は B<.rela.text> という名前を持つ。 このセクションのタイプは B<SHT_RELA> である。"
3114
3115 #. type: TP
3116 #: build/C/man5/elf.5:1442
3117 #, no-wrap
3118 msgid "I<.rodata>"
3119 msgstr "I<.rodata>"
3120
3121 #. type: Plain text
3122 #: build/C/man5/elf.5:1450 build/C/man5/elf.5:1458
3123 msgid "This section holds read-only data that typically contributes to a nonwritable segment in the process image.  This section is of type B<SHT_PROGBITS>.  The attribute used is B<SHF_ALLOC>."
3124 msgstr "このセクションはリードオンリーのデータを保持する。 このデータはプロセスイメージにおける書き込み不可能なセグメントに置かれる。 このセクションのタイプは B<SHT_PROGBITS> である。 使用される属性は B<SHF_ALLOC> である。"
3125
3126 #. type: TP
3127 #: build/C/man5/elf.5:1450
3128 #, no-wrap
3129 msgid "I<.rodata1>"
3130 msgstr "I<.rodata1>"
3131
3132 #. type: TP
3133 #: build/C/man5/elf.5:1458
3134 #, no-wrap
3135 msgid "I<.shstrtab>"
3136 msgstr "I<.shstrtab>"
3137
3138 #. type: Plain text
3139 #: build/C/man5/elf.5:1464
3140 msgid "This section holds section names.  This section is of type B<SHT_STRTAB>.  No attribute types are used."
3141 msgstr "このセクションはセクション名を保持する。 このセクションのタイプは B<SHT_STRTAB> である。 属性タイプは使用されない。"
3142
3143 #. type: TP
3144 #: build/C/man5/elf.5:1464
3145 #, no-wrap
3146 msgid "I<.strtab>"
3147 msgstr "I<.strtab>"
3148
3149 #. type: Plain text
3150 #: build/C/man5/elf.5:1476
3151 msgid "This section holds strings, most commonly the strings that represent the names associated with symbol table entries.  If the file has a loadable segment that includes the symbol string table, the section's attributes will include the B<SHF_ALLOC> bit.  Otherwise, the bit will be off.  This section is of type B<SHT_STRTAB>."
3152 msgstr "このセクションは文字列を保持する。 最も一般的なのは、シンボルテーブルエントリに関連づけられた 名前を表す文字列である。 ファイルがシンボル文字列テーブルを含むロード可能セグメントを持つ場合、 セクションの属性は B<SHF_ALLOC> ビットを含む。 それ以外の場合、そのビットはオフである。 このセクションのタイプは B<SHT_STRTAB> である。"
3153
3154 #. type: TP
3155 #: build/C/man5/elf.5:1476
3156 #, no-wrap
3157 msgid "I<.symtab>"
3158 msgstr "I<.symtab>"
3159
3160 #. type: Plain text
3161 #: build/C/man5/elf.5:1487
3162 msgid "This section holds a symbol table.  If the file has a loadable segment that includes the symbol table, the section's attributes will include the B<SHF_ALLOC> bit.  Otherwise, the bit will be off.  This section is of type B<SHT_SYMTAB>."
3163 msgstr "このセクションはシンボルテーブルを保持する。 ファイルがシンボルテーブルを含むロード可能セグメントを持つ場合、 セクションの属性は B<SHF_ALLOC> ビットを含む。 それ以外の場合、ビットはオフである。 このセクションのタイプは B<SHT_SYMTAB> である。"
3164
3165 #. type: TP
3166 #: build/C/man5/elf.5:1487
3167 #, no-wrap
3168 msgid "I<.text>"
3169 msgstr "I<.text>"
3170
3171 #.  .El
3172 #. type: Plain text
3173 #: build/C/man5/elf.5:1499
3174 msgid "This section holds the \"text\", or executable instructions, of a program.  This section is of type B<SHT_PROGBITS>.  The attributes used are B<SHF_ALLOC> and B<SHF_EXECINSTR>."
3175 msgstr "このセクションはプログラムの \"テキスト\" または実行可能命令を保持する。 セクションのタイプは B<SHT_PROGBITS> である。 使用される属性は B<SHF_ALLOC> と B<SHF_EXECINSTR> である。"
3176
3177 #. type: Plain text
3178 #: build/C/man5/elf.5:1510
3179 msgid "String table sections hold null-terminated character sequences, commonly called strings.  The object file uses these strings to represent symbol and section names.  One references a string as an index into the string table section.  The first byte, which is index zero, is defined to hold a null byte (\\(aq\\e0\\(aq).  Similarly, a string table's last byte is defined to hold a null byte, ensuring null termination for all strings."
3180 msgstr "文字列テーブルセクションはヌル文字で終端されたキャラクター配列 (通常文字列と呼ばれるもの) を保持する。 オブジェクトファイルはこれらの文字列を シンボル名とセクション名を表すために使う。 文字列は、文字列テーブルセクションへのインデックスとして参照される。 インデックス 0 の最初のバイトは、ヌルバイト (\\(aq\\e0\\(aq) を 保持すると定義されている。 同様に文字列テーブルの最後のバイトもヌル文字を保持すると定義されている。 これは全ての文字列がヌルバイトで終端されていることを保証するためである。"
3181
3182 #. type: Plain text
3183 #: build/C/man5/elf.5:1515
3184 msgid "An object file's symbol table holds information needed to locate and relocate a program's symbolic definitions and references.  A symbol table index is a subscript into this array."
3185 msgstr "オブジェクトファイルのシンボルテーブルは、 プログラムのシンボル定義と参照を配置または再配置するのに 必要な情報を保持する。"
3186
3187 #. type: Plain text
3188 #: build/C/man5/elf.5:1526
3189 #, no-wrap
3190 msgid ""
3191 "typedef struct {\n"
3192 "    uint32_t      st_name;\n"
3193 "    Elf32_Addr    st_value;\n"
3194 "    uint32_t      st_size;\n"
3195 "    unsigned char st_info;\n"
3196 "    unsigned char st_other;\n"
3197 "    uint16_t      st_shndx;\n"
3198 "} Elf32_Sym;\n"
3199 msgstr ""
3200 "typedef struct {\n"
3201 "    uint32_t      st_name;\n"
3202 "    Elf32_Addr    st_value;\n"
3203 "    uint32_t      st_size;\n"
3204 "    unsigned char st_info;\n"
3205 "    unsigned char st_other;\n"
3206 "    uint16_t      st_shndx;\n"
3207 "} Elf32_Sym;\n"
3208
3209 #. type: Plain text
3210 #: build/C/man5/elf.5:1539
3211 #, no-wrap
3212 msgid ""
3213 "typedef struct {\n"
3214 "    uint32_t      st_name;\n"
3215 "    unsigned char st_info;\n"
3216 "    unsigned char st_other;\n"
3217 "    uint16_t      st_shndx;\n"
3218 "    Elf64_Addr    st_value;\n"
3219 "    uint64_t      st_size;\n"
3220 "} Elf64_Sym;\n"
3221 msgstr ""
3222 "typedef struct {\n"
3223 "    uint32_t      st_name;\n"
3224 "    unsigned char st_info;\n"
3225 "    unsigned char st_other;\n"
3226 "    uint16_t      st_shndx;\n"
3227 "    Elf64_Addr    st_value;\n"
3228 "    uint64_t      st_size;\n"
3229 "} Elf64_Sym;\n"
3230
3231 #.  .Bl -tag -width "st_value"
3232 #. type: Plain text
3233 #: build/C/man5/elf.5:1545
3234 msgid "The 32-bit and 64-bit versions have the same members, just in a different order."
3235 msgstr "32 ビット版と 64 ビット版は同じメンバを持ち、単に順番が異なるだけである。"
3236
3237 #. type: TP
3238 #: build/C/man5/elf.5:1545
3239 #, no-wrap
3240 msgid "I<st_name>"
3241 msgstr "I<st_name>"
3242
3243 #. type: Plain text
3244 #: build/C/man5/elf.5:1553
3245 msgid "This member holds an index into the object file's symbol string table, which holds character representations of the symbol names.  If the value is nonzero, it represents a string table index that gives the symbol name.  Otherwise, the symbol table has no name."
3246 msgstr "このメンバはオブジェクトファイルのシンボル文字列テーブルの インデックスを保持する。 シンボル文字列テーブルはシンボル名の文字表現を保持する。 この値が 0 でない場合、シンボル名を得るための文字テーブルインデックスを表す。 それ以外の場合、シンボルテーブルは名前を持たない。"
3247
3248 #. type: TP
3249 #: build/C/man5/elf.5:1553
3250 #, no-wrap
3251 msgid "I<st_value>"
3252 msgstr "I<st_value>"
3253
3254 #. type: Plain text
3255 #: build/C/man5/elf.5:1556
3256 msgid "This member gives the value of the associated symbol."
3257 msgstr "このメンバは関連づけられたシンボルの値を表す。"
3258
3259 #. type: TP
3260 #: build/C/man5/elf.5:1556
3261 #, no-wrap
3262 msgid "I<st_size>"
3263 msgstr "I<st_size>"
3264
3265 #. type: Plain text
3266 #: build/C/man5/elf.5:1561
3267 msgid "Many symbols have associated sizes.  This member holds zero if the symbol has no size or an unknown size."
3268 msgstr "多くのシンボルにはそれに関連づけられたサイズがある。 シンボルがサイズを持たない場合、またはサイズが不明な場合、 このメンバは 0 である。"
3269
3270 #. type: TP
3271 #: build/C/man5/elf.5:1561
3272 #, no-wrap
3273 msgid "I<st_info>"
3274 msgstr "I<st_info>"
3275
3276 #.  .Bl -tag -width "STT_SECTION"
3277 #. type: Plain text
3278 #: build/C/man5/elf.5:1565
3279 msgid "This member specifies the symbol's type and binding attributes:"
3280 msgstr "このメンバはシンボルのタイプとバインディング (binding) 属性を指定する:"
3281
3282 #. type: TP
3283 #: build/C/man5/elf.5:1566
3284 #, no-wrap
3285 msgid "B<STT_NOTYPE>"
3286 msgstr "B<STT_NOTYPE>"
3287
3288 #. type: Plain text
3289 #: build/C/man5/elf.5:1569
3290 msgid "The symbol's type is not defined."
3291 msgstr "シンボルのタイプが定義されていない。"
3292
3293 #. type: TP
3294 #: build/C/man5/elf.5:1569
3295 #, no-wrap
3296 msgid "B<STT_OBJECT>"
3297 msgstr "B<STT_OBJECT>"
3298
3299 #. type: Plain text
3300 #: build/C/man5/elf.5:1572
3301 msgid "The symbol is associated with a data object."
3302 msgstr "シンボルはデータオブジェクトに関連づけられている。"
3303
3304 #. type: TP
3305 #: build/C/man5/elf.5:1572
3306 #, no-wrap
3307 msgid "B<STT_FUNC>"
3308 msgstr "B<STT_FUNC>"
3309
3310 #. type: Plain text
3311 #: build/C/man5/elf.5:1575
3312 msgid "The symbol is associated with a function or other executable code."
3313 msgstr "シンボルは関数またはその他の実行コードに関連づけられている。"
3314
3315 #. type: TP
3316 #: build/C/man5/elf.5:1575
3317 #, no-wrap
3318 msgid "B<STT_SECTION>"
3319 msgstr "B<STT_SECTION>"
3320
3321 #. type: Plain text
3322 #: build/C/man5/elf.5:1582
3323 msgid "The symbol is associated with a section.  Symbol table entries of this type exist primarily for relocation and normally have B<STB_LOCAL> bindings."
3324 msgstr "シンボルはセクションに関連づけられている。 このタイプのシンボルテーブルエントリは、 主として再配置のために存在し、通常は B<STB_LOCAL> バインディングを持つ。"
3325
3326 #. type: TP
3327 #: build/C/man5/elf.5:1582
3328 #, no-wrap
3329 msgid "B<STT_FILE>"
3330 msgstr "B<STT_FILE>"
3331
3332 #. type: Plain text
3333 #: build/C/man5/elf.5:1593
3334 msgid "By convention, the symbol's name gives the name of the source file associated with the object file.  A file symbol has B<STB_LOCAL> bindings, its section index is B<SHN_ABS>, and it precedes the other B<STB_LOCAL> symbols of the file, if it is present."
3335 msgstr "慣例として、シンボルの名前は オブジェクトファイルに関連づけられたソースファイルの名前を指定する。 ファイルシンボルは B<STB_LOCAL> バインディングを持ち、そのセクションインデックスは B<SHN_ABS> である。 ファイルシンボルは、ファイルに他の B<STB_LOCAL> シンボルがある場合は、それよりも先に来る。"
3336
3337 #. type: TP
3338 #: build/C/man5/elf.5:1593
3339 #, no-wrap
3340 msgid "B<STT_LOPROC>"
3341 msgstr "B<STT_LOPROC>"
3342
3343 #. type: Plain text
3344 #: build/C/man5/elf.5:1598
3345 msgid "This value up to and including B<STT_HIPROC> is reserved for processor-specific semantics."
3346 msgstr "この値以上で B<STT_HIPROC> 以下の範囲はプロセッサ固有の意味に予約されている。"
3347
3348 #. type: TP
3349 #: build/C/man5/elf.5:1598
3350 #, no-wrap
3351 msgid "B<STT_HIPROC>"
3352 msgstr "B<STT_HIPROC>"
3353
3354 #.  .El
3355 #.  .Bl -tag -width "STB_GLOBAL"
3356 #. type: Plain text
3357 #: build/C/man5/elf.5:1605
3358 msgid "This value down to and including B<STT_LOPROC> is reserved for processor-specific semantics."
3359 msgstr "この値以下で B<STT_LOPROC> 以上の範囲はプロセッサ固有の意味に予約されている。"
3360
3361 #. type: TP
3362 #: build/C/man5/elf.5:1605
3363 #, no-wrap
3364 msgid "B<STB_LOCAL>"
3365 msgstr "B<STB_LOCAL>"
3366
3367 #. type: Plain text
3368 #: build/C/man5/elf.5:1611
3369 msgid "Local symbols are not visible outside the object file containing their definition.  Local symbols of the same name may exist in multiple files without interfering with each other."
3370 msgstr "局所的シンボルはその定義を含むオブジェクトファイルの外からは見えない。 同じ名前の局所的シンボルは、お互いに影響を受けることなく、 複数のファイルに存在できる。"
3371
3372 #. type: TP
3373 #: build/C/man5/elf.5:1611
3374 #, no-wrap
3375 msgid "B<STB_GLOBAL>"
3376 msgstr "B<STB_GLOBAL>"
3377
3378 #. type: Plain text
3379 #: build/C/man5/elf.5:1617
3380 msgid "Global symbols are visible to all object files being combined.  One file's definition of a global symbol will satisfy another file's undefined reference to the same symbol."
3381 msgstr "大域的シンボルは結びつけられている全てのオブジェクトファイルから見える。 1 つのファイルで大域的シンボルが定義されていたら、 他のファイルでは同じシンボルへの参照は未定義でなければならない。"
3382
3383 #. type: TP
3384 #: build/C/man5/elf.5:1617
3385 #, no-wrap
3386 msgid "B<STB_WEAK>"
3387 msgstr "B<STB_WEAK>"
3388
3389 #. type: Plain text
3390 #: build/C/man5/elf.5:1621
3391 msgid "Weak symbols resemble global symbols, but their definitions have lower precedence."
3392 msgstr "弱シンボルは大域的シンボルに似ているが、その定義は優先度が低い。"
3393
3394 #. type: TP
3395 #: build/C/man5/elf.5:1621
3396 #, no-wrap
3397 msgid "B<STB_LOPROC>"
3398 msgstr "B<STB_LOPROC>"
3399
3400 #. type: Plain text
3401 #: build/C/man5/elf.5:1626
3402 msgid "This value up to and including B<STB_HIPROC> is reserved for processor-specific semantics."
3403 msgstr "この値以上で B<STB_HIPROC> 以下の範囲はプロセッサ固有の意味に予約されている。"
3404
3405 #. type: TP
3406 #: build/C/man5/elf.5:1626
3407 #, no-wrap
3408 msgid "B<STB_HIPROC>"
3409 msgstr "B<STB_HIPROC>"
3410
3411 #. type: Plain text
3412 #: build/C/man5/elf.5:1631
3413 msgid "This value down to and including B<STB_LOPROC> is reserved for processor-specific semantics."
3414 msgstr "この値以下で B<STB_LOPROC> 以上の範囲はプロセッサ固有の意味に予約されている。"
3415
3416 #. type: Plain text
3417 #: build/C/man5/elf.5:1633
3418 msgid "There are macros for packing and unpacking the binding and type fields:"
3419 msgstr "バインディングとタイプフィールドを パックしたりアンパックしたりするマクロがある:"
3420
3421 #. type: Plain text
3422 #: build/C/man5/elf.5:1640
3423 msgid "B<ELF32_ST_BIND>(info)  or B<ELF64_ST_BIND>(info)  extract a binding from an I<st_info> value."
3424 msgstr "B<ELF32_ST_BIND>(info)  または B<ELF64_ST_BIND>(info)  I<st_info> の値からバインディングを取り出す。"
3425
3426 #. type: Plain text
3427 #: build/C/man5/elf.5:1644
3428 msgid "B<ELF32_ST_TYPE>(info)  or B<ELF64_ST_TYPE>(info)"
3429 msgstr "B<ELF32_ST_TYPE>(info)  または B<ELF64_ST_TYPE>(info)"
3430
3431 #. type: Plain text
3432 #: build/C/man5/elf.5:1648
3433 msgid "extract a type from an I<st_info> value."
3434 msgstr "I<st_info> の値からタイプを取り出す。"
3435
3436 #. type: Plain text
3437 #: build/C/man5/elf.5:1652
3438 msgid "B<ELF32_ST_INFO>(bind, type)  or B<ELF64_ST_INFO>(bind, type)"
3439 msgstr "B<ELF32_ST_INFO>(bind, type)  または B<ELF64_ST_INFO>(bind, type)"
3440
3441 #. type: Plain text
3442 #: build/C/man5/elf.5:1656
3443 msgid "convert a binding and a type into an I<st_info> value."
3444 msgstr "バインディングとタイプを I<st_info> の値に変換する。"
3445
3446 #. type: TP
3447 #: build/C/man5/elf.5:1658
3448 #, no-wrap
3449 msgid "I<st_other>"
3450 msgstr "I<st_other>"
3451
3452 #.  .Bl -tag -width "STV_PROTECTED"
3453 #. type: Plain text
3454 #: build/C/man5/elf.5:1662
3455 msgid "This member defines the symbol visibility."
3456 msgstr "このメンバはシンボルの visibility (見える範囲) を規定する。"
3457
3458 #. type: TP
3459 #: build/C/man5/elf.5:1663
3460 #, no-wrap
3461 msgid "B<STV_DEFAULT>"
3462 msgstr "B<STV_DEFAULT>"
3463
3464 #. type: Plain text
3465 #: build/C/man5/elf.5:1667
3466 msgid "Default symbol visibility rules."
3467 msgstr "デフォルトのシンボル visibility ルール。"
3468
3469 #. type: TP
3470 #: build/C/man5/elf.5:1667
3471 #, no-wrap
3472 msgid "B<STV_INTERNAL>"
3473 msgstr "B<STV_INTERNAL>"
3474
3475 #. type: Plain text
3476 #: build/C/man5/elf.5:1670
3477 msgid "Processor-specific hidden class."
3478 msgstr "プロセッサ固有の隠しクラス。"
3479
3480 #. type: TP
3481 #: build/C/man5/elf.5:1670
3482 #, no-wrap
3483 msgid "B<STV_HIDDEN>"
3484 msgstr "B<STV_HIDDEN>"
3485
3486 #. type: Plain text
3487 #: build/C/man5/elf.5:1673
3488 msgid "Symbol is unavailable in other modules."
3489 msgstr "シンボルは他のモジュールからは利用できない。"
3490
3491 #. type: TP
3492 #: build/C/man5/elf.5:1673
3493 #, no-wrap
3494 msgid "B<STV_PROTECTED>"
3495 msgstr "B<STV_PROTECTED>"
3496
3497 #. type: Plain text
3498 #: build/C/man5/elf.5:1676
3499 msgid "Not preemptible, not exported."
3500 msgstr "横取りできず (not preemptible)、公開されない。"
3501
3502 #. type: Plain text
3503 #: build/C/man5/elf.5:1679
3504 msgid "There are macros for extracting the visibility type:"
3505 msgstr "visibility 種別を抽出するためのマクロがある。"
3506
3507 #. type: Plain text
3508 #: build/C/man5/elf.5:1683
3509 msgid "B<ELF32_ST_VISIBILITY>(other)  or B<ELF64_ST_VISIBILITY>(other)"
3510 msgstr "B<ELF32_ST_VISIBILITY>(other)  または B<ELF64_ST_VISIBILITY>(other)"
3511
3512 #. type: TP
3513 #: build/C/man5/elf.5:1685
3514 #, no-wrap
3515 msgid "I<st_shndx>"
3516 msgstr "I<st_shndx>"
3517
3518 #.  .El
3519 #. type: Plain text
3520 #: build/C/man5/elf.5:1693
3521 msgid "Every symbol table entry is \"defined\" in relation to some section.  This member holds the relevant section header table index."
3522 msgstr "各シンボルテーブルエントリは、いくつかのセクションに関連して \"定義されている\"。 このメンバは関連するセクションヘッダテーブルインデックスを保持する。"
3523
3524 #. type: Plain text
3525 #: build/C/man5/elf.5:1701
3526 msgid "Relocation is the process of connecting symbolic references with symbolic definitions.  Relocatable files must have information that describes how to modify their section contents, thus allowing executable and shared object files to hold the right information for a process's program image.  Relocation entries are these data."
3527 msgstr "再配置はシンボル参照とシンボル定義を結合するプロセスである。 再配置可能ファイルはセクションの内容をどのように修正するかに関する 情報を持たなければならない。 これにより、実行可能ファイルと共有オブジェクトファイルは プロセスのプログラムイメージについての正しい情報を持つことができる。 再配置エントリは以下のようなデータである。"
3528
3529 #. type: Plain text
3530 #: build/C/man5/elf.5:1703
3531 msgid "Relocation structures that do not need an addend:"
3532 msgstr "加数を必要としない再配置構造体。"
3533
3534 #. type: Plain text
3535 #: build/C/man5/elf.5:1710
3536 #, no-wrap
3537 msgid ""
3538 "typedef struct {\n"
3539 "    Elf32_Addr r_offset;\n"
3540 "    uint32_t   r_info;\n"
3541 "} Elf32_Rel;\n"
3542 msgstr ""
3543 "typedef struct {\n"
3544 "    Elf32_Addr r_offset;\n"
3545 "    uint32_t   r_info;\n"
3546 "} Elf32_Rel;\n"
3547
3548 #. type: Plain text
3549 #: build/C/man5/elf.5:1719
3550 #, no-wrap
3551 msgid ""
3552 "typedef struct {\n"
3553 "    Elf64_Addr r_offset;\n"
3554 "    uint64_t   r_info;\n"
3555 "} Elf64_Rel;\n"
3556 msgstr ""
3557 "typedef struct {\n"
3558 "    Elf64_Addr r_offset;\n"
3559 "    uint64_t   r_info;\n"
3560 "} Elf64_Rel;\n"
3561
3562 #. type: Plain text
3563 #: build/C/man5/elf.5:1723
3564 msgid "Relocation structures that need an addend:"
3565 msgstr "加数を必要とする再配置構造体。"
3566
3567 #. type: Plain text
3568 #: build/C/man5/elf.5:1731
3569 #, no-wrap
3570 msgid ""
3571 "typedef struct {\n"
3572 "    Elf32_Addr r_offset;\n"
3573 "    uint32_t   r_info;\n"
3574 "    int32_t    r_addend;\n"
3575 "} Elf32_Rela;\n"
3576 msgstr ""
3577 "typedef struct {\n"
3578 "    Elf32_Addr r_offset;\n"
3579 "    uint32_t   r_info;\n"
3580 "    int32_t    r_addend;\n"
3581 "} Elf32_Rela;\n"
3582
3583 #. type: Plain text
3584 #: build/C/man5/elf.5:1741
3585 #, no-wrap
3586 msgid ""
3587 "typedef struct {\n"
3588 "    Elf64_Addr r_offset;\n"
3589 "    uint64_t   r_info;\n"
3590 "    int64_t    r_addend;\n"
3591 "} Elf64_Rela;\n"
3592 msgstr ""
3593 "typedef struct {\n"
3594 "    Elf64_Addr r_offset;\n"
3595 "    uint64_t   r_info;\n"
3596 "    int64_t    r_addend;\n"
3597 "} Elf64_Rela;\n"
3598
3599 #. type: TP
3600 #: build/C/man5/elf.5:1744
3601 #, no-wrap
3602 msgid "I<r_offset>"
3603 msgstr "I<r_offset>"
3604
3605 #. type: Plain text
3606 #: build/C/man5/elf.5:1752
3607 msgid "This member gives the location at which to apply the relocation action.  For a relocatable file, the value is the byte offset from the beginning of the section to the storage unit affected by the relocation.  For an executable file or shared object, the value is the virtual address of the storage unit affected by the relocation."
3608 msgstr "このメンバは再配置動作が適用される位置を与える。 再配置可能ファイルの場合、この値はセクションの先頭から 再配置で影響を受ける格納単位 (storage unit) までのバイトオフセットである。 実行可能ファイルまたは共有オブジェクトの場合、 この値は再配置で影響を受ける格納単位の仮想アドレスである。"
3609
3610 #. type: TP
3611 #: build/C/man5/elf.5:1752
3612 #, no-wrap
3613 msgid "I<r_info>"
3614 msgstr "I<r_info>"
3615
3616 #. type: Plain text
3617 #: build/C/man5/elf.5:1767
3618 msgid "This member gives both the symbol table index with respect to which the relocation must be made and the type of relocation to apply.  Relocation types are processor-specific.  When the text refers to a relocation entry's relocation type or symbol table index, it means the result of applying B<ELF[32|64]_R_TYPE> or B<ELF[32|64]_R_SYM>, respectively, to the entry's I<r_info> member."
3619 msgstr "このメンバは、再配置が行われなければならないシンボルテーブルインデックスと、 適用される再配置のタイプの両方を与える。 再配置タイプはプロセッサ毎に異なる。 テキストが再配置エントリの再配置タイプ またはシンボルテーブルインデックスを参照している場合、 それぞれエントリの I<r_info> メンバに対して、それぞれ B<ELF[32|64]_R_TYPE> と B<ELF[32|64]_R_SYM> を適用した結果を意味する。"
3620
3621 #. type: TP
3622 #: build/C/man5/elf.5:1767
3623 #, no-wrap
3624 msgid "I<r_addend>"
3625 msgstr "I<r_addend>"
3626
3627 #.  .El
3628 #. type: Plain text
3629 #: build/C/man5/elf.5:1772
3630 msgid "This member specifies a constant addend used to compute the value to be stored into the relocatable field."
3631 msgstr "このメンバは定数の加数を指定する。 この加数は再配置可能フィールドに格納される値を計算するために使われる。"
3632
3633 #. type: Plain text
3634 #: build/C/man5/elf.5:1777
3635 msgid "The .dynamic section contains a series of structures that hold relevant dynamic linking information.  The d_tag member controls the interpretation of d_un."
3636 msgstr "\\&.dynamic セクションは、関連する動的リンク情報を保持している 一連の構造体を保持する。 d_tag メンバは d_un の解釈を制御する。"
3637
3638 #. type: Plain text
3639 #: build/C/man5/elf.5:1788
3640 #, no-wrap
3641 msgid ""
3642 "typedef struct {\n"
3643 "    Elf32_Sword    d_tag;\n"
3644 "    union {\n"
3645 "        Elf32_Word d_val;\n"
3646 "        Elf32_Addr d_ptr;\n"
3647 "    } d_un;\n"
3648 "} Elf32_Dyn;\n"
3649 "extern Elf32_Dyn _DYNAMIC[];\n"
3650 msgstr ""
3651 "typedef struct {\n"
3652 "    Elf32_Sword    d_tag;\n"
3653 "    union {\n"
3654 "        Elf32_Word d_val;\n"
3655 "        Elf32_Addr d_ptr;\n"
3656 "    } d_un;\n"
3657 "} Elf32_Dyn;\n"
3658 "extern Elf32_Dyn _DYNAMIC[];\n"
3659
3660 #. type: Plain text
3661 #: build/C/man5/elf.5:1801
3662 #, no-wrap
3663 msgid ""
3664 "typedef struct {\n"
3665 "    Elf64_Sxword    d_tag;\n"
3666 "    union {\n"
3667 "        Elf64_Xword d_val;\n"
3668 "        Elf64_Addr  d_ptr;\n"
3669 "    } d_un;\n"
3670 "} Elf64_Dyn;\n"
3671 "extern Elf64_Dyn _DYNAMIC[];\n"
3672 msgstr ""
3673 "typedef struct {\n"
3674 "    Elf64_Sxword    d_tag;\n"
3675 "    union {\n"
3676 "        Elf64_Xword d_val;\n"
3677 "        Elf64_Addr  d_ptr;\n"
3678 "    } d_un;\n"
3679 "} Elf64_Dyn;\n"
3680 "extern Elf64_Dyn _DYNAMIC[];\n"
3681
3682 #. type: TP
3683 #: build/C/man5/elf.5:1804
3684 #, no-wrap
3685 msgid "I<d_tag>"
3686 msgstr "I<d_tag>"
3687
3688 #.  .Bl -tag -width "DT_SYMBOLIC"
3689 #. type: Plain text
3690 #: build/C/man5/elf.5:1808
3691 msgid "This member may have any of the following values:"
3692 msgstr "このメンバは以下の値を持つことができる:"
3693
3694 #. type: TP
3695 #: build/C/man5/elf.5:1809
3696 #, no-wrap
3697 msgid "B<DT_NULL>"
3698 msgstr "B<DT_NULL>"
3699
3700 #. type: Plain text
3701 #: build/C/man5/elf.5:1812
3702 msgid "Marks end of dynamic section"
3703 msgstr "動的セクションの終りのマーク"
3704
3705 #. type: TP
3706 #: build/C/man5/elf.5:1812
3707 #, no-wrap
3708 msgid "B<DT_NEEDED>"
3709 msgstr "B<DT_NEEDED>"
3710
3711 #. type: Plain text
3712 #: build/C/man5/elf.5:1815
3713 msgid "String table offset to name of a needed library"
3714 msgstr "必要なライブラリの名前への文字列テーブルオフセット"
3715
3716 #. type: TP
3717 #: build/C/man5/elf.5:1815
3718 #, no-wrap
3719 msgid "B<DT_PLTRELSZ>"
3720 msgstr "B<DT_PLTRELSZ>"
3721
3722 #. type: Plain text
3723 #: build/C/man5/elf.5:1818
3724 msgid "Size in bytes of PLT relocs"
3725 msgstr "PLT 再配置 (reloc) テーブルのサイズ (バイト単位)"
3726
3727 #. type: TP
3728 #: build/C/man5/elf.5:1818
3729 #, no-wrap
3730 msgid "B<DT_PLTGOT>"
3731 msgstr "B<DT_PLTGOT>"
3732
3733 #. type: Plain text
3734 #: build/C/man5/elf.5:1821
3735 msgid "Address of PLT and/or GOT"
3736 msgstr "PLT と GOT (または何れか一方) のアドレス"
3737
3738 #. type: TP
3739 #: build/C/man5/elf.5:1821
3740 #, no-wrap
3741 msgid "B<DT_HASH>"
3742 msgstr "B<DT_HASH>"
3743
3744 #. type: Plain text
3745 #: build/C/man5/elf.5:1824
3746 msgid "Address of symbol hash table"
3747 msgstr "シンボルハッシュテーブルのアドレス"
3748
3749 #. type: TP
3750 #: build/C/man5/elf.5:1824
3751 #, no-wrap
3752 msgid "B<DT_STRTAB>"
3753 msgstr "B<DT_STRTAB>"
3754
3755 #. type: Plain text
3756 #: build/C/man5/elf.5:1827
3757 msgid "Address of string table"
3758 msgstr "文字列テーブルのアドレス"
3759
3760 #. type: TP
3761 #: build/C/man5/elf.5:1827
3762 #, no-wrap
3763 msgid "B<DT_SYMTAB>"
3764 msgstr "B<DT_SYMTAB>"
3765
3766 #. type: Plain text
3767 #: build/C/man5/elf.5:1830
3768 msgid "Address of symbol table"
3769 msgstr "シンボルテーブルのアドレス"
3770
3771 #. type: TP
3772 #: build/C/man5/elf.5:1830
3773 #, no-wrap
3774 msgid "B<DT_RELA>"
3775 msgstr "B<DT_RELA>"
3776
3777 #. type: Plain text
3778 #: build/C/man5/elf.5:1833
3779 msgid "Address of Rela relocs table"
3780 msgstr "Rela 再配置テーブルのアドレス"
3781
3782 #. type: TP
3783 #: build/C/man5/elf.5:1833
3784 #, no-wrap
3785 msgid "B<DT_RELASZ>"
3786 msgstr "B<DT_RELASZ>"
3787
3788 #. type: Plain text
3789 #: build/C/man5/elf.5:1836
3790 msgid "Size in bytes of Rela table"
3791 msgstr "Rela テーブルのサイズ (バイト単位)"
3792
3793 #. type: TP
3794 #: build/C/man5/elf.5:1836
3795 #, no-wrap
3796 msgid "B<DT_RELAENT>"
3797 msgstr "B<DT_RELAENT>"
3798
3799 #. type: Plain text
3800 #: build/C/man5/elf.5:1839
3801 msgid "Size in bytes of a Rela table entry"
3802 msgstr "Rela テーブルエントリのサイズ (バイト単位)"
3803
3804 #. type: TP
3805 #: build/C/man5/elf.5:1839
3806 #, no-wrap
3807 msgid "B<DT_STRSZ>"
3808 msgstr "B<DT_STRSZ>"
3809
3810 #. type: Plain text
3811 #: build/C/man5/elf.5:1842
3812 msgid "Size in bytes of string table"
3813 msgstr "文字列テーブルのサイズ (バイト単位)"
3814
3815 #. type: TP
3816 #: build/C/man5/elf.5:1842
3817 #, no-wrap
3818 msgid "B<DT_SYMENT>"
3819 msgstr "B<DT_SYMENT>"
3820
3821 #. type: Plain text
3822 #: build/C/man5/elf.5:1845
3823 msgid "Size in bytes of a symbol table entry"
3824 msgstr "シンボルテーブルエントリのサイズ (バイト単位)"
3825
3826 #. type: TP
3827 #: build/C/man5/elf.5:1845
3828 #, no-wrap
3829 msgid "B<DT_INIT>"
3830 msgstr "B<DT_INIT>"
3831
3832 #. type: Plain text
3833 #: build/C/man5/elf.5:1848
3834 msgid "Address of the initialization function"
3835 msgstr "初期化関数のアドレス"
3836
3837 #. type: TP
3838 #: build/C/man5/elf.5:1848
3839 #, no-wrap
3840 msgid "B<DT_FINI>"
3841 msgstr "B<DT_FINI>"
3842
3843 #. type: Plain text
3844 #: build/C/man5/elf.5:1851
3845 msgid "Address of the termination function"
3846 msgstr "終了関数のアドレス"
3847
3848 #. type: TP
3849 #: build/C/man5/elf.5:1851
3850 #, no-wrap
3851 msgid "B<DT_SONAME>"
3852 msgstr "B<DT_SONAME>"
3853
3854 #. type: Plain text
3855 #: build/C/man5/elf.5:1854
3856 msgid "String table offset to name of shared object"
3857 msgstr "共有オブジェクトの名前への文字列テーブルオフセット"
3858
3859 #. type: TP
3860 #: build/C/man5/elf.5:1854
3861 #, no-wrap
3862 msgid "B<DT_RPATH>"
3863 msgstr "B<DT_RPATH>"
3864
3865 #. type: Plain text
3866 #: build/C/man5/elf.5:1857
3867 msgid "String table offset to library search path (deprecated)"
3868 msgstr "ライブラリ検索パスへの文字列テーブルオフセット (推奨されない)"
3869
3870 #. type: TP
3871 #: build/C/man5/elf.5:1857
3872 #, no-wrap
3873 msgid "B<DT_SYMBOLIC>"
3874 msgstr "B<DT_SYMBOLIC>"
3875
3876 #. type: Plain text
3877 #: build/C/man5/elf.5:1860
3878 msgid "Alert linker to search this shared object before the executable for symbols"
3879 msgstr "リンカーがシンボルの実行可能ファイルより前に この共有オブジェクトを検索した場合は、警告を出す。"
3880
3881 #. type: TP
3882 #: build/C/man5/elf.5:1860
3883 #, no-wrap
3884 msgid "B<DT_REL>"
3885 msgstr "B<DT_REL>"
3886
3887 #. type: Plain text
3888 #: build/C/man5/elf.5:1863
3889 msgid "Address of Rel relocs table"
3890 msgstr "Rel 再配置テーブルのアドレス"
3891
3892 #. type: TP
3893 #: build/C/man5/elf.5:1863
3894 #, no-wrap
3895 msgid "B<DT_RELSZ>"
3896 msgstr "B<DT_RELSZ>"
3897
3898 #. type: Plain text
3899 #: build/C/man5/elf.5:1866
3900 msgid "Size in bytes of Rel table"
3901 msgstr "Rel テーブルのサイズ (バイト単位)"
3902
3903 #. type: TP
3904 #: build/C/man5/elf.5:1866
3905 #, no-wrap
3906 msgid "B<DT_RELENT>"
3907 msgstr "B<DT_RELENT>"
3908
3909 #. type: Plain text
3910 #: build/C/man5/elf.5:1869
3911 msgid "Size in bytes of a Rel table entry"
3912 msgstr "Rel テーブルエントリのサイズ (バイト単位)"
3913
3914 #. type: TP
3915 #: build/C/man5/elf.5:1869
3916 #, no-wrap
3917 msgid "B<DT_PLTREL>"
3918 msgstr "B<DT_PLTREL>"
3919
3920 #. type: Plain text
3921 #: build/C/man5/elf.5:1872
3922 msgid "Type of reloc the PLT refers (Rela or Rel)"
3923 msgstr "PLT が参照する再配置テーブルのタイプ (Rela または Rel)"
3924
3925 #. type: TP
3926 #: build/C/man5/elf.5:1872
3927 #, no-wrap
3928 msgid "B<DT_DEBUG>"
3929 msgstr "B<DT_DEBUG>"
3930
3931 #. type: Plain text
3932 #: build/C/man5/elf.5:1875
3933 msgid "Undefined use for debugging"
3934 msgstr "デバッグのために使用されている。内容は定義されていない。"
3935
3936 #. type: TP
3937 #: build/C/man5/elf.5:1875
3938 #, no-wrap
3939 msgid "B<DT_TEXTREL>"
3940 msgstr "B<DT_TEXTREL>"
3941
3942 #. type: Plain text
3943 #: build/C/man5/elf.5:1878
3944 msgid "Absence of this indicates no relocs should apply to a nonwritable segment"
3945 msgstr "これが指定されていない場合、 書き込み不可のセグメントには再配置は適用されない。"
3946
3947 #. type: TP
3948 #: build/C/man5/elf.5:1878
3949 #, no-wrap
3950 msgid "B<DT_JMPREL>"
3951 msgstr "B<DT_JMPREL>"
3952
3953 #. type: Plain text
3954 #: build/C/man5/elf.5:1881
3955 msgid "Address of reloc entries solely for the PLT"
3956 msgstr "PLT 専用の再配置エントリのアドレス"
3957
3958 #. type: TP
3959 #: build/C/man5/elf.5:1881
3960 #, no-wrap
3961 msgid "B<DT_BIND_NOW>"
3962 msgstr "B<DT_BIND_NOW>"
3963
3964 #. type: Plain text
3965 #: build/C/man5/elf.5:1885
3966 msgid "Instruct dynamic linker to process all relocs before transferring control to the executable"
3967 msgstr "実行可能ファイルに制御を譲る前に、 全ての再配置を処理するように動的リンカーに指示する。"
3968
3969 #. type: TP
3970 #: build/C/man5/elf.5:1885
3971 #, no-wrap
3972 msgid "B<DT_RUNPATH>"
3973 msgstr "B<DT_RUNPATH>"
3974
3975 #. type: Plain text
3976 #: build/C/man5/elf.5:1888
3977 msgid "String table offset to library search path"
3978 msgstr "ライブラリ検索パスへの文字列テーブルオフセット"
3979
3980 #. type: TP
3981 #: build/C/man5/elf.5:1888
3982 #, no-wrap
3983 msgid "B<DT_LOPROC>"
3984 msgstr "B<DT_LOPROC>"
3985
3986 #. type: Plain text
3987 #: build/C/man5/elf.5:1891
3988 msgid "Start of processor-specific semantics"
3989 msgstr "プロセッサ固有の意味の開始"
3990
3991 #. type: TP
3992 #: build/C/man5/elf.5:1891
3993 #, no-wrap
3994 msgid "B<DT_HIPROC>"
3995 msgstr "B<DT_HIPROC>"
3996
3997 #. type: Plain text
3998 #: build/C/man5/elf.5:1894
3999 msgid "End of processor-specific semantics"
4000 msgstr "プロセッサ固有の意味の終了"
4001
4002 #. type: TP
4003 #: build/C/man5/elf.5:1896
4004 #, no-wrap
4005 msgid "I<d_val>"
4006 msgstr "I<d_val>"
4007
4008 #. type: Plain text
4009 #: build/C/man5/elf.5:1899
4010 msgid "This member represents integer values with various interpretations."
4011 msgstr "このメンバは様々な意味に解釈される整数値である。"
4012
4013 #. type: TP
4014 #: build/C/man5/elf.5:1899
4015 #, no-wrap
4016 msgid "I<d_ptr>"
4017 msgstr "I<d_ptr>"
4018
4019 #. type: Plain text
4020 #: build/C/man5/elf.5:1907
4021 msgid "This member represents program virtual addresses.  When interpreting these addresses, the actual address should be computed based on the original file value and memory base address.  Files do not contain relocation entries to fixup these addresses."
4022 msgstr "このメンバはプログラムの仮想アドレスを表す。 これらのアドレスを解釈する際に、 実際のアドレスは元々のファイルの値と メモリの基底アドレスから計算される。 ファイルにはこれらのアドレスを修正するための 再配置エントリを含めてはならない。"
4023
4024 #. type: TP
4025 #: build/C/man5/elf.5:1907
4026 #, no-wrap
4027 msgid "I<_DYNAMIC>"
4028 msgstr "I<_DYNAMIC>"
4029
4030 #.  .El
4031 #. type: Plain text
4032 #: build/C/man5/elf.5:1912
4033 msgid "Array containing all the dynamic structures in the .dynamic section.  This is automatically populated by the linker."
4034 msgstr "\\&.dynamic セクションにある全ての動的構造体を含む配列。 これは自動的にリンカーに渡される。"
4035
4036 #.  OpenBSD
4037 #.  ELF support first appeared in
4038 #.  OpenBSD 1.2,
4039 #.  although not all supported platforms use it as the native
4040 #.  binary file format.
4041 #. type: Plain text
4042 #: build/C/man5/elf.5:1921
4043 msgid "ELF first appeared in System V.  The ELF format is an adopted standard."
4044 msgstr "ELF は System V で初めて登場した。 ELF 自体は System V で初めて登場した。 ELF フォーマットは採択された標準である。"
4045
4046 #.  .SH AUTHORS
4047 #.  The original version of this manual page was written by
4048 #.  .An Jeroen Ruigrok van der Werven
4049 #.  .Aq asmodai@FreeBSD.org
4050 #.  with inspiration from BSDi's
4051 #.  .Bsx
4052 #.  .Nm elf
4053 #.  man page.
4054 #. type: Plain text
4055 #: build/C/man5/elf.5:1939
4056 msgid "The extensions for I<e_phnum>, I<e_shnum> and I<e_strndx> respectively are Linux extensions.  Sun, BSD and AMD64 also support them; for further information, look under SEE ALSO."
4057 msgstr ""
4058 "I<e_phnum>, I<e_shnum>, I<e_strndx> に対する拡張は、いずれも Linux での拡張で\n"
4059 "ある。Sun, BSD, AMD64 もこれに対応している。詳しい情報は、関連項目を参照。"
4060
4061 #. type: Plain text
4062 #: build/C/man5/elf.5:1946
4063 msgid "B<as>(1), B<gdb>(1), B<ld>(1), B<objdump>(1), B<execve>(2), B<core>(5)"
4064 msgstr "B<as>(1), B<gdb>(1), B<ld>(1), B<objdump>(1), B<execve>(2), B<core>(5)"
4065
4066 #. type: Plain text
4067 #: build/C/man5/elf.5:1949
4068 msgid "Hewlett-Packard, I<Elf-64 Object File Format>."
4069 msgstr "Hewlett-Packard, I<Elf-64 Object File Format>."
4070
4071 #. type: Plain text
4072 #: build/C/man5/elf.5:1952
4073 msgid "Santa Cruz Operation, I<System V Application Binary Interface>."
4074 msgstr "Santa Cruz Operation, I<System V Application Binary Interface>."
4075
4076 #. type: Plain text
4077 #: build/C/man5/elf.5:1956
4078 msgid "UNIX System Laboratories, \"Object Files\", I<Executable and Linking Format (ELF)>."
4079 msgstr "UNIX System Laboratories, \"Object Files\", I<Executable and Linking Format (ELF)>."
4080
4081 #. type: Plain text
4082 #: build/C/man5/elf.5:1959
4083 msgid "Sun Microsystems, I<Linker and Libraries Guide>."
4084 msgstr "Sun Microsystems, I<Linker and Libraries Guide>."
4085
4086 #. type: Plain text
4087 #: build/C/man5/elf.5:1962
4088 msgid "AMD64 ABI Draft, I<System V Application Binary Interface AMD64 Architecture Processor Supplement>."
4089 msgstr ""
4090 "AMD64 ABI Draft, I<System V Application Binary Interface AMD64 Architecture\n"
4091 "Processor Supplement>."
4092
4093 #. type: TH
4094 #: build/C/man3/end.3:26
4095 #, no-wrap
4096 msgid "END"
4097 msgstr "END"
4098
4099 #. type: TH
4100 #: build/C/man3/end.3:26
4101 #, no-wrap
4102 msgid "2008-07-17"
4103 msgstr "2008-07-17"
4104
4105 #. type: Plain text
4106 #: build/C/man3/end.3:29
4107 msgid "etext, edata, end - end of program segments"
4108 msgstr "etext, edata, end - プログラムセグメントの終わり"
4109
4110 #. type: Plain text
4111 #: build/C/man3/end.3:34
4112 #, no-wrap
4113 msgid ""
4114 "B<extern>I< etext>B<;>\n"
4115 "B<extern>I< edata>B<;>\n"
4116 "B<extern>I< end>B<;>\n"
4117 msgstr ""
4118 "B<extern>I< etext>B<;>\n"
4119 "B<extern>I< edata>B<;>\n"
4120 "B<extern>I< end>B<;>\n"
4121
4122 #. type: Plain text
4123 #: build/C/man3/end.3:38
4124 msgid "The addresses of these symbols indicate the end of various program segments:"
4125 msgstr "これらのシンボルのアドレスは各種のプログラムセグメントの終わりを示す。"
4126
4127 #. type: TP
4128 #: build/C/man3/end.3:38
4129 #, no-wrap
4130 msgid "I<etext>"
4131 msgstr "I<etext>"
4132
4133 #. type: Plain text
4134 #: build/C/man3/end.3:42
4135 msgid "This is the first address past the end of the text segment (the program code)."
4136 msgstr "テキストセグメント (プログラムのコード) の末尾の次のアドレス。"
4137
4138 #. type: TP
4139 #: build/C/man3/end.3:42
4140 #, no-wrap
4141 msgid "I<edata>"
4142 msgstr "I<edata>"
4143
4144 #. type: Plain text
4145 #: build/C/man3/end.3:46
4146 msgid "This is the first address past the end of the initialized data segment."
4147 msgstr "初期化されたデータのセグメントの末尾の次のアドレス。"
4148
4149 #. type: TP
4150 #: build/C/man3/end.3:46
4151 #, no-wrap
4152 msgid "I<end>"
4153 msgstr "I<end>"
4154
4155 #. type: Plain text
4156 #: build/C/man3/end.3:50
4157 msgid "This is the first address past the end of the uninitialized data segment (also known as the BSS segment)."
4158 msgstr "初期化されていないデータのセグメント (BSS セグメントとも言われる)  の末尾の次のアドレス。"
4159
4160 #. type: Plain text
4161 #: build/C/man3/end.3:53
4162 msgid "Although these symbols have long been provided on most UNIX systems, they are not standardized; use with caution."
4163 msgstr "これらのシンボルは長年ほとんどの UNIX システムで提供されているが、 標準化されてはいない。注意して使うこと。"
4164
4165 #. type: Plain text
4166 #: build/C/man3/end.3:56
4167 msgid "The program must explicitly declare these symbols; they are not defined in any header file."
4168 msgstr "プログラムではこれらのシンボルは明示的に宣言しなければならない。 これらはどのヘッダファイルでも定義されていない。"
4169
4170 #. type: Plain text
4171 #: build/C/man3/end.3:64
4172 msgid "On some systems the names of these symbols are preceded by underscores, thus: I<_etext>, I<_edata>, and I<_end>.  These symbols are also defined for programs compiled on Linux."
4173 msgstr "いくつかのシステムでは、これらのシンボルの名前は前にアンダースコアが 付いていて、 I<_etext>, I<_edata>, I<_end> となっている。 Linux でコンパイルされたプログラムでは、 これらのシンボルでも定義される。"
4174
4175 #. type: Plain text
4176 #: build/C/man3/end.3:76
4177 msgid "At the start of program execution, the program break will be somewhere near I<&end> (perhaps at the start of the following page).  However, the break will change as memory is allocated via B<brk>(2)  or B<malloc>(3).  Use B<sbrk>(2)  with an argument of zero to find the current value of the program break."
4178 msgstr "プログラムの実行開始時に、プログラムブレークは I<&end> の近くのどこか (おそらく次のページの先頭) になる。 しかしながら、 B<brk>(2)  や B<malloc>(3)  でメモリが割り当てられるに連れて、プログラムブレークは変化していく。 引き数に 0 を指定して B<sbrk>(2)  を呼び出すことで、プログラムブレークの現在値を知ることができる。"
4179
4180 #. type: Plain text
4181 #: build/C/man3/end.3:78
4182 msgid "When run, the program below produces output such as the following:"
4183 msgstr "下記のプログラムを実行すると、次のような出力が得られる。"
4184
4185 #. type: Plain text
4186 #: build/C/man3/end.3:86
4187 #, no-wrap
4188 msgid ""
4189 "$B< ./a.out>\n"
4190 "First address past:\n"
4191 "    program text (etext)       0x8048568\n"
4192 "    initialized data (edata)   0x804a01c\n"
4193 "    uninitialized data (end)   0x804a024\n"
4194 msgstr ""
4195 "$B< ./a.out>\n"
4196 "First address past:\n"
4197 "    program text (etext)       0x8048568\n"
4198 "    initialized data (edata)   0x804a01c\n"
4199 "    uninitialized data (end)   0x804a024\n"
4200
4201 #. type: SS
4202 #: build/C/man3/end.3:88 build/C/man1/memusage.1:234
4203 #, no-wrap
4204 msgid "Program source"
4205 msgstr "プログラムのソース"
4206
4207 #. type: Plain text
4208 #: build/C/man3/end.3:93 build/C/man1/memusage.1:238
4209 #, no-wrap
4210 msgid ""
4211 "#include E<lt>stdio.hE<gt>\n"
4212 "#include E<lt>stdlib.hE<gt>\n"
4213 msgstr ""
4214 "#include E<lt>stdio.hE<gt>\n"
4215 "#include E<lt>stdlib.hE<gt>\n"
4216
4217 #. type: Plain text
4218 #: build/C/man3/end.3:96
4219 #, no-wrap
4220 msgid ""
4221 "extern char etext, edata, end; /* The symbols must have some type,\n"
4222 "                                   or \"gcc -Wall\" complains */\n"
4223 msgstr ""
4224 "extern char etext, edata, end; /* The symbols must have some type,\n"
4225 "                                   or \"gcc -Wall\" complains */\n"
4226
4227 #. type: Plain text
4228 #: build/C/man3/end.3:104
4229 #, no-wrap
4230 msgid ""
4231 "int\n"
4232 "main(int argc, char *argv[])\n"
4233 "{\n"
4234 "    printf(\"First address past:\\en\");\n"
4235 "    printf(\"    program text (etext)      %10p\\en\", &etext);\n"
4236 "    printf(\"    initialized data (edata)  %10p\\en\", &edata);\n"
4237 "    printf(\"    uninitialized data (end)  %10p\\en\", &end);\n"
4238 msgstr ""
4239 "int\n"
4240 "main(int argc, char *argv[])\n"
4241 "{\n"
4242 "    printf(\"First address past:\\en\");\n"
4243 "    printf(\"    program text (etext)      %10p\\en\", &etext);\n"
4244 "    printf(\"    initialized data (edata)  %10p\\en\", &edata);\n"
4245 "    printf(\"    uninitialized data (end)  %10p\\en\", &end);\n"
4246
4247 #. type: Plain text
4248 #: build/C/man3/end.3:113
4249 msgid "B<objdump>(1), B<readelf>(1), B<sbrk>(2), B<elf>(5)"
4250 msgstr "B<objdump>(1), B<readelf>(1), B<sbrk>(2), B<elf>(5)"
4251
4252 #. type: TH
4253 #: build/C/man8/ld.so.8:5
4254 #, no-wrap
4255 msgid "LD.SO"
4256 msgstr "LD.SO"
4257
4258 #. type: TH
4259 #: build/C/man8/ld.so.8:5
4260 #, no-wrap
4261 msgid "2014-12-31"
4262 msgstr "2014-12-31"
4263
4264 #. type: Plain text
4265 #: build/C/man8/ld.so.8:8
4266 msgid "ld.so, ld-linux.so* - dynamic linker/loader"
4267 msgstr "ld.so, ld-linux.so* - 動的なリンカー/ローダー"
4268
4269 #. type: Plain text
4270 #: build/C/man8/ld.so.8:15
4271 msgid "The dynamic linker can be run either indirectly by running some dynamically linked program or library (in which case no command-line options to the dynamic linker can be passed and, in the ELF case, the dynamic linker which is stored in the B<.interp> section of the program is executed) or directly by running:"
4272 msgstr "動的リンカーは、動的にリンクされたプログラムやライブラリの実行によって 間接的に実行することができる (ELF の場合、動的リンカーにコマンドラインオプションを渡すことはできず、 プログラムの B<.interp> セクションに入っている動的リンカーが実行される)。 また以下のように直接実行することもできる"
4273
4274 #. type: Plain text
4275 #: build/C/man8/ld.so.8:18
4276 msgid "I</lib/ld-linux.so.*> [OPTIONS] [PROGRAM [ARGUMENTS]]"
4277 msgstr "I</lib/ld-linux.so.*> [OPTIONS] [PROGRAM [ARGUMENTS]]"
4278
4279 #. type: Plain text
4280 #: build/C/man8/ld.so.8:25
4281 msgid "The programs B<ld.so> and B<ld-linux.so*> find and load the shared libraries needed by a program, prepare the program to run, and then run it."
4282 msgstr "プログラム B<ld.so> と B<ld-linux.so*> はプログラムに必要な共有ライブラリを見つけてロードし、 プログラムの実行を準備してから起動させる。"
4283
4284 #. type: Plain text
4285 #: build/C/man8/ld.so.8:32
4286 msgid "Linux binaries require dynamic linking (linking at run time)  unless the B<-static> option was given to B<ld>(1)  during compilation."
4287 msgstr "Linux のバイナリは、コンパイルの時に B<ld>(1)  に対して B<-static> オプションが指定されていない限り、動的リンク (実行時リンク) が必要となる。"
4288
4289 #. type: Plain text
4290 #: build/C/man8/ld.so.8:45
4291 msgid "The program B<ld.so> handles a.out binaries, a format used long ago; B<ld-linux.so*> handles ELF (I</lib/ld-linux.so.1> for libc5, I</lib/ld-linux.so.2> for glibc2), which everybody has been using for years now.  Otherwise, both have the same behavior, and use the same support files and programs B<ldd>(1), B<ldconfig>(8), and I</etc/ld.so.conf>."
4292 msgstr "プログラム B<ld.so> は a.out バイナリを扱う。 これはずっと昔に使われていたフォーマットである。 B<ld-linux.so*> (libc5 では I</lib/ld-linux.so.1>, glibc2 では I</lib/ld-linux.so.2>)  は ELF バイナリを扱う。 このフォーマットは多くの人が最近何年も使っている。 それ以外の点では両方とも同じように動作し、 同じサポートファイルとプログラム B<ldd>(1), B<ldconfig>(8), I</etc/ld.so.conf> を使用する。"
4293
4294 #. type: Plain text
4295 #: build/C/man8/ld.so.8:53
4296 msgid "When resolving library dependencies, the dynamic linker first inspects each dependency string to see if it contains a slash (this can occur if a library pathname containing slashes was specified at link time).  If a slash is found, then the dependency string is interpreted as a (relative or absolute) pathname, and the library is loaded using that pathname."
4297 msgstr "ライブラリの依存関係を解決する際、動的リンカーは、最初に、依存関係の各文字列がスラッシュを含んでいるかをチェックする (この状況になるのは、リンク時にスラッシュを含むライブラリのパス名が指定された場合である)。スラッシュが見つかった場合、その依存関係の文字列はパス名 (相対パス、絶対パスのどちらも可) として解釈され、そのパス名を使ってそのライブラリはロードされる。"
4298
4299 #. type: Plain text
4300 #: build/C/man8/ld.so.8:56
4301 msgid "If a library dependency does not contain a slash, then it is searched for in the following order:"
4302 msgstr "ライブラリの依存関係にスラッシュが含まれない場合、以下の順序で検索される。"
4303
4304 #. type: Plain text
4305 #: build/C/man8/ld.so.8:61
4306 msgid "(ELF only) Using the directories specified in the DT_RPATH dynamic section attribute of the binary if present and DT_RUNPATH attribute does not exist.  Use of DT_RPATH is deprecated."
4307 msgstr "(ELF のみ)  バイナリの動的セクション属性 DT_RPATH が存在し、 DT_RUNPATH 属性が存在しない場合は、 DT_RPATH で指定されたディレクトリを使用する。 DT_RPATH の使用は推奨されない。"
4308
4309 #. type: Plain text
4310 #: build/C/man8/ld.so.8:66
4311 msgid "Using the environment variable B<LD_LIBRARY_PATH>.  Except if the executable is a set-user-ID/set-group-ID binary, in which case it is ignored."
4312 msgstr "環境変数 B<LD_LIBRARY_PATH> を用いる。 ただし実行ファイルが set-user-ID/set-group-ID バイナリの場合、 これは無視される。"
4313
4314 #. type: Plain text
4315 #: build/C/man8/ld.so.8:70
4316 msgid "(ELF only) Using the directories specified in the DT_RUNPATH dynamic section attribute of the binary if present."
4317 msgstr "(ELF のみ)  バイナリの動的セクション属性 DT_RUNPATH が存在すれば、 DT_RUNPATH で指定されたディレクトリを使用する。"
4318
4319 #. type: Plain text
4320 #: build/C/man8/ld.so.8:80
4321 msgid "From the cache file I</etc/ld.so.cache>, which contains a compiled list of candidate libraries previously found in the augmented library path.  If, however, the binary was linked with the B<-z nodeflib> linker option, libraries in the default library paths are skipped.  Libraries installed in hardware capability directories (see below)  are preferred to other libraries."
4322 msgstr "キャッシュファイル I</etc/ld.so.cache> を探す。このファイルは、 (ld.so.conf で追加指定されたものも含めた) ライブラリ検索パスから見つかったライブラリファイルの情報を集めたものである。ただし、バイナリがリンカーオプション B<-z nodeflib> でリンクされている場合は、デフォルトのライブラリパスにある ライブラリはスキップされる。ハードウェア機能ディレクトリ (下記参照) にインストールされたライブラリは、他のライブラリよりも優先される。"
4323
4324 #. type: Plain text
4325 #: build/C/man8/ld.so.8:88
4326 msgid "In the default path I</lib>, and then I</usr/lib>.  If the binary was linked with the B<-z nodeflib> linker option, this step is skipped."
4327 msgstr "デフォルトパスである I</lib>、 次いで I</usr/lib> を用いる。 バイナリがリンカーオプション B<-z nodeflib> でリンクされている場合、このステップはスキップされる。"
4328
4329 #. type: SS
4330 #: build/C/man8/ld.so.8:88
4331 #, no-wrap
4332 msgid "Rpath token expansion"
4333 msgstr "rpath トークンの展開"
4334
4335 #. type: Plain text
4336 #: build/C/man8/ld.so.8:92
4337 msgid "B<ld.so> understands certain strings in an rpath specification (DT_RPATH or DT_RUNPATH); those strings are substituted as follows"
4338 msgstr "B<ld.so> では rpath 指定 (DT_RPATH や DT_RUNPATH) 中にいくつかの特定の文字列を使うことができる。 それらの文字列は以下のように置き換えられる。"
4339
4340 #. type: TP
4341 #: build/C/man8/ld.so.8:92
4342 #, no-wrap
4343 msgid "I<$ORIGIN> (or equivalently I<${ORIGIN}>)"
4344 msgstr "I<$ORIGIN> (I<${ORIGIN}> も同じ)"
4345
4346 #. type: Plain text
4347 #: build/C/man8/ld.so.8:99
4348 msgid "This expands to the directory containing the program or shared library.  Thus, an application located in I<somedir/app> could be compiled with"
4349 msgstr "プログラムや共有ライブラリが入っているディレクトリに展開される。 したがって、 I<somedir/app> に置かれたアプリケーションを"
4350
4351 #. type: Plain text
4352 #: build/C/man8/ld.so.8:101
4353 #, no-wrap
4354 msgid "    gcc -Wl,-rpath,\\(aq$ORIGIN/../lib\\(aq\n"
4355 msgstr "    gcc -Wl,-rpath,\\(aq$ORIGIN/../lib\\(aq\n"
4356
4357 #. type: Plain text
4358 #: build/C/man8/ld.so.8:111
4359 msgid "so that it finds an associated shared library in I<somedir/lib> no matter where I<somedir> is located in the directory hierarchy.  This facilitates the creation of \"turn-key\" applications that do not need to be installed into special directories, but can instead be unpacked into any directory and still find their own shared libraries."
4360 msgstr "でコンパイルすることで、 I<somedir> がディレクトリ階層のどこにあっても、 B<ld.so> は I<somedir/lib> にある対応する共有ライブラリを見つけることができる。 この機能を使うと、 特別なディレクトリではなく任意のディレクトリにインストールしても「ややこしい設定なしで」独自の共有ライブラリを使えるアプリケーションを作成することができる。"
4361
4362 #. type: TP
4363 #: build/C/man8/ld.so.8:111
4364 #, no-wrap
4365 msgid "I<$LIB> (or equivalently I<${LIB}>)"
4366 msgstr "I<$LIB> (I<${LIB}> も同じ)"
4367
4368 #. type: Plain text
4369 #: build/C/man8/ld.so.8:123
4370 msgid "This expands to I<lib> or I<lib64> depending on the architecture (e.g., on x86-64, it expands to I<lib64> and on x86-32, it expands to I<lib>)."
4371 msgstr "アーキテクチャーに応じて I<lib> か I<lib64> に展開される (例えば、 x86-64 では I<lib64> に、 x86-32 では I<lib> に展開される)。"
4372
4373 #. type: TP
4374 #: build/C/man8/ld.so.8:123
4375 #, no-wrap
4376 msgid "I<$PLATFORM> (or equivalently I<${PLATFORM}>)"
4377 msgstr "I<$PLATFORM> (I<${PLATFORM}> も同じ)"
4378
4379 #
4380 #
4381 #.  To get an idea of the places that $PLATFORM would match,
4382 #.  look at the output of the following:
4383 #.      mkdir /tmp/d
4384 #.      LD_LIBRARY_PATH=/tmp/d strace -e open /bin/date 2>&1 | grep /tmp/d
4385 #.  ld.so lets names be abbreviated, so $O will work for $ORIGIN;
4386 #.  Don't do this!!
4387 #. type: Plain text
4388 #: build/C/man8/ld.so.8:141
4389 msgid "This expands to a string corresponding to the processor type of the host system (e.g., \"x86_64\").  On some architectures, the Linux kernel doesn't provide a platform string to the dynamic linker.  The value of this string is taken from the B<AT_PLATFORM> value in the auxiliary vector (see B<getauxval>(3))."
4390 msgstr ""
4391 "ホストシステムのプロセッサ種別に対応する文字列に展開される (例えば \"x86_64\")。\n"
4392 "いくつかのアーキテクチャーでは、 Linux カーネルから動的リンカーにプラットフォームを表す文字列が提供されない。 この文字列の値は補助ベクトルの B<AT_PLATFORM> 値から取得される (B<getauxval>(3) 参照)。"
4393
4394 #. type: SH
4395 #: build/C/man8/ld.so.8:141 build/C/man8/ldconfig.8:100 build/C/man1/ldd.1:51
4396 #: build/C/man1/memusage.1:135 build/C/man1/memusagestat.1:47
4397 #: build/C/man1/mtrace.1:51 build/C/man1/pldd.1:40 build/C/man1/sprof.1:46
4398 #, no-wrap
4399 msgid "OPTIONS"
4400 msgstr "オプション"
4401
4402 #. type: TP
4403 #: build/C/man8/ld.so.8:142
4404 #, no-wrap
4405 msgid "B<--list>"
4406 msgstr "B<--list>"
4407
4408 #. type: Plain text
4409 #: build/C/man8/ld.so.8:145
4410 msgid "List all dependencies and how they are resolved."
4411 msgstr "全ての依存関係とその解決法をリストする。"
4412
4413 #. type: TP
4414 #: build/C/man8/ld.so.8:145
4415 #, no-wrap
4416 msgid "B<--verify>"
4417 msgstr "B<--verify>"
4418
4419 #. type: Plain text
4420 #: build/C/man8/ld.so.8:149
4421 msgid "Verify that program is dynamically linked and this dynamic linker can handle it."
4422 msgstr "プログラムが動的にリンクされているかと、 動的リンカーがそのプログラムを扱えるかを検証する。"
4423
4424 #. type: TP
4425 #: build/C/man8/ld.so.8:149
4426 #, no-wrap
4427 msgid "B<--inhibit-cache>"
4428 msgstr "B<--inhibit-cache>"
4429
4430 #. type: Plain text
4431 #: build/C/man8/ld.so.8:152
4432 msgid "Do not use /etc/ld.so.cache."
4433 msgstr "/etc/ld.so.cache を使用しない。"
4434
4435 #. type: TP
4436 #: build/C/man8/ld.so.8:152
4437 #, no-wrap
4438 msgid "B<--library-path PATH>"
4439 msgstr "B<--library-path PATH>"
4440
4441 #. type: Plain text
4442 #: build/C/man8/ld.so.8:157
4443 msgid "Use PATH instead of B<LD_LIBRARY_PATH> environment variable setting (see below)."
4444 msgstr ""
4445 "B<LD_LIBRARY_PATH> 環境変数の設定ではなく、\n"
4446 "指定した PATH を使用する (下記参照)。"
4447
4448 #. type: TP
4449 #: build/C/man8/ld.so.8:157
4450 #, no-wrap
4451 msgid "B<--inhibit-rpath LIST>"
4452 msgstr "B<--inhibit-rpath LIST>"
4453
4454 #. type: Plain text
4455 #: build/C/man8/ld.so.8:163
4456 msgid "Ignore RPATH and RUNPATH information in object names in LIST.  This option is ignored if B<ld.so> is set-user-ID or set-group-ID."
4457 msgstr "LIST にあるオブジェクト名の RPATH と RUNPATH の情報を無視する。 B<ld.so> が set-user-ID か set-group-ID されている場合、 このオプションは無視される。"
4458
4459 #. type: TP
4460 #: build/C/man8/ld.so.8:163
4461 #, no-wrap
4462 msgid "B<--audit LIST>"
4463 msgstr "B<--audit LIST>"
4464
4465 #. type: Plain text
4466 #: build/C/man8/ld.so.8:166
4467 msgid "Use objects named in LIST as auditors."
4468 msgstr "LIST で指定された名前のオブジェクトを監査者として使用する。"
4469
4470 #. type: SH
4471 #: build/C/man8/ld.so.8:166
4472 #, no-wrap
4473 msgid "HARDWARE CAPABILITIES"
4474 msgstr "ハードウェア機能"
4475
4476 #. type: Plain text
4477 #: build/C/man8/ld.so.8:177
4478 msgid "Some libraries are compiled using hardware-specific instructions which do not exist on every CPU.  Such libraries should be installed in directories whose names define the required hardware capabilities, such as I</usr/lib/sse2/>.  The dynamic linker checks these directories against the hardware of the machine and selects the most suitable version of a given library.  Hardware capability directories can be cascaded to combine CPU features.  The list of supported hardware capability names depends on the CPU.  The following names are currently recognized:"
4479 msgstr ""
4480 "いくつかのライブラリは、(すべての CPU に存在するわけではない)ハードウェア固有\n"
4481 "の命令を使ってコンパイルされている。そのようなライブラリは、\n"
4482 "I</usr/lib/sse2/> のような、必要なハードウェア機能 (hardware capability) を規\n"
4483 "定する名前のディレクトリにインストールすべきである。\n"
4484 "動的リンカーは、マシンのハードウェアに基づいてこれらのディレクトリを確認し、\n"
4485 "指定されたライブラリに最も適したバージョンを選択する。\n"
4486 "ハードウェア機能ディレクトリはつなげることができ、\n"
4487 "複数の CPU 機能を組み合わることができる。\n"
4488 "対応しているハードウェア機能名のリストは CPU に依存する。\n"
4489 "現在のところ、以下の名前が認識される。"
4490
4491 #. type: TP
4492 #: build/C/man8/ld.so.8:177
4493 #, no-wrap
4494 msgid "B<Alpha>"
4495 msgstr "B<Alpha>"
4496
4497 #. type: Plain text
4498 #: build/C/man8/ld.so.8:180
4499 msgid "ev4, ev5, ev56, ev6, ev67"
4500 msgstr "ev4, ev5, ev56, ev6, ev67"
4501
4502 #. type: TP
4503 #: build/C/man8/ld.so.8:180
4504 #, no-wrap
4505 msgid "B<MIPS>"
4506 msgstr "B<MIPS>"
4507
4508 #. type: Plain text
4509 #: build/C/man8/ld.so.8:183
4510 msgid "loongson2e, loongson2f, octeon, octeon2"
4511 msgstr "loongson2e, loongson2f, octeon, octeon2"
4512
4513 #. type: TP
4514 #: build/C/man8/ld.so.8:183
4515 #, no-wrap
4516 msgid "B<PowerPC>"
4517 msgstr "B<PowerPC>"
4518
4519 #. type: Plain text
4520 #: build/C/man8/ld.so.8:188
4521 msgid "4xxmac, altivec, arch_2_05, arch_2_06, booke, cellbe, dfp, efpdouble, efpsingle, fpu, ic_snoop, mmu, notb, pa6t, power4, power5, power5+, power6x, ppc32, ppc601, ppc64, smt, spe, ucache, vsx"
4522 msgstr "4xxmac, altivec, arch_2_05, arch_2_06, booke, cellbe, dfp, efpdouble, efpsingle, fpu, ic_snoop, mmu, notb, pa6t, power4, power5, power5+, power6x, ppc32, ppc601, ppc64, smt, spe, ucache, vsx"
4523
4524 #. type: TP
4525 #: build/C/man8/ld.so.8:188
4526 #, no-wrap
4527 msgid "B<SPARC>"
4528 msgstr "B<SPARC>"
4529
4530 #. type: Plain text
4531 #: build/C/man8/ld.so.8:191
4532 msgid "flush, muldiv, stbar, swap, ultra3, v9, v9v, v9v2"
4533 msgstr "flush, muldiv, stbar, swap, ultra3, v9, v9v, v9v2"
4534
4535 #. type: TP
4536 #: build/C/man8/ld.so.8:191
4537 #, no-wrap
4538 msgid "B<s390>"
4539 msgstr "B<s390>"
4540
4541 #. type: Plain text
4542 #: build/C/man8/ld.so.8:195
4543 msgid "dfp, eimm, esan3, etf3enh, g5, highgprs, hpage, ldisp, msa, stfle, z900, z990, z9-109, z10, zarch"
4544 msgstr "dfp, eimm, esan3, etf3enh, g5, highgprs, hpage, ldisp, msa, stfle, z900, z990, z9-109, z10, zarch"
4545
4546 #. type: TP
4547 #: build/C/man8/ld.so.8:195
4548 #, no-wrap
4549 msgid "B<x86 (32-bit only)>"
4550 msgstr "B<x86 (32-bit のみ)>"
4551
4552 #. type: Plain text
4553 #: build/C/man8/ld.so.8:199
4554 msgid "acpi, apic, clflush, cmov, cx8, dts, fxsr, ht, i386, i486, i586, i686, mca, mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm"
4555 msgstr "acpi, apic, clflush, cmov, cx8, dts, fxsr, ht, i386, i486, i586, i686, mca, mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm"
4556
4557 #. type: SH
4558 #: build/C/man8/ld.so.8:199
4559 #, no-wrap
4560 msgid "ENVIRONMENT"
4561 msgstr "環境変数"
4562
4563 #. type: Plain text
4564 #: build/C/man8/ld.so.8:201
4565 msgid "Among the more important environment variables are the following:"
4566 msgstr "重要な環境変数には以下のものがある。"
4567
4568 #. type: TP
4569 #: build/C/man8/ld.so.8:201
4570 #, no-wrap
4571 msgid "B<LD_ASSUME_KERNEL>"
4572 msgstr "B<LD_ASSUME_KERNEL>"
4573
4574 #. type: Plain text
4575 #: build/C/man8/ld.so.8:214
4576 msgid "(glibc since 2.2.3)  Each shared library can inform the dynamic linker of the minimum kernel ABI version that it requires.  (This requirement is encoded in an ELF note section that is viewable via I<readelf\\ -n> as a section labeled B<NT_GNU_ABI_TAG>.)  At run time, the dynamic linker determines the ABI version of the running kernel and will reject loading shared libraries that specify minimum ABI versions that exceed that ABI version."
4577 msgstr "(glibc 2.2.3 以降)  各共有ライブラリは動的リンカーに必要なカーネル ABI の最小バージョンを通知することができる (必要なバージョンは ELF の note section に格納され、 I<readelf\\ -n> で B<NT_GNU_ABI_TAG> のラベルが付いたセクションとして見ることができる)。 実行時に、 動的リンカーは実行中のカーネルの ABI バージョンを判定し、 カーネルの ABI バージョンよりも大きな ABI の最小バージョンが指定された共有ライブラリのロードを行わない。"
4578
4579 #. type: Plain text
4580 #: build/C/man8/ld.so.8:223
4581 msgid "B<LD_ASSUME_KERNEL> can be used to cause the dynamic linker to assume that it is running on a system with a different kernel ABI version.  For example, the following command line causes the dynamic linker to assume it is running on Linux 2.2.5 when loading the shared libraries required by I<myprog>:"
4582 msgstr "B<LD_ASSUME_KERNEL> を使うことで、 動的リンカーに、 異なるカーネル ABI バージョンのシステムで実行されているかのように見せることができる。 例えば、 以下のコマンドラインを実行すると、 動的リンカーは I<myprog> が必要とする共有ライブラリをロードする際に Linux 2.2.5 上で動作していると仮定する。"
4583
4584 #. type: Plain text
4585 #: build/C/man8/ld.so.8:227
4586 #, no-wrap
4587 msgid "$ B<LD_ASSUME_KERNEL=2.2.5 ./myprog>\n"
4588 msgstr "$ B<LD_ASSUME_KERNEL=2.2.5 ./myprog>\n"
4589
4590 #. type: Plain text
4591 #: build/C/man8/ld.so.8:244
4592 msgid "On systems that provide multiple versions of a shared library (in different directories in the search path) that have different minimum kernel ABI version requirements, B<LD_ASSUME_KERNEL> can be used to select the version of the library that is used (dependent on the directory search order).  Historically, the most common use of the B<LD_ASSUME_KERNEL> feature was to manually select the older LinuxThreads POSIX threads implementation on systems that provided both LinuxThreads and NPTL (which latter was typically the default on such systems); see B<pthreads>(7)."
4593 msgstr "必要なカーネル ABI の最低バージョンが異なる複数の共有ライブラリが (検索パス中の異なるディレクトリに) あるシステムでは、 B<LD_ASSUME_KERNEL> を使って (ディレクトリ検索順序に基づき) 使用するライブラリのバージョンを選択することができる。 歴史的に見ると、 B<LD_ASSUME_KERNEL> の最も一般的な使い道は、 LinuxThreads と NPTL の両方を提供しているシステムで、 古い LinuxThreads の POSIX スレッド実装を手動で選択するためであった (そのようなシステムでは、通常は NPTL がデフォルトであった)。 B<pthreads>(7) を参照。"
4594
4595 #. type: TP
4596 #: build/C/man8/ld.so.8:244 build/C/man8/ld.so.8:325
4597 #, no-wrap
4598 msgid "B<LD_BIND_NOT>"
4599 msgstr "B<LD_BIND_NOT>"
4600
4601 #. type: Plain text
4602 #: build/C/man8/ld.so.8:249
4603 msgid "(glibc since 2.2)  Don't update the Global Offset Table (GOT) and Procedure Linkage Table (PLT)  when resolving a symbol."
4604 msgstr "(glibc 2.2 以降) シンボルを解決した際、Global Offset Table (GOT) と Procedure Linkage Table (PLT) を更新しない。"
4605
4606 #. type: TP
4607 #: build/C/man8/ld.so.8:249
4608 #, no-wrap
4609 msgid "B<LD_BIND_NOW>"
4610 msgstr "B<LD_BIND_NOW>"
4611
4612 #. type: Plain text
4613 #: build/C/man8/ld.so.8:257
4614 msgid "(libc5; glibc since 2.1.1)  If set to a nonempty string, causes the dynamic linker to resolve all symbols at program startup instead of deferring function call resolution to the point when they are first referenced.  This is useful when using a debugger."
4615 msgstr "(libc5; glibc 2.1.1 以降)  空文字列でない場合、 動的リンカーはプログラムの開始時に全てのシンボルを解決する。 空文字列の場合、解決しなければならない関数呼び出しが 最初に参照された時点で解決する。 デバッガを使っているときに役立つ。"
4616
4617 #. type: TP
4618 #: build/C/man8/ld.so.8:257
4619 #, no-wrap
4620 msgid "B<LD_LIBRARY_PATH>"
4621 msgstr "B<LD_LIBRARY_PATH>"
4622
4623 #. type: Plain text
4624 #: build/C/man8/ld.so.8:265
4625 msgid "A colon-separated list of directories in which to search for ELF libraries at execution-time.  Similar to the B<PATH> environment variable.  Ignored in set-user-ID and set-group-ID programs."
4626 msgstr "コロン区切りのディレクトリのリスト。実行時に ELF ライブラリを検索するディレクトリを指定する。 B<PATH> 環境変数と同じように指定する。 set-user-ID/set-group-ID されたプログラムでは無視される。"
4627
4628 #. type: TP
4629 #: build/C/man8/ld.so.8:265
4630 #, no-wrap
4631 msgid "B<LD_PRELOAD>"
4632 msgstr "B<LD_PRELOAD>"
4633
4634 #. type: Plain text
4635 #: build/C/man8/ld.so.8:276
4636 msgid "A list of additional, user-specified, ELF shared libraries to be loaded before all others.  The items of the list can be separated by spaces or colons.  This can be used to selectively override functions in other shared libraries.  The libraries are searched for using the rules given under DESCRIPTION.  For set-user-ID/set-group-ID ELF binaries, preload pathnames containing slashes are ignored, and libraries in the standard search directories are loaded only if the set-user-ID permission bit is enabled on the library file."
4637 msgstr "追加でユーザーが指定する ELF 共有ライブラリのリスト。指定されたライブラリは、すべてのライブラリより前にロードされる。リストの区切りはスペースとコロンである。他の共有ライブラリにある関数を選択的に置き換えるために用いることができる。指定されたライブラリは「説明」の節で述べたルールを基いて検索される。 set-user-ID/set-group-ID された ELF バイナリでは、スラッシュを含んだパス名のライブラリは無視され、標準の検索ディレクトリのライブラリはそのライブラリファイルの set-user-ID 許可ビットが有効になっている場合のみロードされる。"
4638
4639 #. type: TP
4640 #: build/C/man8/ld.so.8:276
4641 #, no-wrap
4642 msgid "B<LD_TRACE_LOADED_OBJECTS>"
4643 msgstr "B<LD_TRACE_LOADED_OBJECTS>"
4644
4645 #. type: Plain text
4646 #: build/C/man8/ld.so.8:283
4647 msgid "(ELF only)  If set to a nonempty string, causes the program to list its dynamic library dependencies, as if run by B<ldd>(1), instead of running normally."
4648 msgstr "(ELF のみ)  空文字列でない場合、 プログラムを普通に実行するのではなく、 B<ldd>(1)  を実行したときのように動的ライブラリの依存関係をリスト表示させる。"
4649
4650 #. type: Plain text
4651 #: build/C/man8/ld.so.8:286
4652 msgid "Then there are lots of more or less obscure variables, many obsolete or only for internal use."
4653 msgstr "そして、それほど知られていない環境変数もある。 多くは廃れてしまったものか内部でのみ使用される環境変数である。"
4654
4655 #. type: TP
4656 #: build/C/man8/ld.so.8:286
4657 #, no-wrap
4658 msgid "B<LD_AOUT_LIBRARY_PATH>"
4659 msgstr "B<LD_AOUT_LIBRARY_PATH>"
4660
4661 #. type: Plain text
4662 #: build/C/man8/ld.so.8:294
4663 msgid "(libc5)  Version of B<LD_LIBRARY_PATH> for a.out binaries only.  Old versions of ld-linux.so.1 also supported B<LD_ELF_LIBRARY_PATH>."
4664 msgstr "(libc5)  a.out バイナリにのみ使われる環境変数で、 B<LD_LIBRARY_PATH> と同じ役割をする。 ld-linux.so.1 の古いバージョンでは B<LD_ELF_LIBRARY_PATH> もサポートしていた。"
4665
4666 #. type: TP
4667 #: build/C/man8/ld.so.8:294
4668 #, no-wrap
4669 msgid "B<LD_AOUT_PRELOAD>"
4670 msgstr "B<LD_AOUT_PRELOAD>"
4671
4672 #. type: Plain text
4673 #: build/C/man8/ld.so.8:302
4674 msgid "(libc5)  Version of B<LD_PRELOAD> for a.out binaries only.  Old versions of ld-linux.so.1 also supported B<LD_ELF_PRELOAD>."
4675 msgstr "(libc5)  a.out バイナリにのみ使われる環境変数で、 B<LD_PRELOAD> と同じ役割をする。 ld-linux.so.1 の古いバージョンでは B<LD_ELF_PRELOAD> もサポートしていた。"
4676
4677 #. type: TP
4678 #: build/C/man8/ld.so.8:302
4679 #, no-wrap
4680 msgid "B<LD_AUDIT>"
4681 msgstr "B<LD_AUDIT>"
4682
4683 #. type: Plain text
4684 #: build/C/man8/ld.so.8:312
4685 msgid "(glibc since 2.4)  A colon-separated list of user-specified, ELF shared objects to be loaded before all others in a separate linker namespace (i.e., one that does not intrude upon the normal symbol bindings that would occur in the process).  These libraries can be used to audit the operation of the dynamic linker.  B<LD_AUDIT> is ignored for set-user-ID/set-group-ID binaries."
4686 msgstr "(glibc 2.4 以降)  他のオブジェクトよりも前に、別のリンカー名前空間 (そのプロセスで行われる 通常のシンボル結合 (symbol bindigns) には関与しない名前空間) で ロードされる、ユーザー指定の ELF 共有オブジェクトのコロン区切りのリスト。 これらのライブラリを使って、動的リンカーの動作を監査することができる。 set-user-ID/set-group-ID されたバイナリでは、 B<LD_AUDIT> は無視される。"
4687
4688 #. type: Plain text
4689 #: build/C/man8/ld.so.8:325
4690 msgid "The dynamic linker will notify the audit libraries at so-called auditing checkpoints\\(emfor example, loading a new library, resolving a symbol, or calling a symbol from another shared object\\(emby calling an appropriate function within the audit library.  For details, see B<rtld-audit>(7).  The auditing interface is largely compatible with that provided on Solaris, as described in its I<Linker and Libraries Guide>, in the chapter I<Runtime Linker Auditing Interface>."
4691 msgstr "動的リンカーは、いわゆる監査チェックポイント (auditing checkpoints)  において、監査 (audit) ライブラリの適切な関数を呼び出すことで、 監査ライブラリへの通知を行う。監査チェックポイントの例としては、 新たなライブラリのロード、シンボルの解決、別の共有オブジェクト からのシンボルの呼び出し、などがある。 詳細は B<rtld-audit>(7)  を参照してほしい。 audit インターフェースは、Solaris で提供されているものと 大部分は互換性がある。Solaris の audit インターフェースについては、 I<Linker and Libraries Guide> の I<Runtime Linker Auditing Interface> の章に説明がある。"
4692
4693 #. type: Plain text
4694 #: build/C/man8/ld.so.8:330
4695 msgid "(glibc since 2.1.95)  Do not update the GOT (global offset table) and PLT (procedure linkage table)  after resolving a symbol."
4696 msgstr "(glibc 2.1.95 以降)  シンボルを解決した後、GOT (global offset table) と PLT (procedure linkage table) を更新しない。"
4697
4698 #. type: TP
4699 #: build/C/man8/ld.so.8:330
4700 #, no-wrap
4701 msgid "B<LD_DEBUG>"
4702 msgstr "B<LD_DEBUG>"
4703
4704 #. type: Plain text
4705 #: build/C/man8/ld.so.8:343
4706 msgid "(glibc since 2.1)  Output verbose debugging information about the dynamic linker.  If set to B<all> prints all debugging information it has, if set to B<help> prints a help message about which categories can be specified in this environment variable.  Since glibc 2.3.4, B<LD_DEBUG> is ignored for set-user-ID/set-group-ID binaries."
4707 msgstr "(glibc 2.1 以降)  動的リンカーの詳細なデバッグ情報を出力する。 B<all> に設定した場合、全ての動的リンカーが持つデバッグ情報を表示する。 B<help> に設定した場合、この環境変数で指定されるカテゴリのヘルプ情報を表示する。 glibc 2.3.4 以降、 set-user-ID/set-group-ID されたバイナリでは B<LD_DEBUG> は無視される。"
4708
4709 #. type: TP
4710 #: build/C/man8/ld.so.8:343
4711 #, no-wrap
4712 msgid "B<LD_DEBUG_OUTPUT>"
4713 msgstr "B<LD_DEBUG_OUTPUT>"
4714
4715 #. type: Plain text
4716 #: build/C/man8/ld.so.8:352
4717 msgid "(glibc since 2.1)  File in which B<LD_DEBUG> output should be written.  The default is standard error.  B<LD_DEBUG_OUTPUT> is ignored for set-user-ID/set-group-ID binaries."
4718 msgstr "(glibc 2.1 以降)  B<LD_DEBUG> の出力を書き込むファイル。 デフォルトは標準エラーである。 set-user-ID/set-group-ID されたバイナリでは、 B<LD_DEBUG_OUTPUT> は無視される。"
4719
4720 #. type: TP
4721 #: build/C/man8/ld.so.8:352
4722 #, no-wrap
4723 msgid "B<LD_DYNAMIC_WEAK>"
4724 msgstr "B<LD_DYNAMIC_WEAK>"
4725
4726 #. type: Plain text
4727 #: build/C/man8/ld.so.8:359
4728 msgid "(glibc since 2.1.91)  Allow weak symbols to be overridden (reverting to old glibc behavior).  For security reasons, since glibc 2.3.4, B<LD_DYNAMIC_WEAK> is ignored for set-user-ID/set-group-ID binaries."
4729 msgstr "(glibc 2.1.19 以降)  上書きされる弱いシンボル (昔の glibc の挙動を逆にする)。 セキュリティ上の理由から、glibc 2.3.4 以降、 set-user-ID/set-group-ID されたバイナリでは B<LD_DYNAMIC_WEAK> は無視される。"
4730
4731 #. type: TP
4732 #: build/C/man8/ld.so.8:359
4733 #, no-wrap
4734 msgid "B<LD_HWCAP_MASK>"
4735 msgstr "B<LD_HWCAP_MASK>"
4736
4737 #. type: Plain text
4738 #: build/C/man8/ld.so.8:363
4739 msgid "(glibc since 2.1)  Mask for hardware capabilities."
4740 msgstr "(glibc 2.1 以降)  ハードウェア機能のマスク。"
4741
4742 #. type: TP
4743 #: build/C/man8/ld.so.8:363
4744 #, no-wrap
4745 msgid "B<LD_KEEPDIR>"
4746 msgstr "B<LD_KEEPDIR>"
4747
4748 #. type: Plain text
4749 #: build/C/man8/ld.so.8:368
4750 msgid "(a.out only)(libc5)  Don't ignore the directory in the names of a.out libraries to be loaded.  Use of this option is strongly discouraged."
4751 msgstr "(a.out のみ)(libc5)  ロードする a.out ライブラリの名前において、ディレクトリを無視しない。 このオプションは用いるべきではない。"
4752
4753 #. type: TP
4754 #: build/C/man8/ld.so.8:368
4755 #, no-wrap
4756 msgid "B<LD_NOWARN>"
4757 msgstr "B<LD_NOWARN>"
4758
4759 #. type: Plain text
4760 #: build/C/man8/ld.so.8:373
4761 msgid "(a.out only)(libc5)  Suppress warnings about a.out libraries with incompatible minor version numbers."
4762 msgstr "(a.out のみ)(libc5)  a.out ライブラリにおけるマイナーバージョン番号の非互換に 対する警告メッセージを抑制する。"
4763
4764 #. type: TP
4765 #: build/C/man8/ld.so.8:373
4766 #, no-wrap
4767 msgid "B<LD_ORIGIN_PATH>"
4768 msgstr "B<LD_ORIGIN_PATH>"
4769
4770 #.  Only used if $ORIGIN can't be determined by normal means
4771 #.  (from the origin path saved at load time, or from /proc/self/exe)?
4772 #. type: Plain text
4773 #: build/C/man8/ld.so.8:382
4774 msgid "(glibc since 2.1)  Path where the binary is found (for non-set-user-ID programs).  For security reasons, since glibc 2.4, B<LD_ORIGIN_PATH> is ignored for set-user-ID/set-group-ID binaries."
4775 msgstr "(glibc 2.1 以降)  バイナリへのパス (set-user-ID されていないプログラムについて)。 セキュリティ上の理由から、glibc 2.3.4 以降、 set-user-ID/set-group-ID されたバイナリでは B<LD_ORIGIN_PATH> は無視される。"
4776
4777 #. type: TP
4778 #: build/C/man8/ld.so.8:382
4779 #, no-wrap
4780 msgid "B<LD_POINTER_GUARD>"
4781 msgstr "B<LD_POINTER_GUARD>"
4782
4783 #. type: Plain text
4784 #: build/C/man8/ld.so.8:394
4785 msgid "(glibc since 2.4)  Set to 0 to disable pointer guarding.  Any other value enables pointer guarding, which is also the default.  Pointer guarding is a security mechanism whereby some pointers to code stored in writable program memory (return addresses saved by B<setjmp>(3)  or function pointers used by various glibc internals) are mangled semi-randomly to make it more difficult for an attacker to hijack the pointers for use in the event of a buffer overrun or stack-smashing attack."
4786 msgstr "(glibc 2.4 以降)  0 に設定すると、ポインター保護 (pointer guarding) が無効になる。 それ以外の値の場合はポインター保護が有効になる。 デフォルトはポインター保護有効である。 ポインター保護はセキュリティ機構の一つで、書き込み可能なプログラムメモリ に格納されたコードへのポインターをほぼランダム化することで、 攻撃者がバッファーオーバーランやスタック破壊 (stack-smashing) 攻撃の際に ポインターを乗っ取ることを困難にするものである。"
4787
4788 #. type: TP
4789 #: build/C/man8/ld.so.8:394
4790 #, no-wrap
4791 msgid "B<LD_PROFILE>"
4792 msgstr "B<LD_PROFILE>"
4793
4794 #. type: Plain text
4795 #: build/C/man8/ld.so.8:401
4796 msgid "(glibc since 2.1)  The name of a (single) shared object to be profiled, specified either as a pathname or a soname.  Profiling output is appended to the file whose name is: \"I<$LD_PROFILE_OUTPUT>/I<$LD_PROFILE>.profile\"."
4797 msgstr "(glibc 2.1 以降)  プロファイルを行う共有オブジェクトの名前。 パス名か共有オブジェクト名 (soname) で指定される。 プロフィールの出力は \"I<$LD_PROFILE_OUTPUT>/I<$LD_PROFILE>.profile\" という名前の ファイルに追記される。"
4798
4799 #. type: TP
4800 #: build/C/man8/ld.so.8:401
4801 #, no-wrap
4802 msgid "B<LD_PROFILE_OUTPUT>"
4803 msgstr "B<LD_PROFILE_OUTPUT>"
4804
4805 #. type: Plain text
4806 #: build/C/man8/ld.so.8:414
4807 msgid "(glibc since 2.1)  Directory where B<LD_PROFILE> output should be written.  If this variable is not defined, or is defined as an empty string, then the default is I</var/tmp>.  B<LD_PROFILE_OUTPUT> is ignored for set-user-ID and set-group-ID programs, which always use I</var/profile>."
4808 msgstr "(glibc 2.1 以降)  B<LD_PROFILE> の出力が書き込まれるディレクトリ。 この変数が定義されていないか、空の文字列が定義されている場合、 デフォルト値は I</var/tmp> となる。 set-user-ID/set-group-ID されたプログラムでは、 LD_PROFILE_OUTPUT は無視される。 出力ファイルは常に I</var/profile> が使用される。"
4809
4810 #. type: TP
4811 #: build/C/man8/ld.so.8:414
4812 #, no-wrap
4813 msgid "B<LD_SHOW_AUXV>"
4814 msgstr "B<LD_SHOW_AUXV>"
4815
4816 #.  FIXME
4817 #.  Document LD_TRACE_PRELINKING (e.g.: LD_TRACE_PRELINKING=libx1.so ./prog)
4818 #.      Available since glibc 2.3
4819 #.      Also enables DL_DEBUG_PRELINK
4820 #. type: Plain text
4821 #: build/C/man8/ld.so.8:425
4822 msgid "(glibc since 2.1)  Show auxiliary array passed up from the kernel.  For security reasons, since glibc 2.3.5, B<LD_SHOW_AUXV> is ignored for set-user-ID/set-group-ID binaries."
4823 msgstr "(glibc 2.1 以降)  カーネルから渡される補助的な (パラメーターの) 配列を表示する。 セキュリティ上の理由から、glibc 2.3.4 以降、 set-user-ID/set-group-ID されたバイナリでは B<LD_SHOW_AUXV> は無視される。"
4824
4825 #. type: TP
4826 #: build/C/man8/ld.so.8:425
4827 #, no-wrap
4828 msgid "B<LD_USE_LOAD_BIAS>"
4829 msgstr "B<LD_USE_LOAD_BIAS>"
4830
4831 #.  http://sources.redhat.com/ml/libc-hacker/2003-11/msg00127.html
4832 #.  Subject: [PATCH] Support LD_USE_LOAD_BIAS
4833 #.  Jakub Jelinek
4834 #. type: Plain text
4835 #: build/C/man8/ld.so.8:444
4836 msgid "By default (i.e., if this variable is not defined)  executables and prelinked shared objects will honor base addresses of their dependent libraries and (nonprelinked) position-independent executables (PIEs)  and other shared objects will not honor them.  If B<LD_USE_LOAD_BIAS> is defined with the value 1, both executables and PIEs will honor the base addresses.  If B<LD_USE_LOAD_BIAS> is defined with the value 0, neither executables nor PIEs will honor the base addresses.  This variable is ignored by set-user-ID and set-group-ID programs."
4837 msgstr "デフォルトでは (つまり、この変数が定義されていない場合)、 実行ファイルと prelink された共有オブジェクトでは、それらが依存する ライブラリのベースアドレスが尊重される一方、 (prelink されていない) position-independent executables (PIEs) と 他の共有オブジェクトでは依存するライブラリのベースアドレスは 尊重されない。 B<LD_USE_LOAD_BIAS> が値 1 で定義された場合、実行ファイルと PIE のどちらでも ベースアドレスが尊重される。 B<LD_USE_LOAD_BIAS> が値 0 で定義された場合、実行ファイルと PIE のどちらでも ベースアドレスは尊重されない。 set-user-ID や set-group-ID されたプログラムでは、 この変数は無視される。"
4838
4839 #. type: TP
4840 #: build/C/man8/ld.so.8:444
4841 #, no-wrap
4842 msgid "B<LD_VERBOSE>"
4843 msgstr "B<LD_VERBOSE>"
4844
4845 #. type: Plain text
4846 #: build/C/man8/ld.so.8:452
4847 msgid "(glibc since 2.1)  If set to a nonempty string, output symbol versioning information about the program if the B<LD_TRACE_LOADED_OBJECTS> environment variable has been set."
4848 msgstr "(glibc 2.1 以降) 空文字列でない場合に、B<LD_TRACE_LOADED_OBJECTS> 環境変数が設定されていれば、プログラムのシンボルバージョン情報を出力する。"
4849
4850 #. type: TP
4851 #: build/C/man8/ld.so.8:452
4852 #, no-wrap
4853 msgid "B<LD_WARN>"
4854 msgstr "B<LD_WARN>"
4855
4856 #. type: Plain text
4857 #: build/C/man8/ld.so.8:456
4858 msgid "(ELF only)(glibc since 2.1.3)  If set to a nonempty string, warn about unresolved symbols."
4859 msgstr "(ELF のみ)(glibc 2.1.3 以降)  空文字列でない場合、解決されていないシンボルがあれば警告を出す。"
4860
4861 #. type: TP
4862 #: build/C/man8/ld.so.8:456
4863 #, no-wrap
4864 msgid "B<LDD_ARGV0>"
4865 msgstr "B<LDD_ARGV0>"
4866
4867 #. type: Plain text
4868 #: build/C/man8/ld.so.8:463
4869 msgid "(libc5)  I<argv>[0] to be used by B<ldd>(1)  when none is present."
4870 msgstr "(libc5)  B<ldd>(1)  の引き数がない場合に、 I<argv>[0] として使われる値。"
4871
4872 #. type: SH
4873 #: build/C/man8/ld.so.8:463 build/C/man8/ldconfig.8:156
4874 #, no-wrap
4875 msgid "FILES"
4876 msgstr "ファイル"
4877
4878 #. type: TP
4879 #: build/C/man8/ld.so.8:465 build/C/man8/ldconfig.8:158
4880 #, no-wrap
4881 msgid "I</lib/ld.so>"
4882 msgstr "I</lib/ld.so>"
4883
4884 #. type: Plain text
4885 #: build/C/man8/ld.so.8:468
4886 msgid "a.out dynamic linker/loader"
4887 msgstr "a.out の動的リンカー/ローダー"
4888
4889 #. type: TP
4890 #: build/C/man8/ld.so.8:468
4891 #, no-wrap
4892 msgid "I</lib/ld-linux.so.>{I<1>,I<2>}"
4893 msgstr "I</lib/ld-linux.so.>{I<1>,I<2>}"
4894
4895 #. type: Plain text
4896 #: build/C/man8/ld.so.8:471
4897 msgid "ELF dynamic linker/loader"
4898 msgstr "ELF の動的リンカー/ローダー"
4899
4900 #. type: TP
4901 #: build/C/man8/ld.so.8:471 build/C/man8/ldconfig.8:165
4902 #, no-wrap
4903 msgid "I</etc/ld.so.cache>"
4904 msgstr "I</etc/ld.so.cache>"
4905
4906 #. type: Plain text
4907 #: build/C/man8/ld.so.8:475
4908 msgid "File containing a compiled list of directories in which to search for libraries and an ordered list of candidate libraries."
4909 msgstr "ライブラリを検索するディレクトリを集めたリストと、 共有ライブラリの候補の整列リストを含むファイル。"
4910
4911 #. type: TP
4912 #: build/C/man8/ld.so.8:475
4913 #, no-wrap
4914 msgid "I</etc/ld.so.preload>"
4915 msgstr "I</etc/ld.so.preload>"
4916
4917 #. type: Plain text
4918 #: build/C/man8/ld.so.8:479
4919 msgid "File containing a whitespace-separated list of ELF shared libraries to be loaded before the program."
4920 msgstr "プログラムの前にロードすべき ELF 共有ライブラリを スペースで区切ったリストが書かれているファイル。"
4921
4922 #. type: TP
4923 #: build/C/man8/ld.so.8:479
4924 #, no-wrap
4925 msgid "B<lib*.so*>"
4926 msgstr "B<lib*.so*>"
4927
4928 #. type: Plain text
4929 #: build/C/man8/ld.so.8:482
4930 msgid "shared libraries"
4931 msgstr "共有ライブラリ"
4932
4933 #. type: Plain text
4934 #: build/C/man8/ld.so.8:489
4935 msgid "The B<ld.so> functionality is available for executables compiled using libc version 4.4.3 or greater.  ELF functionality is available since Linux 1.1.52 and libc5."
4936 msgstr "B<ld.so> の機能は libc のバージョン 4.4.3 以上を用いてコンパイルされた 実行ファイルで使用可能である。 ELF の機能は Linux 1.1.52 以降と libc5 以降で使用可能である。"
4937
4938 #.  .SH AUTHORS
4939 #.  ld.so: David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu, Linus
4940 #.   Torvalds, Lars Wirzenius and Mitch D'Souza
4941 #.  ld-linux.so: Roland McGrath, Ulrich Drepper and others.
4942 #.  In the above, (libc5) stands for David Engel's ld.so/ld-linux.so.
4943 #. type: Plain text
4944 #: build/C/man8/ld.so.8:505
4945 msgid "B<ld>(1), B<ldd>(1), B<pldd>(1), B<sprof>(1), B<dlopen>(3), B<getauxval>(3), B<rtld-audit>(7), B<ldconfig>(8), B<sln>(8)"
4946 msgstr "B<ld>(1), B<ldd>(1), B<pldd>(1), B<sprof>(1), B<dlopen>(3), B<getauxval>(3), B<rtld-audit>(7), B<ldconfig>(8), B<sln>(8)"
4947
4948 #. type: TH
4949 #: build/C/man8/ldconfig.8:22
4950 #, no-wrap
4951 msgid "LDCONFIG"
4952 msgstr "LDCONFIG"
4953
4954 #. type: TH
4955 #: build/C/man8/ldconfig.8:22
4956 #, no-wrap
4957 msgid "2012-05-10"
4958 msgstr "2012-05-10"
4959
4960 #. type: Plain text
4961 #: build/C/man8/ldconfig.8:25
4962 msgid "ldconfig - configure dynamic linker run-time bindings"
4963 msgstr "ldconfig - 動的リンカーによる実行時の結合関係を設定する"
4964
4965 #. type: Plain text
4966 #: build/C/man8/ldconfig.8:40
4967 msgid "B</sbin/ldconfig> [ B<-nNvXV> ] [ B<-f\\ conf> ] [ B<-C\\ cache> ] [ B<-r\\ root> ] I<directory>\\ ..."
4968 msgstr "B</sbin/ldconfig> [ B<-nNvXV> ] [ B<-f\\ conf> ] [ B<-C\\ cache> ] [ B<-r\\ root> ] I<directory>\\ ..."
4969
4970 #. type: Plain text
4971 #: build/C/man8/ldconfig.8:49
4972 msgid "B</sbin/ldconfig> B<-l> [ B<-v> ] I<library>\\ ..."
4973 msgstr "B</sbin/ldconfig> B<-l> [ B<-v> ] I<library>\\ ..."
4974
4975 #. type: Plain text
4976 #: build/C/man8/ldconfig.8:54
4977 msgid "B</sbin/ldconfig> B<-p>"
4978 msgstr "B</sbin/ldconfig> B<-p>"
4979
4980 #. type: Plain text
4981 #: build/C/man8/ldconfig.8:71
4982 msgid "B<ldconfig> creates the necessary links and cache to the most recent shared libraries found in the directories specified on the command line, in the file I</etc/ld.so.conf>, and in the trusted directories (I</lib> and I</usr/lib>).  The cache is used by the run-time linker, I<ld.so> or I<ld-linux.so>.  B<ldconfig> checks the header and filenames of the libraries it encounters when determining which versions should have their links updated."
4983 msgstr "B<ldcofig> は最新の共有ライブラリに対して必要なリンクを作成したり、 ライブラリをキャッシュしたりする。 ライブラリは、コマンドラインや I</etc/ld.so.conf> ファイルで指定されたディレクトリや、共有ライブラリが 通常置かれるディレクトリ (I</lib> と I</usr/lib>)  から検索される。 キャッシュは実行時リンカー I<ld.so> または I<ld-linux.so> によって使われる。 B<ldconfig> は処理するライブラリのヘッダ部分とファイル名をチェックし、 どのバージョンに対してリンクを更新すべきかを判断する。"
4984
4985 #.  The following sentence looks suspect
4986 #.  (perhaps historical cruft) -- MTK, Jul 2005
4987 #.  Therefore, when making dynamic libraries,
4988 #.  it is wise to explicitly link against libc (use \-lc).
4989 #. type: Plain text
4990 #: build/C/man8/ldconfig.8:79
4991 msgid "B<ldconfig> will attempt to deduce the type of ELF libs (i.e., libc5 or libc6/glibc)  based on what C libs, if any, the library was linked against."
4992 msgstr "B<ldconfig> は ELF ライブラリの種類 (libc5 か libc6/glibc か) を判断するとき、 そのライブラリがリンクしている C ライブラリを参考にする。"
4993
4994 #. type: Plain text
4995 #: build/C/man8/ldconfig.8:100
4996 msgid "Some existing libs do not contain enough information to allow the deduction of their type.  Therefore, the I</etc/ld.so.conf> file format allows the specification of an expected type.  This is used I<only> for those ELF libs which we can not work out.  The format is \"dirname=TYPE\", where TYPE can be libc4, libc5, or libc6.  (This syntax also works on the command line.)  Spaces are I<not> allowed.  Also see the B<-p> option.  B<ldconfig> should normally be run by the superuser as it may require write permission on some root owned directories and files."
4997 msgstr "すでに存在しているライブラリの中には、種類を区別するために充分な 情報が含まれていないものもある。 このため I</etc/ld.so.conf> ファイルでライブラリの形式を指定することができるようになっている。 これは区別不能な ELF ライブラリ「だけ」に用いるものである。 フォーマットは \"dirname=TYPE\" とする。 ここで TYPE は libc4, libc5, libc6 のいずれかである (この書式はコマンドラインでも使える)。 「スペースを入れてはならない」。 B<-p> オプションも見ておくこと。 B<ldconfig> は通常スーパーユーザー権限で実行しなければならない。 root が所有しているディレクトリやファイルへの書き込み権限が 必要になるからである。"
4998
4999 #. type: TP
5000 #: build/C/man8/ldconfig.8:101
5001 #, no-wrap
5002 msgid "B<-v>"
5003 msgstr "B<-v>"
5004
5005 #. type: Plain text
5006 #: build/C/man8/ldconfig.8:107
5007 msgid "Verbose mode.  Print current version number, the name of each directory as it is scanned, and any links that are created.  Overrides quiet mode."
5008 msgstr "詳細表示モード。 現在のバージョン番号を表示する。 またそれぞれのディレクトリをスキャンし、 新しいリンクを生成するたびに、その内容を表示する。 メッセージ抑制モードを上書きする。"
5009
5010 #. type: TP
5011 #: build/C/man8/ldconfig.8:107
5012 #, no-wrap
5013 msgid "B<-n>"
5014 msgstr "B<-n>"
5015
5016 #. type: Plain text
5017 #: build/C/man8/ldconfig.8:118
5018 msgid "Only process directories specified on the command line.  Don't process the trusted directories (I</lib> and I</usr/lib>)  nor those specified in I</etc/ld.so.conf>.  Implies B<-N>."
5019 msgstr "コマンドラインで指定されたディレクトリのみを処理する。 通常共有ライブラリが置かれるディレクトリ (I</lib> と I</usr/lib>)  や I</etc/ld.so.conf> で指定されたディレクトリは処理しない。 暗黙のうちに B<-N> が指定される。"
5020
5021 #. type: TP
5022 #: build/C/man8/ldconfig.8:118
5023 #, no-wrap
5024 msgid "B<-N>"
5025 msgstr "B<-N>"
5026
5027 #. type: Plain text
5028 #: build/C/man8/ldconfig.8:124
5029 msgid "Don't rebuild the cache.  Unless B<-X> is also specified, links are still updated."
5030 msgstr "キャッシュを再構成しない。 同時に B<-X> が同時に指定されなければ、リンクのほうは更新される。"
5031
5032 #. type: TP
5033 #: build/C/man8/ldconfig.8:124
5034 #, no-wrap
5035 msgid "B<-X>"
5036 msgstr "B<-X>"
5037
5038 #. type: Plain text
5039 #: build/C/man8/ldconfig.8:130
5040 msgid "Don't update links.  Unless B<-N> is also specified, the cache is still rebuilt."
5041 msgstr "リンクを更新しない。 B<-N> が同時に指定されなければ、キャッシュのほうは再構成される。"
5042
5043 #. type: TP
5044 #: build/C/man8/ldconfig.8:130
5045 #, no-wrap
5046 msgid "B<-f conf>"
5047 msgstr "B<-f conf>"
5048
5049 #. type: Plain text
5050 #: build/C/man8/ldconfig.8:136
5051 msgid "Use B<conf> instead of I</etc/ld.so.conf>."
5052 msgstr "B<conf> を I</etc/ld.so.conf> の代わりに用いる。"
5053
5054 #. type: TP
5055 #: build/C/man8/ldconfig.8:136
5056 #, no-wrap
5057 msgid "B<-C cache>"
5058 msgstr "B<-C cache>"
5059
5060 #. type: Plain text
5061 #: build/C/man8/ldconfig.8:142
5062 msgid "Use B<cache> instead of I</etc/ld.so.cache>."
5063 msgstr "B<cache> を I</etc/ld.so.cache> の代わりに用いる。"
5064
5065 #. type: TP
5066 #: build/C/man8/ldconfig.8:142
5067 #, no-wrap
5068 msgid "B<-r root>"
5069 msgstr "B<-r root>"
5070
5071 #. type: Plain text
5072 #: build/C/man8/ldconfig.8:147
5073 msgid "Change to and use I<root> as the root directory."
5074 msgstr "I<root> にカレントディレクトリを変更し、ここをルートディレクトリとして用いる。"
5075
5076 #. type: TP
5077 #: build/C/man8/ldconfig.8:147
5078 #, no-wrap
5079 msgid "B<-l>"
5080 msgstr "B<-l>"
5081
5082 #. type: Plain text
5083 #: build/C/man8/ldconfig.8:152
5084 msgid "Library mode.  Manually link individual libraries.  Intended for use by experts only."
5085 msgstr "ライブラリモード。それぞれのライブラリを手動でリンクする。 熟練者のみが用いるべきである。"
5086
5087 #. type: TP
5088 #: build/C/man8/ldconfig.8:152
5089 #, no-wrap
5090 msgid "B<-p>"
5091 msgstr "B<-p>"
5092
5093 #. type: Plain text
5094 #: build/C/man8/ldconfig.8:156
5095 msgid "Print the lists of directories and candidate libraries stored in the current cache."
5096 msgstr "現在のキャッシュに保存されているディレクトリのリストと、 ライブラリの候補を表示する。"
5097
5098 #. type: Plain text
5099 #: build/C/man8/ldconfig.8:161
5100 msgid "run-time linker/loader"
5101 msgstr "実行時リンカー/ローダー。"
5102
5103 #. type: TP
5104 #: build/C/man8/ldconfig.8:161
5105 #, no-wrap
5106 msgid "I</etc/ld.so.conf>"
5107 msgstr "I</etc/ld.so.conf>"
5108
5109 #. type: Plain text
5110 #: build/C/man8/ldconfig.8:165
5111 msgid "File containing a list of colon, space, tab, newline, or comma-separated directories in which to search for libraries."
5112 msgstr "コロン・スペース・タブ・改行・コンマで区切られたディレクトリのリスト。 それぞれのディレクトリでライブラリが検索される。"
5113
5114 #. type: Plain text
5115 #: build/C/man8/ldconfig.8:174
5116 msgid "File containing an ordered list of libraries found in the directories specified in I</etc/ld.so.conf>, as well as those found in I</lib> and I</usr/lib>."
5117 msgstr "I</etc/ld.so.conf> で指定されたディレクトリにあるライブラリ、および I</lib> と I</usr/lib> にあるライブラリの順序付きリスト。"
5118
5119 #. type: Plain text
5120 #: build/C/man8/ldconfig.8:178
5121 msgid "B<ldd>(1), B<ld.so>(8)"
5122 msgstr "B<ldd>(1), B<ld.so>(8)"
5123
5124 #. type: TH
5125 #: build/C/man1/ldd.1:14
5126 #, no-wrap
5127 msgid "LDD"
5128 msgstr "LDD"
5129
5130 #. type: Plain text
5131 #: build/C/man1/ldd.1:17
5132 msgid "ldd - print shared library dependencies"
5133 msgstr "ldd - 共有ライブラリへの依存関係を表示する"
5134
5135 #. type: Plain text
5136 #: build/C/man1/ldd.1:19
5137 msgid "B<ldd> [I<option>]... I<file>..."
5138 msgstr "B<ldd> [I<option>]... I<file>..."
5139
5140 #. type: Plain text
5141 #: build/C/man1/ldd.1:23
5142 msgid "B<ldd> prints the shared libraries required by each program or shared library specified on the command line."
5143 msgstr "B<ldd> はコマンドラインで指定したプログラムや共有ライブラリについて、 それぞれで必要とされる共有ライブラリを表示する。"
5144
5145 #. type: SS
5146 #: build/C/man1/ldd.1:23
5147 #, no-wrap
5148 msgid "Security"
5149 msgstr "セキュリティ"
5150
5151 #.  Mainline glibc's ldd allows this possibility (the line
5152 #.       try_trace "$file"
5153 #.  in glibc 2.15, for example), but many distro versions of
5154 #.  ldd seem to remove that code path from the script.
5155 #. type: Plain text
5156 #: build/C/man1/ldd.1:49
5157 msgid "In the usual case, B<ldd> invokes the standard dynamic linker (see B<ld.so>(8))  with the B<LD_TRACE_LOADED_OBJECTS> environment variable set to 1, which causes the linker to display the library dependencies.  Be aware, however, that in some circumstances, some versions of B<ldd> may attempt to obtain the dependency information by directly executing the program.  Thus, you should I<never> employ B<ldd> on an untrusted executable, since this may result in the execution of arbitrary code.  A safer alternative when dealing with untrusted executables is:"
5158 msgstr "通常の場合、 B<ldd> は標準の動的リンカー (B<ld.so>(8) 参照) を B<LD_TRACE_LOADED_OBJECTS> 環境変数に 1 をセットして起動する。 B<LD_TRACE_LOADED_OBJECTS> に 1 をセットすると、リンカーはライブラリの依存関係を表示する。但し、状況次第では、依存関係の情報を得るのにプログラムを直接実行するバージョンの B<ldd> が存在する。したがって、信頼できない実行ファイルに対しては「決して」 B<ldd> を使っては「ならない」。任意のコードを実行することにつながるからである。信頼できない実行ファイルを扱う、より安全な別の方法としては次のようにするとよい。"
5159
5160 #. type: Plain text
5161 #: build/C/man1/ldd.1:51
5162 #, no-wrap
5163 msgid "    $ objdump -p /path/to/program | grep NEEDED\n"
5164 msgstr "    $ objdump -p /path/to/program | grep NEEDED\n"
5165
5166 #. type: TP
5167 #: build/C/man1/ldd.1:52 build/C/man1/mtrace.1:55
5168 #, no-wrap
5169 msgid "B<--version>"
5170 msgstr "B<--version>"
5171
5172 #. type: Plain text
5173 #: build/C/man1/ldd.1:56
5174 msgid "Print the version number of B<ldd>."
5175 msgstr "B<ldd> のバージョン番号を表示する。"
5176
5177 #. type: TP
5178 #: build/C/man1/ldd.1:56
5179 #, no-wrap
5180 msgid "B<-v\\ --verbose>"
5181 msgstr "B<-v\\ --verbose>"
5182
5183 #. type: Plain text
5184 #: build/C/man1/ldd.1:60
5185 msgid "Print all information, including, for example, symbol versioning information."
5186 msgstr "シンボルのバージョン情報などを含めた全ての情報を表示する。"
5187
5188 #. type: TP
5189 #: build/C/man1/ldd.1:60
5190 #, no-wrap
5191 msgid "B<-u\\ --unused>"
5192 msgstr "B<-u\\ --unused>"
5193
5194 #. type: Plain text
5195 #: build/C/man1/ldd.1:64
5196 msgid "Print unused direct dependencies.  (Since glibc 2.3.4.)"
5197 msgstr "使用されていない直接の依存関係を表示する (glibc 2.3.4 以降)。"
5198
5199 #. type: TP
5200 #: build/C/man1/ldd.1:64
5201 #, no-wrap
5202 msgid "B<-d\\ --data-relocs>"
5203 msgstr "B<-d\\ --data-relocs>"
5204
5205 #. type: Plain text
5206 #: build/C/man1/ldd.1:67
5207 msgid "Perform relocations and report any missing objects (ELF only)."
5208 msgstr "リロケーションを実行し、足りないオブジェクトについてレポートする (ELF のみ)。"
5209
5210 #. type: TP
5211 #: build/C/man1/ldd.1:67
5212 #, no-wrap
5213 msgid "B<-r\\ --function-relocs>"
5214 msgstr "B<-r\\ --function-relocs>"
5215
5216 #. type: Plain text
5217 #: build/C/man1/ldd.1:71
5218 msgid "Perform relocations for both data objects and functions, and report any missing objects or functions (ELF only)."
5219 msgstr "足りないオブジェクトや関数についてレポートする (ELF のみ)。"
5220
5221 #. type: TP
5222 #: build/C/man1/ldd.1:71 build/C/man1/mtrace.1:52
5223 #, no-wrap
5224 msgid "B<--help>"
5225 msgstr "B<--help>"
5226
5227 #.  .SH NOTES
5228 #.  The standard version of
5229 #.  .B ldd
5230 #.  comes with glibc2.
5231 #.  Libc5 came with an older version, still present
5232 #.  on some systems.
5233 #.  The long options are not supported by the libc5 version.
5234 #.  On the other hand, the glibc2 version does not support
5235 #.  .B \-V
5236 #.  and only has the equivalent
5237 #.  .BR \-\-version .
5238 #.  .LP
5239 #.  The libc5 version of this program will use the name of a library given
5240 #.  on the command line as-is when it contains a \(aq/\(aq; otherwise it
5241 #.  searches for the library in the standard locations.
5242 #.  To run it
5243 #.  on a shared library in the current directory, prefix the name with "./".
5244 #. type: Plain text
5245 #: build/C/man1/ldd.1:91
5246 msgid "Usage information."
5247 msgstr "使用法を表示する。"
5248
5249 #. type: Plain text
5250 #: build/C/man1/ldd.1:94
5251 msgid "B<ldd> does not work on a.out shared libraries."
5252 msgstr "B<ldd> は a.out 共有ライブラリでは動作しない。"
5253
5254 #.  .SH AUTHOR
5255 #.  David Engel.
5256 #.  Roland McGrath and Ulrich Drepper.
5257 #. type: Plain text
5258 #: build/C/man1/ldd.1:108
5259 msgid "B<ldd> does not work with some extremely old a.out programs which were built before B<ldd> support was added to the compiler releases.  If you use B<ldd> on one of these programs, the program will attempt to run with I<argc> = 0 and the results will be unpredictable."
5260 msgstr "B<ldd> は非常に古い a.out プログラム (B<ldd> のサポートがコンパイラに追加される以前にビルドされたようなプログラム)  では動作しない。 このようなプログラムに対して B<ldd> を用いると、プログラムは I<argc> = 0 で実行される。結果は予想不可能である。"
5261
5262 #. type: Plain text
5263 #: build/C/man1/ldd.1:113
5264 msgid "B<sprof>(1), B<pldd>(1), B<ld.so>(8), B<ldconfig>(8)"
5265 msgstr "B<sprof>(1), B<pldd>(1), B<ld.so>(8), B<ldconfig>(8)"
5266
5267 #. type: TH
5268 #: build/C/man1/memusage.1:24
5269 #, no-wrap
5270 msgid "MEMUSAGE"
5271 msgstr "MEMUSAGE"
5272
5273 #. type: TH
5274 #: build/C/man1/memusage.1:24 build/C/man1/memusagestat.1:23
5275 #, no-wrap
5276 msgid "2014-09-06"
5277 msgstr "2014-09-06"
5278
5279 #. type: TH
5280 #: build/C/man1/memusage.1:24 build/C/man1/mtrace.1:23
5281 #, no-wrap
5282 msgid "Linux user manual"
5283 msgstr "Linux user manual"
5284
5285 #. type: Plain text
5286 #: build/C/man1/memusage.1:27
5287 msgid "memusage - profile memory usage of a program"
5288 msgstr "memusage - プログラムのメモリー使用量のプロファイルを行う"
5289
5290 #. type: Plain text
5291 #: build/C/man1/memusage.1:29
5292 msgid "B<memusage> [I<option>]... I<program> [I<programoption>]..."
5293 msgstr "B<memusage> [I<option>]... I<program> [I<programoption>]..."
5294
5295 #. type: Plain text
5296 #: build/C/man1/memusage.1:53
5297 msgid "B<memusage> is a bash script which profiles memory usage of the program, I<program>.  It preloads the B<libmemusage.so> library into the caller's environment (via the B<LD_PRELOAD> environment variable; see B<ld.so>(8)).  The B<libmemusage.so> library traces memory allocation by intercepting calls to B<malloc>(3), B<calloc>(3), B<free>(3), and B<realloc>(3); optionally, calls to B<mmap>(2), B<mremap>(2), and B<munmap>(2)  can also be intercepted."
5298 msgstr "B<memusage> は、 プログラム I<program> のメモリー使用量のプロファイルを行う bash スクリプトである。 呼び出し元の環境に (B<LD_PRELOAD> 環境変数を使って) B<libmemusage.so> ライブラリをプレロードする。 B<ld.so>(8) を参照。 B<libmemusage.so> ライブラリは、 B<malloc>(3), B<calloc>(3), B<free>(3), B<realloc>(3) の呼び出しを横取りし、 メモリー割り当て状況の追跡を行う。 追加で、 B<mmap>(2), B<mremap>(2), B<munmap>(2) を追跡することもできる。"
5299
5300 #. type: Plain text
5301 #: build/C/man1/memusage.1:62
5302 msgid "B<memusage> can output the collected data in textual form, or it can use B<memusagestat>(1)  (see the B<-p> option, below)  to create a PNG file containing graphical representation of the collected data."
5303 msgstr "B<memusage> は収集したデータをテキスト形式で出力することもできるし、 B<memusagestat>(1) を使って収集したデータをグラフにした PNG ファイルを作成することもできる (以下の B<-p> オプションを参照)。"
5304
5305 #. type: SS
5306 #: build/C/man1/memusage.1:62
5307 #, no-wrap
5308 msgid "Memory usage summary"
5309 msgstr "メモリー使用量概要"
5310
5311 #. type: Plain text
5312 #: build/C/man1/memusage.1:66
5313 msgid "The \"Memory usage summary\" line output by B<memusage> contains three fields:"
5314 msgstr "B<memusage> が出力する \"Memory usage summary\" (メモリー使用量概要) の行には以下のフィールドが含まれる。"
5315
5316 #. type: TP
5317 #: build/C/man1/memusage.1:67
5318 #, no-wrap
5319 msgid "B<heap total>"
5320 msgstr "B<heap total>"
5321
5322 #. type: Plain text
5323 #: build/C/man1/memusage.1:84
5324 msgid "Sum of I<size> arguments of all B<malloc>(3)  calls, products of arguments (I<nmemb>*I<size>) of all B<calloc>(3)  calls, and sum of I<length> arguments of all B<mmap>(2)  calls.  In the case of B<realloc>(3)  and B<mremap>(2), if the new size of an allocation is larger than the previous size, the sum of all such differences (new size minus old size) is added."
5325 msgstr "B<malloc>(3) のすべての呼び出しの I<size> 引き数の合計、 B<calloc>(3) のすべての呼び出しの引き数の積 (I<nmemb>*I<size>)、 B<mmap>(2) のすべての呼び出しの I<length> 引き数の合計。 B<realloc>(3) と B<mremap>(2) の場合、 割り当ての新しいサイズが以前のサイズよりも大きい場合、 差分 (新しいサイズから古いサイズを引いた値) の合計が加算される。"
5326
5327 #. type: TP
5328 #: build/C/man1/memusage.1:84
5329 #, no-wrap
5330 msgid "B<heap peak>"
5331 msgstr "B<heap peak>"
5332
5333 #. type: Plain text
5334 #: build/C/man1/memusage.1:98
5335 msgid "Maximum of all I<size> arguments of B<malloc>(3), all products of I<nmemb>*I<size> of B<calloc>(3), all I<size> arguments of B<realloc>(3), I<length> arguments of B<mmap>(2), and I<new_size> arguments of B<mremap>(2)."
5336 msgstr "B<malloc>(3) の I<size> 引き数、 B<calloc>(3) の I<nmemb>*I<size> の積、 B<realloc>(3) の I<size> 引き数、 B<mmap>(2) の I<length> 引き数、 B<mremap>(2) の I<new_size> 引き数、 の中の最大値。"
5337
5338 #. type: TP
5339 #: build/C/man1/memusage.1:98
5340 #, no-wrap
5341 msgid "B<stack peak>"
5342 msgstr "B<stack peak>"
5343
5344 #. type: Plain text
5345 #: build/C/man1/memusage.1:105
5346 msgid "Before the first call to any monitored function, the stack pointer address (base stack pointer) is saved.  After each function call, the actual stack pointer address is read and the difference from the base stack pointer computed.  The maximum of these differences is then the stack peak."
5347 msgstr "監視される関数の最初の呼び出しが行われる前に、 スタックポインターアドレス (ベーススタックポインター) が保存される。 関数のそれぞれの呼び出し後には、 実際のスタックポインターアドレスを読み込み、 ベースポインターアドレスを元に差分を計算する。これらの差分の最大値がスタックのピーク値となる。"
5348
5349 #. type: Plain text
5350 #: build/C/man1/memusage.1:122
5351 msgid "Immediately following this summary line, a table shows the number calls, total memory allocated or deallocated, and number of failed calls for each intercepted function.  For B<realloc>(3)  and B<mremap>(2), the additional field \"nomove\" shows reallocations that changed the address of a block, and the additional \"dec\" field shows reallocations that decreased the size of the block.  For B<realloc>(3), the additional field \"free\" shows reallocations that caused a block to be freed (i.e., the reallocated size was 0)."
5352 msgstr "この概要行の直後には、 監視対象の各関数の呼び出し回数、 割り当て・割り当て解除された全メモリー量、 失敗した回数がテーブルで表示される。 B<realloc>(3) と B<mremap>(2) の場合には、 フィールド \"nomove\" でブロックアドレスを変更した再割り当て数を、 フィールド \"dec\" でブロックサイズが減少した再割り当て数が追加で表示される。 B<realloc>(3) の場合、 フィールド \"free\" でブロックの解放が行われた再割り当て (サイズが 0 の再割り当て) の数も追加で表示される。"
5353
5354 #. type: Plain text
5355 #: build/C/man1/memusage.1:132
5356 msgid "The \"realloc/total memory\" of the table output by B<memusage> does not reflect cases where B<realloc>(3)  is used to reallocate a block of memory to have a smaller size than previously.  This can cause sum of all \"total memory\" cells (excluding \"free\")  to be larger than the \"free/total memory\" cell."
5357 msgstr "B<memusage> が出力するテーブルの \"realloc/total memory\" (再割り当てメモリー/全メモリー) には、 B<realloc>(3) を使ってメモリーブロックをその前よりも小さいサイズに再割り当てされた場合は含まれない。 このため、 (\"free\" 以外の) すべての「総メモリー」のセルは \"free/total memory\" セルよりも大きくなることがある。"
5358
5359 #. type: SS
5360 #: build/C/man1/memusage.1:132
5361 #, no-wrap
5362 msgid "Histogram for block sizes"
5363 msgstr "ブロックサイズのヒストグラム"
5364
5365 #. type: Plain text
5366 #: build/C/man1/memusage.1:135
5367 msgid "The \"Histogram for block sizes\" provides a breakdown of memory allocations into various bucket sizes."
5368 msgstr "\"Histogram for block sizes\" (ブロックサイズのヒストグラム) は、 メモリー割り当てをバケットサイズ単位に分割した情報である。"
5369
5370 #. type: TP
5371 #: build/C/man1/memusage.1:136
5372 #, no-wrap
5373 msgid "B<-n\\ >I<name>,\\ B<--progname=>I<name>"
5374 msgstr "B<-n\\ >I<name>,\\ B<--progname=>I<name>"
5375
5376 #. type: Plain text
5377 #: build/C/man1/memusage.1:139
5378 msgid "Name of the program file to profile."
5379 msgstr "プロファイル対象のプログラムファイル名。"
5380
5381 #. type: TP
5382 #: build/C/man1/memusage.1:139
5383 #, no-wrap
5384 msgid "B<-p\\ >I<file>,\\ B<--png=>I<file>"
5385 msgstr "B<-p\\ >I<file>,\\ B<--png=>I<file>"
5386
5387 #. type: Plain text
5388 #: build/C/man1/memusage.1:143
5389 msgid "Generate PNG graphic and store it in I<file>."
5390 msgstr "PNG 画像を生成し、 I<file> に格納する。"
5391
5392 #. type: TP
5393 #: build/C/man1/memusage.1:143
5394 #, no-wrap
5395 msgid "B<-d\\ >I<file>,\\ B<--data=>I<file>"
5396 msgstr "B<-d\\ >I<file>,\\ B<--data=>I<file>"
5397
5398 #. type: Plain text
5399 #: build/C/man1/memusage.1:147
5400 msgid "Generate binary data file and store it in I<file>."
5401 msgstr "バイナリーデータファイルを生成し、 I<file> に格納する。"
5402
5403 #. type: TP
5404 #: build/C/man1/memusage.1:147
5405 #, no-wrap
5406 msgid "B<-u>,\\ B<--unbuffered>"
5407 msgstr "B<-u>,\\ B<--unbuffered>"
5408
5409 #. type: Plain text
5410 #: build/C/man1/memusage.1:150
5411 msgid "Do not buffer output."
5412 msgstr "出力バッファーリングを行わない。"
5413
5414 #. type: TP
5415 #: build/C/man1/memusage.1:150
5416 #, no-wrap
5417 msgid "B<-b\\ >I<size>,\\ B<--buffer=>I<size>"
5418 msgstr "B<-b\\ >I<size>,\\ B<--buffer=>I<size>"
5419
5420 #. type: Plain text
5421 #: build/C/man1/memusage.1:155
5422 msgid "Collect I<size> entries before writing them out."
5423 msgstr "出力する前に I<size> 個のエントリーの収集を行う。"
5424
5425 #. type: TP
5426 #: build/C/man1/memusage.1:155
5427 #, no-wrap
5428 msgid "B<--no-timer>"
5429 msgstr "B<--no-timer>"
5430
5431 #. type: Plain text
5432 #: build/C/man1/memusage.1:160
5433 msgid "Disable timer-based (B<SIGPROF>)  sampling of stack pointer value."
5434 msgstr "スタックポインター値の時間ベースのサンプリング (B<SIGPROF>) を無効にする。"
5435
5436 #. type: TP
5437 #: build/C/man1/memusage.1:160
5438 #, no-wrap
5439 msgid "B<-m>,\\ B<--mmap>"
5440 msgstr "B<-m>,\\ B<--mmap>"
5441
5442 #. type: Plain text
5443 #: build/C/man1/memusage.1:167
5444 msgid "Also trace B<mmap>(2), B<mremap>(2), and B<mmap>(2)."
5445 msgstr "B<mmap>(2), B<mremap>(2), B<mmap>(2) も追跡対象とする。"
5446
5447 #. type: TP
5448 #: build/C/man1/memusage.1:167 build/C/man1/memusagestat.1:72
5449 #, no-wrap
5450 msgid "B<-?>,\\ B<--help>"
5451 msgstr "B<-?>,\\ B<--help>"
5452
5453 #. type: Plain text
5454 #: build/C/man1/memusage.1:170 build/C/man1/mtrace.1:55
5455 msgid "Print help and exit."
5456 msgstr "ヘルプを表示し、終了する。"
5457
5458 #. type: TP
5459 #: build/C/man1/memusage.1:170 build/C/man1/memusagestat.1:75
5460 #: build/C/man1/pldd.1:44 build/C/man1/sprof.1:69
5461 #, no-wrap
5462 msgid "B<--usage>"
5463 msgstr "B<--usage>"
5464
5465 #. type: Plain text
5466 #: build/C/man1/memusage.1:173 build/C/man1/memusagestat.1:78
5467 msgid "Print a short usage message and exit."
5468 msgstr "簡潔な使用方法を表示して終了する。"
5469
5470 #. type: TP
5471 #: build/C/man1/memusage.1:173 build/C/man1/memusagestat.1:78
5472 #, no-wrap
5473 msgid "B<-V>,\\ B<--version>"
5474 msgstr "B<-V>,\\ B<--version>"
5475
5476 #. type: Plain text
5477 #: build/C/man1/memusage.1:176 build/C/man1/memusagestat.1:81
5478 #: build/C/man1/mtrace.1:58
5479 msgid "Print version information and exit."
5480 msgstr "バージョン情報を表示して終了する。"
5481
5482 #. type: TP
5483 #: build/C/man1/memusage.1:176
5484 #, no-wrap
5485 msgid "The following options only apply when generating graphical output:"
5486 msgstr "以下のオプションは画像出力を行う場合にのみ適用される。"
5487
5488 #. type: TP
5489 #: build/C/man1/memusage.1:178
5490 #, no-wrap
5491 msgid "B<-t>,\\ B<--time-based>"
5492 msgstr "B<-t>,\\ B<--time-based>"
5493
5494 #. type: Plain text
5495 #: build/C/man1/memusage.1:181 build/C/man1/memusagestat.1:59
5496 msgid "Use time (rather than number of function calls) as the scale for the X axis."
5497 msgstr "X 軸の目盛として (関数呼び出し数ではなく) 時間を使用する。"
5498
5499 #. type: TP
5500 #: build/C/man1/memusage.1:181 build/C/man1/memusagestat.1:59
5501 #, no-wrap
5502 msgid "B<-T>,\\ B<--total>"
5503 msgstr "B<-T>,\\ B<--total>"
5504
5505 #. type: Plain text
5506 #: build/C/man1/memusage.1:184
5507 msgid "Also draw a graph of total memory use."
5508 msgstr "メモリーの全使用量のグラフも生成する。"
5509
5510 #. type: TP
5511 #: build/C/man1/memusage.1:184
5512 #, no-wrap
5513 msgid "B<--title=>I<name>"
5514 msgstr "B<--title=>I<name>"
5515
5516 #. type: Plain text
5517 #: build/C/man1/memusage.1:189
5518 msgid "Use I<name> as the title of the graph."
5519 msgstr "グラフのタイトルとして I<name> を使用する。"
5520
5521 #. type: TP
5522 #: build/C/man1/memusage.1:189 build/C/man1/memusagestat.1:62
5523 #, no-wrap
5524 msgid "B<-x\\ >I<size>,\\ B<--x-size=>I<size>"
5525 msgstr "B<-x\\ >I<size>,\\ B<--x-size=>I<size>"
5526
5527 #. type: Plain text
5528 #: build/C/man1/memusage.1:194
5529 msgid "Make the graph I<size> pixels wide."
5530 msgstr "グラフの幅を I<size> ピクセルにする。"
5531
5532 #. type: TP
5533 #: build/C/man1/memusage.1:194 build/C/man1/memusagestat.1:67
5534 #, no-wrap
5535 msgid "B<-y\\ >I<size>,\\ B<--y-size=>I<size>"
5536 msgstr "B<-y\\ >I<size>,\\ B<--y-size=>I<size>"
5537
5538 #. type: Plain text
5539 #: build/C/man1/memusage.1:199
5540 msgid "Make the graph I<size> pixels high."
5541 msgstr "グラフの高さを I<size> ピクセルにする。"
5542
5543 #. type: SH
5544 #: build/C/man1/memusage.1:199 build/C/man1/pldd.1:60
5545 #, no-wrap
5546 msgid "EXIT STATUS"
5547 msgstr "終了ステータス"
5548
5549 #. type: Plain text
5550 #: build/C/man1/memusage.1:201
5551 msgid "Exit status is equal to the exit status of profiled program."
5552 msgstr "終了ステータスはプロファイルしたプログラムの終了ステータスと同じになる。"
5553
5554 #. type: Plain text
5555 #: build/C/man1/memusage.1:208
5556 msgid "Below is a simple program that reallocates a block of memory in cycles that rise to a peak before then cyclically reallocating the memory in smaller blocks that return to zero.  After compiling the program and running the following commands, a graph of the memory usage of the program can be found in the file I<memusage.png>:"
5557 msgstr "以下の簡単なプログラムは、 ピークに達するまで繰り返しメモリーブロックの再割り当てを行い、 その後ブロックサイズが 0 になるまで繰り返し順に小さなブロックに再割り当てを行う。 このプログラムをコンパイルして以下のコマンドを実行すると、 このプログラムのメモリ使用量がファイル I<memusage.png> に出力される。"
5558
5559 #. type: Plain text
5560 #: build/C/man1/memusage.1:232
5561 #, no-wrap
5562 msgid ""
5563 "$ B<memusage --data=memusage.dat ./a.out>\n"
5564 "\\&...\n"
5565 "Memory usage summary: heap total: 45200, heap peak: 6440, stack peak: 224\n"
5566 "        total calls  total memory  failed calls\n"
5567 " malloc|         1           400             0\n"
5568 "realloc|        40         44800             0  (nomove:40, dec:19, free:0)\n"
5569 " calloc|         0             0             0\n"
5570 "   free|         1           440\n"
5571 "Histogram for block sizes:\n"
5572 "  192-207             1   2% ================\n"
5573 "\\&...\n"
5574 " 2192-2207            1   2% ================\n"
5575 " 2240-2255            2   4% =================================\n"
5576 " 2832-2847            2   4% =================================\n"
5577 " 3440-3455            2   4% =================================\n"
5578 " 4032-4047            2   4% =================================\n"
5579 " 4640-4655            2   4% =================================\n"
5580 " 5232-5247            2   4% =================================\n"
5581 " 5840-5855            2   4% =================================\n"
5582 " 6432-6447            1   2% ================\n"
5583 "$ B<memusagestat memusage.dat memusage.png>\n"
5584 msgstr ""
5585 "$ B<memusage --data=memusage.dat ./a.out>\n"
5586 "\\&...\n"
5587 "Memory usage summary: heap total: 45200, heap peak: 6440, stack peak: 224\n"
5588 "        total calls  total memory  failed calls\n"
5589 " malloc|         1           400             0\n"
5590 "realloc|        40         44800             0  (nomove:40, dec:19, free:0)\n"
5591 " calloc|         0             0             0\n"
5592 "   free|         1           440\n"
5593 "Histogram for block sizes:\n"
5594 "  192-207             1   2% ================\n"
5595 "\\&...\n"
5596 " 2192-2207            1   2% ================\n"
5597 " 2240-2255            2   4% =================================\n"
5598 " 2832-2847            2   4% =================================\n"
5599 " 3440-3455            2   4% =================================\n"
5600 " 4032-4047            2   4% =================================\n"
5601 " 4640-4655            2   4% =================================\n"
5602 " 5232-5247            2   4% =================================\n"
5603 " 5840-5855            2   4% =================================\n"
5604 " 6432-6447            1   2% ================\n"
5605 "$ B<memusagestat memusage.dat memusage.png>\n"
5606
5607 #. type: Plain text
5608 #: build/C/man1/memusage.1:240
5609 #, no-wrap
5610 msgid "#define CYCLES 20\n"
5611 msgstr "#define CYCLES 20\n"
5612
5613 #. type: Plain text
5614 #: build/C/man1/memusage.1:246
5615 #, no-wrap
5616 msgid ""
5617 "int\n"
5618 "main(int argc, char *argv[])\n"
5619 "{\n"
5620 "     int i, j;\n"
5621 "     int *p;\n"
5622 msgstr ""
5623 "int\n"
5624 "main(int argc, char *argv[])\n"
5625 "{\n"
5626 "     int i, j;\n"
5627 "     int *p;\n"
5628
5629 #. type: Plain text
5630 #: build/C/man1/memusage.1:249
5631 #, no-wrap
5632 msgid ""
5633 "     printf(\"malloc: %zd\\en\", sizeof(int) * 100);\n"
5634 "     p = malloc(sizeof(int) * 100);\n"
5635 msgstr ""
5636 "     printf(\"malloc: %zd\\en\", sizeof(int) * 100);\n"
5637 "     p = malloc(sizeof(int) * 100);\n"
5638
5639 #. type: Plain text
5640 #: build/C/man1/memusage.1:255
5641 #, no-wrap
5642 msgid ""
5643 "     for (i = 0; i E<lt> CYCLES; i++) {\n"
5644 "         if (i E<lt> CYCLES / 2)\n"
5645 "             j = i;\n"
5646 "         else\n"
5647 "             j--;\n"
5648 msgstr ""
5649 "     for (i = 0; i E<lt> CYCLES; i++) {\n"
5650 "         if (i E<lt> CYCLES / 2)\n"
5651 "             j = i;\n"
5652 "         else\n"
5653 "             j--;\n"
5654
5655 #. type: Plain text
5656 #: build/C/man1/memusage.1:258
5657 #, no-wrap
5658 msgid ""
5659 "         printf(\"realloc: %zd\\en\", sizeof(int) * (j * 50 + 110));\n"
5660 "         p = realloc(p, sizeof(int) * (j * 50 + 100));\n"
5661 msgstr ""
5662 "         printf(\"realloc: %zd\\en\", sizeof(int) * (j * 50 + 110));\n"
5663 "         p = realloc(p, sizeof(int) * (j * 50 + 100));\n"
5664
5665 #. type: Plain text
5666 #: build/C/man1/memusage.1:262
5667 #, no-wrap
5668 msgid ""
5669 "         printf(\"realloc: %zd\\en\", sizeof(int) * ((j+1) * 150 + 110));\n"
5670 "         p = realloc(p, sizeof(int) * ((j + 1) * 150 + 110));\n"
5671 "     }\n"
5672 msgstr ""
5673 "         printf(\"realloc: %zd\\en\", sizeof(int) * ((j+1) * 150 + 110));\n"
5674 "         p = realloc(p, sizeof(int) * ((j + 1) * 150 + 110));\n"
5675 "     }\n"
5676
5677 #. type: Plain text
5678 #: build/C/man1/memusage.1:266
5679 #, no-wrap
5680 msgid ""
5681 "     free(p);\n"
5682 "     exit(EXIT_SUCCESS);\n"
5683 "}\n"
5684 msgstr ""
5685 "     free(p);\n"
5686 "     exit(EXIT_SUCCESS);\n"
5687 "}\n"
5688
5689 #. type: Plain text
5690 #: build/C/man1/memusage.1:271 build/C/man1/memusagestat.1:88
5691 msgid "To report bugs, see E<.UR http://www.gnu.org/software/libc/bugs.html> E<.UE>"
5692 msgstr "バグ報告については E<.UR http://www.gnu.org/software/libc/bugs.html> E<.UE> を参照のこと。"
5693
5694 #. type: Plain text
5695 #: build/C/man1/memusage.1:275
5696 msgid "B<memusagestat>(1), B<mtrace>(1)  B<ld.so>(8)"
5697 msgstr "B<memusagestat>(1), B<mtrace>(1)  B<ld.so>(8)"
5698
5699 #. type: TH
5700 #: build/C/man1/memusagestat.1:23
5701 #, no-wrap
5702 msgid "MEMUSAGESTAT"
5703 msgstr "MEMUSAGESTAT"
5704
5705 #. type: TH
5706 #: build/C/man1/memusagestat.1:23
5707 #, no-wrap
5708 msgid "Linux programmer's manual"
5709 msgstr "Linux programmer's manual"
5710
5711 #. type: Plain text
5712 #: build/C/man1/memusagestat.1:26
5713 msgid "memusagestat - generate graphic from memory profiling data"
5714 msgstr "memusagestat - メモリーのプロファイリングデータからグラフを出力する"
5715
5716 #. type: Plain text
5717 #: build/C/man1/memusagestat.1:28
5718 msgid "B<memusagestat> [I<option>]... I<datafile> [I<outfile>]"
5719 msgstr "B<memusagestat> [I<option>]... I<datafile> [I<outfile>]"
5720
5721 #. type: Plain text
5722 #: build/C/man1/memusagestat.1:39
5723 msgid "B<memusagestat> creates a PNG file containing a graphical representation of the memory profiling data in the file I<datafile>; that file is generated via the I<-d> (or I<--data>)  option of B<memusage>(1)."
5724 msgstr "B<memusagestat> は、 ファイル I<datafile> に格納されたメモリーのプロファイリングデータをグラフとして表現した PNG ファイルを作成する。 I<datafile> は B<memusage>(1) の I<-d> (I<--data>) オプションで生成される。"
5725
5726 #. type: Plain text
5727 #: build/C/man1/memusagestat.1:47
5728 msgid "The red line in the graph shows the heap usage (allocated memory)  and the green line shows the stack usage.  The x-scale is either the number of memory-handling function calls or (if the I<-t> option is specified)  time."
5729 msgstr "グラフの赤色の線はヒープ使用量 (割り当てられたメモリー) を示し、 緑色の線はスタック使用量を示す。 X 軸はメモリ処理関数の呼び出し数 (I<-t> オプションが指定された場合は時間) である。"
5730
5731 #. type: TP
5732 #: build/C/man1/memusagestat.1:48
5733 #, no-wrap
5734 msgid "B<-o\\ >I<file>,\\ B<--output=>I<file>"
5735 msgstr "B<-o\\ >I<file>,\\ B<--output=>I<file>"
5736
5737 #. type: Plain text
5738 #: build/C/man1/memusagestat.1:51
5739 msgid "Name of the output file."
5740 msgstr "出力ファイルの名前。"
5741
5742 #. type: TP
5743 #: build/C/man1/memusagestat.1:51
5744 #, no-wrap
5745 msgid "B<-s\\ >I<string>,\\ B<--string=>I<string>"
5746 msgstr "B<-s\\ >I<string>,\\ B<--string=>I<string>"
5747
5748 #. type: Plain text
5749 #: build/C/man1/memusagestat.1:56
5750 msgid "Use I<string> as the title inside the output graph."
5751 msgstr "出力グラフに表示するタイトルとして I<string> を使用する。"
5752
5753 #. type: TP
5754 #: build/C/man1/memusagestat.1:56
5755 #, no-wrap
5756 msgid "B<-t>,\\ B<--time>"
5757 msgstr "B<-t>,\\ B<--time>"
5758
5759 #. type: Plain text
5760 #: build/C/man1/memusagestat.1:62
5761 msgid "Also draw a graph of total memory consumption."
5762 msgstr "全メモリー消費量のグラフも出力する。"
5763
5764 #. type: Plain text
5765 #: build/C/man1/memusagestat.1:67
5766 msgid "Make the output graph I<size> pixels wide."
5767 msgstr "出力グラフの幅を I<size> ピクセルにする。"
5768
5769 #. type: Plain text
5770 #: build/C/man1/memusagestat.1:72
5771 msgid "Make the output graph I<size> pixels high."
5772 msgstr "出力グラフの高さを I<size> ピクセルにする。"
5773
5774 #. type: Plain text
5775 #: build/C/man1/memusagestat.1:75
5776 msgid "Print a help message and exit."
5777 msgstr "ヘルプメッセージを表示して終了する。"
5778
5779 #. type: Plain text
5780 #: build/C/man1/memusagestat.1:84
5781 msgid "See B<memusage>(1)."
5782 msgstr "B<memusage>(1) を参照。"
5783
5784 #. type: Plain text
5785 #: build/C/man1/memusagestat.1:91
5786 msgid "B<memusage>(1), B<mtrace>(1)"
5787 msgstr "B<memusage>(1), B<mtrace>(1)"
5788
5789 #. type: TH
5790 #: build/C/man1/mtrace.1:23
5791 #, no-wrap
5792 msgid "MTRACE"
5793 msgstr "MTRACE"
5794
5795 #. type: TH
5796 #: build/C/man1/mtrace.1:23
5797 #, no-wrap
5798 msgid "2014-09-01"
5799 msgstr "2014-09-01"
5800
5801 #. type: Plain text
5802 #: build/C/man1/mtrace.1:26
5803 msgid "mtrace - interpret the malloc trace log"
5804 msgstr "mtrace - malloc のトレースログを解釈する"
5805
5806 #. type: Plain text
5807 #: build/C/man1/mtrace.1:28
5808 msgid "B<mtrace> [I<option>]... [I<binary>] I<mtracedata>"
5809 msgstr "B<mtrace> [I<option>]... [I<binary>] I<mtracedata>"
5810
5811 #. type: Plain text
5812 #: build/C/man1/mtrace.1:44
5813 msgid "B<mtrace> is a Perl script used to interpret and provide human readable output of the trace log contained in the file I<mtracedata>, whose contents were produced by B<mtrace>(3).  If I<binary> is provided, the output of B<mtrace> also contains the source file name with line number information for problem locations (assuming that I<binary> was compiled with debugging information)."
5814 msgstr "B<mtrace> は B<mtrace>(3) の出力内容が入ったファイル I<mtracedata> のトレースログを解釈し人間が読みやすい出力に変換する Perl スクリプトである。 I<binary> が渡されると、 B<mtrace> の出力に問題箇所にソースファイル名と行番号も出力される (I<binary> はデバッグ情報付きでコンパイルされているものとする)。"
5815
5816 #. type: Plain text
5817 #: build/C/man1/mtrace.1:51
5818 msgid "For more information about the B<mtrace>(3)  function and B<mtrace> script usage, see B<mtrace>(3)."
5819 msgstr "B<mtrace>(3) 関数と B<mtrace> スクリプトの使用方法の詳細は B<mtrace>(3) を参照。"
5820
5821 #. type: Plain text
5822 #: build/C/man1/mtrace.1:61
5823 msgid "For bug reporting instructions, please see: E<lt>http://www.gnu.org/software/libc/bugs.htmlE<gt>."
5824 msgstr "バグ報告の方法については E<lt>http://www.gnu.org/software/libc/bugs.htmlE<gt> を参照。"
5825
5826 #. type: Plain text
5827 #: build/C/man1/mtrace.1:64
5828 msgid "B<memusage>(1), B<mtrace>(3)"
5829 msgstr "B<memusage>(1), B<mtrace>(3)"
5830
5831 #. type: TH
5832 #: build/C/man1/pldd.1:25
5833 #, no-wrap
5834 msgid "PLDD"
5835 msgstr "PLDD"
5836
5837 #. type: TH
5838 #: build/C/man1/pldd.1:25
5839 #, no-wrap
5840 msgid "2014-09-27"
5841 msgstr "2014-09-27"
5842
5843 #. type: TH
5844 #: build/C/man1/pldd.1:25 build/C/man1/sprof.1:25
5845 #, no-wrap
5846 msgid "Linux User Manual"
5847 msgstr "Linux User Manual"
5848
5849 #. type: Plain text
5850 #: build/C/man1/pldd.1:28
5851 msgid "pldd - display dynamic shared objects linked into a process"
5852 msgstr "pldd - プロセスにリンクされている動的共有オブジェクトを表示する"
5853
5854 #. type: Plain text
5855 #: build/C/man1/pldd.1:32
5856 #, no-wrap
5857 msgid ""
5858 "B<pldd >I<PID>\n"
5859 "B<pldd> OPTION\n"
5860 msgstr ""
5861 "B<pldd >I<PID>\n"
5862 "B<pldd> OPTION\n"
5863
5864 #. type: Plain text
5865 #: build/C/man1/pldd.1:40
5866 msgid "The B<pldd> command displays a list of the dynamic shared objects that are linked into the process with the specified process ID.  The list includes the libraries that have been dynamically loaded using B<dlopen>(3)."
5867 msgstr "B<pldd> コマンドは、 指定されたプロセス ID のプロセスにリンクされている動的共有オブジェクトのリストを表示する。 このリストには B<dlopen>(3) を使って動的にロードされたライブラリーも含まれる。"
5868
5869 #. type: TP
5870 #: build/C/man1/pldd.1:41 build/C/man1/sprof.1:66
5871 #, no-wrap
5872 msgid "B<-?>, B<--help>"
5873 msgstr "B<-?>, B<--help>"
5874
5875 #. type: Plain text
5876 #: build/C/man1/pldd.1:44
5877 msgid "Display program help message."
5878 msgstr "プログラムのヘルプメッセージを表示する。"
5879
5880 #. type: Plain text
5881 #: build/C/man1/pldd.1:47
5882 msgid "Display a short usage message."
5883 msgstr "簡潔な使用方法を表示する。"
5884
5885 #. type: TP
5886 #: build/C/man1/pldd.1:47 build/C/man1/sprof.1:72
5887 #, no-wrap
5888 msgid "B<-V>, B<--version>"
5889 msgstr "B<-V>, B<--version>"
5890
5891 #. type: Plain text
5892 #: build/C/man1/pldd.1:50
5893 msgid "Display the program version."
5894 msgstr "プログラムのバージョンを表示する。"
5895
5896 #. type: Plain text
5897 #: build/C/man1/pldd.1:53
5898 msgid "B<pldd> is available since glibc 2.15."
5899 msgstr "B<pldd> は glibc 2.15 以降で利用可能である。"
5900
5901 #.  There are man pages on Solaris and HP-UX.
5902 #. type: Plain text
5903 #: build/C/man1/pldd.1:60
5904 msgid "The B<pldd> command is not specified by POSIX.1.  Some other systems have a similar command."
5905 msgstr "B<pldd> コマンドは POSIX.1 では規定されていない。 他のいくつかのシステムにも同様のコマンドがある。"
5906
5907 #. type: Plain text
5908 #: build/C/man1/pldd.1:71
5909 msgid "On success, B<pldd> exits with the status 0.  If the specified process does not exist, the user does not have permission to access its dynamic shared object list, or no command-line arguments are supplied, B<pldd> exists with a status of 1.  If given an invalid option, it exits with the status 64."
5910 msgstr "成功すると B<pldd> はステータス 0 を返す。 指定されたプロセスが存在しない場合、 ユーザーが自身の動的共有オブジェクトのリストにアクセスする許可を持っていない場合、 もしくはコマンドライン引き数が指定されていない場合、 B<pldd> はステータス 1 で終了する。 無効なオプションが指定された場合、 ステータス 64 で終了する。"
5911
5912 #. type: Plain text
5913 #: build/C/man1/pldd.1:83
5914 #, no-wrap
5915 msgid ""
5916 "$ B<echo $$>               # Display PID of shell\n"
5917 "1143\n"
5918 "$ B<pldd $$>               # Display DSOs linked into the shell\n"
5919 "1143:\t/usr/bin/bash\n"
5920 "linux-vdso.so.1\n"
5921 "/lib64/libtinfo.so.5\n"
5922 "/lib64/libdl.so.2\n"
5923 "/lib64/libc.so.6\n"
5924 "/lib64/ld-linux-x86-64.so.2\n"
5925 "/lib64/libnss_files.so.2\n"
5926 msgstr ""
5927 "$ B<echo $$>               # シェルの PID を表示する\n"
5928 "1143\n"
5929 "$ B<pldd $$>               # このシェルにリンクされている動的共有オブジェクトを表示\n"
5930 "1143:\t/usr/bin/bash\n"
5931 "linux-vdso.so.1\n"
5932 "/lib64/libtinfo.so.5\n"
5933 "/lib64/libdl.so.2\n"
5934 "/lib64/libc.so.6\n"
5935 "/lib64/ld-linux-x86-64.so.2\n"
5936 "/lib64/libnss_files.so.2\n"
5937
5938 #. type: Plain text
5939 #: build/C/man1/pldd.1:86
5940 msgid "The command"
5941 msgstr "コマンド"
5942
5943 #. type: Plain text
5944 #: build/C/man1/pldd.1:88
5945 #, no-wrap
5946 msgid "     lsof -p PID\n"
5947 msgstr "     lsof -p PID\n"
5948
5949 #. type: Plain text
5950 #: build/C/man1/pldd.1:91
5951 msgid "also shows output that includes the dynamic shared objects that are linked into a process."
5952 msgstr "は、 プロセスにリンクされた動的共有オブジェクトも出力する。"
5953
5954 #. type: Plain text
5955 #: build/C/man1/pldd.1:96
5956 msgid "B<ldd>(1), B<lsof>(1), B<dlopen>(3), B<ld.so>(8)"
5957 msgstr "B<ldd>(1), B<lsof>(1), B<dlopen>(3), B<ld.so>(8)"
5958
5959 #. type: TH
5960 #: build/C/man7/rtld-audit.7:28
5961 #, no-wrap
5962 msgid "RTLD-AUDIT"
5963 msgstr "RTLD-AUDIT"
5964
5965 #. type: TH
5966 #: build/C/man7/rtld-audit.7:28
5967 #, no-wrap
5968 msgid "2012-07-07"
5969 msgstr "2012-07-07"
5970
5971 #. type: Plain text
5972 #: build/C/man7/rtld-audit.7:31
5973 msgid "rtld-audit - auditing API for the dynamic linker"
5974 msgstr ""
5975
5976 #. type: Plain text
5977 #: build/C/man7/rtld-audit.7:33
5978 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
5979 msgstr ""
5980
5981 #. type: Plain text
5982 #: build/C/man7/rtld-audit.7:35
5983 msgid "B<#include E<lt>link.hE<gt>>"
5984 msgstr "B<#include E<lt>link.hE<gt>>"
5985
5986 #. type: Plain text
5987 #: build/C/man7/rtld-audit.7:43
5988 msgid "The GNU dynamic linker (run-time linker)  provides an auditing API that allows an application to be notified when various dynamic linking events occur.  This API is very similar to the auditing interface provided by the Solaris run-time linker.  The necessary constants and prototypes are defined by including I<E<lt>link.hE<gt>>."
5989 msgstr ""
5990
5991 #. type: Plain text
5992 #: build/C/man7/rtld-audit.7:50
5993 msgid "To use this interface, the programmer creates a shared library that implements a standard set of function names.  Not all of the functions need to be implemented: in most cases, if the programmer is not interested in a particular class of auditing event, then no implementation needs to be provided for the corresponding auditing function."
5994 msgstr ""
5995
5996 #. type: Plain text
5997 #: build/C/man7/rtld-audit.7:58
5998 msgid "To employ the auditing interface, the environment variable B<LD_AUDIT> must be defined to contain a colon-separated list of shared libraries, each of which can implement (parts of) the auditing API.  When an auditable event occurs, the corresponding function is invoked in each library, in the order that the libraries are listed."
5999 msgstr ""
6000
6001 #. type: SS
6002 #: build/C/man7/rtld-audit.7:58
6003 #, no-wrap
6004 msgid "la_version()"
6005 msgstr "la_version()"
6006
6007 #. type: Plain text
6008 #: build/C/man7/rtld-audit.7:62
6009 #, no-wrap
6010 msgid "B<unsigned int la_version(unsigned int >I<version>B<);>\n"
6011 msgstr "B<unsigned int la_version(unsigned int >I<version>B<);>\n"
6012
6013 #. type: Plain text
6014 #: build/C/man7/rtld-audit.7:74
6015 msgid "This is the only function that I<must> be defined by an auditing library: it performs the initial handshake between the dynamic linker and the auditing library.  When invoking this function, the dynamic linker passes, in I<version>, the highest version of the auditing interface that the linker supports.  If necessary, the auditing library can check that this version is sufficient for its requirements."
6016 msgstr ""
6017
6018 #. type: Plain text
6019 #: build/C/man7/rtld-audit.7:83
6020 msgid "As its function result, this function should return the version of the auditing interface that this auditing library expects to use (returning I<version> is acceptable).  If the returned value is 0, or a version that is greater than that supported by the dynamic linker, then the audit library is ignored."
6021 msgstr ""
6022
6023 #. type: SS
6024 #: build/C/man7/rtld-audit.7:83
6025 #, no-wrap
6026 msgid "la_objsearch()"
6027 msgstr "la_objsearch()"
6028
6029 #. type: Plain text
6030 #: build/C/man7/rtld-audit.7:88
6031 #, no-wrap
6032 msgid ""
6033 "B<char *la_objsearch(const char *>I<name>B<, uintptr_t *>I<cookie>B<,>\n"
6034 "B<                   unsigned int >I<flag>B<);>\n"
6035 msgstr ""
6036 "B<char *la_objsearch(const char *>I<name>B<, uintptr_t *>I<cookie>B<,>\n"
6037 "B<                   unsigned int >I<flag>B<);>\n"
6038
6039 #. type: Plain text
6040 #: build/C/man7/rtld-audit.7:99
6041 msgid "The dynamic linker invokes this function to inform the auditing library that it is about to search for a shared object.  The I<name> argument is the filename or pathname that is to be searched for.  I<cookie> identifies the shared object that initiated the search.  I<flag> is set to one of the following values:"
6042 msgstr ""
6043
6044 #. type: TP
6045 #: build/C/man7/rtld-audit.7:99
6046 #, no-wrap
6047 msgid "B<LA_SER_ORIG>"
6048 msgstr "B<LA_SER_ORIG>"
6049
6050 #. type: Plain text
6051 #: build/C/man7/rtld-audit.7:108
6052 msgid "This is the original name that is being searched for.  Typically, this name comes from an ELF B<DT_NEEDED> entry, or is the I<filename> argument given to B<dlopen>(3)."
6053 msgstr ""
6054
6055 #. type: TP
6056 #: build/C/man7/rtld-audit.7:108
6057 #, no-wrap
6058 msgid "B<LA_SER_LIBPATH>"
6059 msgstr "B<LA_SER_LIBPATH>"
6060
6061 #. type: Plain text
6062 #: build/C/man7/rtld-audit.7:113
6063 msgid "I<name> was created using a directory specified in B<LD_LIBRARY_PATH>."
6064 msgstr ""
6065
6066 #. type: TP
6067 #: build/C/man7/rtld-audit.7:113
6068 #, no-wrap
6069 msgid "B<LA_SER_RUNPATH>"
6070 msgstr "B<LA_SER_RUNPATH>"
6071
6072 #. type: Plain text
6073 #: build/C/man7/rtld-audit.7:121
6074 msgid "I<name> was created using a directory specified in an ELF B<DT_RPATH> or B<DT_RUNPATH> list."
6075 msgstr ""
6076
6077 #. type: TP
6078 #: build/C/man7/rtld-audit.7:121
6079 #, no-wrap
6080 msgid "B<LA_SER_CONFIG>"
6081 msgstr "B<LA_SER_CONFIG>"
6082
6083 #. type: Plain text
6084 #: build/C/man7/rtld-audit.7:128
6085 msgid "I<name> was found via the B<ldconfig>(8)  cache (I</etc/ld.so.cache>)."
6086 msgstr ""
6087
6088 #. type: TP
6089 #: build/C/man7/rtld-audit.7:128
6090 #, no-wrap
6091 msgid "B<LA_SER_DEFAULT>"
6092 msgstr "B<LA_SER_DEFAULT>"
6093
6094 #. type: Plain text
6095 #: build/C/man7/rtld-audit.7:132
6096 msgid "I<name> was found via a search of one of the default directories."
6097 msgstr ""
6098
6099 #. type: TP
6100 #: build/C/man7/rtld-audit.7:132
6101 #, no-wrap
6102 msgid "B<LA_SER_SECURE>"
6103 msgstr "B<LA_SER_SECURE>"
6104
6105 #. type: Plain text
6106 #: build/C/man7/rtld-audit.7:136
6107 msgid "I<name> is specific to a secure object (unused on Linux)."
6108 msgstr ""
6109
6110 #. type: Plain text
6111 #: build/C/man7/rtld-audit.7:145
6112 msgid "As its function result, B<la_objsearch>()  returns the pathname that the dynamic linker should use for further processing.  If NULL is returned, then this pathname is ignored for further processing.  If this audit library simply intends to monitor search paths, then I<name> should be returned."
6113 msgstr ""
6114
6115 #. type: SS
6116 #: build/C/man7/rtld-audit.7:145
6117 #, no-wrap
6118 msgid "la_activity()"
6119 msgstr "la_activity()"
6120
6121 #. type: Plain text
6122 #: build/C/man7/rtld-audit.7:149
6123 #, no-wrap
6124 msgid "B<void la_activity( uintptr_t *>I<cookie>B<, unsigned int >I<flag>B<);>\n"
6125 msgstr "B<void la_activity( uintptr_t *>I<cookie>B<, unsigned int >I<flag>B<);>\n"
6126
6127 #. type: Plain text
6128 #: build/C/man7/rtld-audit.7:158
6129 msgid "The dynamic linker calls this function to inform the auditing library that link-map activity is occurring.  I<cookie> identifies the object at the head of the link map.  When the dynamic linker invokes this function, I<flag> is set to one of the following values:"
6130 msgstr ""
6131
6132 #. type: TP
6133 #: build/C/man7/rtld-audit.7:158
6134 #, no-wrap
6135 msgid "B<LA_ACT_ADD>"
6136 msgstr "B<LA_ACT_ADD>"
6137
6138 #. type: Plain text
6139 #: build/C/man7/rtld-audit.7:161
6140 msgid "New objects are being added to the link map."
6141 msgstr ""
6142
6143 #. type: TP
6144 #: build/C/man7/rtld-audit.7:161
6145 #, no-wrap
6146 msgid "B<LA_ACT_DELETE>"
6147 msgstr "B<LA_ACT_DELETE>"
6148
6149 #. type: Plain text
6150 #: build/C/man7/rtld-audit.7:164
6151 msgid "Objects are being removed from the link map."
6152 msgstr ""
6153
6154 #. type: TP
6155 #: build/C/man7/rtld-audit.7:164
6156 #, no-wrap
6157 msgid "B<LA_ACT_CONSISTENT>"
6158 msgstr "B<LA_ACT_CONSISTENT>"
6159
6160 #. type: Plain text
6161 #: build/C/man7/rtld-audit.7:167
6162 msgid "Link-map activity has been completed: the map is once again consistent."
6163 msgstr ""
6164
6165 #. type: SS
6166 #: build/C/man7/rtld-audit.7:167
6167 #, no-wrap
6168 msgid "la_objopen()"
6169 msgstr "la_objopen()"
6170
6171 #. type: Plain text
6172 #: build/C/man7/rtld-audit.7:172
6173 #, no-wrap
6174 msgid ""
6175 "B<unsigned int la_objopen(struct link_map *>I<map>B<, Lmid_t >I<lmid>B<,>\n"
6176 "B<                        uintptr_t *>I<cookie>B<);>\n"
6177 msgstr ""
6178 "B<unsigned int la_objopen(struct link_map *>I<map>B<, Lmid_t >I<lmid>B<,>\n"
6179 "B<                        uintptr_t *>I<cookie>B<);>\n"
6180
6181 #. type: Plain text
6182 #: build/C/man7/rtld-audit.7:181
6183 msgid "The dynamic linker calls this function when a new shared object is loaded.  The I<map> argument is a pointer to a link-map structure that describes the object.  The I<lmid> field has one of the following values"
6184 msgstr ""
6185
6186 #. type: TP
6187 #: build/C/man7/rtld-audit.7:181
6188 #, no-wrap
6189 msgid "B<LM_ID_BASE>"
6190 msgstr "B<LM_ID_BASE>"
6191
6192 #. type: Plain text
6193 #: build/C/man7/rtld-audit.7:184
6194 msgid "Link map is part of the initial namespace."
6195 msgstr ""
6196
6197 #. type: TP
6198 #: build/C/man7/rtld-audit.7:184
6199 #, no-wrap
6200 msgid "B<LM_ID_NEWLM>"
6201 msgstr "B<LM_ID_NEWLM>"
6202
6203 #. type: Plain text
6204 #: build/C/man7/rtld-audit.7:188
6205 msgid "Link map is part of a new namespace requested via B<dlmopen>(3)."
6206 msgstr ""
6207
6208 #. type: Plain text
6209 #: build/C/man7/rtld-audit.7:196
6210 msgid "I<cookie> is a pointer to an identifier for this object.  The identifier is provided to later calls to functions in the auditing library in order to identify this object.  This identifier is initialized to point to object's link map, but the audit library can change the identifier to some other value that it may prefer to use to identify the object."
6211 msgstr ""
6212
6213 #. type: Plain text
6214 #: build/C/man7/rtld-audit.7:203
6215 msgid "As its return value, B<la_objopen>()  returns a bit mask created by ORing zero or more of the following constants, which allow the auditing library to select the objects to be monitored by B<la_symbind*>():"
6216 msgstr ""
6217
6218 #. type: TP
6219 #: build/C/man7/rtld-audit.7:203
6220 #, no-wrap
6221 msgid "B<LA_FLG_BINDTO>"
6222 msgstr "B<LA_FLG_BINDTO>"
6223
6224 #. type: Plain text
6225 #: build/C/man7/rtld-audit.7:206
6226 msgid "Audit symbol bindings to this object."
6227 msgstr ""
6228
6229 #. type: TP
6230 #: build/C/man7/rtld-audit.7:206
6231 #, no-wrap
6232 msgid "B<LA_FLG_BINDFROM>"
6233 msgstr "B<LA_FLG_BINDFROM>"
6234
6235 #. type: Plain text
6236 #: build/C/man7/rtld-audit.7:209
6237 msgid "Audit symbol bindings from this object."
6238 msgstr ""
6239
6240 #. type: Plain text
6241 #: build/C/man7/rtld-audit.7:213
6242 msgid "A return value of 0 from B<la_objopen>()  indicates that no symbol bindings should be audited for this object."
6243 msgstr ""
6244
6245 #. type: SS
6246 #: build/C/man7/rtld-audit.7:213
6247 #, no-wrap
6248 msgid "la_objclose()"
6249 msgstr "la_objclose()"
6250
6251 #. type: Plain text
6252 #: build/C/man7/rtld-audit.7:217
6253 #, no-wrap
6254 msgid "B<unsigned int la_objclose(uintptr_t *>I<cookie>B<);>\n"
6255 msgstr "B<unsigned int la_objclose(uintptr_t *>I<cookie>B<);>\n"
6256
6257 #. type: Plain text
6258 #: build/C/man7/rtld-audit.7:226
6259 msgid "The dynamic linker invokes this function after any finalization code for the object has been executed, before the object is unloaded.  The I<cookie> argument is the identifier obtained from a previous invocation of B<la_objopen>()."
6260 msgstr ""
6261
6262 #. type: Plain text
6263 #: build/C/man7/rtld-audit.7:230
6264 msgid "In the current implementation, the value returned by B<la_objclose>()  is ignored."
6265 msgstr ""
6266
6267 #. type: SS
6268 #: build/C/man7/rtld-audit.7:230
6269 #, no-wrap
6270 msgid "la_preinit()"
6271 msgstr "la_preinit()"
6272
6273 #. type: Plain text
6274 #: build/C/man7/rtld-audit.7:234
6275 #, no-wrap
6276 msgid "B<void la_preinit(uintptr_t *>I<cookie>B<);>\n"
6277 msgstr "B<void la_preinit(uintptr_t *>I<cookie>B<);>\n"
6278
6279 #. type: Plain text
6280 #: build/C/man7/rtld-audit.7:244
6281 msgid "The dynamic linker invokes this function after all shared objects have been loaded, before control is passed to the application (i.e., before calling I<main>()).  Note that I<main>()  may still later dynamically load objects using B<dlopen>(3)."
6282 msgstr ""
6283
6284 #. type: SS
6285 #: build/C/man7/rtld-audit.7:244
6286 #, no-wrap
6287 msgid "la_symbind*()"
6288 msgstr "la_symbind*()"
6289
6290 #. type: Plain text
6291 #: build/C/man7/rtld-audit.7:253
6292 #, no-wrap
6293 msgid ""
6294 "B<uintptr_t la_symbind32(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
6295 "B<                       uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
6296 "B<                       unsigned int *>I<flags>B<, const char *>I<symname>B<);>\n"
6297 "B<uintptr_t la_symbind64(Elf64_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
6298 "B<                       uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
6299 "B<                       unsigned int *>I<flags>B<, const char *>I<symname>B<);>\n"
6300 msgstr ""
6301 "B<uintptr_t la_symbind32(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
6302 "B<                       uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
6303 "B<                       unsigned int *>I<flags>B<, const char *>I<symname>B<);>\n"
6304 "B<uintptr_t la_symbind64(Elf64_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
6305 "B<                       uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
6306 "B<                       unsigned int *>I<flags>B<, const char *>I<symname>B<);>\n"
6307
6308 #. type: Plain text
6309 #: build/C/man7/rtld-audit.7:265
6310 msgid "The dynamic linker invokes one of these functions when a symbol binding occurs between two shared objects that have been marked for auditing notification by B<la_objopen>().  The B<la_symbind32>()  function is employed on 32-bit platforms; the B<la_symbind64>()  function is employed on 64-bit platforms."
6311 msgstr ""
6312
6313 #. type: Plain text
6314 #: build/C/man7/rtld-audit.7:275
6315 msgid "The I<sym> argument is a pointer to a structure that provides information about the symbol being bound.  The structure definition is shown in I<E<lt>elf.hE<gt>>.  Among the fields of this structure, I<st_value> indicates the address to which the symbol is bound."
6316 msgstr ""
6317
6318 #. type: Plain text
6319 #: build/C/man7/rtld-audit.7:280
6320 msgid "The I<ndx> argument gives the index of the symbol in the symbol table of the bound shared object."
6321 msgstr ""
6322
6323 #. type: Plain text
6324 #: build/C/man7/rtld-audit.7:295
6325 msgid "The I<refcook> argument identifies the shared object that is making the symbol reference; this is the same identifier that is provided to the B<la_objopen>()  function that returned B<LA_FLG_BINDFROM>.  The I<defcook> argument identifies the shared object that defines the referenced symbol; this is the same identifier that is provided to the B<la_objopen>()  function that returned B<LA_FLG_BINDTO>."
6326 msgstr ""
6327
6328 #. type: Plain text
6329 #: build/C/man7/rtld-audit.7:299
6330 msgid "The I<symname> argument points a string containing the name of the symbol."
6331 msgstr ""
6332
6333 #.  LA_SYMB_STRUCTCALL appears to be unused
6334 #. type: Plain text
6335 #: build/C/man7/rtld-audit.7:307
6336 msgid "The I<flags> argument is a bit mask that both provides information about the symbol and can be used to modify further auditing of this PLT (Procedure Linkage Table) entry.  The dynamic linker may supply the following bit values in this argument:"
6337 msgstr ""
6338
6339 #. type: TP
6340 #: build/C/man7/rtld-audit.7:307
6341 #, no-wrap
6342 msgid "B<LA_SYMB_DLSYM>"
6343 msgstr "B<LA_SYMB_DLSYM>"
6344
6345 #. type: Plain text
6346 #: build/C/man7/rtld-audit.7:311
6347 msgid "The binding resulted from a call to B<dlsym>(3)."
6348 msgstr ""
6349
6350 #. type: TP
6351 #: build/C/man7/rtld-audit.7:311
6352 #, no-wrap
6353 msgid "B<LA_SYMB_ALTVALUE>"
6354 msgstr "B<LA_SYMB_ALTVALUE>"
6355
6356 #. type: Plain text
6357 #: build/C/man7/rtld-audit.7:316
6358 msgid "A previous B<la_symbind*>()  call returned an alternate value for this symbol."
6359 msgstr ""
6360
6361 #.  pltenter/pltexit are called for non-dynamically loaded libraries,
6362 #.  but don't seem to be called for dynamically loaded libs?
6363 #.  Is this the same on Solaris?
6364 #. type: Plain text
6365 #: build/C/man7/rtld-audit.7:330
6366 msgid "By default, if the auditing library implements B<la_pltenter>()  and B<la_pltexit>()  functions (see below), then these functions are invoked, after B<la_symbind>(), for PLT entries, each time the symbol is referenced.  The following flags can be ORed into I<*flags> to change this default behavior:"
6367 msgstr ""
6368
6369 #. type: TP
6370 #: build/C/man7/rtld-audit.7:330
6371 #, no-wrap
6372 msgid "B<LA_SYMB_NOPLTENTER>"
6373 msgstr "B<LA_SYMB_NOPLTENTER>"
6374
6375 #. type: Plain text
6376 #: build/C/man7/rtld-audit.7:335
6377 msgid "Don't call B<la_pltenter>()  for this symbol."
6378 msgstr ""
6379
6380 #. type: TP
6381 #: build/C/man7/rtld-audit.7:335
6382 #, no-wrap
6383 msgid "B<LA_SYMB_NOPLTEXIT>"
6384 msgstr "B<LA_SYMB_NOPLTEXIT>"
6385
6386 #. type: Plain text
6387 #: build/C/man7/rtld-audit.7:340
6388 msgid "Don't call B<la_pltexit>()  for this symbol."
6389 msgstr ""
6390
6391 #. type: Plain text
6392 #: build/C/man7/rtld-audit.7:351
6393 msgid "The return value of B<la_symbind32>()  and B<la_symbind64>()  is the address to which control should be passed after the function returns.  If the auditing library is simply monitoring symbol bindings, then it should return I<sym-E<gt>st_value>.  A different value may be returned if the library wishes to direct control to an alternate location."
6394 msgstr ""
6395
6396 #. type: SS
6397 #: build/C/man7/rtld-audit.7:351
6398 #, no-wrap
6399 msgid "la_pltenter()"
6400 msgstr "la_pltenter()"
6401
6402 #. type: Plain text
6403 #: build/C/man7/rtld-audit.7:357 build/C/man7/rtld-audit.7:417
6404 msgid "The precise name and argument types for this function depend on the hardware platform.  (The appropriate definition is supplied by I<E<lt>link.hE<gt>>.)  Here is the definition for x86-32:"
6405 msgstr ""
6406
6407 #. type: Plain text
6408 #: build/C/man7/rtld-audit.7:363
6409 #, no-wrap
6410 msgid ""
6411 "B<Elf32_Addr la_i86_gnu_pltenter(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
6412 "B<                 uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
6413 "B<                 La_i86_regs *>I<regs>B<, unsigned int *>I<flags>B<,>\n"
6414 "B<                 const char *>I<symname>B<, long int *>I<framesizep>B<);>\n"
6415 msgstr ""
6416 "B<Elf32_Addr la_i86_gnu_pltenter(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
6417 "B<                 uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
6418 "B<                 La_i86_regs *>I<regs>B<, unsigned int *>I<flags>B<,>\n"
6419 "B<                 const char *>I<symname>B<, long int *>I<framesizep>B<);>\n"
6420
6421 #. type: Plain text
6422 #: build/C/man7/rtld-audit.7:367
6423 msgid "This function is invoked just before a PLT entry is called, between two shared objects that have been marked for binding notification."
6424 msgstr ""
6425
6426 #. type: Plain text
6427 #: build/C/man7/rtld-audit.7:377 build/C/man7/rtld-audit.7:440
6428 msgid "The I<sym>, I<ndx>, I<refcook>, I<defcook>, and I<symname> are as for B<la_symbind*>()."
6429 msgstr ""
6430
6431 #. type: Plain text
6432 #: build/C/man7/rtld-audit.7:384
6433 msgid "The I<regs> argument points to a structure (defined in I<E<lt>link.hE<gt>>)  containing the values of registers to be used for the call to this PLT entry."
6434 msgstr ""
6435
6436 #. type: Plain text
6437 #: build/C/man7/rtld-audit.7:390
6438 msgid "The I<flags> argument points to a bit mask that conveys information about, and can be used to modify subsequent auditing of, this PLT entry, as for B<la_symbind*>()."
6439 msgstr ""
6440
6441 #.  FIXME . Is the following correct?
6442 #. type: Plain text
6443 #: build/C/man7/rtld-audit.7:406
6444 msgid "The I<framesizep> argument points to a I<long\\ int> buffer that can be used to explicitly set the frame size used for the call to this PLT entry.  If different B<la_pltenter>()  invocations for this symbol return different values, then the maximum returned value is used.  The B<la_pltenter>()  function is called only if this buffer is explicitly set to a suitable value."
6445 msgstr ""
6446
6447 #. type: Plain text
6448 #: build/C/man7/rtld-audit.7:411
6449 msgid "The return value of B<la_pltenter>()  is as for B<la_symbind*>()."
6450 msgstr ""
6451
6452 #. type: SS
6453 #: build/C/man7/rtld-audit.7:411
6454 #, no-wrap
6455 msgid "la_pltexit()"
6456 msgstr "la_pltexit()"
6457
6458 #. type: Plain text
6459 #: build/C/man7/rtld-audit.7:423
6460 #, no-wrap
6461 msgid ""
6462 "B<unsigned int la_i86_gnu_pltexit(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
6463 "B<                 uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
6464 "B<                 const La_i86_regs *>I<inregs>B<, La_i86_retval *>I<outregs>B<,>\n"
6465 "B<                 const char *>I<symname>B<);>\n"
6466 msgstr ""
6467 "B<unsigned int la_i86_gnu_pltexit(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
6468 "B<                 uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
6469 "B<                 const La_i86_regs *>I<inregs>B<, La_i86_retval *>I<outregs>B<,>\n"
6470 "B<                 const char *>I<symname>B<);>\n"
6471
6472 #. type: Plain text
6473 #: build/C/man7/rtld-audit.7:430
6474 msgid "This function is called when a PLT entry, made between two shared objects that have been marked for binding notification, returns.  The function is called just before control returns to the caller of the PLT entry."
6475 msgstr ""
6476
6477 #. type: Plain text
6478 #: build/C/man7/rtld-audit.7:453
6479 msgid "The I<inregs> argument points to a structure (defined in I<E<lt>link.hE<gt>>)  containing the values of registers used for the call to this PLT entry.  The I<outregs> argument points to a structure (defined in I<E<lt>link.hE<gt>>)  containing return values for the call to this PLT entry.  These values can be modified by the caller, and the changes will be visible to the caller of the PLT entry."
6480 msgstr ""
6481
6482 #.  This differs from Solaris, where an audit library that monitors
6483 #.  symbol binding should return the value of the 'retval' argument
6484 #.  (not provided by GNU, but equivalent to returning outregs->lrv_eax
6485 #.  on (say) x86-32).
6486 #. type: Plain text
6487 #: build/C/man7/rtld-audit.7:461
6488 msgid "In the current GNU implementation, the return value of B<la_pltexit>()  is ignored."
6489 msgstr ""
6490
6491 #. type: Plain text
6492 #: build/C/man7/rtld-audit.7:467
6493 msgid "This API is nonstandard, but very similar to the Solaris API, described in the Solaris I<Linker and Libraries Guide>, in the chapter I<Runtime Linker Auditing Interface>."
6494 msgstr ""
6495
6496 #. type: Plain text
6497 #: build/C/man7/rtld-audit.7:470
6498 msgid "Note the following differences from the Solaris dynamic linker auditing API:"
6499 msgstr ""
6500
6501 #. type: IP
6502 #: build/C/man7/rtld-audit.7:470 build/C/man7/rtld-audit.7:474
6503 #: build/C/man7/rtld-audit.7:482
6504 #, no-wrap
6505 msgid "*"
6506 msgstr "*"
6507
6508 #. type: Plain text
6509 #: build/C/man7/rtld-audit.7:474
6510 msgid "The Solaris B<la_objfilter>()  interface is not supported by the GNU implementation."
6511 msgstr ""
6512
6513 #. type: Plain text
6514 #: build/C/man7/rtld-audit.7:482
6515 msgid "The Solaris B<la_symbind32>()  and B<la_pltexit>()  functions do not provide a I<symname> argument."
6516 msgstr ""
6517
6518 #. type: Plain text
6519 #: build/C/man7/rtld-audit.7:492
6520 msgid "The Solaris B<la_pltexit>()  function does not provide I<inregs> and I<outregs> arguments (but does provide a I<retval> argument with the function return value)."
6521 msgstr ""
6522
6523 #.  FIXME . Specifying multiple audit libraries doesn't work on GNU.
6524 #.  My simple tests on Solaris work okay, but not on Linux -- mtk, Jan 2009
6525 #.  glibc bug filed: http://sourceware.org/bugzilla/show_bug.cgi?id=9733
6526 #.  Reportedly, this is fixed on 16 Mar 2009 (i.e., for glibc 2.10)
6527 #. type: Plain text
6528 #: build/C/man7/rtld-audit.7:502
6529 msgid "In glibc versions up to and include 2.9, specifying more than one audit library in B<LD_AUDIT> results in a run-time crash.  This is reportedly fixed in glibc 2.10."
6530 msgstr ""
6531
6532 #. type: Plain text
6533 #: build/C/man7/rtld-audit.7:506
6534 #, no-wrap
6535 msgid ""
6536 "#include E<lt>link.hE<gt>\n"
6537 "#include E<lt>stdio.hE<gt>\n"
6538 msgstr ""
6539 "#include E<lt>link.hE<gt>\n"
6540 "#include E<lt>stdio.hE<gt>\n"
6541
6542 #. type: Plain text
6543 #: build/C/man7/rtld-audit.7:511
6544 #, no-wrap
6545 msgid ""
6546 "unsigned int\n"
6547 "la_version(unsigned int version)\n"
6548 "{\n"
6549 "    printf(\"la_version(): %d\\en\", version);\n"
6550 msgstr ""
6551 "unsigned int\n"
6552 "la_version(unsigned int version)\n"
6553 "{\n"
6554 "    printf(\"la_version(): %d\\en\", version);\n"
6555
6556 #. type: Plain text
6557 #: build/C/man7/rtld-audit.7:514
6558 #, no-wrap
6559 msgid ""
6560 "    return version;\n"
6561 "}\n"
6562 msgstr ""
6563 "    return version;\n"
6564 "}\n"
6565
6566 #. type: Plain text
6567 #: build/C/man7/rtld-audit.7:527
6568 #, no-wrap
6569 msgid ""
6570 "char *\n"
6571 "la_objsearch(const char *name, uintptr_t *cookie, unsigned int flag)\n"
6572 "{\n"
6573 "    printf(\"la_objsearch(): name = %s; cookie = %x\", name, cookie);\n"
6574 "    printf(\"; flag = %s\\en\",\n"
6575 "            (flag == LA_SER_ORIG) ?    \"LA_SER_ORIG\" :\n"
6576 "            (flag == LA_SER_LIBPATH) ? \"LA_SER_LIBPATH\" :\n"
6577 "            (flag == LA_SER_RUNPATH) ? \"LA_SER_RUNPATH\" :\n"
6578 "            (flag == LA_SER_DEFAULT) ? \"LA_SER_DEFAULT\" :\n"
6579 "            (flag == LA_SER_CONFIG) ?  \"LA_SER_CONFIG\" :\n"
6580 "            (flag == LA_SER_SECURE) ?  \"LA_SER_SECURE\" :\n"
6581 "            \"???\");\n"
6582 msgstr ""
6583 "char *\n"
6584 "la_objsearch(const char *name, uintptr_t *cookie, unsigned int flag)\n"
6585 "{\n"
6586 "    printf(\"la_objsearch(): name = %s; cookie = %x\", name, cookie);\n"
6587 "    printf(\"; flag = %s\\en\",\n"
6588 "            (flag == LA_SER_ORIG) ?    \"LA_SER_ORIG\" :\n"
6589 "            (flag == LA_SER_LIBPATH) ? \"LA_SER_LIBPATH\" :\n"
6590 "            (flag == LA_SER_RUNPATH) ? \"LA_SER_RUNPATH\" :\n"
6591 "            (flag == LA_SER_DEFAULT) ? \"LA_SER_DEFAULT\" :\n"
6592 "            (flag == LA_SER_CONFIG) ?  \"LA_SER_CONFIG\" :\n"
6593 "            (flag == LA_SER_SECURE) ?  \"LA_SER_SECURE\" :\n"
6594 "            \"???\");\n"
6595
6596 #. type: Plain text
6597 #: build/C/man7/rtld-audit.7:530
6598 #, no-wrap
6599 msgid ""
6600 "    return name;\n"
6601 "}\n"
6602 msgstr ""
6603 "    return name;\n"
6604 "}\n"
6605
6606 #. type: Plain text
6607 #: build/C/man7/rtld-audit.7:540
6608 #, no-wrap
6609 msgid ""
6610 "void\n"
6611 "la_activity (uintptr_t *cookie, unsigned int flag)\n"
6612 "{\n"
6613 "    printf(\"la_activity(): cookie = %x; flag = %s\\en\", cookie,\n"
6614 "            (flag == LA_ACT_CONSISTENT) ? \"LA_ACT_CONSISTENT\" :\n"
6615 "            (flag == LA_ACT_ADD) ?        \"LA_ACT_ADD\" :\n"
6616 "            (flag == LA_ACT_DELETE) ?     \"LA_ACT_DELETE\" :\n"
6617 "            \"???\");\n"
6618 "}\n"
6619 msgstr ""
6620 "void\n"
6621 "la_activity (uintptr_t *cookie, unsigned int flag)\n"
6622 "{\n"
6623 "    printf(\"la_activity(): cookie = %x; flag = %s\\en\", cookie,\n"
6624 "            (flag == LA_ACT_CONSISTENT) ? \"LA_ACT_CONSISTENT\" :\n"
6625 "            (flag == LA_ACT_ADD) ?        \"LA_ACT_ADD\" :\n"
6626 "            (flag == LA_ACT_DELETE) ?     \"LA_ACT_DELETE\" :\n"
6627 "            \"???\");\n"
6628 "}\n"
6629
6630 #. type: Plain text
6631 #: build/C/man7/rtld-audit.7:550
6632 #, no-wrap
6633 msgid ""
6634 "unsigned int\n"
6635 "la_objopen(struct link_map *map, Lmid_t lmid, uintptr_t *cookie)\n"
6636 "{\n"
6637 "    printf(\"la_objopen(): loading \\e\"%s\\e\"; lmid = %s; cookie=%x\\en\",\n"
6638 "            map-E<gt>l_name,\n"
6639 "            (lmid == LM_ID_BASE) ?  \"LM_ID_BASE\" :\n"
6640 "            (lmid == LM_ID_NEWLM) ? \"LM_ID_NEWLM\" :\n"
6641 "            \"???\",\n"
6642 "            cookie);\n"
6643 msgstr ""
6644 "unsigned int\n"
6645 "la_objopen(struct link_map *map, Lmid_t lmid, uintptr_t *cookie)\n"
6646 "{\n"
6647 "    printf(\"la_objopen(): loading \\e\"%s\\e\"; lmid = %s; cookie=%x\\en\",\n"
6648 "            map-E<gt>l_name,\n"
6649 "            (lmid == LM_ID_BASE) ?  \"LM_ID_BASE\" :\n"
6650 "            (lmid == LM_ID_NEWLM) ? \"LM_ID_NEWLM\" :\n"
6651 "            \"???\",\n"
6652 "            cookie);\n"
6653
6654 #. type: Plain text
6655 #: build/C/man7/rtld-audit.7:553
6656 #, no-wrap
6657 msgid ""
6658 "    return LA_FLG_BINDTO | LA_FLG_BINDFROM;\n"
6659 "}\n"
6660 msgstr ""
6661 "    return LA_FLG_BINDTO | LA_FLG_BINDFROM;\n"
6662 "}\n"
6663
6664 #. type: Plain text
6665 #: build/C/man7/rtld-audit.7:558
6666 #, no-wrap
6667 msgid ""
6668 "unsigned int\n"
6669 "la_objclose (uintptr_t *cookie)\n"
6670 "{\n"
6671 "    printf(\"la_objclose(): %x\\en\", cookie);\n"
6672 msgstr ""
6673 "unsigned int\n"
6674 "la_objclose (uintptr_t *cookie)\n"
6675 "{\n"
6676 "    printf(\"la_objclose(): %x\\en\", cookie);\n"
6677
6678 #. type: Plain text
6679 #: build/C/man7/rtld-audit.7:561
6680 #, no-wrap
6681 msgid ""
6682 "    return 0;\n"
6683 "}\n"
6684 msgstr ""
6685 "    return 0;\n"
6686 "}\n"
6687
6688 #. type: Plain text
6689 #: build/C/man7/rtld-audit.7:567
6690 #, no-wrap
6691 msgid ""
6692 "void\n"
6693 "la_preinit(uintptr_t *cookie)\n"
6694 "{\n"
6695 "    printf(\"la_preinit(): %x\\en\", cookie);\n"
6696 "}\n"
6697 msgstr ""
6698 "void\n"
6699 "la_preinit(uintptr_t *cookie)\n"
6700 "{\n"
6701 "    printf(\"la_preinit(): %x\\en\", cookie);\n"
6702 "}\n"
6703
6704 #. type: Plain text
6705 #: build/C/man7/rtld-audit.7:576
6706 #, no-wrap
6707 msgid ""
6708 "uintptr_t\n"
6709 "la_symbind32(Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
6710 "        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
6711 "{\n"
6712 "    printf(\"la_symbind32(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
6713 "            symname, sym-E<gt>st_value);\n"
6714 "    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
6715 "    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
6716 msgstr ""
6717 "uintptr_t\n"
6718 "la_symbind32(Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
6719 "        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
6720 "{\n"
6721 "    printf(\"la_symbind32(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
6722 "            symname, sym-E<gt>st_value);\n"
6723 "    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
6724 "    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
6725
6726 #. type: Plain text
6727 #: build/C/man7/rtld-audit.7:579 build/C/man7/rtld-audit.7:591
6728 #: build/C/man7/rtld-audit.7:601
6729 #, no-wrap
6730 msgid ""
6731 "    return sym-E<gt>st_value;\n"
6732 "}\n"
6733 msgstr ""
6734 "    return sym-E<gt>st_value;\n"
6735 "}\n"
6736
6737 #. type: Plain text
6738 #: build/C/man7/rtld-audit.7:588
6739 #, no-wrap
6740 msgid ""
6741 "uintptr_t\n"
6742 "la_symbind64(Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
6743 "        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
6744 "{\n"
6745 "    printf(\"la_symbind64(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
6746 "            symname, sym-E<gt>st_value);\n"
6747 "    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
6748 "    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
6749 msgstr ""
6750 "uintptr_t\n"
6751 "la_symbind64(Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
6752 "        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
6753 "{\n"
6754 "    printf(\"la_symbind64(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
6755 "            symname, sym-E<gt>st_value);\n"
6756 "    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
6757 "    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
6758
6759 #. type: Plain text
6760 #: build/C/man7/rtld-audit.7:598
6761 #, no-wrap
6762 msgid ""
6763 "Elf32_Addr\n"
6764 "la_i86_gnu_pltenter(Elf32_Sym *sym, unsigned int ndx,\n"
6765 "        uintptr_t *refcook, uintptr_t *defcook, La_i86_regs *regs,\n"
6766 "        unsigned int *flags, const char *symname, long int *framesizep)\n"
6767 "{\n"
6768 "    printf(\"la_i86_gnu_pltenter(): %s (%p)\\en\", symname, sym-E<gt>st_value);\n"
6769 msgstr ""
6770 "Elf32_Addr\n"
6771 "la_i86_gnu_pltenter(Elf32_Sym *sym, unsigned int ndx,\n"
6772 "        uintptr_t *refcook, uintptr_t *defcook, La_i86_regs *regs,\n"
6773 "        unsigned int *flags, const char *symname, long int *framesizep)\n"
6774 "{\n"
6775 "    printf(\"la_i86_gnu_pltenter(): %s (%p)\\en\", symname, sym-E<gt>st_value);\n"
6776
6777 #. type: Plain text
6778 #: build/C/man7/rtld-audit.7:607
6779 msgid "B<ldd>(1), B<dlopen>(3), B<ld.so>(8), B<ldconfig>(8)"
6780 msgstr "B<ldd>(1), B<dlopen>(3), B<ld.so>(8), B<ldconfig>(8)"
6781
6782 #. type: TH
6783 #: build/C/man8/sln.8:25
6784 #, no-wrap
6785 msgid "SLN"
6786 msgstr "SLN"
6787
6788 #. type: TH
6789 #: build/C/man8/sln.8:25
6790 #, no-wrap
6791 msgid "2013-02-10"
6792 msgstr "2013-02-10"
6793
6794 #. type: Plain text
6795 #: build/C/man8/sln.8:28
6796 msgid "sln - create symbolic links"
6797 msgstr "sln - シンボリックリンクを作成する"
6798
6799 #. type: Plain text
6800 #: build/C/man8/sln.8:30
6801 msgid "B<sln>I< source dest>"
6802 msgstr "B<sln>I< source dest>"
6803
6804 #. type: Plain text
6805 #: build/C/man8/sln.8:32
6806 msgid "B<sln>I< filelist>"
6807 msgstr "B<sln>I< filelist>"
6808
6809 #. type: Plain text
6810 #: build/C/man8/sln.8:42
6811 msgid "The B<sln> program creates symbolic links.  Unlike the B<ln>(1)  program, it is statically linked.  This means that if for some reason the dynamic linker is not working, B<sln> can be used to make symbolic links to dynamic libraries."
6812 msgstr "B<sln> プログラムはシンボリックリンクの作成を行う。 B<ln>(1) プログラムと異なり、 このプログラムは静的にリンクされている。 つまり、 何らかの理由で動的リンカーが動作しない場合に、 B<sln> を使って、 動的ライブラリへのシンボリックリンクを作成することができる。"
6813
6814 #. type: Plain text
6815 #: build/C/man8/sln.8:48
6816 msgid "The command line has two forms.  In the first form, it creates I<dest> as a new symbolic link to I<source>."
6817 msgstr "コマンドラインには二つの形がある。 一つ目の形では、 I<source> へのシンボリックリンクとして I<dest> を作成する。"
6818
6819 #. type: Plain text
6820 #: build/C/man8/sln.8:56
6821 msgid "In the second form, I<filelist> is a list of space-separated pathname pairs, and the effect is as if B<sln> was executed once for each line of the file, with the two pathnames as the arguments."
6822 msgstr "二つ目の形式では、 I<filelist> はスペース区切りのパス名の組のリストで、 このファイルの各行について、二つのパス名を引き数として 1 回ずつ B<sln> を実行したのと同じ結果となる。"
6823
6824 #. type: Plain text
6825 #: build/C/man8/sln.8:60
6826 msgid "The B<sln> program supports no command-line options."
6827 msgstr "B<sln> プログラムには、 コマンドラインオプションはない。"
6828
6829 #. type: Plain text
6830 #: build/C/man8/sln.8:64
6831 msgid "B<ln>(1), B<ldconfig>(8), B<ld.so>(8)"
6832 msgstr "B<ln>(1), B<ldconfig>(8), B<ld.so>(8)"
6833
6834 #. type: TH
6835 #: build/C/man1/sprof.1:25
6836 #, no-wrap
6837 msgid "SPROF"
6838 msgstr "SPROF"
6839
6840 #. type: TH
6841 #: build/C/man1/sprof.1:25
6842 #, no-wrap
6843 msgid "2014-06-24"
6844 msgstr "2014-06-24"
6845
6846 #. type: Plain text
6847 #: build/C/man1/sprof.1:28
6848 msgid "sprof - read and display shared object profiling data"
6849 msgstr ""
6850
6851 #. type: Plain text
6852 #: build/C/man1/sprof.1:32
6853 #, no-wrap
6854 msgid "B<sprof> [I<option>]... I<shared-object-path> [I<profile-data-path>]\n"
6855 msgstr "B<sprof> [I<option>]... I<shared-object-path> [I<profile-data-path>]\n"
6856
6857 #. type: Plain text
6858 #: build/C/man1/sprof.1:46
6859 msgid "The B<sprof> command displays a profiling summary for the shared object specified as its first command-line argument.  The profiling summary is created using previously generated profiling data in the (optional) second command-line argument.  If the profiling data pathname is omitted, then B<sprof> will attempt to deduce it using the soname of the shared object, looking for a file with the name I<E<lt>sonameE<gt>.profile> in the current directory."
6860 msgstr ""
6861
6862 #. type: Plain text
6863 #: build/C/man1/sprof.1:49
6864 msgid "The following command-line options specify the profile output to be produced:"
6865 msgstr ""
6866
6867 #. type: TP
6868 #: build/C/man1/sprof.1:49
6869 #, no-wrap
6870 msgid "B<-c>, B<--call-pairs>"
6871 msgstr "B<-c>, B<--call-pairs>"
6872
6873 #. type: Plain text
6874 #: build/C/man1/sprof.1:54
6875 msgid "Print a list of pairs of call paths for the interfaces exported by the shared object, along with the number of times each path is used."
6876 msgstr ""
6877
6878 #. type: TP
6879 #: build/C/man1/sprof.1:54
6880 #, no-wrap
6881 msgid "B<-p>, B<--flat-profile>"
6882 msgstr "B<-p>, B<--flat-profile>"
6883
6884 #. type: Plain text
6885 #: build/C/man1/sprof.1:58
6886 msgid "Generate a flat profile of all of the functions in the monitored object, with counts and ticks."
6887 msgstr ""
6888
6889 #. type: TP
6890 #: build/C/man1/sprof.1:58
6891 #, no-wrap
6892 msgid "B<-q>, B<--graph>"
6893 msgstr "B<-q>, B<--graph>"
6894
6895 #. type: Plain text
6896 #: build/C/man1/sprof.1:61
6897 msgid "Generate a call graph."
6898 msgstr ""
6899
6900 #. type: Plain text
6901 #: build/C/man1/sprof.1:64
6902 msgid "If none of the above options is specified, then the default behavior is to display a flat profile and a call graph."
6903 msgstr ""
6904
6905 #. type: Plain text
6906 #: build/C/man1/sprof.1:66
6907 msgid "The following additional command-line options are available:"
6908 msgstr ""
6909
6910 #. type: Plain text
6911 #: build/C/man1/sprof.1:69
6912 msgid "Display a summary of command-line options and arguments and exit."
6913 msgstr ""
6914
6915 #. type: Plain text
6916 #: build/C/man1/sprof.1:72
6917 msgid "Display a short usage message and exit."
6918 msgstr ""
6919
6920 #. type: Plain text
6921 #: build/C/man1/sprof.1:75
6922 msgid "Display the program version and exit."
6923 msgstr ""
6924
6925 #. type: Plain text
6926 #: build/C/man1/sprof.1:79
6927 msgid "The B<sprof> command is a GNU extension, not present in POSIX.1."
6928 msgstr ""
6929
6930 #. type: Plain text
6931 #: build/C/man1/sprof.1:85
6932 msgid "The following example demonstrates the use of B<sprof>.  The example consists of a main program that calls two functions in a shared library.  First, the code of the main program:"
6933 msgstr ""
6934
6935 #. type: Plain text
6936 #: build/C/man1/sprof.1:90
6937 #, no-wrap
6938 msgid ""
6939 "$ B<cat prog.c>\n"
6940 "#include E<lt>stdlib.hE<gt>\n"
6941 msgstr ""
6942 "$ B<cat prog.c>\n"
6943 "#include E<lt>stdlib.hE<gt>\n"
6944
6945 #. type: Plain text
6946 #: build/C/man1/sprof.1:93
6947 #, no-wrap
6948 msgid ""
6949 "void x1(void);\n"
6950 "void x2(void);\n"
6951 msgstr ""
6952 "void x1(void);\n"
6953 "void x2(void);\n"
6954
6955 #. type: Plain text
6956 #: build/C/man1/sprof.1:101
6957 #, no-wrap
6958 msgid ""
6959 "int\n"
6960 "main(int argc, char *argv[])\n"
6961 "{\n"
6962 "    x1();\n"
6963 "    x2();\n"
6964 "    exit(EXIT_SUCCESS);\n"
6965 "}\n"
6966 msgstr ""
6967 "int\n"
6968 "main(int argc, char *argv[])\n"
6969 "{\n"
6970 "    x1();\n"
6971 "    x2();\n"
6972 "    exit(EXIT_SUCCESS);\n"
6973 "}\n"
6974
6975 #. type: Plain text
6976 #: build/C/man1/sprof.1:110
6977 msgid "The functions I<x1()> and I<x2()> are defined in the following source file that is used to construct the shared library:"
6978 msgstr ""
6979
6980 #. type: Plain text
6981 #: build/C/man1/sprof.1:115
6982 #, no-wrap
6983 msgid ""
6984 "$ B<cat libdemo.c>\n"
6985 "#include E<lt>unistd.hE<gt>\n"
6986 msgstr ""
6987 "$ B<cat libdemo.c>\n"
6988 "#include E<lt>unistd.hE<gt>\n"
6989
6990 #. type: Plain text
6991 #: build/C/man1/sprof.1:120
6992 #, no-wrap
6993 msgid ""
6994 "void\n"
6995 "consumeCpu1(int lim)\n"
6996 "{\n"
6997 "    int j;\n"
6998 msgstr ""
6999 "void\n"
7000 "consumeCpu1(int lim)\n"
7001 "{\n"
7002 "    int j;\n"
7003
7004 #. type: Plain text
7005 #: build/C/man1/sprof.1:124 build/C/man1/sprof.1:141
7006 #, no-wrap
7007 msgid ""
7008 "    for (j = 0; j E<lt> lim; j++)\n"
7009 "\tgetppid();\n"
7010 "}\n"
7011 msgstr ""
7012 "    for (j = 0; j E<lt> lim; j++)\n"
7013 "\tgetppid();\n"
7014 "}\n"
7015
7016 #. type: Plain text
7017 #: build/C/man1/sprof.1:128
7018 #, no-wrap
7019 msgid ""
7020 "void\n"
7021 "x1(void) {\n"
7022 "    int j;\n"
7023 msgstr ""
7024 "void\n"
7025 "x1(void) {\n"
7026 "    int j;\n"
7027
7028 #. type: Plain text
7029 #: build/C/man1/sprof.1:132
7030 #, no-wrap
7031 msgid ""
7032 "    for (j = 0; j E<lt> 100; j++)\n"
7033 "\tconsumeCpu1(200000);\n"
7034 "}\n"
7035 msgstr ""
7036 "    for (j = 0; j E<lt> 100; j++)\n"
7037 "\tconsumeCpu1(200000);\n"
7038 "}\n"
7039
7040 #. type: Plain text
7041 #: build/C/man1/sprof.1:137
7042 #, no-wrap
7043 msgid ""
7044 "void\n"
7045 "consumeCpu2(int lim)\n"
7046 "{\n"
7047 "    int j;\n"
7048 msgstr ""
7049 "void\n"
7050 "consumeCpu2(int lim)\n"
7051 "{\n"
7052 "    int j;\n"
7053
7054 #. type: Plain text
7055 #: build/C/man1/sprof.1:146
7056 #, no-wrap
7057 msgid ""
7058 "void\n"
7059 "x2(void)\n"
7060 "{\n"
7061 "    int j;\n"
7062 msgstr ""
7063 "void\n"
7064 "x2(void)\n"
7065 "{\n"
7066 "    int j;\n"
7067
7068 #. type: Plain text
7069 #: build/C/man1/sprof.1:150
7070 #, no-wrap
7071 msgid ""
7072 "    for (j = 0; j E<lt> 1000; j++)\n"
7073 "\tconsumeCpu2(10000);\n"
7074 "}\n"
7075 msgstr ""
7076 "    for (j = 0; j E<lt> 1000; j++)\n"
7077 "\tconsumeCpu2(10000);\n"
7078 "}\n"
7079
7080 #. type: Plain text
7081 #: build/C/man1/sprof.1:157
7082 msgid "Now we construct the shared library with the real name I<libdemo.so.1.0.1>, and the soname I<libdemo.so.1>:"
7083 msgstr ""
7084
7085 #. type: Plain text
7086 #: build/C/man1/sprof.1:162
7087 #, no-wrap
7088 msgid ""
7089 "$ B<cc -g -fPIC -shared -Wl,-soname,libdemo.so.1 \\e>\n"
7090 "        B<-o libdemo.so.1.0.1 libdemo.c>\n"
7091 msgstr ""
7092 "$ B<cc -g -fPIC -shared -Wl,-soname,libdemo.so.1 \\e>\n"
7093 "        B<-o libdemo.so.1.0.1 libdemo.c>\n"
7094
7095 #. type: Plain text
7096 #: build/C/man1/sprof.1:167
7097 msgid "Then we construct symbolic links for the library soname and the library linker name:"
7098 msgstr ""
7099
7100 #. type: Plain text
7101 #: build/C/man1/sprof.1:172
7102 #, no-wrap
7103 msgid ""
7104 "$ B<ln -sf libdemo.so.1.0.1 libdemo.so.1>\n"
7105 "$ B<ln -sf libdemo.so.1 libdemo.so>\n"
7106 msgstr ""
7107 "$ B<ln -sf libdemo.so.1.0.1 libdemo.so.1>\n"
7108 "$ B<ln -sf libdemo.so.1 libdemo.so>\n"
7109
7110 #. type: Plain text
7111 #: build/C/man1/sprof.1:177
7112 msgid "Next, we compile the main program, linking it against the shared library, and then list the dynamic dependencies of the program:"
7113 msgstr ""
7114
7115 #. type: Plain text
7116 #: build/C/man1/sprof.1:186
7117 #, no-wrap
7118 msgid ""
7119 "$ B<cc -g -o prog prog.c -L. -ldemo>\n"
7120 "$ B<ldd prog>\n"
7121 "\tlinux-vdso.so.1 =E<gt>  (0x00007fff86d66000)\n"
7122 "\tlibdemo.so.1 =E<gt> not found\n"
7123 "\tlibc.so.6 =E<gt> /lib64/libc.so.6 (0x00007fd4dc138000)\n"
7124 "\t/lib64/ld-linux-x86-64.so.2 (0x00007fd4dc51f000)\n"
7125 msgstr ""
7126 "$ B<cc -g -o prog prog.c -L. -ldemo>\n"
7127 "$ B<ldd prog>\n"
7128 "\tlinux-vdso.so.1 =E<gt>  (0x00007fff86d66000)\n"
7129 "\tlibdemo.so.1 =E<gt> not found\n"
7130 "\tlibc.so.6 =E<gt> /lib64/libc.so.6 (0x00007fd4dc138000)\n"
7131 "\t/lib64/ld-linux-x86-64.so.2 (0x00007fd4dc51f000)\n"
7132
7133 #. type: Plain text
7134 #: build/C/man1/sprof.1:193
7135 msgid "In order to get profiling information for the shared library, we define the environment variable B<LD_PROFILE> with the soname of the library:"
7136 msgstr ""
7137
7138 #. type: Plain text
7139 #: build/C/man1/sprof.1:197
7140 #, no-wrap
7141 msgid "$ B<export LD_PROFILE=libdemo.so.1>\n"
7142 msgstr "$ B<export LD_PROFILE=libdemo.so.1>\n"
7143
7144 #. type: Plain text
7145 #: build/C/man1/sprof.1:204
7146 msgid "We then define the environment variable B<LD_PROFILE_OUTPUT> with the pathname of the directory where profile output should be written, and create that directory if it does not exist already:"
7147 msgstr ""
7148
7149 #. type: Plain text
7150 #: build/C/man1/sprof.1:209
7151 #, no-wrap
7152 msgid ""
7153 "$ B<export LD_PROFILE_OUTPUT=$(pwd)/prof_data>\n"
7154 "$ B<mkdir -p $LD_PROFILE_OUTPUT>\n"
7155 msgstr ""
7156 "$ B<export LD_PROFILE_OUTPUT=$(pwd)/prof_data>\n"
7157 "$ B<mkdir -p $LD_PROFILE_OUTPUT>\n"
7158
7159 #. type: Plain text
7160 #: build/C/man1/sprof.1:217
7161 msgid "B<LD_PROFILE> causes profiling output to be I<appended> to the output file if it already exists, so we ensure that there is no preexisting profiling data:"
7162 msgstr ""
7163
7164 #. type: Plain text
7165 #: build/C/man1/sprof.1:221
7166 #, no-wrap
7167 msgid "$ B<rm -f $LD_PROFILE_OUTPUT/$LD_PROFILE.profile>\n"
7168 msgstr "$ B<rm -f $LD_PROFILE_OUTPUT/$LD_PROFILE.profile>\n"
7169
7170 #. type: Plain text
7171 #: build/C/man1/sprof.1:227
7172 msgid "We then run the program to produce the profiling output, which is written to a file in the directory specified in B<LD_PROFILE_OUTPUT>:"
7173 msgstr ""
7174
7175 #. type: Plain text
7176 #: build/C/man1/sprof.1:233
7177 #, no-wrap
7178 msgid ""
7179 "$ B<LD_LIBRARY_PATH=. ./prog>\n"
7180 "$ B<ls prof_data>\n"
7181 "libdemo.so.1.profile\n"
7182 msgstr ""
7183 "$ B<LD_LIBRARY_PATH=. ./prog>\n"
7184 "$ B<ls prof_data>\n"
7185 "libdemo.so.1.profile\n"
7186
7187 #. type: Plain text
7188 #: build/C/man1/sprof.1:239
7189 msgid "We then use the B<sprof -p> option to generate a flat profile with counts and ticks:"
7190 msgstr ""
7191
7192 #. type: Plain text
7193 #: build/C/man1/sprof.1:244
7194 #, no-wrap
7195 msgid ""
7196 "$ B<sprof -p libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile>\n"
7197 "Flat profile:\n"
7198 msgstr ""
7199 "$ B<sprof -p libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile>\n"
7200 "Flat profile:\n"
7201
7202 #. type: Plain text
7203 #: build/C/man1/sprof.1:252
7204 #, no-wrap
7205 msgid ""
7206 "Each sample counts as 0.01 seconds.\n"
7207 "  %   cumulative   self              self     total\n"
7208 " time   seconds   seconds    calls  us/call  us/call  name\n"
7209 " 60.00      0.06     0.06      100   600.00           consumeCpu1\n"
7210 " 40.00      0.10     0.04     1000    40.00           consumeCpu2\n"
7211 "  0.00      0.10     0.00        1     0.00           x1\n"
7212 "  0.00      0.10     0.00        1     0.00           x2\n"
7213 msgstr ""
7214 "Each sample counts as 0.01 seconds.\n"
7215 "  %   cumulative   self              self     total\n"
7216 " time   seconds   seconds    calls  us/call  us/call  name\n"
7217 " 60.00      0.06     0.06      100   600.00           consumeCpu1\n"
7218 " 40.00      0.10     0.04     1000    40.00           consumeCpu2\n"
7219 "  0.00      0.10     0.00        1     0.00           x1\n"
7220 "  0.00      0.10     0.00        1     0.00           x2\n"
7221
7222 #. type: Plain text
7223 #: build/C/man1/sprof.1:258
7224 msgid "The B<sprof -q> option generates a call graph:"
7225 msgstr ""
7226
7227 #. type: Plain text
7228 #: build/C/man1/sprof.1:262
7229 #, no-wrap
7230 msgid "$ B<sprof -q libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile>\n"
7231 msgstr "$ B<sprof -q libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile>\n"
7232
7233 #. type: Plain text
7234 #: build/C/man1/sprof.1:264
7235 #, no-wrap
7236 msgid "index % time    self  children    called     name\n"
7237 msgstr "index % time    self  children    called     name\n"
7238
7239 #. type: Plain text
7240 #: build/C/man1/sprof.1:279
7241 #, no-wrap
7242 msgid ""
7243 "                0.00    0.00      100/100         x1 [1]\n"
7244 "[0]    100.0    0.00    0.00      100         consumeCpu1 [0]\n"
7245 "-----------------------------------------------\n"
7246 "                0.00    0.00        1/1           E<lt>UNKNOWNE<gt>\n"
7247 "[1]      0.0    0.00    0.00        1         x1 [1]\n"
7248 "                0.00    0.00      100/100         consumeCpu1 [0]\n"
7249 "-----------------------------------------------\n"
7250 "                0.00    0.00     1000/1000        x2 [3]\n"
7251 "[2]      0.0    0.00    0.00     1000         consumeCpu2 [2]\n"
7252 "-----------------------------------------------\n"
7253 "                0.00    0.00        1/1           E<lt>UNKNOWNE<gt>\n"
7254 "[3]      0.0    0.00    0.00        1         x2 [3]\n"
7255 "                0.00    0.00     1000/1000        consumeCpu2 [2]\n"
7256 "-----------------------------------------------\n"
7257 msgstr ""
7258 "                0.00    0.00      100/100         x1 [1]\n"
7259 "[0]    100.0    0.00    0.00      100         consumeCpu1 [0]\n"
7260 "-----------------------------------------------\n"
7261 "                0.00    0.00        1/1           E<lt>UNKNOWNE<gt>\n"
7262 "[1]      0.0    0.00    0.00        1         x1 [1]\n"
7263 "                0.00    0.00      100/100         consumeCpu1 [0]\n"
7264 "-----------------------------------------------\n"
7265 "                0.00    0.00     1000/1000        x2 [3]\n"
7266 "[2]      0.0    0.00    0.00     1000         consumeCpu2 [2]\n"
7267 "-----------------------------------------------\n"
7268 "                0.00    0.00        1/1           E<lt>UNKNOWNE<gt>\n"
7269 "[3]      0.0    0.00    0.00        1         x2 [3]\n"
7270 "                0.00    0.00     1000/1000        consumeCpu2 [2]\n"
7271 "-----------------------------------------------\n"
7272
7273 #. type: Plain text
7274 #: build/C/man1/sprof.1:285
7275 msgid "Above and below, the \"E<lt>UNKNOWNE<gt>\" strings represent identifiers that are outside of the profiled object (in this example, these are instances of I<main()>)."
7276 msgstr ""
7277
7278 #. type: Plain text
7279 #: build/C/man1/sprof.1:289
7280 msgid "The B<sprof -c> option generates a list of call pairs and the number of their occurrences:"
7281 msgstr ""
7282
7283 #. type: Plain text
7284 #: build/C/man1/sprof.1:297
7285 #, no-wrap
7286 msgid ""
7287 "$ B<sprof -c libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile>\n"
7288 "E<lt>UNKNOWNE<gt>                  x1                                 1\n"
7289 "x1                         consumeCpu1                      100\n"
7290 "E<lt>UNKNOWNE<gt>                  x2                                 1\n"
7291 "x2                         consumeCpu2                     1000\n"
7292 msgstr ""
7293 "$ B<sprof -c libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile>\n"
7294 "E<lt>UNKNOWNE<gt>                  x1                                 1\n"
7295 "x1                         consumeCpu1                      100\n"
7296 "E<lt>UNKNOWNE<gt>                  x2                                 1\n"
7297 "x2                         consumeCpu2                     1000\n"
7298
7299 #. type: Plain text
7300 #: build/C/man1/sprof.1:303
7301 msgid "B<gprof>(1), B<ldd>(1), B<ld.so>(8)"
7302 msgstr "B<gprof>(1), B<ldd>(1), B<ld.so>(8)"