OSDN Git Service

Upadte po4a for LDP v3.75
[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-01 22:50+0900\n"
10 "PO-Revision-Date: 2015-01-04 21:04+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 ""
113 "The B<dl_iterate_phdr>()  function allows an application to inquire at run "
114 "time to find out which shared objects it has loaded."
115 msgstr ""
116 "B<dl_iterate_phdr>()  関数を使うと、アプリケーションは実行時に どの共有オブ"
117 "ジェクトをロードしたかを見つけることができる。"
118
119 #. type: Plain text
120 #: build/C/man3/dl_iterate_phdr.3:53
121 msgid ""
122 "The B<dl_iterate_phdr>()  function walks through the list of an "
123 "application's shared objects and calls the function I<callback> once for "
124 "each object, until either all shared objects have been processed or "
125 "I<callback> returns a nonzero value."
126 msgstr ""
127 "B<dl_iterate_phdr>()  関数はアプリケーションの共有オブジェクトのリストを辿"
128 "り、 各オブジェクトに対して関数 I<callback> を 1 回ずつ呼び出す。 これは全て"
129 "の共有オブジェクトが処理されるか、 I<callback> が 0 以外の値を返すまで行われ"
130 "る。"
131
132 #. type: Plain text
133 #: build/C/man3/dl_iterate_phdr.3:70
134 msgid ""
135 "Each call to I<callback> receives three arguments: I<info>, which is a "
136 "pointer to a structure containing information about the shared object; "
137 "I<size>, which is the size of the structure pointed to by I<info>; and "
138 "I<data>, which is a copy of whatever value was passed by the calling program "
139 "as the second argument (also named I<data>)  in the call to "
140 "B<dl_iterate_phdr>()."
141 msgstr ""
142 "各々の I<callback> 呼び出しは 3 つの引き数を受け取る: I<info> は共有オブジェ"
143 "クトの情報を保持する構造体へのポインタである。 I<size> は I<info> で指される"
144 "構造体のサイズである。 I<data> は呼び出し元プログラムから "
145 "B<dl_iterate_phdr>()  の呼び出しの (同じく I<data> という名前の) 第 2 引き数"
146 "として渡される値のコピーである。"
147
148 #. type: Plain text
149 #: build/C/man3/dl_iterate_phdr.3:74
150 msgid "The I<info> argument is a structure of the following type:"
151 msgstr "I<info> 引き数は、以下のような型の構造体である。"
152
153 #. type: Plain text
154 #: build/C/man3/dl_iterate_phdr.3:86
155 #, no-wrap
156 msgid ""
157 "struct dl_phdr_info {\n"
158 "    ElfW(Addr)        dlpi_addr;  /* Base address of object */\n"
159 "    const char       *dlpi_name;  /* (Null-terminated) name of\n"
160 "                                     object */\n"
161 "    const ElfW(Phdr) *dlpi_phdr;  /* Pointer to array of\n"
162 "                                     ELF program headers\n"
163 "                                     for this object */\n"
164 "    ElfW(Half)        dlpi_phnum; /* # of items in I<dlpi_phdr> */\n"
165 "};\n"
166 msgstr ""
167 "struct dl_phdr_info {\n"
168 "    ElfW(Addr)        dlpi_addr;  /* オブジェクトのベースアドレス */\n"
169 "    const char       *dlpi_name;  /* (ヌル文字で終端された)\n"
170 "                                     オブジェクト名 */\n"
171 "    const ElfW(Phdr) *dlpi_phdr;  /* このオブジェクトの\n"
172 "                                     ELF プログラムヘッダの\n"
173 "                                     配列へのポインタ */\n"
174 "    ElfW(Half)        dlpi_phnum; /* I<dlpi_phdr> のアイテム数 */\n"
175 "};\n"
176
177 #. type: Plain text
178 #: build/C/man3/dl_iterate_phdr.3:98
179 msgid ""
180 "(The I<ElfW>()  macro definition turns its argument into the name of an ELF "
181 "data type suitable for the hardware architecture.  For example, on a 32-bit "
182 "platform, ElfW(Addr) yields the data type name Elf32_Addr.  Further "
183 "information on these types can be found in the I<E<lt>elf.hE<gt>> and "
184 "I<E<lt>link.hE<gt>> header files.)"
185 msgstr ""
186 "(I<ElfW>()  マクロ定義は引き数をハードウェアアーキテクチャに適した ELF データ"
187 "型の名前に変換する。 たとえば、32 ビットプラットフォームでは ElfW(Addr) は"
188 "データ型名 Elf32_Addr を生成する。 これらの型についての更に詳細な情報は、ヘッ"
189 "ダファイル I<E<lt>elf.hE<gt>> と I<E<lt>link.hE<gt>> にある。"
190
191 #. type: Plain text
192 #: build/C/man3/dl_iterate_phdr.3:109
193 msgid ""
194 "The I<dlpi_addr> field indicates the base address of the shared object (i."
195 "e., the difference between the virtual memory address of the shared object "
196 "and the offset of that object in the file from which it was loaded).  The "
197 "I<dlpi_name> field is a null-terminated string giving the pathname from "
198 "which the shared object was loaded."
199 msgstr ""
200 "I<dlpi_addr> フィールドは共有オブジェクトのベースアドレス (つまり、共有オブ"
201 "ジェクトの仮想メモリアドレスと、 ファイル (このファイルから共有オブジェクトが"
202 "ロードされる) における 共有オブジェクトのオフセットとの差分) を表す。 "
203 "I<dlpi_name> はヌル文字で終端された文字列であり、 このパス名のファイルから共"
204 "有オブジェクトがロードされる。"
205
206 #. type: Plain text
207 #: build/C/man3/dl_iterate_phdr.3:124
208 msgid ""
209 "To understand the meaning of the I<dlpi_phdr> and I<dlpi_phnum> fields, we "
210 "need to be aware that an ELF shared object consists of a number of segments, "
211 "each of which has a corresponding program header describing the segment.  "
212 "The I<dlpi_phdr> field is a pointer to an array of the program headers for "
213 "this shared object.  The I<dlpi_phnum> field indicates the size of this "
214 "array."
215 msgstr ""
216 "I<dlpi_phdr> と I<dlpi_phnum> フィールドの意味を理解するには、 ELF 共有オブ"
217 "ジェクトが幾つかのセグメントから構成されていることと、 各セグメントがそれに対"
218 "応するプログラムヘッダ (そのセグメントを説明する) を持っていることを知ってい"
219 "る必要がある。 I<dlpi_phdr> フィールドは、この共有オブジェクトのプログラム"
220 "ヘッダの配列へのポインタである。 I<dlpi_phnum> は、この配列のサイズを表す。"
221
222 #. type: Plain text
223 #: build/C/man3/dl_iterate_phdr.3:126
224 msgid "These program headers are structures of the following form:"
225 msgstr "これらのプログラムヘッダは以下のような形式の構造体である:"
226
227 #. type: Plain text
228 #: build/C/man3/dl_iterate_phdr.3:139
229 #, no-wrap
230 msgid ""
231 "typedef struct {\n"
232 "    Elf32_Word  p_type;    /* Segment type */\n"
233 "    Elf32_Off   p_offset;  /* Segment file offset */\n"
234 "    Elf32_Addr  p_vaddr;   /* Segment virtual address */\n"
235 "    Elf32_Addr  p_paddr;   /* Segment physical address */\n"
236 "    Elf32_Word  p_filesz;  /* Segment size in file */\n"
237 "    Elf32_Word  p_memsz;   /* Segment size in memory */\n"
238 "    Elf32_Word  p_flags;   /* Segment flags */\n"
239 "    Elf32_Word  p_align;   /* Segment alignment */\n"
240 "} Elf32_Phdr;\n"
241 msgstr ""
242 "typedef struct\n"
243 "{\n"
244 "    Elf32_Word  p_type;    /* セグメントの型 */\n"
245 "    Elf32_Off   p_offset;  /* セグメントのファイルオフセット */\n"
246 "    Elf32_Addr  p_vaddr;   /* セグメントの仮想アドレス */\n"
247 "    Elf32_Addr  p_paddr;   /* セグメントの物理アドレス */\n"
248 "    Elf32_Word  p_filesz;  /* ファイルにおけるセグメントサイズ */\n"
249 "    Elf32_Word  p_memsz;   /* メモリにおけるセグメントサイズ */\n"
250 "    Elf32_Word  p_flags;   /* セグメントフラグ */\n"
251 "    Elf32_Word  p_align;   /* セグメントの配置 (alignment) */\n"
252 "} Elf32_Phdr;\n"
253
254 #. type: Plain text
255 #: build/C/man3/dl_iterate_phdr.3:145
256 msgid ""
257 "Note that we can calculate the location of a particular program header, "
258 "I<x>, in virtual memory using the formula:"
259 msgstr ""
260 "特定のプログラムヘッダ I<x> の仮想メモリにおける位置は、以下の式で計算できる"
261 "点に注意すること:"
262
263 #. type: Plain text
264 #: build/C/man3/dl_iterate_phdr.3:148
265 #, no-wrap
266 msgid "  addr == info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[x].p_vaddr;\n"
267 msgstr "  addr == info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[x].p_vaddr;\n"
268
269 #. type: SH
270 #: build/C/man3/dl_iterate_phdr.3:149
271 #, no-wrap
272 msgid "RETURN VALUE"
273 msgstr "返り値"
274
275 #. type: Plain text
276 #: build/C/man3/dl_iterate_phdr.3:154
277 msgid ""
278 "The B<dl_iterate_phdr>()  function returns whatever value was returned by "
279 "the last call to I<callback>."
280 msgstr ""
281 "B<dl_iterate_phdr>()  関数は最後の I<callback> の呼び出しで返された値を返す。"
282
283 #. type: SH
284 #: build/C/man3/dl_iterate_phdr.3:154 build/C/man1/pldd.1:50
285 #, no-wrap
286 msgid "VERSIONS"
287 msgstr "バージョン"
288
289 #. type: Plain text
290 #: build/C/man3/dl_iterate_phdr.3:157
291 msgid "B<dl_iterate_phdr>()  has been supported in glibc since version 2.2.4."
292 msgstr ""
293 "B<dl_iterate_phdr>()  は glibc のバージョン 2.2.4 以降でサポートされている。"
294
295 #. type: SH
296 #: build/C/man3/dl_iterate_phdr.3:157 build/C/man3/dlopen.3:381
297 #: build/C/man3/end.3:50 build/C/man1/pldd.1:53 build/C/man7/rtld-audit.7:461
298 #: build/C/man1/sprof.1:75
299 #, no-wrap
300 msgid "CONFORMING TO"
301 msgstr "準拠"
302
303 #. type: Plain text
304 #: build/C/man3/dl_iterate_phdr.3:161
305 msgid ""
306 "The B<dl_iterate_phdr>()  function is Linux-specific and should be avoided "
307 "in portable applications."
308 msgstr ""
309 "B<dl_iterate_phdr>()  関数は Linux 固有であり、移植を考えたアプリケーションで"
310 "は避けるべきである。"
311
312 #. type: SH
313 #: build/C/man3/dl_iterate_phdr.3:161 build/C/man3/dlopen.3:446
314 #: build/C/man3/end.3:76 build/C/man1/memusage.1:201
315 #: build/C/man1/memusagestat.1:81 build/C/man1/pldd.1:71
316 #: build/C/man7/rtld-audit.7:502 build/C/man1/sprof.1:79
317 #, no-wrap
318 msgid "EXAMPLE"
319 msgstr "例"
320
321 #. type: Plain text
322 #: build/C/man3/dl_iterate_phdr.3:166
323 msgid ""
324 "The following program displays a list of pathnames of the shared objects it "
325 "has loaded.  For each shared object, the program lists the virtual addresses "
326 "at which the object's ELF segments are loaded."
327 msgstr ""
328 "以下のプログラムは、共有オブジェクトがロードされた パス名の一覧を表示する。 "
329 "各共有オブジェクトについて、このプログラムは オブジェクトの ELF セグメントが"
330 "ロードされた 仮想アドレスの一覧を表示する。"
331
332 #. type: Plain text
333 #: build/C/man3/dl_iterate_phdr.3:172
334 #, no-wrap
335 msgid ""
336 "#define _GNU_SOURCE\n"
337 "#include E<lt>link.hE<gt>\n"
338 "#include E<lt>stdlib.hE<gt>\n"
339 "#include E<lt>stdio.hE<gt>\n"
340 msgstr ""
341 "#define _GNU_SOURCE\n"
342 "#include E<lt>link.hE<gt>\n"
343 "#include E<lt>stdlib.hE<gt>\n"
344 "#include E<lt>stdio.hE<gt>\n"
345
346 #. type: Plain text
347 #: build/C/man3/dl_iterate_phdr.3:177
348 #, no-wrap
349 msgid ""
350 "static int\n"
351 "callback(struct dl_phdr_info *info, size_t size, void *data)\n"
352 "{\n"
353 "    int j;\n"
354 msgstr ""
355 "static int\n"
356 "callback(struct dl_phdr_info *info, size_t size, void *data)\n"
357 "{\n"
358 "    int j;\n"
359
360 #. type: Plain text
361 #: build/C/man3/dl_iterate_phdr.3:180
362 #, no-wrap
363 msgid ""
364 "    printf(\"name=%s (%d segments)\\en\", info-E<gt>dlpi_name,\n"
365 "        info-E<gt>dlpi_phnum);\n"
366 msgstr ""
367 "    printf(\"name=%s (%d segments)\\en\", info-E<gt>dlpi_name,\n"
368 "        info-E<gt>dlpi_phnum);\n"
369
370 #. type: Plain text
371 #: build/C/man3/dl_iterate_phdr.3:186
372 #, no-wrap
373 msgid ""
374 "    for (j = 0; j E<lt> info-E<gt>dlpi_phnum; j++)\n"
375 "         printf(\"\\et\\et header %2d: address=%10p\\en\", j,\n"
376 "             (void *) (info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[j].p_vaddr));\n"
377 "    return 0;\n"
378 "}\n"
379 msgstr ""
380 "    for (j = 0; j E<lt> info-E<gt>dlpi_phnum; j++)\n"
381 "         printf(\"\\et\\et header %2d: address=%10p\\en\", j,\n"
382 "             (void *) (info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[j].p_vaddr));\n"
383 "    return 0;\n"
384 "}\n"
385
386 #. type: Plain text
387 #: build/C/man3/dl_iterate_phdr.3:191
388 #, no-wrap
389 msgid ""
390 "int\n"
391 "main(int argc, char *argv[])\n"
392 "{\n"
393 "    dl_iterate_phdr(callback, NULL);\n"
394 msgstr ""
395 "int\n"
396 "main(int argc, char *argv[])\n"
397 "{\n"
398 "    dl_iterate_phdr(callback, NULL);\n"
399
400 #. type: Plain text
401 #: build/C/man3/dl_iterate_phdr.3:194 build/C/man3/end.3:107
402 #, no-wrap
403 msgid ""
404 "    exit(EXIT_SUCCESS);\n"
405 "}\n"
406 msgstr ""
407 "    exit(EXIT_SUCCESS);\n"
408 "}\n"
409
410 #. type: SH
411 #: build/C/man3/dl_iterate_phdr.3:195 build/C/man3/dlopen.3:521
412 #: build/C/man5/elf.5:1939 build/C/man3/end.3:108 build/C/man8/ld.so.8:486
413 #: build/C/man8/ldconfig.8:175 build/C/man1/ldd.1:108
414 #: build/C/man1/memusage.1:271 build/C/man1/memusagestat.1:88
415 #: build/C/man1/mtrace.1:61 build/C/man1/pldd.1:91
416 #: build/C/man7/rtld-audit.7:602 build/C/man8/sln.8:60
417 #: build/C/man1/sprof.1:299
418 #, no-wrap
419 msgid "SEE ALSO"
420 msgstr "関連項目"
421
422 #. type: Plain text
423 #: build/C/man3/dl_iterate_phdr.3:202
424 msgid ""
425 "B<ldd>(1), B<objdump>(1), B<readelf>(1), B<dlopen>(3), B<elf>(5), B<ld.so>(8)"
426 msgstr ""
427 "B<ldd>(1), B<objdump>(1), B<readelf>(1), B<dlopen>(3), B<elf>(5), B<ld.so>(8)"
428
429 #. type: Plain text
430 #: build/C/man3/dl_iterate_phdr.3:205
431 msgid ""
432 "I<Executable and Linking Format Specification>, available at various "
433 "locations online."
434 msgstr ""
435 "オンラインのいろいろな場所で入手できる I<Executable and Linking Format "
436 "Specification>"
437
438 #. type: SH
439 #: build/C/man3/dl_iterate_phdr.3:205 build/C/man3/dlopen.3:531
440 #: build/C/man5/elf.5:1963 build/C/man3/end.3:113 build/C/man8/ld.so.8:502
441 #: build/C/man8/ldconfig.8:178 build/C/man1/ldd.1:113
442 #: build/C/man1/memusage.1:275 build/C/man1/memusagestat.1:91
443 #: build/C/man1/mtrace.1:64 build/C/man1/pldd.1:96
444 #: build/C/man7/rtld-audit.7:607 build/C/man8/sln.8:64
445 #: build/C/man1/sprof.1:303
446 #, no-wrap
447 msgid "COLOPHON"
448 msgstr "この文書について"
449
450 #. type: Plain text
451 #: build/C/man3/dl_iterate_phdr.3:213 build/C/man3/dlopen.3:539
452 #: build/C/man5/elf.5:1971 build/C/man3/end.3:121 build/C/man8/ld.so.8:510
453 #: build/C/man8/ldconfig.8:186 build/C/man1/ldd.1:121
454 #: build/C/man1/memusage.1:283 build/C/man1/memusagestat.1:99
455 #: build/C/man1/mtrace.1:72 build/C/man1/pldd.1:104
456 #: build/C/man7/rtld-audit.7:615 build/C/man8/sln.8:72
457 #: build/C/man1/sprof.1:311
458 msgid ""
459 "This page is part of release 3.75 of the Linux I<man-pages> project.  A "
460 "description of the project, information about reporting bugs, and the latest "
461 "version of this page, can be found at \\%http://www.kernel.org/doc/man-"
462 "pages/."
463 msgstr ""
464 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.75 の一部\n"
465 "である。プロジェクトの説明とバグ報告に関する情報は\n"
466 "http://www.kernel.org/doc/man-pages/ に書かれている。"
467
468 #. type: TH
469 #: build/C/man3/dlopen.3:35
470 #, no-wrap
471 msgid "DLOPEN"
472 msgstr "DLOPEN"
473
474 #. type: TH
475 #: build/C/man3/dlopen.3:35 build/C/man8/ld.so.8:5 build/C/man1/ldd.1:14
476 #, no-wrap
477 msgid "2014-10-02"
478 msgstr "2014-10-02"
479
480 #. type: TH
481 #: build/C/man3/dlopen.3:35 build/C/man5/elf.5:35 build/C/man7/rtld-audit.7:28
482 #: build/C/man1/sprof.1:25
483 #, no-wrap
484 msgid "Linux"
485 msgstr "Linux"
486
487 #. type: Plain text
488 #: build/C/man3/dlopen.3:39
489 msgid ""
490 "dladdr, dlclose, dlerror, dlopen, dlsym, dlvsym - programming interface to "
491 "dynamic linking loader"
492 msgstr ""
493 "dlclose, dlerror, dlopen, dlsym - 動的リンクを行うローダへの プログラミングイ"
494 "ンターフェース"
495
496 #. type: Plain text
497 #: build/C/man3/dlopen.3:41
498 msgid "B<#include E<lt>dlfcn.hE<gt>>"
499 msgstr "B<#include E<lt>dlfcn.hE<gt>>"
500
501 #. type: Plain text
502 #: build/C/man3/dlopen.3:43
503 msgid "B<void *dlopen(const char *>I<filename>B<, int >I<flag>B<);>"
504 msgstr "B<void *dlopen(const char *>I<filename>B<, int >I<flag>B<);>"
505
506 #. type: Plain text
507 #: build/C/man3/dlopen.3:45
508 msgid "B<char *dlerror(void);>"
509 msgstr "B<char *dlerror(void);>"
510
511 #. type: Plain text
512 #: build/C/man3/dlopen.3:47
513 msgid "B<void *dlsym(void *>I<handle>B<, const char *>I<symbol>B<);>"
514 msgstr "B<void *dlsym(void *>I<handle>B<, const char *>I<symbol>B<);>"
515
516 #. type: Plain text
517 #: build/C/man3/dlopen.3:49
518 msgid "B<int dlclose(void *>I<handle>B<);>"
519 msgstr "B<int dlclose(void *>I<handle>B<);>"
520
521 #. type: Plain text
522 #: build/C/man3/dlopen.3:51
523 msgid "Link with I<-ldl>."
524 msgstr "I<-ldl> でリンクする。"
525
526 #. type: Plain text
527 #: build/C/man3/dlopen.3:58
528 msgid ""
529 "The four functions B<dlopen>(), B<dlsym>(), B<dlclose>(), B<dlerror>()  "
530 "implement the interface to the dynamic linking loader."
531 msgstr ""
532 "B<dlopen>(), B<dlsym>(), B<dlclose>(), B<dlerror>()  の 4つの関数は、動的リン"
533 "ク (dynamic linking) を行うローダへの インタフェースを実装したものである。"
534
535 #. type: SS
536 #: build/C/man3/dlopen.3:58
537 #, no-wrap
538 msgid "dlerror()"
539 msgstr "dlerror()"
540
541 #. type: Plain text
542 #: build/C/man3/dlopen.3:71
543 msgid ""
544 "The function B<dlerror>()  returns a human-readable string describing the "
545 "most recent error that occurred from B<dlopen>(), B<dlsym>()  or "
546 "B<dlclose>()  since the last call to B<dlerror>().  It returns NULL if no "
547 "errors have occurred since initialization or since it was last called."
548 msgstr ""
549 "関数 B<dlerror>()  は、前回 B<dlerror>()  が呼び出された後に、 B<dlopen>(), "
550 "B<dlsym>(), B<dlclose>()  のいずれかで最後に発生したエラーについての説明メッ"
551 "セージを返す。 初期化後または前回呼び出された後で、エラーが発生していなけれ"
552 "ば NULL を返す。"
553
554 #. type: SS
555 #: build/C/man3/dlopen.3:71
556 #, no-wrap
557 msgid "dlopen()"
558 msgstr "dlopen()"
559
560 #. type: Plain text
561 #: build/C/man3/dlopen.3:89
562 msgid ""
563 "The function B<dlopen>()  loads the dynamic library file named by the null-"
564 "terminated string I<filename> and returns an opaque \"handle\" for the "
565 "dynamic library.  If I<filename> is NULL, then the returned handle is for "
566 "the main program.  If I<filename> contains a slash (\"/\"), then it is "
567 "interpreted as a (relative or absolute) pathname.  Otherwise, the dynamic "
568 "linker searches for the library as follows (see B<ld.so>(8)  for further "
569 "details):"
570 msgstr ""
571 "関数 B<dlopen>()  は、ヌル終端された文字列 I<filename> で指定されたファイル名"
572 "の動的ライブラリ (dynamic library) をロードし、 その動的ライブラリへの内部"
573 "「ハンドル」を返す。 I<filename> が NULL の場合、メイン・プログラムへのハンド"
574 "ルが返される。 I<filename> がスラッシュ (\"/\") を含む場合、(相対か絶対かの)"
575 "パス名として解釈される。 それ以外の場合、動的リンカは以下の手順でライブラリを"
576 "検索する (詳細は B<ld.so>(8)  を参照):"
577
578 #. type: IP
579 #: build/C/man3/dlopen.3:89 build/C/man3/dlopen.3:93 build/C/man3/dlopen.3:100
580 #: build/C/man3/dlopen.3:104 build/C/man3/dlopen.3:111 build/C/man8/ld.so.8:56
581 #: build/C/man8/ld.so.8:61 build/C/man8/ld.so.8:66 build/C/man8/ld.so.8:70
582 #: build/C/man8/ld.so.8:80
583 #, no-wrap
584 msgid "o"
585 msgstr "o"
586
587 #. type: Plain text
588 #: build/C/man3/dlopen.3:93
589 msgid ""
590 "(ELF only) If the executable file for the calling program contains a "
591 "DT_RPATH tag, and does not contain a DT_RUNPATH tag, then the directories "
592 "listed in the DT_RPATH tag are searched."
593 msgstr ""
594 "(ELF のみ) 呼び出し元プログラムの実行ファイルに DT_RPATH タグが含まれてお"
595 "り、 DT_RUNPATH タグが含まれていない場合、DT_RPATH タグに書かれている ディレ"
596 "クトリ・リストを検索する。"
597
598 #. type: Plain text
599 #: build/C/man3/dlopen.3:100
600 msgid ""
601 "If, at the time that the program was started, the environment variable "
602 "B<LD_LIBRARY_PATH> was defined to contain a colon-separated list of "
603 "directories, then these are searched.  (As a security measure this variable "
604 "is ignored for set-user-ID and set-group-ID programs.)"
605 msgstr ""
606 "プログラムの開始時に環境変数 B<LD_LIBRARY_PATH> にコロン区切りのディレクトリ"
607 "のリストが定義されていれば、 この環境変数に定義されたディレクトリが検索され"
608 "る (セキュリティ上の理由で、この変数は set-UID や set-GID された プログラムの"
609 "場合は無視される)。"
610
611 #. type: Plain text
612 #: build/C/man3/dlopen.3:104
613 msgid ""
614 "(ELF only) If the executable file for the calling program contains a "
615 "DT_RUNPATH tag, then the directories listed in that tag are searched."
616 msgstr ""
617 "(ELF のみ) 呼び出し元プログラムの実行ファイルに DT_RUNPATH タグが含まれて い"
618 "る場合、そのタグに書かれているディレクトリ・リストを検索する。"
619
620 #. type: Plain text
621 #: build/C/man3/dlopen.3:111
622 msgid ""
623 "The cache file I</etc/ld.so.cache> (maintained by B<ldconfig>(8))  is "
624 "checked to see whether it contains an entry for I<filename>."
625 msgstr ""
626 "キャッシュファイル I</etc/ld.so.cache> の中に I<filename> のエントリが入って"
627 "いるかをチェックする (B</etc/ld.so.cache> は B<ldconfig>(8)  によって管理され"
628 "ている)。"
629
630 #. type: Plain text
631 #: build/C/man3/dlopen.3:117
632 msgid "The directories I</lib> and I</usr/lib> are searched (in that order)."
633 msgstr "ディレクトリ I</lib> と I</usr/lib> をこの順番で検索する。"
634
635 #. type: Plain text
636 #: build/C/man3/dlopen.3:123
637 msgid ""
638 "If the library has dependencies on other shared libraries, then these are "
639 "also automatically loaded by the dynamic linker using the same rules.  (This "
640 "process may occur recursively, if those libraries in turn have dependencies, "
641 "and so on.)"
642 msgstr ""
643 "そのライブラリが他の共有ライブラリに依存している場合は、 依存しているライブラ"
644 "リも動的リンカが同じ検索ルールに基づいて 自動的にロードする (それらのライブラ"
645 "リにさらに依存関係がある場合などは この処理は再帰的に行われる)。"
646
647 #. type: Plain text
648 #: build/C/man3/dlopen.3:126
649 msgid "One of the following two values must be included in I<flag>:"
650 msgstr "I<flag> には以下の 2 つの値のいずれかを含めなければならない:"
651
652 #. type: TP
653 #: build/C/man3/dlopen.3:126
654 #, no-wrap
655 msgid "B<RTLD_LAZY>"
656 msgstr "B<RTLD_LAZY>"
657
658 #. type: Plain text
659 #: build/C/man3/dlopen.3:134
660 msgid ""
661 "Perform lazy binding.  Only resolve symbols as the code that references them "
662 "is executed.  If the symbol is never referenced, then it is never resolved.  "
663 "(Lazy binding is performed only for function references; references to "
664 "variables are always immediately bound when the library is loaded.)"
665 msgstr ""
666 "lazy binding (手抜きなシンボルの結び付け) が行う。 シンボルの解決はそのシンボ"
667 "ルを参照するコードが実行されるときにのみ 行われる。シンボルが一度も参照されな"
668 "かった場合には、そのシンボルは 解決されないままとなる。 (lazy binding は関数"
669 "参照についてのみ実施される; 変数への参照は常に ライブラリがロードされた時点で"
670 "直ちに解決される。)"
671
672 #. type: TP
673 #: build/C/man3/dlopen.3:134
674 #, no-wrap
675 msgid "B<RTLD_NOW>"
676 msgstr "B<RTLD_NOW>"
677
678 #. type: Plain text
679 #: build/C/man3/dlopen.3:143
680 msgid ""
681 "If this value is specified, or the environment variable B<LD_BIND_NOW> is "
682 "set to a nonempty string, all undefined symbols in the library are resolved "
683 "before B<dlopen>()  returns.  If this cannot be done, an error is returned."
684 msgstr ""
685 "この値が指定されるか、環境変数 B<LD_BIND_NOW> に空でない文字列が設定された場"
686 "合、 ライブラリ中の未定義のシンボルを全て解決してから B<dlopen>()  は復帰す"
687 "る。解決できなかったときにはエラーが返される。"
688
689 #. type: Plain text
690 #: build/C/man3/dlopen.3:146
691 msgid "Zero or more of the following values may also be ORed in I<flag>:"
692 msgstr ""
693 "以下の値のうち 0 個以上を論理和 (OR) の形で I<flag> に追加することもできる:"
694
695 #. type: TP
696 #: build/C/man3/dlopen.3:146
697 #, no-wrap
698 msgid "B<RTLD_GLOBAL>"
699 msgstr "B<RTLD_GLOBAL>"
700
701 #. type: Plain text
702 #: build/C/man3/dlopen.3:150
703 msgid ""
704 "The symbols defined by this library will be made available for symbol "
705 "resolution of subsequently loaded libraries."
706 msgstr ""
707 "このライブラリで定義されているシンボルが、これより後でロードされる ライブラリ"
708 "のシンボル解決で利用できるようになる。"
709
710 #. type: TP
711 #: build/C/man3/dlopen.3:150
712 #, no-wrap
713 msgid "B<RTLD_LOCAL>"
714 msgstr "B<RTLD_LOCAL>"
715
716 #. type: Plain text
717 #: build/C/man3/dlopen.3:157
718 msgid ""
719 "This is the converse of B<RTLD_GLOBAL>, and the default if neither flag is "
720 "specified.  Symbols defined in this library are not made available to "
721 "resolve references in subsequently loaded libraries."
722 msgstr ""
723 "このフラグは B<RTLD_GLOBAL> の反対の意味であり、どちらのフラグも指定されな"
724 "かった場合は こちらがデフォルトとなる。 このライブラリで定義されているシンボ"
725 "ルは、これより後でロードされる ライブラリでのシンボル参照で利用できない。"
726
727 #. type: TP
728 #: build/C/man3/dlopen.3:157
729 #, no-wrap
730 msgid "B<RTLD_NODELETE> (since glibc 2.2)"
731 msgstr "B<RTLD_NODELETE> (glibc 2.2 以降)"
732
733 #.  (But it is present on Solaris.)
734 #. type: Plain text
735 #: build/C/man3/dlopen.3:167
736 msgid ""
737 "Do not unload the library during B<dlclose>().  Consequently, the library's "
738 "static variables are not reinitialized if the library is reloaded with "
739 "B<dlopen>()  at a later time.  This flag is not specified in POSIX.1-2001."
740 msgstr ""
741 "B<dlclose>()  中にそのライブラリをアンロードしない。 そのため、同じライブラリ"
742 "をこれ以降に B<dlopen>()  で再度ロードした場合に、ライブラリ内の静的変数は再"
743 "初期化されない。 このフラグは POSIX.1-2001 では規定されていない。"
744
745 #. type: TP
746 #: build/C/man3/dlopen.3:167
747 #, no-wrap
748 msgid "B<RTLD_NOLOAD> (since glibc 2.2)"
749 msgstr "B<RTLD_NOLOAD> (glibc 2.2 以降)"
750
751 #.  (But it is present on Solaris.)
752 #. type: Plain text
753 #: build/C/man3/dlopen.3:182
754 msgid ""
755 "Don't load the library.  This can be used to test if the library is already "
756 "resident (B<dlopen>()  returns NULL if it is not, or the library's handle if "
757 "it is resident).  This flag can also be used to promote the flags on a "
758 "library that is already loaded.  For example, a library that was previously "
759 "loaded with B<RTLD_LOCAL> can be reopened with B<RTLD_NOLOAD\\ |\\ "
760 "RTLD_GLOBAL>.  This flag is not specified in POSIX.1-2001."
761 msgstr ""
762 "そのライブラリをロードしない。 このフラグはそのライブラリがすでに組み込まれて"
763 "いるかを検査するのに 利用できる (B<dlopen>()  は、ライブラリが組み込まれてい"
764 "なければ NULL を返し、 すでに組み込まれていればそのライブラリのハンドルを返"
765 "す)。 また、すでにロードされているライブラリのフラグを昇格させるのにも 利用で"
766 "きる。例えば、過去に B<RTLD_LOCAL> でロードしたライブラリを B<RTLD_NOLOAD\\ |"
767 "\\ RTLD_GLOBAL> で再オープンすることができる。 このフラグは POSIX.1-2001 では"
768 "規定されていない。"
769
770 #. type: TP
771 #: build/C/man3/dlopen.3:182
772 #, no-wrap
773 msgid "B<RTLD_DEEPBIND> (since glibc 2.3.4)"
774 msgstr "B<RTLD_DEEPBIND> (glibc 2.3.4 以降)"
775
776 #.  Inimitably described by UD in
777 #.  http://sources.redhat.com/ml/libc-hacker/2004-09/msg00083.html.
778 #. type: Plain text
779 #: build/C/man3/dlopen.3:192
780 msgid ""
781 "Place the lookup scope of the symbols in this library ahead of the global "
782 "scope.  This means that a self-contained library will use its own symbols in "
783 "preference to global symbols with the same name contained in libraries that "
784 "have already been loaded.  This flag is not specified in POSIX.1-2001."
785 msgstr ""
786 "このライブラリ内のシンボルの参照領域をグローバル領域よりも前に配置する。 つま"
787 "り、内蔵型のライブラリでは、すでにロードされたライブラリに含まれる 同じ名前の"
788 "グローバルなシンボルよりも自ライブラリ内のシンボルが優先して 使われる。 この"
789 "フラグは POSIX.1-2001 では規定されていない。"
790
791 #. type: Plain text
792 #: build/C/man3/dlopen.3:204
793 msgid ""
794 "If I<filename> is NULL, then the returned handle is for the main program.  "
795 "When given to B<dlsym>(), this handle causes a search for a symbol in the "
796 "main program, followed by all shared libraries loaded at program startup, "
797 "and then all shared libraries loaded by B<dlopen>()  with the flag "
798 "B<RTLD_GLOBAL>."
799 msgstr ""
800 "I<filename> が NULL である場合は、 返されるハンドルはメイン・プログラムのもの"
801 "になる。 このハンドルが B<dlsym>()  に渡されると、シンボルの検索は、メイン・"
802 "プログラム内、 プログラムの起動時にロードされる全ての共有ライブラリ、 "
803 "B<dlopen>()  によって B<RTLD_GLOBAL> フラグ付きでロードされた全ての共有ライブ"
804 "ラリ、の順序で行われる。"
805
806 #. type: Plain text
807 #: build/C/man3/dlopen.3:214
808 msgid ""
809 "External references in the library are resolved using the libraries in that "
810 "library's dependency list and any other libraries previously opened with the "
811 "B<RTLD_GLOBAL> flag.  If the executable was linked with the flag \"-rdynamic"
812 "\" (or, synonymously, \"--export-dynamic\"), then the global symbols in the "
813 "executable will also be used to resolve references in a dynamically loaded "
814 "library."
815 msgstr ""
816 "オープンされたライブラリ中での外部参照は、 そのライブラリの依存リストにあるラ"
817 "イブラリか、 B<RTLD_GLOBAL> フラグ付きで既にオープンされているライブラリを"
818 "使って解決される。 実行ファイルが \"-rdynamic\" フラグ (\"--export-dynamic\" "
819 "も同義)  付きでリンクされている場合は、実行ファイル中のグローバルシンボル"
820 "も、 動的にロードされるライブラリ内の参照解決に用いられる。"
821
822 #. type: Plain text
823 #: build/C/man3/dlopen.3:232
824 msgid ""
825 "If the same library is loaded again with B<dlopen>(), the same library "
826 "handle is returned.  The dl library maintains reference counts for library "
827 "handles, so a dynamic library is not deallocated until B<dlclose>()  has "
828 "been called on it as many times as B<dlopen>()  has succeeded on it.  The "
829 "B<_init>()  routine, if present, is called only once.  But a subsequent call "
830 "with B<RTLD_NOW> may force symbol resolution for a library earlier loaded "
831 "with B<RTLD_LAZY>."
832 msgstr ""
833 "同じライブラリが B<dlopen>()  によって再度ロードされた場合には、同じライブラ"
834 "リハンドルが返される。 dl ライブラリはライブラリハンドルのリンク数を管理して"
835 "いる。 したがって動的ライブラリは B<dlclose>()  が B<dlopen>()  と同じ回数だ"
836 "け呼び出されない限りアンロードされない。 B<_init>()  ルーチンは一度だけ呼び出"
837 "される (B<_init>()  が存在する場合のみ)。 B<RTLD_NOW> が指定されて "
838 "B<dlopen>()  が呼び出された場合、 B<RTLD_LAZY> で以前にロードされたライブラリ"
839 "のシンボル解決が実行されることがある。"
840
841 #. type: Plain text
842 #: build/C/man3/dlopen.3:236
843 msgid "If B<dlopen>()  fails for any reason, it returns NULL."
844 msgstr "B<dlopen>()  は、何らかの理由で失敗すると NULL を返す。"
845
846 #. type: SS
847 #: build/C/man3/dlopen.3:236
848 #, no-wrap
849 msgid "dlsym()"
850 msgstr "dlsym()"
851
852 #. type: Plain text
853 #: build/C/man3/dlopen.3:265
854 msgid ""
855 "The function B<dlsym>()  takes a \"handle\" of a dynamic library returned by "
856 "B<dlopen>()  and the null-terminated symbol name, returning the address "
857 "where that symbol is loaded into memory.  If the symbol is not found, in the "
858 "specified library or any of the libraries that were automatically loaded by "
859 "B<dlopen>()  when that library was loaded, B<dlsym>()  returns NULL.  (The "
860 "search performed by B<dlsym>()  is breadth first through the dependency tree "
861 "of these libraries.)  Since the value of the symbol could actually be NULL "
862 "(so that a NULL return from B<dlsym>()  need not indicate an error), the "
863 "correct way to test for an error is to call B<dlerror>()  to clear any old "
864 "error conditions, then call B<dlsym>(), and then call B<dlerror>()  again, "
865 "saving its return value into a variable, and check whether this saved value "
866 "is not NULL."
867 msgstr ""
868 "関数 B<dlsym>()  は、 B<dlopen>()  が返した動的ライブラリの「ハンドル」と、 "
869 "NULL 終端されたシンボル名の文字列を引き数に取り、 そのシンボルがロードされた"
870 "メモリのアドレスを返す。 シンボルが、指定されたライブラリと、指定されたライブ"
871 "ラリがロードされる際に B<dlopen>()  が自動的にロードしてライブラリのいずれに"
872 "も見つからない場合には、 B<dlsym>()  は NULL を返す (B<dlsym>()  による検索"
873 "は、これらのライブラリの依存関係のツリーを先頭から 辿って行われる)。 実際には"
874 "シンボルの値自体が NULL になることもある (そのため、 B<dlsym>()  の返り値が "
875 "NULL であったとしても必ずしもエラーという訳ではない)。 エラーかどうかを確認す"
876 "る正しい方法は以下の通りである: B<dlerror>()  を呼び出して以前のエラー状態を"
877 "クリアしてから、 B<dlsym>()  を呼び出す。その後でもう一度 B<dlerror>()  を呼"
878 "び出して、 B<dlerror>()  の返り値を変数に保存し、保存した値が NULL であるか判"
879 "定する。"
880
881 #. type: Plain text
882 #: build/C/man3/dlopen.3:277
883 msgid ""
884 "There are two special pseudo-handles, B<RTLD_DEFAULT> and B<RTLD_NEXT>.  The "
885 "former will find the first occurrence of the desired symbol using the "
886 "default library search order.  The latter will find the next occurrence of a "
887 "function in the search order after the current library.  This allows one to "
888 "provide a wrapper around a function in another shared library."
889 msgstr ""
890 "B<RTLD_DEFAULT> と B<RTLD_NEXT> という二つの特別な擬似ハンドルがある。 "
891 "B<RTLD_DEFAULT> は、デフォルトのライブラリ検索順序にしたがって、 検索対象のシ"
892 "ンボルが最初に現れるところを探す。 B<RTLD_NEXT> は、ライブラリ検索順序の中で"
893 "現在のライブラリ以降で最初に 関数が現れるところを探す。この機能を使うことで、"
894 "別の共有ライブラリの 関数へのラッパーを提供することができる。"
895
896 #. type: SS
897 #: build/C/man3/dlopen.3:277
898 #, no-wrap
899 msgid "dlclose()"
900 msgstr "dlclose()"
901
902 #. type: Plain text
903 #: build/C/man3/dlopen.3:284
904 msgid ""
905 "The function B<dlclose>()  decrements the reference count on the dynamic "
906 "library handle I<handle>.  If the reference count drops to zero and no other "
907 "loaded libraries use symbols in it, then the dynamic library is unloaded."
908 msgstr ""
909 "関数 B<dlclose>()  は動的ライブラリのハンドル I<handle> の参照カウントを 1 減"
910 "らす。参照カウントが 0 になり、ロードされている 他のライブラリからそのライブ"
911 "ラリ内のシンボルが使われていなければ、 その動的ライブラリをアンロードする。"
912
913 #. type: Plain text
914 #: build/C/man3/dlopen.3:288
915 msgid "The function B<dlclose>()  returns 0 on success, and nonzero on error."
916 msgstr ""
917 "関数 B<dlclose>()  は、成功した場合は 0 を返し、エラーの場合 0 以外を返す。"
918
919 #. type: SS
920 #: build/C/man3/dlopen.3:288
921 #, no-wrap
922 msgid "The obsolete symbols _init() and _fini()"
923 msgstr "廃止されたシンボル _init() と _fini()"
924
925 #. type: Plain text
926 #: build/C/man3/dlopen.3:306
927 msgid ""
928 "The linker recognizes special symbols B<_init> and B<_fini>.  If a dynamic "
929 "library exports a routine named B<_init>(), then that code is executed after "
930 "the loading, before B<dlopen>()  returns.  If the dynamic library exports a "
931 "routine named B<_fini>(), then that routine is called just before the "
932 "library is unloaded.  In case you need to avoid linking against the system "
933 "startup files, this can be done by using the B<gcc>(1)  I<-nostartfiles> "
934 "command-line option."
935 msgstr ""
936 "リンカは B<_init> と B<_fini> を特別なシンボルと解釈する。 ある動的ライブラリ"
937 "で B<_init>()  という名前のルーチンがエクスポートされていれば、 そのコード"
938 "は、ライブラリのロード後、かつ B<dlopen>()  が復帰する前に実行される。 その動"
939 "的ライブラリで B<_fini>()  という名前のルーチンがエクスポートされていれば、 "
940 "ライブラリがアンロードされる直前にそのルーチンが呼び出される。 システムの起動"
941 "ファイルに対するリンクを避ける必要がある場合、 B<gcc>(1)  のコマンドラインに "
942 "I<-nostartfiles> オプションを指定すればよい。"
943
944 #.  void _init(void) __attribute__((constructor));
945 #.  void _fini(void) __attribute__((destructor));
946 #. type: Plain text
947 #: build/C/man3/dlopen.3:317
948 msgid ""
949 "Using these routines, or the gcc B<-nostartfiles> or B<-nostdlib> options, "
950 "is not recommended.  Their use may result in undesired behavior, since the "
951 "constructor/destructor routines will not be executed (unless special "
952 "measures are taken)."
953 msgstr ""
954 "このルーチンや、gcc のオプション B<-nostartfiles> や B<-nostdlib> は使用しな"
955 "いことを推奨する。 これらを使うと、望ましくない動作をすることがある。 なぜな"
956 "ら、(特別な措置が行われない限り) これらの constructor/destructor ルーチンは実"
957 "行されないからである。"
958
959 #. type: Plain text
960 #: build/C/man3/dlopen.3:329
961 msgid ""
962 "Instead, libraries should export routines using the "
963 "B<__attribute__((constructor))> and B<__attribute__((destructor))> function "
964 "attributes.  See the gcc info pages for information on these.  Constructor "
965 "routines are executed before B<dlopen>()  returns, and destructor routines "
966 "are executed before B<dlclose>()  returns."
967 msgstr ""
968 "代わりに、ライブラリは B<__attribute__((constructor))> や "
969 "B<__attribute__((destructor))> の関数属性を使って必要なルーチンをエクスポート"
970 "するのがよい。 これらについては gcc の info ページを参照のこと。 constructor "
971 "ルーチンは B<dlopen>()  が復帰する前に実行され、 destructor ルーチンは "
972 "B<dlclose>()  が復帰する前に実行される。"
973
974 #. type: SS
975 #: build/C/man3/dlopen.3:329
976 #, no-wrap
977 msgid "Glibc extensions: dladdr() and dlvsym()"
978 msgstr "GNU での拡張: dladdr() と dlvsym()"
979
980 #. type: Plain text
981 #: build/C/man3/dlopen.3:331
982 msgid "Glibc adds two functions not described by POSIX, with prototypes"
983 msgstr ""
984 "glibc では POSIX には記載されていない関数が 2つ追加されている。 プロトタイプ"
985 "は以下の通りである。"
986
987 #. type: Plain text
988 #: build/C/man3/dlopen.3:335
989 #, no-wrap
990 msgid ""
991 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
992 "B<#include E<lt>dlfcn.hE<gt>>\n"
993 msgstr ""
994 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
995 "B<#include E<lt>dlfcn.hE<gt>>\n"
996
997 #. type: Plain text
998 #: build/C/man3/dlopen.3:337
999 #, no-wrap
1000 msgid "B<int dladdr(void *>I<addr>B<, Dl_info *>I<info>B<);>\n"
1001 msgstr "B<int dladdr(void *>I<addr>B<, Dl_info *>I<info>B<);>\n"
1002
1003 #. type: Plain text
1004 #: build/C/man3/dlopen.3:339
1005 #, no-wrap
1006 msgid "B<void *dlvsym(void *>I<handle>B<, char *>I<symbol>B<, char *>I<version>B<);>\n"
1007 msgstr "B<void *dlvsym(void *>I<handle>B<, char *>I<symbol>B<, char *>I<version>B<);>\n"
1008
1009 #. type: Plain text
1010 #: build/C/man3/dlopen.3:348
1011 msgid ""
1012 "The function B<dladdr>()  takes a function pointer and tries to resolve name "
1013 "and file where it is located.  Information is stored in the I<Dl_info> "
1014 "structure:"
1015 msgstr ""
1016 "関数 B<dladdr>()  は、関数のポインタを引き数にとり、関数の名前と関数が定義さ"
1017 "れている ファイルの解決を試みる。情報は I<Dl_info> 構造体に格納される。"
1018
1019 #. type: Plain text
1020 #: build/C/man3/dlopen.3:361
1021 #, no-wrap
1022 msgid ""
1023 "typedef struct {\n"
1024 "    const char *dli_fname;  /* Pathname of shared object that\n"
1025 "                               contains address */\n"
1026 "    void       *dli_fbase;  /* Address at which shared object\n"
1027 "                               is loaded */\n"
1028 "    const char *dli_sname;  /* Name of symbol whose definition\n"
1029 "                               overlaps I<addr> */\n"
1030 "    void       *dli_saddr;  /* Exact address of symbol named\n"
1031 "                               in I<dli_sname> */\n"
1032 "} Dl_info;\n"
1033 msgstr ""
1034 "typedef struct {\n"
1035 "    const char *dli_fname;  /* Pathname of shared object that\n"
1036 "                               contains address */\n"
1037 "    void       *dli_fbase;  /* Address at which shared object\n"
1038 "                               is loaded */\n"
1039 "    const char *dli_sname;  /* Name of symbol whose definition\n"
1040 "                               overlaps I<addr> */\n"
1041 "    void       *dli_saddr;  /* Exact address of symbol named\n"
1042 "                               in I<dli_sname> */\n"
1043 "} Dl_info;\n"
1044
1045 #. type: Plain text
1046 #: build/C/man3/dlopen.3:371
1047 msgid ""
1048 "If no symbol matching I<addr> could be found, then I<dli_sname> and "
1049 "I<dli_saddr> are set to NULL."
1050 msgstr ""
1051 "I<addr> にマッチするシンボルが見つからなかった場合、 I<dli_sname> と "
1052 "I<dli_saddr> は NULL にセットされる。"
1053
1054 #. type: Plain text
1055 #: build/C/man3/dlopen.3:374
1056 msgid "B<dladdr>()  returns 0 on error, and nonzero on success."
1057 msgstr "B<dladdr>()  は、エラー時には 0 を返し、成功した場合は 0 以外を返す。"
1058
1059 #. type: Plain text
1060 #: build/C/man3/dlopen.3:381
1061 msgid ""
1062 "The function B<dlvsym>(), provided by glibc since version 2.1, does the same "
1063 "as B<dlsym>()  but takes a version string as an additional argument."
1064 msgstr ""
1065 "関数 B<dlvsym>()  は B<dlsym>()  と同じ動作をするが、バージョンの文字列を渡す"
1066 "引き数が 追加されている点が異なる (B<dlvsym>()  はバージョン 2.1 以降の "
1067 "glibc で提供されている)。"
1068
1069 #. type: Plain text
1070 #: build/C/man3/dlopen.3:388
1071 msgid ""
1072 "POSIX.1-2001 describes B<dlclose>(), B<dlerror>(), B<dlopen>(), and "
1073 "B<dlsym>()."
1074 msgstr ""
1075 "POSIX.1-2003 には B<dlclose>(), B<dlerror>(), B<dlopen>(), B<dlsym>().  の記"
1076 "載がある。"
1077
1078 #. type: SH
1079 #: build/C/man3/dlopen.3:388 build/C/man5/elf.5:1912 build/C/man3/end.3:53
1080 #: build/C/man8/ld.so.8:480 build/C/man1/pldd.1:84
1081 #: build/C/man7/rtld-audit.7:467
1082 #, no-wrap
1083 msgid "NOTES"
1084 msgstr "注意"
1085
1086 #.  .LP
1087 #.  The string returned by
1088 #.  .BR dlerror ()
1089 #.  should not be modified.
1090 #.  Some systems give the prototype as
1091 #.  .sp
1092 #.  .in +5
1093 #.  .B "const char *dlerror(void);"
1094 #.  .in
1095 #. type: Plain text
1096 #: build/C/man3/dlopen.3:407
1097 msgid ""
1098 "The symbols B<RTLD_DEFAULT> and B<RTLD_NEXT> are defined by I<E<lt>dlfcn."
1099 "hE<gt>> only when B<_GNU_SOURCE> was defined before including it."
1100 msgstr ""
1101 "シンボル B<RTLD_DEFAULT> と B<RTLD_NEXT> は I<E<lt>dlfcn.hE<gt>> で定義されて"
1102 "おり、 I<E<lt>dlfcn.hE<gt>> のインクルード前に B<_GNU_SOURCE> が定義されてい"
1103 "る場合のみ有効となる。"
1104
1105 #. type: Plain text
1106 #: build/C/man3/dlopen.3:412
1107 msgid ""
1108 "Since glibc 2.2.3, B<atexit>(3)  can be used to register an exit handler "
1109 "that is automatically called when a library is unloaded."
1110 msgstr ""
1111 "glibc 2.2.3 以降では、 B<atexit>(3)  を使って、ライブラリがアンロードされる際"
1112 "に自動的に呼び出される 終了ハンドラ (exit handler) を登録することができる。"
1113
1114 #. type: SS
1115 #: build/C/man3/dlopen.3:412
1116 #, no-wrap
1117 msgid "History"
1118 msgstr "歴史"
1119
1120 #. type: Plain text
1121 #: build/C/man3/dlopen.3:418
1122 msgid ""
1123 "The dlopen interface standard comes from SunOS.  That system also has "
1124 "B<dladdr>(), but not B<dlvsym>()."
1125 msgstr ""
1126 "dlopen インターフェースの標準は SunOS をもとにしている。 SunOS には "
1127 "B<dladdr>()  もあったが、 B<dlvsym>()  はなかった。"
1128
1129 #. type: SH
1130 #: build/C/man3/dlopen.3:418 build/C/man1/ldd.1:91 build/C/man1/memusage.1:267
1131 #: build/C/man1/memusagestat.1:84 build/C/man1/mtrace.1:58
1132 #: build/C/man7/rtld-audit.7:492
1133 #, no-wrap
1134 msgid "BUGS"
1135 msgstr "バグ"
1136
1137 #. type: Plain text
1138 #: build/C/man3/dlopen.3:430
1139 msgid ""
1140 "Sometimes, the function pointers you pass to B<dladdr>()  may surprise you.  "
1141 "On some architectures (notably i386 and x86_64), I<dli_fname> and "
1142 "I<dli_fbase> may end up pointing back at the object from which you called "
1143 "B<dladdr>(), even if the function used as an argument should come from a "
1144 "dynamically linked library."
1145 msgstr ""
1146 "時として、 B<dladdr>()  に渡した関数ポインタは驚くような値になることがある。 "
1147 "いくつかのアーキテクチャ (特に i386 と x86_64) では、 引き数として使用した関"
1148 "数が動的リンクライブラリで定義されるもので あったとしても、 I<dli_fname> と "
1149 "I<dli_fbase> が B<dladdr>()  を呼び出したオブジェクトを参照した状態で終わって"
1150 "いることがある。"
1151
1152 #. type: Plain text
1153 #: build/C/man3/dlopen.3:446
1154 msgid ""
1155 "The problem is that the function pointer will still be resolved at compile "
1156 "time, but merely point to the I<plt> (Procedure Linkage Table)  section of "
1157 "the original object (which dispatches the call after asking the dynamic "
1158 "linker to resolve the symbol).  To work around this, you can try to compile "
1159 "the code to be position-independent: then, the compiler cannot prepare the "
1160 "pointer at compile time anymore and today's B<gcc>(1)  will generate code "
1161 "that just loads the final symbol address from the I<got> (Global Offset "
1162 "Table) at run time before passing it to B<dladdr>()."
1163 msgstr ""
1164 "問題は、関数ポインタの解決は今なおコンパイル時に行われるが、 そのポインタは元"
1165 "のオブジェクトの I<plt> (Procedure Linkage Table) セクションを指しているだけ"
1166 "だという点にある (オブジェクト自体は、ダイナミックリンカによってシンボルの解"
1167 "決が行われた後に、 関数の呼び出しを行う)。 これに対処する方法としては、 コー"
1168 "ドを position-independent でコンパイルするという方法がある。 そうすると、コン"
1169 "パイラはコンパイル時にポインタを用意することができず、 今日の B<gcc>(1)  で"
1170 "は、実行時に B<dladdr>()  に関数ポインタを渡す前に、 I<got> (Global Offset "
1171 "Table) から最終的なシンボルのアドレスをロードするだけの コードが生成される。"
1172
1173 #. type: Plain text
1174 #: build/C/man3/dlopen.3:448
1175 msgid "Load the math library, and print the cosine of 2.0:"
1176 msgstr "math ライブラリをロードし、2.0 の余弦を表示する"
1177
1178 #. type: Plain text
1179 #: build/C/man3/dlopen.3:453
1180 #, no-wrap
1181 msgid ""
1182 "#include E<lt>stdio.hE<gt>\n"
1183 "#include E<lt>stdlib.hE<gt>\n"
1184 "#include E<lt>dlfcn.hE<gt>\n"
1185 msgstr ""
1186 "#include E<lt>stdio.hE<gt>\n"
1187 "#include E<lt>stdlib.hE<gt>\n"
1188 "#include E<lt>dlfcn.hE<gt>\n"
1189
1190 #. type: Plain text
1191 #: build/C/man3/dlopen.3:460
1192 #, no-wrap
1193 msgid ""
1194 "int\n"
1195 "main(int argc, char **argv)\n"
1196 "{\n"
1197 "    void *handle;\n"
1198 "    double (*cosine)(double);\n"
1199 "    char *error;\n"
1200 msgstr ""
1201 "int\n"
1202 "main(int argc, char **argv)\n"
1203 "{\n"
1204 "    void *handle;\n"
1205 "    double (*cosine)(double);\n"
1206 "    char *error;\n"
1207
1208 #. type: Plain text
1209 #: build/C/man3/dlopen.3:466
1210 #, no-wrap
1211 msgid ""
1212 "    handle = dlopen(\"libm.so\", RTLD_LAZY);\n"
1213 "    if (!handle) {\n"
1214 "        fprintf(stderr, \"%s\\en\", dlerror());\n"
1215 "        exit(EXIT_FAILURE);\n"
1216 "    }\n"
1217 msgstr ""
1218 "    handle = dlopen(\"libm.so\", RTLD_LAZY);\n"
1219 "    if (!handle) {\n"
1220 "        fprintf(stderr, \"%s\\en\", dlerror());\n"
1221 "        exit(EXIT_FAILURE);\n"
1222 "    }\n"
1223
1224 #. type: Plain text
1225 #: build/C/man3/dlopen.3:468
1226 #, no-wrap
1227 msgid "    dlerror();    /* Clear any existing error */\n"
1228 msgstr "    dlerror();    /* Clear any existing error */\n"
1229
1230 #. type: Plain text
1231 #: build/C/man3/dlopen.3:470
1232 #, no-wrap
1233 msgid "    cosine = (double (*)(double)) dlsym(handle, \"cos\");\n"
1234 msgstr "    cosine = (double (*)(double)) dlsym(handle, \"cos\");\n"
1235
1236 #. type: Plain text
1237 #: build/C/man3/dlopen.3:475
1238 #, no-wrap
1239 msgid ""
1240 "    /* According to the ISO C standard, casting between function\n"
1241 "       pointers and 'void *', as done above, produces undefined results.\n"
1242 "       POSIX.1-2003 and POSIX.1-2008 accepted this state of affairs and\n"
1243 "       proposed the following workaround:\n"
1244 msgstr ""
1245 "    /* ISO の C 標準によれば、上のような、関数ポインタと 'void *' 間の\n"
1246 "       キャストを行った場合に得られる結果は不定である。\n"
1247 "       POSIX.1-2003 と POSIX.1-2008 では、この状況は認められており、\n"
1248 "       以下のようなワークアラウンドが提案されている。\n"
1249
1250 #. type: Plain text
1251 #: build/C/man3/dlopen.3:477
1252 #, no-wrap
1253 msgid "           *(void **) (&cosine) = dlsym(handle, \"cos\");\n"
1254 msgstr "           *(void **) (&cosine) = dlsym(handle, \"cos\");\n"
1255
1256 #. type: Plain text
1257 #: build/C/man3/dlopen.3:480
1258 #, no-wrap
1259 msgid ""
1260 "       This (clumsy) cast conforms with the ISO C standard and will\n"
1261 "       avoid any compiler warnings.\n"
1262 msgstr ""
1263 "       この (ぶかっこうな) キャストは ISO の C 標準に従っており、\n"
1264 "       コンパイラの警告を避けることができる。\n"
1265
1266 #.  http://pubs.opengroup.org/onlinepubs/009695399/functions/dlsym.html#tag_03_112_08
1267 #.  http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlsym.html#tag_16_96_07
1268 #.  http://austingroupbugs.net/view.php?id=74
1269 #. type: Plain text
1270 #: build/C/man3/dlopen.3:489
1271 #, no-wrap
1272 msgid ""
1273 "       The 2013 Technical Corrigendum to POSIX.1-2008 (a.k.a.\n"
1274 "       POSIX.1-2013) improved matters by requiring that conforming\n"
1275 "       implementations support casting 'void *' to a function pointer.\n"
1276 "       Nevertheless, some compilers (e.g., gcc with the '-pedantic'\n"
1277 "       option) may complain about the cast used in this program. */\n"
1278 msgstr ""
1279 "       POSIX.1-2008 の 2013 Technical Corrigendum (別名 POSIX.1-2013)\n"
1280 "       では、 POSIX に準拠する実装では 'void *' から関数ポインタへの\n"
1281 "       キャストをサポートすることが要求されるようになり、状況が改善\n"
1282 "       された。にもかかわらず、('-pedantic' オプションを指定した gcc\n"
1283 "       などの) いくつかのコンパイラは、このプログラムで使用されている\n"
1284 "       キャストについて文句を言うのだ。\n"
1285
1286 #. type: Plain text
1287 #: build/C/man3/dlopen.3:495
1288 #, no-wrap
1289 msgid ""
1290 "    error = dlerror();\n"
1291 "    if (error != NULL) {\n"
1292 "        fprintf(stderr, \"%s\\en\", error);\n"
1293 "        exit(EXIT_FAILURE);\n"
1294 "    }\n"
1295 msgstr ""
1296 "    error = dlerror();\n"
1297 "    if (error != NULL) {\n"
1298 "        fprintf(stderr, \"%s\\en\", error);\n"
1299 "        exit(EXIT_FAILURE);\n"
1300 "    }\n"
1301
1302 #. type: Plain text
1303 #: build/C/man3/dlopen.3:500
1304 #, no-wrap
1305 msgid ""
1306 "    printf(\"%f\\en\", (*cosine)(2.0));\n"
1307 "    dlclose(handle);\n"
1308 "    exit(EXIT_SUCCESS);\n"
1309 "}\n"
1310 msgstr ""
1311 "    printf(\"%f\\en\", (*cosine)(2.0));\n"
1312 "    dlclose(handle);\n"
1313 "    exit(EXIT_SUCCESS);\n"
1314 "}\n"
1315
1316 #. type: Plain text
1317 #: build/C/man3/dlopen.3:504
1318 msgid ""
1319 "If this program were in a file named \"foo.c\", you would build the program "
1320 "with the following command:"
1321 msgstr ""
1322 "このプログラムを \"foo.c\" に書いたとすると、以下のコマンドでプログラムを ビ"
1323 "ルドできる。"
1324
1325 #. type: Plain text
1326 #: build/C/man3/dlopen.3:507
1327 #, no-wrap
1328 msgid "    gcc -rdynamic -o foo foo.c -ldl\n"
1329 msgstr "    gcc -rdynamic -o foo foo.c -ldl\n"
1330
1331 #. type: Plain text
1332 #: build/C/man3/dlopen.3:517
1333 msgid ""
1334 "Libraries exporting B<_init>()  and B<_fini>()  will want to be compiled as "
1335 "follows, using I<bar.c> as the example name:"
1336 msgstr ""
1337 "B<_init>()  と B<_fini>()  をエクスポートするライブラリの場合は 以下のように"
1338 "してコンパイルする必要がある。 例として I<bar.c> をコンパイルする場合:"
1339
1340 #. type: Plain text
1341 #: build/C/man3/dlopen.3:520
1342 #, no-wrap
1343 msgid "    gcc -shared -nostartfiles -o bar bar.c\n"
1344 msgstr "    gcc -shared -nostartfiles -o bar bar.c\n"
1345
1346 #. type: Plain text
1347 #: build/C/man3/dlopen.3:529
1348 msgid ""
1349 "B<ld>(1), B<ldd>(1), B<pldd>(1), B<dl_iterate_phdr>(3), B<rtld-audit>(7), "
1350 "B<ld.so>(8), B<ldconfig>(8)"
1351 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)"
1352
1353 #. type: Plain text
1354 #: build/C/man3/dlopen.3:531
1355 msgid "ld.so info pages, gcc info pages, ld info pages"
1356 msgstr "ld.so info pages, gcc info pages, ld info pages"
1357
1358 #. type: TH
1359 #: build/C/man5/elf.5:35
1360 #, no-wrap
1361 msgid "ELF"
1362 msgstr "ELF"
1363
1364 #. type: TH
1365 #: build/C/man5/elf.5:35
1366 #, no-wrap
1367 msgid "2013-04-17"
1368 msgstr "2013-04-17"
1369
1370 #. type: Plain text
1371 #: build/C/man5/elf.5:38
1372 msgid "elf - format of Executable and Linking Format (ELF) files"
1373 msgstr "elf - 実行可能リンクフォーマット (ELF) ファイルのフォーマット"
1374
1375 #.  .B #include <elf_abi.h>
1376 #. type: Plain text
1377 #: build/C/man5/elf.5:42
1378 #, no-wrap
1379 msgid "B<#include E<lt>elf.hE<gt>>\n"
1380 msgstr "B<#include E<lt>elf.hE<gt>>\n"
1381
1382 #. type: Plain text
1383 #: build/C/man5/elf.5:50
1384 msgid ""
1385 "The header file I<E<lt>elf.hE<gt>> defines the format of ELF executable "
1386 "binary files.  Amongst these files are normal executable files, relocatable "
1387 "object files, core files and shared libraries."
1388 msgstr ""
1389 "ヘッダファイル I<E<lt>elf.hE<gt>> は ELF 実行可能バイナリファイルのフォーマッ"
1390 "トを定義する。 これらのファイルとしては、通常の実行可能ファイル・ 再配置可能"
1391 "オブジェクトファイル・コアファイル・共有ライブラリがある。"
1392
1393 #. type: Plain text
1394 #: build/C/man5/elf.5:59
1395 msgid ""
1396 "An executable file using the ELF file format consists of an ELF header, "
1397 "followed by a program header table or a section header table, or both.  The "
1398 "ELF header is always at offset zero of the file.  The program header table "
1399 "and the section header table's offset in the file are defined in the ELF "
1400 "header.  The two tables describe the rest of the particularities of the file."
1401 msgstr ""
1402 "ELF ファイルフォーマットを使う実行可能ファイルは、 ELF ヘッダの後にプログラム"
1403 "ヘッダテーブルまたは セクションヘッダテーブル (またはその両方) が続く構成であ"
1404 "る。 ELF ヘッダは常にファイルのオフセット 0 にある。 プログラムヘッダテーブル"
1405 "とセクションヘッダテーブルの ファイル内でのオフセットは、ELF ヘッダに定義され"
1406 "ている。 この 2 つのテーブルはファイルの残りの部分の詳細を記述する。"
1407
1408 #.  Applications which wish to process ELF binary files for their native
1409 #.  architecture only should include
1410 #.  .I <elf_abi.h>
1411 #.  in their source code.
1412 #.  These applications should need to refer to
1413 #.  all the types and structures by their generic names
1414 #.  "Elf_xxx"
1415 #.  and to the macros by
1416 #.  ELF_xxx".
1417 #.  Applications written this way can be compiled on any architecture,
1418 #.  regardless of whether the host is 32-bit or 64-bit.
1419 #.  .PP
1420 #.  Should an application need to process ELF files of an unknown
1421 #.  architecture, then the application needs to explicitly use either
1422 #.  "Elf32_xxx"
1423 #.  or
1424 #.  "Elf64_xxx"
1425 #.  type and structure names.
1426 #.  Likewise, the macros need to be identified by
1427 #.  "ELF32_xxx"
1428 #.  or
1429 #.  "ELF64_xxx".
1430 #.  .PP
1431 #. type: Plain text
1432 #: build/C/man5/elf.5:86
1433 msgid ""
1434 "This header file describes the above mentioned headers as C structures and "
1435 "also includes structures for dynamic sections, relocation sections and "
1436 "symbol tables."
1437 msgstr ""
1438 "このヘッダファイルは上記のヘッダを C 言語の構造体で記述し、 また動的セクショ"
1439 "ン・再配置可能セクション・シンボルテーブルの構造体も 含んでいる。"
1440
1441 #. type: Plain text
1442 #: build/C/man5/elf.5:98
1443 msgid ""
1444 "The following types are used for N-bit architectures (N=32,64, I<ElfN> "
1445 "stands for I<Elf32> or I<Elf64>, I<uintN_t> stands for I<uint32_t> or "
1446 "I<uint64_t>):"
1447 msgstr ""
1448 "以下の型は N ビットアーキテクチャで使われる (N=32,64 であり I<ElfN> は "
1449 "I<Elf32> または I<Elf64> を表し、 I<uintN_t> は I<uint32_t> または "
1450 "I<uint64_t> を表す):"
1451
1452 #.  Elf32_Size  Unsigned object size
1453 #. type: Plain text
1454 #: build/C/man5/elf.5:112
1455 #, no-wrap
1456 msgid ""
1457 "ElfN_Addr       Unsigned program address, uintN_t\n"
1458 "ElfN_Off        Unsigned file offset, uintN_t\n"
1459 "ElfN_Section    Unsigned section index, uint16_t\n"
1460 "ElfN_Versym     Unsigned version symbol information, uint16_t\n"
1461 "Elf_Byte        unsigned char\n"
1462 "ElfN_Half       uint16_t\n"
1463 "ElfN_Sword      int32_t\n"
1464 "ElfN_Word       uint32_t\n"
1465 "ElfN_Sxword     int64_t\n"
1466 "ElfN_Xword      uint64_t\n"
1467 msgstr ""
1468 "ElfN_Addr       符号なしのプログラムアドレス, uintN_t\n"
1469 "ElfN_Off        符号なしのファイルオフセット, uintN_t\n"
1470 "ElfN_Section    符号なしのセクションインデックス, uint16_t\n"
1471 "ElfN_Versym     符号なしのバージョンシンボル情報, uint16_t\n"
1472 "Elf_Byte        unsigned char\n"
1473 "ElfN_Half       uint16_t\n"
1474 "ElfN_Sword      int32_t\n"
1475 "ElfN_Word       uint32_t\n"
1476 "ElfN_Sxword     int64_t\n"
1477 "ElfN_Xword      uint64_t\n"
1478
1479 #. type: Plain text
1480 #: build/C/man5/elf.5:127
1481 msgid ""
1482 "(Note: The *BSD terminology is a bit different.  There I<Elf64_Half> is "
1483 "twice as large as I<Elf32_Half>, and I<Elf64Quarter> is used for "
1484 "I<uint16_t>.  In order to avoid confusion these types are replaced by "
1485 "explicit ones in the below.)"
1486 msgstr ""
1487 "(注意: *BSD での用語は少し異なる。 I<Elf64_Half> は I<Elf32_Half> の 2 倍であ"
1488 "り、 I<Elf64Quarter> が I<uint16_t> に用いられる。 混乱を避けるため、以下で"
1489 "は、これらの型はサイズが自明な型に置き換えてある。)"
1490
1491 #. type: Plain text
1492 #: build/C/man5/elf.5:134
1493 msgid ""
1494 "All data structures that the file format defines follow the \"natural\" size "
1495 "and alignment guidelines for the relevant class.  If necessary, data "
1496 "structures contain explicit padding to ensure 4-byte alignment for 4-byte "
1497 "objects, to force structure sizes to a multiple of 4, and so on."
1498 msgstr ""
1499 "このファイルフォーマットが定義する全てのデータ構造体は、 関連するクラスの "
1500 "\"自然な\" サイズと配置の指針に従う。 必要な場合、データ構造体では明示的なパ"
1501 "ディング (padding, 詰め込み)  が行なわれる。これは 4 バイトオブジェクトに対す"
1502 "る 4 バイト配置を保証するためや、 構造体のサイズを 4 の倍数にするためなどであ"
1503 "る。"
1504
1505 #. type: Plain text
1506 #: build/C/man5/elf.5:139
1507 msgid "The ELF header is described by the type I<Elf32_Ehdr> or I<Elf64_Ehdr>:"
1508 msgstr "ELF ヘッダは型 I<Elf32_Ehdr> または I<Elf64_Ehdr> で記述される:"
1509
1510 #. type: Plain text
1511 #: build/C/man5/elf.5:143
1512 #, no-wrap
1513 msgid "#define EI_NIDENT 16\n"
1514 msgstr "#define EI_NIDENT 16\n"
1515
1516 #. type: Plain text
1517 #: build/C/man5/elf.5:160
1518 #, no-wrap
1519 msgid ""
1520 "typedef struct {\n"
1521 "    unsigned char e_ident[EI_NIDENT];\n"
1522 "    uint16_t      e_type;\n"
1523 "    uint16_t      e_machine;\n"
1524 "    uint32_t      e_version;\n"
1525 "    ElfN_Addr     e_entry;\n"
1526 "    ElfN_Off      e_phoff;\n"
1527 "    ElfN_Off      e_shoff;\n"
1528 "    uint32_t      e_flags;\n"
1529 "    uint16_t      e_ehsize;\n"
1530 "    uint16_t      e_phentsize;\n"
1531 "    uint16_t      e_phnum;\n"
1532 "    uint16_t      e_shentsize;\n"
1533 "    uint16_t      e_shnum;\n"
1534 "    uint16_t      e_shstrndx;\n"
1535 "} ElfN_Ehdr;\n"
1536 msgstr ""
1537 "typedef struct {\n"
1538 "    unsigned char e_ident[EI_NIDENT];\n"
1539 "    uint16_t      e_type;\n"
1540 "    uint16_t      e_machine;\n"
1541 "    uint32_t      e_version;\n"
1542 "    ElfN_Addr     e_entry;\n"
1543 "    ElfN_Off      e_phoff;\n"
1544 "    ElfN_Off      e_shoff;\n"
1545 "    uint32_t      e_flags;\n"
1546 "    uint16_t      e_ehsize;\n"
1547 "    uint16_t      e_phentsize;\n"
1548 "    uint16_t      e_phnum;\n"
1549 "    uint16_t      e_shentsize;\n"
1550 "    uint16_t      e_shnum;\n"
1551 "    uint16_t      e_shstrndx;\n"
1552 "} ElfN_Ehdr;\n"
1553
1554 #.  .Bl -tag -width "e_phentsize"
1555 #. type: Plain text
1556 #: build/C/man5/elf.5:165
1557 msgid "The fields have the following meanings:"
1558 msgstr "フィールドは以下の意味を持つ:"
1559
1560 #. type: TP
1561 #: build/C/man5/elf.5:165
1562 #, no-wrap
1563 msgid "I<e_ident>"
1564 msgstr "I<e_ident>"
1565
1566 #. type: Plain text
1567 #: build/C/man5/elf.5:175
1568 msgid ""
1569 "This array of bytes specifies to interpret the file, independent of the "
1570 "processor or the file's remaining contents.  Within this array everything is "
1571 "named by macros, which start with the prefix B<EI_> and may contain values "
1572 "which start with the prefix B<ELF>.  The following macros are defined:"
1573 msgstr ""
1574 "このバイト配列は、プロセッサやファイルの他の部分には依存せずに、 ファイルを解"
1575 "釈 (interpret) するために指定される。 この配列内のすべてのものは、接頭辞 "
1576 "B<EI_> で始まるマクロの名前が付き、接頭辞 B<ELF> で始まる値を持つ。 以下のマ"
1577 "クロが定義されている:"
1578
1579 #. type: TP
1580 #: build/C/man5/elf.5:177
1581 #, no-wrap
1582 msgid "B<EI_MAG0>"
1583 msgstr "B<EI_MAG0>"
1584
1585 #. type: Plain text
1586 #: build/C/man5/elf.5:183
1587 msgid ""
1588 "The first byte of the magic number.  It must be filled with B<ELFMAG0>.  (0: "
1589 "0x7f)"
1590 msgstr ""
1591 "マジックナンバーの第 1 バイト。 B<ELFMAG0> で埋めなければならない。 (0: 0x7f)"
1592
1593 #. type: TP
1594 #: build/C/man5/elf.5:183
1595 #, no-wrap
1596 msgid "B<EI_MAG1>"
1597 msgstr "B<EI_MAG1>"
1598
1599 #. type: Plain text
1600 #: build/C/man5/elf.5:189
1601 msgid ""
1602 "The second byte of the magic number.  It must be filled with B<ELFMAG1>.  "
1603 "(1: \\(aqE\\(aq)"
1604 msgstr ""
1605 "マジックナンバーの第 2 バイト。 B<ELFMAG1> で埋めなければならない。 (1: "
1606 "\\(aqE\\(aq)"
1607
1608 #. type: TP
1609 #: build/C/man5/elf.5:189
1610 #, no-wrap
1611 msgid "B<EI_MAG2>"
1612 msgstr "B<EI_MAG2>"
1613
1614 #. type: Plain text
1615 #: build/C/man5/elf.5:195
1616 msgid ""
1617 "The third byte of the magic number.  It must be filled with B<ELFMAG2>.  (2: "
1618 "\\(aqL\\(aq)"
1619 msgstr ""
1620 "マジックナンバーの第 3 バイト。 B<ELFMAG2> で埋めなければならない。 (2: "
1621 "\\(aqL\\(aq)"
1622
1623 #. type: TP
1624 #: build/C/man5/elf.5:195
1625 #, no-wrap
1626 msgid "B<EI_MAG3>"
1627 msgstr "B<EI_MAG3>"
1628
1629 #. type: Plain text
1630 #: build/C/man5/elf.5:201
1631 msgid ""
1632 "The fourth byte of the magic number.  It must be filled with B<ELFMAG3>.  "
1633 "(3: \\(aqF\\(aq)"
1634 msgstr ""
1635 "マジックナンバーの第 4 バイト。 B<ELFMAG3> で埋めなければならない。 (3: "
1636 "\\(aqF\\(aq)"
1637
1638 #. type: TP
1639 #: build/C/man5/elf.5:201
1640 #, no-wrap
1641 msgid "B<EI_CLASS>"
1642 msgstr "B<EI_CLASS>"
1643
1644 #. type: Plain text
1645 #: build/C/man5/elf.5:204
1646 msgid "The fifth byte identifies the architecture for this binary:"
1647 msgstr "第 5 バイトは、このバイナリのアーキテクチャを示す:"
1648
1649 #. type: TP
1650 #: build/C/man5/elf.5:206
1651 #, no-wrap
1652 msgid "B<ELFCLASSNONE>"
1653 msgstr "B<ELFCLASSNONE>"
1654
1655 #. type: Plain text
1656 #: build/C/man5/elf.5:210
1657 msgid "This class is invalid."
1658 msgstr "このクラスは不正である。"
1659
1660 #. type: TP
1661 #: build/C/man5/elf.5:210
1662 #, no-wrap
1663 msgid "B<ELFCLASS32>"
1664 msgstr "B<ELFCLASS32>"
1665
1666 #. type: Plain text
1667 #: build/C/man5/elf.5:215
1668 msgid ""
1669 "This defines the 32-bit architecture.  It supports machines with files and "
1670 "virtual address spaces up to 4 Gigabytes."
1671 msgstr ""
1672 "32 ビットアーキテクチャを定義する。 ファイルと仮想アドレス空間が 4 ギガバイト"
1673 "までのマシンをサポートする。"
1674
1675 #. type: TP
1676 #: build/C/man5/elf.5:215
1677 #, no-wrap
1678 msgid "B<ELFCLASS64>"
1679 msgstr "B<ELFCLASS64>"
1680
1681 #. type: Plain text
1682 #: build/C/man5/elf.5:218
1683 msgid "This defines the 64-bit architecture."
1684 msgstr "64 ビットアーキテクチャを定義する。"
1685
1686 #. type: TP
1687 #: build/C/man5/elf.5:221
1688 #, no-wrap
1689 msgid "B<EI_DATA>"
1690 msgstr "B<EI_DATA>"
1691
1692 #.  .Bl -tag -width "ELFDATA2LSB" -compact
1693 #. type: Plain text
1694 #: build/C/man5/elf.5:227
1695 msgid ""
1696 "The sixth byte specifies the data encoding of the processor-specific data in "
1697 "the file.  Currently these encodings are supported:"
1698 msgstr ""
1699 "第 6 バイトはファイル内のプロセッサ固有データの データエンコーディングを指定"
1700 "する。 現在のところ以下のエンコーディングがサポートされている:"
1701
1702 #. type: TP
1703 #: build/C/man5/elf.5:228
1704 #, no-wrap
1705 msgid "B<ELFDATANONE>"
1706 msgstr "B<ELFDATANONE>"
1707
1708 #. type: Plain text
1709 #: build/C/man5/elf.5:232
1710 msgid "Unknown data format."
1711 msgstr "不明なデータフォーマット。"
1712
1713 #. type: TP
1714 #: build/C/man5/elf.5:232
1715 #, no-wrap
1716 msgid "B<ELFDATA2LSB>"
1717 msgstr "B<ELFDATA2LSB>"
1718
1719 #. type: Plain text
1720 #: build/C/man5/elf.5:235
1721 msgid "Two's complement, little-endian."
1722 msgstr "2 の補数、リトルエンディアン。"
1723
1724 #. type: TP
1725 #: build/C/man5/elf.5:235
1726 #, no-wrap
1727 msgid "B<ELFDATA2MSB>"
1728 msgstr "B<ELFDATA2MSB>"
1729
1730 #. type: Plain text
1731 #: build/C/man5/elf.5:238
1732 msgid "Two's complement, big-endian."
1733 msgstr "2 の補数、ビッグエンディアン。"
1734
1735 #. type: TP
1736 #: build/C/man5/elf.5:241
1737 #, no-wrap
1738 msgid "B<EI_VERSION>"
1739 msgstr "B<EI_VERSION>"
1740
1741 #.  .Bl -tag -width "EV_CURRENT" -compact
1742 #. type: Plain text
1743 #: build/C/man5/elf.5:246
1744 msgid "The seventh byte is the version number of the ELF specification:"
1745 msgstr "第 7 バイトは ELF 仕様のバージョン番号である:"
1746
1747 #. type: TP
1748 #: build/C/man5/elf.5:247 build/C/man5/elf.5:501
1749 #, no-wrap
1750 msgid "B<EV_NONE>"
1751 msgstr "B<EV_NONE>"
1752
1753 #. type: Plain text
1754 #: build/C/man5/elf.5:250 build/C/man5/elf.5:505
1755 msgid "Invalid version."
1756 msgstr "不正なバージョン。"
1757
1758 #. type: TP
1759 #: build/C/man5/elf.5:250 build/C/man5/elf.5:505
1760 #, no-wrap
1761 msgid "B<EV_CURRENT>"
1762 msgstr "B<EV_CURRENT>"
1763
1764 #.  .El
1765 #. type: Plain text
1766 #: build/C/man5/elf.5:253 build/C/man5/elf.5:509
1767 msgid "Current version."
1768 msgstr "現在のバージョン。"
1769
1770 #. type: TP
1771 #: build/C/man5/elf.5:256
1772 #, no-wrap
1773 msgid "B<EI_OSABI>"
1774 msgstr "B<EI_OSABI>"
1775
1776 #.  .Bl -tag -width "ELFOSABI_STANDALONE" -compact
1777 #. type: Plain text
1778 #: build/C/man5/elf.5:265
1779 msgid ""
1780 "The eighth byte identifies the operating system and ABI to which the object "
1781 "is targeted.  Some fields in other ELF structures have flags and values that "
1782 "have platform-specific meanings; the interpretation of those fields is "
1783 "determined by the value of this byte.  For example:"
1784 msgstr ""
1785 "第 8 バイトはオブジェクトのターゲットとなるオペレーティングシステムと ABI を"
1786 "示す。他の ELF 構造体のフィールドには、プラットフォーム固有の意味を持つフラグ"
1787 "や値を持つものもある。これらのフィールドの解釈は、このバイトの値によって決定"
1788 "される。以下に例を挙げる。"
1789
1790 #. type: TP
1791 #: build/C/man5/elf.5:266
1792 #, no-wrap
1793 msgid "B<ELFOSABI_NONE>"
1794 msgstr "B<ELFOSABI_NONE>"
1795
1796 #.  0
1797 #. type: Plain text
1798 #: build/C/man5/elf.5:271
1799 msgid "Same as ELFOSABI_SYSV"
1800 msgstr "ELFOSABI_SYSV と同じ。"
1801
1802 #. type: TP
1803 #: build/C/man5/elf.5:271
1804 #, no-wrap
1805 msgid "B<ELFOSABI_SYSV>"
1806 msgstr "B<ELFOSABI_SYSV>"
1807
1808 #.  0
1809 #.  synonym: ELFOSABI_NONE
1810 #. type: Plain text
1811 #: build/C/man5/elf.5:276
1812 msgid "UNIX System V ABI."
1813 msgstr "UNIX System V ABI."
1814
1815 #. type: TP
1816 #: build/C/man5/elf.5:276
1817 #, no-wrap
1818 msgid "B<ELFOSABI_HPUX>"
1819 msgstr "B<ELFOSABI_HPUX>"
1820
1821 #.  1
1822 #. type: Plain text
1823 #: build/C/man5/elf.5:280
1824 msgid "HP-UX ABI."
1825 msgstr "HP-UX ABI."
1826
1827 #. type: TP
1828 #: build/C/man5/elf.5:280
1829 #, no-wrap
1830 msgid "B<ELFOSABI_NETBSD>"
1831 msgstr "B<ELFOSABI_NETBSD>"
1832
1833 #.  2
1834 #. type: Plain text
1835 #: build/C/man5/elf.5:284
1836 msgid "NetBSD ABI."
1837 msgstr "NetBSD ABI."
1838
1839 #. type: TP
1840 #: build/C/man5/elf.5:284
1841 #, no-wrap
1842 msgid "B<ELFOSABI_LINUX>"
1843 msgstr "B<ELFOSABI_LINUX>"
1844
1845 #.  3
1846 #.  .TP
1847 #.  .BR ELFOSABI_HURD
1848 #.  Hurd ABI.
1849 #.  4
1850 #.  .TP
1851 #.  .BR ELFOSABI_86OPEN
1852 #.  86Open Common IA32 ABI.
1853 #.  5
1854 #. type: Plain text
1855 #: build/C/man5/elf.5:296
1856 msgid "Linux ABI."
1857 msgstr "Linux ABI."
1858
1859 #. type: TP
1860 #: build/C/man5/elf.5:296
1861 #, no-wrap
1862 msgid "B<ELFOSABI_SOLARIS>"
1863 msgstr "B<ELFOSABI_SOLARIS>"
1864
1865 #.  6
1866 #.  .TP
1867 #.  .BR ELFOSABI_MONTEREY
1868 #.  Monterey project ABI.
1869 #.  Now replaced by
1870 #.  ELFOSABI_AIX
1871 #.  7
1872 #. type: Plain text
1873 #: build/C/man5/elf.5:306
1874 msgid "Solaris ABI."
1875 msgstr "Solaris ABI."
1876
1877 #. type: TP
1878 #: build/C/man5/elf.5:306
1879 #, no-wrap
1880 msgid "B<ELFOSABI_IRIX>"
1881 msgstr "B<ELFOSABI_IRIX>"
1882
1883 #.  8
1884 #. type: Plain text
1885 #: build/C/man5/elf.5:310
1886 msgid "IRIX ABI."
1887 msgstr "IRIX ABI."
1888
1889 #. type: TP
1890 #: build/C/man5/elf.5:310
1891 #, no-wrap
1892 msgid "B<ELFOSABI_FREEBSD>"
1893 msgstr "B<ELFOSABI_FREEBSD>"
1894
1895 #.  9
1896 #. type: Plain text
1897 #: build/C/man5/elf.5:314
1898 msgid "FreeBSD ABI."
1899 msgstr "FreeBSD ABI."
1900
1901 #. type: TP
1902 #: build/C/man5/elf.5:314
1903 #, no-wrap
1904 msgid "B<ELFOSABI_TRU64>"
1905 msgstr "B<ELFOSABI_TRU64>"
1906
1907 #.  10
1908 #.  ELFOSABI_MODESTO
1909 #.  11
1910 #.  ELFOSABI_OPENBSD
1911 #.  12
1912 #. type: Plain text
1913 #: build/C/man5/elf.5:322
1914 msgid "TRU64 UNIX ABI."
1915 msgstr "TRU64 UNIX ABI."
1916
1917 #. type: TP
1918 #: build/C/man5/elf.5:322
1919 #, no-wrap
1920 msgid "B<ELFOSABI_ARM>"
1921 msgstr "B<ELFOSABI_ARM>"
1922
1923 #.  97
1924 #. type: Plain text
1925 #: build/C/man5/elf.5:326
1926 msgid "ARM architecture ABI."
1927 msgstr "ARM アーキテクチャ ABI."
1928
1929 #. type: TP
1930 #: build/C/man5/elf.5:326
1931 #, no-wrap
1932 msgid "B<ELFOSABI_STANDALONE>"
1933 msgstr "B<ELFOSABI_STANDALONE>"
1934
1935 #.  255
1936 #.  .El
1937 #. type: Plain text
1938 #: build/C/man5/elf.5:331
1939 msgid "Stand-alone (embedded) ABI."
1940 msgstr "スタンドアロン (組み込み) ABI."
1941
1942 #. type: TP
1943 #: build/C/man5/elf.5:333
1944 #, no-wrap
1945 msgid "B<EI_ABIVERSION>"
1946 msgstr "B<EI_ABIVERSION>"
1947
1948 #. type: Plain text
1949 #: build/C/man5/elf.5:343
1950 msgid ""
1951 "The ninth byte identifies the version of the ABI to which the object is "
1952 "targeted.  This field is used to distinguish among incompatible versions of "
1953 "an ABI.  The interpretation of this version number is dependent on the ABI "
1954 "identified by the B<EI_OSABI> field.  Applications conforming to this "
1955 "specification use the value 0."
1956 msgstr ""
1957 "第 9 バイトはオブジェクトがターゲットとしている ABI のバージョンを示す。 この"
1958 "フィールドは互換性のない ABI のバージョンを区別するために使われる。 このバー"
1959 "ジョン番号の解釈は、 B<EI_OSABI> フィールドで識別される ABI に依存する。 この"
1960 "仕様に準拠するアプリケーションでは、値 0 を使う。"
1961
1962 #. type: TP
1963 #: build/C/man5/elf.5:343
1964 #, no-wrap
1965 msgid "B<EI_PAD>"
1966 msgstr "B<EI_PAD>"
1967
1968 #.  As reported by Yuri Kozlov and confirmed by Mike Frysinger, EI_BRAND is
1969 #.  not in GABI (http://www.sco.com/developers/gabi/latest/ch4.eheader.html)
1970 #.  It looks to be a BSDism
1971 #.  .TP
1972 #.  .BR EI_BRAND
1973 #.  Start of architecture identification.
1974 #. type: Plain text
1975 #: build/C/man5/elf.5:359
1976 msgid ""
1977 "Start of padding.  These bytes are reserved and set to zero.  Programs which "
1978 "read them should ignore them.  The value for B<EI_PAD> will change in the "
1979 "future if currently unused bytes are given meanings."
1980 msgstr ""
1981 "パディングの開始。 これらのバイトは予約されており、0 に設定されている。 これ"
1982 "らを読み込むプログラムは、これらのバイトを無視すべきである。 現在使われていな"
1983 "いバイトに意味が与えられる場合、 B<EI_PAD> の値は将来変更されるかもしれない。"
1984
1985 #. type: TP
1986 #: build/C/man5/elf.5:359
1987 #, no-wrap
1988 msgid "B<EI_NIDENT>"
1989 msgstr "B<EI_NIDENT>"
1990
1991 #.  .El
1992 #. type: Plain text
1993 #: build/C/man5/elf.5:365
1994 msgid "The size of the I<e_ident> array."
1995 msgstr "I<e_ident> 配列のサイズ。"
1996
1997 #. type: TP
1998 #: build/C/man5/elf.5:366
1999 #, no-wrap
2000 msgid "I<e_type>"
2001 msgstr "I<e_type>"
2002
2003 #. type: Plain text
2004 #: build/C/man5/elf.5:369
2005 msgid "This member of the structure identifies the object file type:"
2006 msgstr "この構造体のメンバはオブジェクトファイルタイプを示す:"
2007
2008 #. type: TP
2009 #: build/C/man5/elf.5:371
2010 #, no-wrap
2011 msgid "B<ET_NONE>"
2012 msgstr "B<ET_NONE>"
2013
2014 #. type: Plain text
2015 #: build/C/man5/elf.5:375
2016 msgid "An unknown type."
2017 msgstr "不明なタイプ。"
2018
2019 #. type: TP
2020 #: build/C/man5/elf.5:375
2021 #, no-wrap
2022 msgid "B<ET_REL>"
2023 msgstr "B<ET_REL>"
2024
2025 #. type: Plain text
2026 #: build/C/man5/elf.5:378
2027 msgid "A relocatable file."
2028 msgstr "再配置可能ファイル。"
2029
2030 #. type: TP
2031 #: build/C/man5/elf.5:378
2032 #, no-wrap
2033 msgid "B<ET_EXEC>"
2034 msgstr "B<ET_EXEC>"
2035
2036 #. type: Plain text
2037 #: build/C/man5/elf.5:381
2038 msgid "An executable file."
2039 msgstr "実行可能ファイル。"
2040
2041 #. type: TP
2042 #: build/C/man5/elf.5:381
2043 #, no-wrap
2044 msgid "B<ET_DYN>"
2045 msgstr "B<ET_DYN>"
2046
2047 #. type: Plain text
2048 #: build/C/man5/elf.5:384
2049 msgid "A shared object."
2050 msgstr "共有オブジェクト。"
2051
2052 #. type: TP
2053 #: build/C/man5/elf.5:384
2054 #, no-wrap
2055 msgid "B<ET_CORE>"
2056 msgstr "B<ET_CORE>"
2057
2058 #. type: Plain text
2059 #: build/C/man5/elf.5:387
2060 msgid "A core file."
2061 msgstr "コアファイル。"
2062
2063 #. type: TP
2064 #: build/C/man5/elf.5:390
2065 #, no-wrap
2066 msgid "I<e_machine>"
2067 msgstr "I<e_machine>"
2068
2069 #. type: Plain text
2070 #: build/C/man5/elf.5:394
2071 msgid ""
2072 "This member specifies the required architecture for an individual file.  For "
2073 "example:"
2074 msgstr "このメンバは個々のファイルに必要とされるアーキテクチャを指定する。 例:"
2075
2076 #. type: TP
2077 #: build/C/man5/elf.5:396
2078 #, no-wrap
2079 msgid "B<EM_NONE>"
2080 msgstr "B<EM_NONE>"
2081
2082 #.  0
2083 #. type: Plain text
2084 #: build/C/man5/elf.5:401
2085 msgid "An unknown machine."
2086 msgstr "不明なマシン。"
2087
2088 #. type: TP
2089 #: build/C/man5/elf.5:401
2090 #, no-wrap
2091 msgid "B<EM_M32>"
2092 msgstr "B<EM_M32>"
2093
2094 #.  1
2095 #. type: Plain text
2096 #: build/C/man5/elf.5:405
2097 msgid "AT&T WE 32100."
2098 msgstr "AT&T WE 32100."
2099
2100 #. type: TP
2101 #: build/C/man5/elf.5:405
2102 #, no-wrap
2103 msgid "B<EM_SPARC>"
2104 msgstr "B<EM_SPARC>"
2105
2106 #.  2
2107 #. type: Plain text
2108 #: build/C/man5/elf.5:409
2109 msgid "Sun Microsystems SPARC."
2110 msgstr "Sun Microsystems SPARC."
2111
2112 #. type: TP
2113 #: build/C/man5/elf.5:409
2114 #, no-wrap
2115 msgid "B<EM_386>"
2116 msgstr "B<EM_386>"
2117
2118 #.  3
2119 #. type: Plain text
2120 #: build/C/man5/elf.5:413
2121 msgid "Intel 80386."
2122 msgstr "Intel 80386."
2123
2124 #. type: TP
2125 #: build/C/man5/elf.5:413
2126 #, no-wrap
2127 msgid "B<EM_68K>"
2128 msgstr "B<EM_68K>"
2129
2130 #.  4
2131 #. type: Plain text
2132 #: build/C/man5/elf.5:417
2133 msgid "Motorola 68000."
2134 msgstr "Motorola 68000."
2135
2136 #. type: TP
2137 #: build/C/man5/elf.5:417
2138 #, no-wrap
2139 msgid "B<EM_88K>"
2140 msgstr "B<EM_88K>"
2141
2142 #.  5
2143 #.  .TP
2144 #.  .BR EM_486
2145 #.  Intel 80486.
2146 #.  6
2147 #. type: Plain text
2148 #: build/C/man5/elf.5:425
2149 msgid "Motorola 88000."
2150 msgstr "Motorola 88000."
2151
2152 #. type: TP
2153 #: build/C/man5/elf.5:425
2154 #, no-wrap
2155 msgid "B<EM_860>"
2156 msgstr "B<EM_860>"
2157
2158 #.  7
2159 #. type: Plain text
2160 #: build/C/man5/elf.5:429
2161 msgid "Intel 80860."
2162 msgstr "Intel 80860."
2163
2164 #. type: TP
2165 #: build/C/man5/elf.5:429
2166 #, no-wrap
2167 msgid "B<EM_MIPS>"
2168 msgstr "B<EM_MIPS>"
2169
2170 #.  8
2171 #.  EM_S370
2172 #.  9
2173 #.  .TP
2174 #.  .BR EM_MIPS_RS4_BE
2175 #.  MIPS RS4000 (big-endian only). Deprecated.
2176 #.  10
2177 #.  EM_MIPS_RS3_LE (MIPS R3000 little-endian)
2178 #.  10
2179 #. type: Plain text
2180 #: build/C/man5/elf.5:441
2181 msgid "MIPS RS3000 (big-endian only)."
2182 msgstr "MIPS RS3000 (ビッグエンディアンのみ)。"
2183
2184 #. type: TP
2185 #: build/C/man5/elf.5:441
2186 #, no-wrap
2187 msgid "B<EM_PARISC>"
2188 msgstr "B<EM_PARISC>"
2189
2190 #.  15
2191 #. type: Plain text
2192 #: build/C/man5/elf.5:445
2193 msgid "HP/PA."
2194 msgstr "HP/PA."
2195
2196 #. type: TP
2197 #: build/C/man5/elf.5:445
2198 #, no-wrap
2199 msgid "B<EM_SPARC32PLUS>"
2200 msgstr "B<EM_SPARC32PLUS>"
2201
2202 #.  18
2203 #. type: Plain text
2204 #: build/C/man5/elf.5:449
2205 msgid "SPARC with enhanced instruction set."
2206 msgstr "拡張命令セット付き SPARC。"
2207
2208 #. type: TP
2209 #: build/C/man5/elf.5:449
2210 #, no-wrap
2211 msgid "B<EM_PPC>"
2212 msgstr "B<EM_PPC>"
2213
2214 #.  20
2215 #. type: Plain text
2216 #: build/C/man5/elf.5:453
2217 msgid "PowerPC."
2218 msgstr "PowerPC."
2219
2220 #. type: TP
2221 #: build/C/man5/elf.5:453
2222 #, no-wrap
2223 msgid "B<EM_PPC64>"
2224 msgstr "B<EM_PPC64>"
2225
2226 #.  21
2227 #. type: Plain text
2228 #: build/C/man5/elf.5:457
2229 msgid "PowerPC 64-bit."
2230 msgstr "PowerPC 64-bit."
2231
2232 #. type: TP
2233 #: build/C/man5/elf.5:457
2234 #, no-wrap
2235 msgid "B<EM_S390>"
2236 msgstr "B<EM_S390>"
2237
2238 #.  22
2239 #. type: Plain text
2240 #: build/C/man5/elf.5:461
2241 msgid "IBM S/390"
2242 msgstr "IBM S/390"
2243
2244 #. type: TP
2245 #: build/C/man5/elf.5:461
2246 #, no-wrap
2247 msgid "B<EM_ARM>"
2248 msgstr "B<EM_ARM>"
2249
2250 #.  40
2251 #. type: Plain text
2252 #: build/C/man5/elf.5:465
2253 msgid "Advanced RISC Machines"
2254 msgstr "Advanced RISC Machines"
2255
2256 #. type: TP
2257 #: build/C/man5/elf.5:465
2258 #, no-wrap
2259 msgid "B<EM_SH>"
2260 msgstr "B<EM_SH>"
2261
2262 #.  42
2263 #. type: Plain text
2264 #: build/C/man5/elf.5:469
2265 msgid "Renesas SuperH"
2266 msgstr "Renesas SuperH"
2267
2268 #. type: TP
2269 #: build/C/man5/elf.5:469
2270 #, no-wrap
2271 msgid "B<EM_SPARCV9>"
2272 msgstr "B<EM_SPARCV9>"
2273
2274 #.  43
2275 #. type: Plain text
2276 #: build/C/man5/elf.5:473
2277 msgid "SPARC v9 64-bit."
2278 msgstr "SPARC v9 64-bit."
2279
2280 #. type: TP
2281 #: build/C/man5/elf.5:473
2282 #, no-wrap
2283 msgid "B<EM_IA_64>"
2284 msgstr "B<EM_IA_64>"
2285
2286 #.  50
2287 #. type: Plain text
2288 #: build/C/man5/elf.5:477
2289 msgid "Intel Itanium"
2290 msgstr "Intel Itanium"
2291
2292 #. type: TP
2293 #: build/C/man5/elf.5:477
2294 #, no-wrap
2295 msgid "B<EM_X86_64>"
2296 msgstr "B<EM_X86_64>"
2297
2298 #.  62
2299 #. type: Plain text
2300 #: build/C/man5/elf.5:481
2301 msgid "AMD x86-64"
2302 msgstr "AMD x86-64"
2303
2304 #. type: TP
2305 #: build/C/man5/elf.5:481
2306 #, no-wrap
2307 msgid "B<EM_VAX>"
2308 msgstr "B<EM_VAX>"
2309
2310 #.  75
2311 #.  EM_CRIS
2312 #.  76
2313 #.  .TP
2314 #.  .BR EM_ALPHA
2315 #.  Compaq [DEC] Alpha.
2316 #.  .TP
2317 #.  .BR EM_ALPHA_EXP
2318 #.  Compaq [DEC] Alpha with enhanced instruction set.
2319 #. type: Plain text
2320 #: build/C/man5/elf.5:493
2321 msgid "DEC Vax."
2322 msgstr "DEC Vax."
2323
2324 #. type: TP
2325 #: build/C/man5/elf.5:496
2326 #, no-wrap
2327 msgid "I<e_version>"
2328 msgstr "I<e_version>"
2329
2330 #.  .Bl -tag -width "EV_CURRENT" -compact
2331 #. type: Plain text
2332 #: build/C/man5/elf.5:500
2333 msgid "This member identifies the file version:"
2334 msgstr "このメンバはファイルバージョンを示す:"
2335
2336 #. type: TP
2337 #: build/C/man5/elf.5:511
2338 #, no-wrap
2339 msgid "I<e_entry>"
2340 msgstr "I<e_entry>"
2341
2342 #. type: Plain text
2343 #: build/C/man5/elf.5:517
2344 msgid ""
2345 "This member gives the virtual address to which the system first transfers "
2346 "control, thus starting the process.  If the file has no associated entry "
2347 "point, this member holds zero."
2348 msgstr ""
2349 "このメンバは、システムが最初に制御を渡す、 つまりプロセスを開始する仮想アドレ"
2350 "スを指定する。 ファイルにエントリポイントが関連付けられていない場合、 このメ"
2351 "ンバには 0 が入る。"
2352
2353 #. type: TP
2354 #: build/C/man5/elf.5:517
2355 #, no-wrap
2356 msgid "I<e_phoff>"
2357 msgstr "I<e_phoff>"
2358
2359 #. type: Plain text
2360 #: build/C/man5/elf.5:522
2361 msgid ""
2362 "This member holds the program header table's file offset in bytes.  If the "
2363 "file has no program header table, this member holds zero."
2364 msgstr ""
2365 "このメンバはプログラムヘッダテーブルの ファイルオフセット (バイト単位) を保持"
2366 "する。 ファイルにプログラムヘッダテーブルがない場合、 このメンバには 0 が入"
2367 "る。"
2368
2369 #. type: TP
2370 #: build/C/man5/elf.5:522
2371 #, no-wrap
2372 msgid "I<e_shoff>"
2373 msgstr "I<e_shoff>"
2374
2375 #. type: Plain text
2376 #: build/C/man5/elf.5:527
2377 msgid ""
2378 "This member holds the section header table's file offset in bytes.  If the "
2379 "file has no section header table, this member holds zero."
2380 msgstr ""
2381 "このメンバはセクションヘッダテーブルの ファイルオフセット (バイト単位) を保持"
2382 "する。 ファイルにセクションヘッダテーブルがない場合、 このメンバには 0 が入"
2383 "る。"
2384
2385 #. type: TP
2386 #: build/C/man5/elf.5:527
2387 #, no-wrap
2388 msgid "I<e_flags>"
2389 msgstr "I<e_flags>"
2390
2391 #. type: Plain text
2392 #: build/C/man5/elf.5:532
2393 msgid ""
2394 "This member holds processor-specific flags associated with the file.  Flag "
2395 "names take the form EF_`machine_flag'.  Currently no flags have been defined."
2396 msgstr ""
2397 "このメンバはファイルに関連付けられたプロセッサ固有のフラグを保持する。 フラグ"
2398 "の名前は EF_`machine_flag' という形式である。 現在のところフラグは定義されて"
2399 "いない。"
2400
2401 #. type: TP
2402 #: build/C/man5/elf.5:532
2403 #, no-wrap
2404 msgid "I<e_ehsize>"
2405 msgstr "I<e_ehsize>"
2406
2407 #. type: Plain text
2408 #: build/C/man5/elf.5:535
2409 msgid "This member holds the ELF header's size in bytes."
2410 msgstr "このメンバは ELF ヘッダサイズ (バイト単位) を保持する。"
2411
2412 #. type: TP
2413 #: build/C/man5/elf.5:535
2414 #, no-wrap
2415 msgid "I<e_phentsize>"
2416 msgstr "I<e_phentsize>"
2417
2418 #. type: Plain text
2419 #: build/C/man5/elf.5:539
2420 msgid ""
2421 "This member holds the size in bytes of one entry in the file's program "
2422 "header table; all entries are the same size."
2423 msgstr ""
2424 "このメンバはこのファイルのプログラムヘッダテーブルの 1 エントリあたりのサイ"
2425 "ズ (バイト単位) を保持する; 全てのエントリは同じサイズである。"
2426
2427 #. type: TP
2428 #: build/C/man5/elf.5:539
2429 #, no-wrap
2430 msgid "I<e_phnum>"
2431 msgstr "I<e_phnum>"
2432
2433 #. type: Plain text
2434 #: build/C/man5/elf.5:552
2435 msgid ""
2436 "This member holds the number of entries in the program header table.  Thus "
2437 "the product of I<e_phentsize> and I<e_phnum> gives the table's size in "
2438 "bytes.  If a file has no program header, I<e_phnum> holds the value zero."
2439 msgstr ""
2440 "このメンバはプログラムヘッダテーブルにあるエントリの数を保持する。 よって "
2441 "I<e_phentsize> と I<e_phnum> の積がテーブルサイズ (バイト単位) になる。 ファ"
2442 "イルにプログラムヘッダがない場合、 I<e_phnum> は値 0 を保持する。"
2443
2444 #.  This is a Linux extension, added in Linux 2.6.34.
2445 #.  .Bl -tag -width "PN_XNUM"
2446 #. type: Plain text
2447 #: build/C/man5/elf.5:566
2448 msgid ""
2449 "If the number of entries in the program header table is larger than or equal "
2450 "to B<PN_XNUM> (0xffff), this member holds B<PN_XNUM> (0xffff) and the real "
2451 "number of entries in the program header table is held in the I<sh_info> "
2452 "member of the initial entry in section header table.  Otherwise, the "
2453 "I<sh_info> member of the initial entry contains the value zero."
2454 msgstr ""
2455 "プログラムヘッダテーブルのエントリー数が B<PN_XNUM> (0xffff) 以上の場合、\n"
2456 "このメンバは B<PN_XNUM> (0xffff) になり、プログラムヘッダテーブルの\n"
2457 "エントリーの実際の数は、セクションヘッダテーブルの最初のエントリーの \n"
2458 "I<sh_info> メンバに格納される。それ以外の場合、セクションヘッダテーブルの\n"
2459 "最初のエントリーの I<sh_info> メンバには値 0 が格納される。"
2460
2461 #. type: TP
2462 #: build/C/man5/elf.5:567
2463 #, no-wrap
2464 msgid "B<PN_XNUM>"
2465 msgstr "B<PN_XNUM>"
2466
2467 #. type: Plain text
2468 #: build/C/man5/elf.5:572
2469 msgid ""
2470 "This is defined as 0xffff, the largest number I<e_phnum> can have, "
2471 "specifying where the actual number of program headers is assigned."
2472 msgstr ""
2473 "I<e_phnum> が保持できる最大値を表し、 0xffff に定義されている。 I<e_phnum> \n"
2474 "はプログラムヘッダの実際の数がどこに割り当てられているかを示す。"
2475
2476 #. type: TP
2477 #: build/C/man5/elf.5:576
2478 #, no-wrap
2479 msgid "I<e_shentsize>"
2480 msgstr "I<e_shentsize>"
2481
2482 #. type: Plain text
2483 #: build/C/man5/elf.5:581
2484 msgid ""
2485 "This member holds a sections header's size in bytes.  A section header is "
2486 "one entry in the section header table; all entries are the same size."
2487 msgstr ""
2488 "このメンバはセクションヘッダのサイズ (バイト単位) を保持する。 セクションヘッ"
2489 "ダはセクションヘッダテーブルの 1 つのエントリである; 全てのエントリは同じサイ"
2490 "ズである。"
2491
2492 #. type: TP
2493 #: build/C/man5/elf.5:581
2494 #, no-wrap
2495 msgid "I<e_shnum>"
2496 msgstr "I<e_shnum>"
2497
2498 #. type: Plain text
2499 #: build/C/man5/elf.5:594
2500 msgid ""
2501 "This member holds the number of entries in the section header table.  Thus "
2502 "the product of I<e_shentsize> and I<e_shnum> gives the section header "
2503 "table's size in bytes.  If a file has no section header table, I<e_shnum> "
2504 "holds the value of zero."
2505 msgstr ""
2506 "このメンバはセクションヘッダテーブルにあるエントリの数を保持する。 よって "
2507 "I<e_shentsize> と I<e_shnum> の積はセクションヘッダテーブルのサイズ (バイト単"
2508 "位) になる。 ファイルにセクションヘッダテーブルがない場合、 I<e_shnum> は値 "
2509 "0 を保持する。"
2510
2511 #. type: Plain text
2512 #: build/C/man5/elf.5:606
2513 msgid ""
2514 "If the number of entries in the section header table is larger than or equal "
2515 "to B<SHN_LORESERVE> (0xff00), I<e_shnum> holds the value zero and the real "
2516 "number of entries in the section header table is held in the I<sh_size> "
2517 "member of the initial entry in section header table.  Otherwise, the "
2518 "I<sh_size> member of the initial entry in the section header table holds the "
2519 "value zero."
2520 msgstr ""
2521 "セクションヘッダテーブルのエントリー数が B<SHN_LORESERVE> (0xff00) 以上の場"
2522 "合、\n"
2523 "I<e_shnum> には値 0 が入り、セクションヘッダテーブルのエントリーの実際の数"
2524 "は\n"
2525 "セクションヘッダテーブルの最初のエントリーの I<sh_size> メンバに格納され"
2526 "る。\n"
2527 "それ以外の場合、セクションヘッダテーブルの最初のエントリーの I<sh_info> メン"
2528 "バ\n"
2529 "には値 0 が格納される。"
2530
2531 #. type: TP
2532 #: build/C/man5/elf.5:606
2533 #, no-wrap
2534 msgid "I<e_shstrndx>"
2535 msgstr "I<e_shstrndx>"
2536
2537 #. type: Plain text
2538 #: build/C/man5/elf.5:613
2539 msgid ""
2540 "This member holds the section header table index of the entry associated "
2541 "with the section name string table.  If the file has no section name string "
2542 "table, this member holds the value B<SHN_UNDEF>."
2543 msgstr ""
2544 "このメンバはセクション名文字列テーブルに関連付けられたエントリの セクション"
2545 "ヘッダテーブルインデックスを保持する。 ファイルにセクション名文字列テーブルが"
2546 "ない場合、 このメンバは値 B<SHN_UNDEF> を保持する。 B<SHN_UNDEF>."
2547
2548 #. type: Plain text
2549 #: build/C/man5/elf.5:625
2550 msgid ""
2551 "If the index of section name string table section is larger than or equal to "
2552 "B<SHN_LORESERVE> (0xff00), this member holds B<SHN_XINDEX> (0xffff) and the "
2553 "real index of the section name string table section is held in the "
2554 "I<sh_link> member of the initial entry in section header table.  Otherwise, "
2555 "the I<sh_link> member of the initial entry in section header table contains "
2556 "the value zero."
2557 msgstr ""
2558 "セクション名前文字列テーブルのインデックスが B<SHN_LORESERVE> (0xff00) 以上"
2559 "の\n"
2560 "場合、このメンバには B<SHN_XINDEX> (0xffff) が入り、セクション名前文字列\n"
2561 "テーブルの実際のインデックスはセクションヘッダテーブルの最初のエントリーの\n"
2562 "I<sh_link> メンバに格納される。それ以外の場合、セクションヘッダテーブルの\n"
2563 "最初のエントリーの I<sh_link> メンバには値 0 が格納される。"
2564
2565 #. type: TP
2566 #: build/C/man5/elf.5:627 build/C/man5/elf.5:914
2567 #, no-wrap
2568 msgid "B<SHN_UNDEF>"
2569 msgstr "B<SHN_UNDEF>"
2570
2571 #. type: Plain text
2572 #: build/C/man5/elf.5:636
2573 msgid ""
2574 "This value marks an undefined, missing, irrelevant, or otherwise meaningless "
2575 "section reference.  For example, a symbol \"defined\" relative to section "
2576 "number B<SHN_UNDEF> is an undefined symbol."
2577 msgstr ""
2578 "この値は未定義・存在しない・無関係その他、 意味のないセクションの参照であるこ"
2579 "とを表す。 例えば、セクション番号 B<SHN_UNDEF> に関連づけて「定義」されたシン"
2580 "ボルは、「未定義」なシンボルである。"
2581
2582 #. type: TP
2583 #: build/C/man5/elf.5:636 build/C/man5/elf.5:918
2584 #, no-wrap
2585 msgid "B<SHN_LORESERVE>"
2586 msgstr "B<SHN_LORESERVE>"
2587
2588 #. type: Plain text
2589 #: build/C/man5/elf.5:639 build/C/man5/elf.5:921
2590 msgid "This value specifies the lower bound of the range of reserved indices."
2591 msgstr "この値は予約済みのインデックス領域の下限を指定する。"
2592
2593 #. type: TP
2594 #: build/C/man5/elf.5:639 build/C/man5/elf.5:921
2595 #, no-wrap
2596 msgid "B<SHN_LOPROC>"
2597 msgstr "B<SHN_LOPROC>"
2598
2599 #. type: Plain text
2600 #: build/C/man5/elf.5:644 build/C/man5/elf.5:926
2601 msgid ""
2602 "Values greater than or equal to B<SHN_HIPROC> are reserved for processor-"
2603 "specific semantics."
2604 msgstr ""
2605 "この値以上で B<SHN_HIPROC> 以下の値はプロセッサ固有の意味に予約されている。"
2606
2607 #. type: TP
2608 #: build/C/man5/elf.5:644 build/C/man5/elf.5:926
2609 #, no-wrap
2610 msgid "B<SHN_HIPROC>"
2611 msgstr "B<SHN_HIPROC>"
2612
2613 #. type: Plain text
2614 #: build/C/man5/elf.5:649 build/C/man5/elf.5:931
2615 msgid ""
2616 "Values less than or equal to B<SHN_LOPROC> are reserved for processor-"
2617 "specific semantics."
2618 msgstr ""
2619 "この値以下で B<SHN_HIPROC> 以上の値はプロセッサ固有の意味に予約されている。"
2620
2621 #. type: TP
2622 #: build/C/man5/elf.5:649 build/C/man5/elf.5:931
2623 #, no-wrap
2624 msgid "B<SHN_ABS>"
2625 msgstr "B<SHN_ABS>"
2626
2627 #. type: Plain text
2628 #: build/C/man5/elf.5:656
2629 msgid ""
2630 "This value specifies absolute values for the corresponding reference.  For "
2631 "example, symbols defined relative to section number B<SHN_ABS> have absolute "
2632 "values and are not affected by relocation."
2633 msgstr ""
2634 "この値は対応する参照の絶対値を指定する。 例えば、セクション番号 B<SHN_ABS> に"
2635 "関連づけられたシンボルは絶対値を保持し、再配置に影響されない。"
2636
2637 #. type: TP
2638 #: build/C/man5/elf.5:656 build/C/man5/elf.5:938
2639 #, no-wrap
2640 msgid "B<SHN_COMMON>"
2641 msgstr "B<SHN_COMMON>"
2642
2643 #. type: Plain text
2644 #: build/C/man5/elf.5:660
2645 msgid ""
2646 "Symbols defined relative to this section are common symbols, such as Fortran "
2647 "COMMON or unallocated C external variables."
2648 msgstr ""
2649 "このセクションに関連して定義されたシンボルは、 Fortran の COMMON や C の未割"
2650 "り当て external 変数のような、 共通シンボルである。"
2651
2652 #. type: TP
2653 #: build/C/man5/elf.5:660 build/C/man5/elf.5:942
2654 #, no-wrap
2655 msgid "B<SHN_HIRESERVE>"
2656 msgstr "B<SHN_HIRESERVE>"
2657
2658 #. type: Plain text
2659 #: build/C/man5/elf.5:673
2660 msgid ""
2661 "This value specifies the upper bound of the range of reserved indices "
2662 "between B<SHN_LORESERVE> and B<SHN_HIRESERVE>, inclusive; the values do not "
2663 "reference the section header table.  That is, the section header table does "
2664 "I<not> contain entries for the reserved indices."
2665 msgstr ""
2666 "この値は予約されたインデックスの範囲の上限を指定する。 B<SHN_LORESERVE> と "
2667 "B<SHN_HIRESERVE> は含まれる。 この値はセクションヘッダテーブルを参照しない。 "
2668 "つまり、セクションヘッダテーブルは 予約されたインデックスのエントリを I<含ま"
2669 "ない 。>"
2670
2671 #. type: Plain text
2672 #: build/C/man5/elf.5:695
2673 msgid ""
2674 "An executable or shared object file's program header table is an array of "
2675 "structures, each describing a segment or other information the system needs "
2676 "to prepare the program for execution.  An object file I<segment> contains "
2677 "one or more I<sections>.  Program headers are meaningful only for executable "
2678 "and shared object files.  A file specifies its own program header size with "
2679 "the ELF header's I<e_phentsize> and I<e_phnum> members.  The ELF program "
2680 "header is described by the type I<Elf32_Phdr> or I<Elf64_Phdr> depending on "
2681 "the architecture:"
2682 msgstr ""
2683 "実行可能ファイルまたは共有オブジェクトファイルのプログラムヘッダテーブルは、 "
2684 "システムによるプログラム実行準備に必要な、 セグメント等の情報を記述する構造体"
2685 "の配列である。 オブジェクトファイルの I<セグメント> には 1 つ以上の I<セク"
2686 "ション> が含まれる。 プログラムヘッダは実行可能ファイルと共有オブジェクトファ"
2687 "イルでのみ意味を持つ。 ファイルは自身のプログラムヘッダサイズを ELF ヘッダの "
2688 "I<e_phentsize> メンバと I<e_phnum> メンバで指定する。 ELF プログラムヘッダは "
2689 "I<Elf32_Phdr> 型または I<Elf64_Phdr> 型で記述される (どちらになるかはアーキテ"
2690 "クチャ依存):"
2691
2692 #. type: Plain text
2693 #: build/C/man5/elf.5:708
2694 #, no-wrap
2695 msgid ""
2696 "typedef struct {\n"
2697 "    uint32_t   p_type;\n"
2698 "    Elf32_Off  p_offset;\n"
2699 "    Elf32_Addr p_vaddr;\n"
2700 "    Elf32_Addr p_paddr;\n"
2701 "    uint32_t   p_filesz;\n"
2702 "    uint32_t   p_memsz;\n"
2703 "    uint32_t   p_flags;\n"
2704 "    uint32_t   p_align;\n"
2705 "} Elf32_Phdr;\n"
2706 msgstr ""
2707 "typedef struct {\n"
2708 "    uint32_t   p_type;\n"
2709 "    Elf32_Off  p_offset;\n"
2710 "    Elf32_Addr p_vaddr;\n"
2711 "    Elf32_Addr p_paddr;\n"
2712 "    uint32_t   p_filesz;\n"
2713 "    uint32_t   p_memsz;\n"
2714 "    uint32_t   p_flags;\n"
2715 "    uint32_t   p_align;\n"
2716 "} Elf32_Phdr;\n"
2717
2718 #. type: Plain text
2719 #: build/C/man5/elf.5:723
2720 #, no-wrap
2721 msgid ""
2722 "typedef struct {\n"
2723 "    uint32_t   p_type;\n"
2724 "    uint32_t   p_flags;\n"
2725 "    Elf64_Off  p_offset;\n"
2726 "    Elf64_Addr p_vaddr;\n"
2727 "    Elf64_Addr p_paddr;\n"
2728 "    uint64_t   p_filesz;\n"
2729 "    uint64_t   p_memsz;\n"
2730 "    uint64_t   p_align;\n"
2731 "} Elf64_Phdr;\n"
2732 msgstr ""
2733 "typedef struct {\n"
2734 "    uint32_t   p_type;\n"
2735 "    uint32_t   p_flags;\n"
2736 "    Elf64_Off  p_offset;\n"
2737 "    Elf64_Addr p_vaddr;\n"
2738 "    Elf64_Addr p_paddr;\n"
2739 "    uint64_t   p_filesz;\n"
2740 "    uint64_t   p_memsz;\n"
2741 "    uint64_t   p_align;\n"
2742 "} Elf64_Phdr;\n"
2743
2744 #.  .Bl -tag -width "p_offset"
2745 #. type: Plain text
2746 #: build/C/man5/elf.5:731
2747 msgid ""
2748 "The main difference between the 32-bit and the 64-bit program header lies in "
2749 "the location of the I<p_flags> member in the total struct."
2750 msgstr ""
2751 "32 ビットと 64 ビットのプログラムヘッダの主な違いは、構造体における "
2752 "I<p_flags> メンバの位置にある。"
2753
2754 #. type: TP
2755 #: build/C/man5/elf.5:731
2756 #, no-wrap
2757 msgid "I<p_type>"
2758 msgstr "I<p_type>"
2759
2760 #.  .Bl -tag -width "PT_DYNAMIC"
2761 #. type: Plain text
2762 #: build/C/man5/elf.5:736
2763 msgid ""
2764 "This member of the Phdr struct tells what kind of segment this array element "
2765 "describes or how to interpret the array element's information."
2766 msgstr ""
2767 "Phdr 構造体のこのメンバは、 この配列要素がどのような種類のセグメントを記述し"
2768 "ているか、 またはこの配列要素の情報をどのように解釈するか、を表す。"
2769
2770 #. type: TP
2771 #: build/C/man5/elf.5:737
2772 #, no-wrap
2773 msgid "B<PT_NULL>"
2774 msgstr "B<PT_NULL>"
2775
2776 #. type: Plain text
2777 #: build/C/man5/elf.5:741
2778 msgid ""
2779 "The array element is unused and the other members' values are undefined.  "
2780 "This lets the program header have ignored entries."
2781 msgstr ""
2782 "この配列要素は使用されておらず、その他のメンバの値は未定義である。 これによ"
2783 "り、このプログラムヘッダのエントリは無視される。"
2784
2785 #. type: TP
2786 #: build/C/man5/elf.5:741
2787 #, no-wrap
2788 msgid "B<PT_LOAD>"
2789 msgstr "B<PT_LOAD>"
2790
2791 #. type: Plain text
2792 #: build/C/man5/elf.5:762
2793 msgid ""
2794 "The array element specifies a loadable segment, described by I<p_filesz> and "
2795 "I<p_memsz>.  The bytes from the file are mapped to the beginning of the "
2796 "memory segment.  If the segment's memory size I<p_memsz> is larger than the "
2797 "file size I<p_filesz>, the \"extra\" bytes are defined to hold the value 0 "
2798 "and to follow the segment's initialized area.  The file size may not be "
2799 "larger than the memory size.  Loadable segment entries in the program header "
2800 "table appear in ascending order, sorted on the I<p_vaddr> member."
2801 msgstr ""
2802 "この配列要素は I<p_filesz> と I<p_memsz> で記述されるロード可能セグメントを指"
2803 "定する。 このファイルからのバイトデータが、このメモリセグメントの先頭からマッ"
2804 "プされる。 セグメントのメモリサイズ I<Sy>p_memsz がファイルサイズ "
2805 "I<Sy>p_filesz より大きい場合、 「余った」バイトは値 0 となり、 そのセグメント"
2806 "初期化データの後ろに置かれると定められている。 ファイルサイズはメモリサイズよ"
2807 "り大きくてはいけない。 プログラムヘッダテーブルのロード可能セグメントエントリ"
2808 "は、 I<p_vaddr> メンバの昇順にソートされて出現する。"
2809
2810 #. type: TP
2811 #: build/C/man5/elf.5:762
2812 #, no-wrap
2813 msgid "B<PT_DYNAMIC>"
2814 msgstr "B<PT_DYNAMIC>"
2815
2816 #. type: Plain text
2817 #: build/C/man5/elf.5:765
2818 msgid "The array element specifies dynamic linking information."
2819 msgstr "この配列要素は動的リンク情報を指定する。"
2820
2821 #. type: TP
2822 #: build/C/man5/elf.5:765
2823 #, no-wrap
2824 msgid "B<PT_INTERP>"
2825 msgstr "B<PT_INTERP>"
2826
2827 #. type: Plain text
2828 #: build/C/man5/elf.5:773
2829 msgid ""
2830 "The array element specifies the location and size of a null-terminated "
2831 "pathname to invoke as an interpreter.  This segment type is meaningful only "
2832 "for executable files (though it may occur for shared objects).  However it "
2833 "may not occur more than once in a file.  If it is present, it must precede "
2834 "any loadable segment entry."
2835 msgstr ""
2836 "この配列要素は、インタプリタとして起動されるパス名 (ヌル文字終端)  の位置とサ"
2837 "イズを指定する。 このセグメント型は (共有オブジェクトにもあるかも知れない"
2838 "が)  実行可能ファイルでのみ意味を持つ。 ただし、このセグメント型は 1 つのファ"
2839 "イルに 2 回以上出現してはならない。 もし存在する場合、このセグメント型は 全て"
2840 "のロード可能セグメントエントリより前になければならない。"
2841
2842 #. type: TP
2843 #: build/C/man5/elf.5:773
2844 #, no-wrap
2845 msgid "B<PT_NOTE>"
2846 msgstr "B<PT_NOTE>"
2847
2848 #. type: Plain text
2849 #: build/C/man5/elf.5:776
2850 msgid ""
2851 "The array element specifies the location and size for auxiliary information."
2852 msgstr ""
2853 "この配列要素は補足情報 (auxiliary information) の位置とサイズを指定する。"
2854
2855 #. type: TP
2856 #: build/C/man5/elf.5:776
2857 #, no-wrap
2858 msgid "B<PT_SHLIB>"
2859 msgstr "B<PT_SHLIB>"
2860
2861 #. type: Plain text
2862 #: build/C/man5/elf.5:781
2863 msgid ""
2864 "This segment type is reserved but has unspecified semantics.  Programs that "
2865 "contain an array element of this type do not conform to the ABI."
2866 msgstr ""
2867 "このセグメント型は予約されているが、意味は指定されていない。 この型の配列要素"
2868 "を保持するプログラムは ABI に準拠しない。"
2869
2870 #. type: TP
2871 #: build/C/man5/elf.5:781
2872 #, no-wrap
2873 msgid "B<PT_PHDR>"
2874 msgstr "B<PT_PHDR>"
2875
2876 #. type: Plain text
2877 #: build/C/man5/elf.5:790
2878 msgid ""
2879 "The array element, if present, specifies the location and size of the "
2880 "program header table itself, both in the file and in the memory image of the "
2881 "program.  This segment type may not occur more than once in a file.  "
2882 "Moreover, it may occur only if the program header table is part of the "
2883 "memory image of the program.  If it is present, it must precede any loadable "
2884 "segment entry."
2885 msgstr ""
2886 "この配列要素は、もし存在しているならば、 ファイルおよびプログラムのメモリイ"
2887 "メージ双方における プログラムヘッダテーブル自身の位置とサイズを指定する。 こ"
2888 "のセグメント型は 1 つのファイルに 2 回以上出現してはならない。 さらに、このセ"
2889 "グメント型が存在してもよいのは、プログラムヘッダテーブルが プログラムのメモリ"
2890 "イメージの一部である場合のみである。 もし存在する場合、これは全てのロード可能"
2891 "セグメントエントリより 前になければならない。"
2892
2893 #. type: TP
2894 #: build/C/man5/elf.5:790
2895 #, no-wrap
2896 msgid "B<PT_LOPROC>"
2897 msgstr "B<PT_LOPROC>"
2898
2899 #. type: Plain text
2900 #: build/C/man5/elf.5:795
2901 msgid ""
2902 "Values greater than or equal to B<PT_HIPROC> are reserved for processor-"
2903 "specific semantics."
2904 msgstr ""
2905 "この値以上で B<PT_HIPROC> 以下の値はプロセッサ固有の意味に予約されている。"
2906
2907 #. type: TP
2908 #: build/C/man5/elf.5:795
2909 #, no-wrap
2910 msgid "B<PT_HIPROC>"
2911 msgstr "B<PT_HIPROC>"
2912
2913 #. type: Plain text
2914 #: build/C/man5/elf.5:800
2915 msgid ""
2916 "Values less than or equal to B<PT_LOPROC> are reserved for processor-"
2917 "specific semantics."
2918 msgstr ""
2919 "この値以下で B<PT_LOPROC> 以上の値はプロセッサ固有の意味に予約されている。"
2920
2921 #. type: TP
2922 #: build/C/man5/elf.5:800
2923 #, no-wrap
2924 msgid "B<PT_GNU_STACK>"
2925 msgstr "B<PT_GNU_STACK>"
2926
2927 #.  .El
2928 #. type: Plain text
2929 #: build/C/man5/elf.5:807
2930 msgid ""
2931 "GNU extension which is used by the Linux kernel to control the state of the "
2932 "stack via the flags set in the I<p_flags> member."
2933 msgstr ""
2934 "GNU 拡張であり、Linux カーネルが I<p_flags> のメンバーにセットされたフラグ経"
2935 "由でスタックの状態を制御するために使用する。"
2936
2937 #. type: TP
2938 #: build/C/man5/elf.5:808
2939 #, no-wrap
2940 msgid "I<p_offset>"
2941 msgstr "I<p_offset>"
2942
2943 #. type: Plain text
2944 #: build/C/man5/elf.5:812
2945 msgid ""
2946 "This member holds the offset from the beginning of the file at which the "
2947 "first byte of the segment resides."
2948 msgstr ""
2949 "このメンバは、セグメントの先頭バイトがある (ファイル先頭からの) オフセットを"
2950 "保持する。"
2951
2952 #. type: TP
2953 #: build/C/man5/elf.5:812
2954 #, no-wrap
2955 msgid "I<p_vaddr>"
2956 msgstr "I<p_vaddr>"
2957
2958 #. type: Plain text
2959 #: build/C/man5/elf.5:816
2960 msgid ""
2961 "This member holds the virtual address at which the first byte of the segment "
2962 "resides in memory."
2963 msgstr ""
2964 "このメンバは、セグメントの先頭バイトがある メモリの仮想アドレスを保持する。"
2965
2966 #. type: TP
2967 #: build/C/man5/elf.5:816
2968 #, no-wrap
2969 msgid "I<p_paddr>"
2970 msgstr "I<p_paddr>"
2971
2972 #. type: Plain text
2973 #: build/C/man5/elf.5:824
2974 msgid ""
2975 "On systems for which physical addressing is relevant, this member is "
2976 "reserved for the segment's physical address.  Under BSD this member is not "
2977 "used and must be zero."
2978 msgstr ""
2979 "物理アドレスが意味をもつシステムでは、 このメンバはセグメントの物理アドレスと"
2980 "して予約されている。 BSD ではこのメンバは使用されない。0 でなければならない。"
2981
2982 #. type: TP
2983 #: build/C/man5/elf.5:824
2984 #, no-wrap
2985 msgid "I<p_filesz>"
2986 msgstr "I<p_filesz>"
2987
2988 #. type: Plain text
2989 #: build/C/man5/elf.5:828
2990 msgid ""
2991 "This member holds the number of bytes in the file image of the segment.  It "
2992 "may be zero."
2993 msgstr ""
2994 "このメンバはセグメントのファイルイメージのバイト数を保持する。 これは 0 でも"
2995 "よい。"
2996
2997 #. type: TP
2998 #: build/C/man5/elf.5:828
2999 #, no-wrap
3000 msgid "I<p_memsz>"
3001 msgstr "I<p_memsz>"
3002
3003 #. type: Plain text
3004 #: build/C/man5/elf.5:832
3005 msgid ""
3006 "This member holds the number of bytes in the memory image of the segment.  "
3007 "It may be zero."
3008 msgstr ""
3009 "このメンバはセグメントのメモリイメージのバイト数を保持する。 これは 0 でもよ"
3010 "い。"
3011
3012 #. type: TP
3013 #: build/C/man5/elf.5:832
3014 #, no-wrap
3015 msgid "I<p_flags>"
3016 msgstr "I<p_flags>"
3017
3018 #.  .Bl -tag -width "PF_X" -compact
3019 #. type: Plain text
3020 #: build/C/man5/elf.5:836
3021 msgid "This member holds a bit mask of flags relevant to the segment:"
3022 msgstr "このメンバはセグメントに関連するフラグのビットマスクを保持する:"
3023
3024 #. type: TP
3025 #: build/C/man5/elf.5:837
3026 #, no-wrap
3027 msgid "B<PF_X>"
3028 msgstr "B<PF_X>"
3029
3030 #. type: Plain text
3031 #: build/C/man5/elf.5:841
3032 msgid "An executable segment."
3033 msgstr "実行可能セグメント。"
3034
3035 #. type: TP
3036 #: build/C/man5/elf.5:841
3037 #, no-wrap
3038 msgid "B<PF_W>"
3039 msgstr "B<PF_W>"
3040
3041 #. type: Plain text
3042 #: build/C/man5/elf.5:844
3043 msgid "A writable segment."
3044 msgstr "書き込み可能セグメント."
3045
3046 #. type: TP
3047 #: build/C/man5/elf.5:844
3048 #, no-wrap
3049 msgid "B<PF_R>"
3050 msgstr "B<PF_R>"
3051
3052 #. type: Plain text
3053 #: build/C/man5/elf.5:847
3054 msgid "A readable segment."
3055 msgstr "読み込み可能セグメント。"
3056
3057 #. type: Plain text
3058 #: build/C/man5/elf.5:860
3059 msgid ""
3060 "A text segment commonly has the flags B<PF_X> and B<PF_R>.  A data segment "
3061 "commonly has B<PF_X>, B<PF_W> and B<PF_R>."
3062 msgstr ""
3063 "テキストセグメントは一般にフラグ B<PF_X> と B<PF_R> を持つ。 データセグメント"
3064 "は一般に B<PF_X>, B<PF_W>, B<PF_R> を持つ。"
3065
3066 #. type: TP
3067 #: build/C/man5/elf.5:860
3068 #, no-wrap
3069 msgid "I<p_align>"
3070 msgstr "I<p_align>"
3071
3072 #.  .El
3073 #. type: Plain text
3074 #: build/C/man5/elf.5:879
3075 msgid ""
3076 "This member holds the value to which the segments are aligned in memory and "
3077 "in the file.  Loadable process segments must have congruent values for "
3078 "I<p_vaddr> and I<p_offset>, modulo the page size.  Values of zero and one "
3079 "mean no alignment is required.  Otherwise, I<p_align> should be a positive, "
3080 "integral power of two, and I<p_vaddr> should equal I<p_offset>, modulo "
3081 "I<p_align>."
3082 msgstr ""
3083 "このメンバは、セグメントがメモリおよびファイルにおいて配置 (align)  される値"
3084 "を保持する。 ロード可能プロセスセグメントは、ページサイズを法として "
3085 "I<p_vaddr> と I<p_offset> と合同でなければならない (訳注:「p_vaddr mod ページ"
3086 "サイズ = p_offset mod ページサイズ」 でなければならない)。。 0 と 1 という値"
3087 "は配置が必要ないことを意味する。 それ以外の場合、 I<p_align> は正で 2 の整数"
3088 "乗でなければならず、 I<p_vaddr> は I<p_align> を法として I<p_offset> と合同で"
3089 "なければならない (訳注:「p_vaddr mod p_align = p_offset mod p_align」でなけれ"
3090 "ばならない)。"
3091
3092 #. type: Plain text
3093 #: build/C/man5/elf.5:896
3094 msgid ""
3095 "A file's section header table lets one locate all the file's sections.  The "
3096 "section header table is an array of I<Elf32_Shdr> or I<Elf64_Shdr> "
3097 "structures.  The ELF header's I<e_shoff> member gives the byte offset from "
3098 "the beginning of the file to the section header table.  I<e_shnum> holds the "
3099 "number of entries the section header table contains.  I<e_shentsize> holds "
3100 "the size in bytes of each entry."
3101 msgstr ""
3102 "ファイルのセクションヘッダテーブルには、 全てのファイルセクションの場所が記述"
3103 "されている。 セクションヘッダテーブルは I<Elf32_Shdr> 構造体または "
3104 "I<Elf64_Shdr> 構造体の配列である。 ELF ヘッダの I<e_shoff> メンバはファイルの"
3105 "先頭から セクションヘッダテーブルへのバイトオフセットである。 I<e_shnum> はセ"
3106 "クションヘッダテーブルに含まれるエントリの数を保持する。 I<e_shentsize> は各"
3107 "エントリのサイズ (バイト単位) を保持する。"
3108
3109 #.  .Bl -tag -width "SHN_LORESERVE"
3110 #. type: Plain text
3111 #: build/C/man5/elf.5:913
3112 msgid ""
3113 "A section header table index is a subscript into this array.  Some section "
3114 "header table indices are reserved: the initial entry and the indices between "
3115 "B<SHN_LORESERVE> and B<SHN_HIRESERVE>.  The initial entry is used in ELF "
3116 "extensions for I<e_phnum>, I<e_shnum> and I<e_strndx>; in other cases, each "
3117 "field in the initial entry is set to zero.  An object file does not have "
3118 "sections for these special indices:"
3119 msgstr ""
3120 "セクションヘッダテーブルインデックスは、この配列の添字である。\n"
3121 "いくつかのセクションヘッダテーブルインデックスは予約されている。予約されて\n"
3122 "いるのは、最初のエントリーと、B<SHN_LORESERVE> と B<SHN_HIRESERVE> の間の\n"
3123 "インデックスである。\n"
3124 "最初のエントリーは、ELF 拡張で I<e_phnum>, I<e_shnum>, I<e_strndx> に使用\n"
3125 "される。それ以外の場合、最初のエントリーの各フィールドには 0 が設定される。\n"
3126 "オブジェクトファイルにはこれらの特別なインデックスに対応するセクションはな"
3127 "い。"
3128
3129 #. type: Plain text
3130 #: build/C/man5/elf.5:918
3131 msgid ""
3132 "This value marks an undefined, missing, irrelevant, or otherwise meaningless "
3133 "section reference."
3134 msgstr ""
3135 "この値は、未定義 (undefined)、不足 (missing)、無関係 (irrelevant)、その他無意"
3136 "味なセクション参照を示す。"
3137
3138 #. type: Plain text
3139 #: build/C/man5/elf.5:938
3140 msgid ""
3141 "This value specifies the absolute value for the corresponding reference.  "
3142 "For example, a symbol defined relative to section number B<SHN_ABS> has an "
3143 "absolute value and is not affected by relocation."
3144 msgstr ""
3145 "この値は対応する参照の絶対値を指定する。 例えば、セクション番号 B<SHN_ABS> に"
3146 "関連して定義されているシンボルは、 絶対値を保持しているので、再配置に影響され"
3147 "ない。"
3148
3149 #. type: Plain text
3150 #: build/C/man5/elf.5:942
3151 msgid ""
3152 "Symbols defined relative to this section are common symbols, such as FORTRAN "
3153 "COMMON or unallocated C external variables."
3154 msgstr ""
3155 "このセクションに関連して定義されているシンボルは、 FORTRAN の COMMON や C の"
3156 "未割り当て外部変数のような共通シンボルである。"
3157
3158 #. type: Plain text
3159 #: build/C/man5/elf.5:953
3160 msgid ""
3161 "This value specifies the upper bound of the range of reserved indices.  The "
3162 "system reserves indices between B<SHN_LORESERVE> and B<SHN_HIRESERVE>, "
3163 "inclusive.  The section header table does not contain entries for the "
3164 "reserved indices."
3165 msgstr ""
3166 "この値は予約済みのインデックス領域の上限を指定する。 システムは "
3167 "B<SHN_LORESERVE> と B<SHN_HIRESERVE> を含む範囲を予約する。 セクションヘッダ"
3168 "テーブルは予約されたインデックスに対応するエントリを持たない。"
3169
3170 #. type: Plain text
3171 #: build/C/man5/elf.5:957
3172 msgid "The section header has the following structure:"
3173 msgstr "セクションヘッダは以下の構造体を持つ:"
3174
3175 #. type: Plain text
3176 #: build/C/man5/elf.5:972
3177 #, no-wrap
3178 msgid ""
3179 "typedef struct {\n"
3180 "    uint32_t   sh_name;\n"
3181 "    uint32_t   sh_type;\n"
3182 "    uint32_t   sh_flags;\n"
3183 "    Elf32_Addr sh_addr;\n"
3184 "    Elf32_Off  sh_offset;\n"
3185 "    uint32_t   sh_size;\n"
3186 "    uint32_t   sh_link;\n"
3187 "    uint32_t   sh_info;\n"
3188 "    uint32_t   sh_addralign;\n"
3189 "    uint32_t   sh_entsize;\n"
3190 "} Elf32_Shdr;\n"
3191 msgstr ""
3192 "typedef struct {\n"
3193 "    uint32_t   sh_name;\n"
3194 "    uint32_t   sh_type;\n"
3195 "    uint32_t   sh_flags;\n"
3196 "    Elf32_Addr sh_addr;\n"
3197 "    Elf32_Off  sh_offset;\n"
3198 "    uint32_t   sh_size;\n"
3199 "    uint32_t   sh_link;\n"
3200 "    uint32_t   sh_info;\n"
3201 "    uint32_t   sh_addralign;\n"
3202 "    uint32_t   sh_entsize;\n"
3203 "} Elf32_Shdr;\n"
3204
3205 #. type: Plain text
3206 #: build/C/man5/elf.5:989
3207 #, no-wrap
3208 msgid ""
3209 "typedef struct {\n"
3210 "    uint32_t   sh_name;\n"
3211 "    uint32_t   sh_type;\n"
3212 "    uint64_t   sh_flags;\n"
3213 "    Elf64_Addr sh_addr;\n"
3214 "    Elf64_Off  sh_offset;\n"
3215 "    uint64_t   sh_size;\n"
3216 "    uint32_t   sh_link;\n"
3217 "    uint32_t   sh_info;\n"
3218 "    uint64_t   sh_addralign;\n"
3219 "    uint64_t   sh_entsize;\n"
3220 "} Elf64_Shdr;\n"
3221 msgstr ""
3222 "typedef struct {\n"
3223 "    uint32_t   sh_name;\n"
3224 "    uint32_t   sh_type;\n"
3225 "    uint64_t   sh_flags;\n"
3226 "    Elf64_Addr sh_addr;\n"
3227 "    Elf64_Off  sh_offset;\n"
3228 "    uint64_t   sh_size;\n"
3229 "    uint32_t   sh_link;\n"
3230 "    uint32_t   sh_info;\n"
3231 "    uint64_t   sh_addralign;\n"
3232 "    uint64_t   sh_entsize;\n"
3233 "} Elf64_Shdr;\n"
3234
3235 #.  .Bl -tag -width "sh_addralign"
3236 #. type: Plain text
3237 #: build/C/man5/elf.5:994
3238 msgid ""
3239 "No real differences exist between the 32-bit and 64-bit section headers."
3240 msgstr "32 ビットと 64 ビットのセクションヘッダには実際の違いはない。"
3241
3242 #. type: TP
3243 #: build/C/man5/elf.5:994
3244 #, no-wrap
3245 msgid "I<sh_name>"
3246 msgstr "I<sh_name>"
3247
3248 #. type: Plain text
3249 #: build/C/man5/elf.5:1000
3250 msgid ""
3251 "This member specifies the name of the section.  Its value is an index into "
3252 "the section header string table section, giving the location of a null-"
3253 "terminated string."
3254 msgstr ""
3255 "このメンバはセクション名を定める。 この値はセクションヘッダ文字列テーブルセク"
3256 "ションのインデックスであり、 ヌル文字で終端された文字列の場所を示す。"
3257
3258 #. type: TP
3259 #: build/C/man5/elf.5:1000
3260 #, no-wrap
3261 msgid "I<sh_type>"
3262 msgstr "I<sh_type>"
3263
3264 #.  .Bl -tag -width "SHT_PROGBITS"
3265 #. type: Plain text
3266 #: build/C/man5/elf.5:1004
3267 msgid "This member categorizes the section's contents and semantics."
3268 msgstr "このメンバはセクションの内容と意味が含まれるカテゴリを示す。"
3269
3270 #. type: TP
3271 #: build/C/man5/elf.5:1005
3272 #, no-wrap
3273 msgid "B<SHT_NULL>"
3274 msgstr "B<SHT_NULL>"
3275
3276 #. type: Plain text
3277 #: build/C/man5/elf.5:1012
3278 msgid ""
3279 "This value marks the section header as inactive.  It does not have an "
3280 "associated section.  Other members of the section header have undefined "
3281 "values."
3282 msgstr ""
3283 "この値はセクションヘッダが不活性であることを示す。 これは関連するセクションを"
3284 "持たない。 このセクションヘッダの他のメンバは、未定義の値を持つ。"
3285
3286 #. type: TP
3287 #: build/C/man5/elf.5:1012
3288 #, no-wrap
3289 msgid "B<SHT_PROGBITS>"
3290 msgstr "B<SHT_PROGBITS>"
3291
3292 #. type: Plain text
3293 #: build/C/man5/elf.5:1016
3294 msgid ""
3295 "This section holds information defined by the program, whose format and "
3296 "meaning are determined solely by the program."
3297 msgstr ""
3298 "このセクションはプログラムにより定義される情報を保持する。 この情報の形式と意"
3299 "味は、ひとえにプログラムによって決定される。"
3300
3301 #. type: TP
3302 #: build/C/man5/elf.5:1016
3303 #, no-wrap
3304 msgid "B<SHT_SYMTAB>"
3305 msgstr "B<SHT_SYMTAB>"
3306
3307 #. type: Plain text
3308 #: build/C/man5/elf.5:1029
3309 msgid ""
3310 "This section holds a symbol table.  Typically, B<SHT_SYMTAB> provides "
3311 "symbols for link editing, though it may also be used for dynamic linking.  "
3312 "As a complete symbol table, it may contain many symbols unnecessary for "
3313 "dynamic linking.  An object file can also contain a B<SHT_DYNSYM> section."
3314 msgstr ""
3315 "このセクションはシンボルテーブルを保持する。 一般には B<SHT_SYMTAB> はリンク"
3316 "編集のためのシンボルを提供するが、 動的リンクにも使われる。 完全なシンボル"
3317 "テーブルとして、動的リンクには不要な 多くのシンボルを保持できる。 オブジェク"
3318 "トファイルも B<SHT_DYNSYM> セクションを持つことができる。"
3319
3320 #. type: TP
3321 #: build/C/man5/elf.5:1029
3322 #, no-wrap
3323 msgid "B<SHT_STRTAB>"
3324 msgstr "B<SHT_STRTAB>"
3325
3326 #. type: Plain text
3327 #: build/C/man5/elf.5:1034
3328 msgid ""
3329 "This section holds a string table.  An object file may have multiple string "
3330 "table sections."
3331 msgstr ""
3332 "このセクションは文字列テーブルを保持する。 オブジェクトファイルは複数の文字列"
3333 "テーブルセクションを持つことができる。"
3334
3335 #. type: TP
3336 #: build/C/man5/elf.5:1034
3337 #, no-wrap
3338 msgid "B<SHT_RELA>"
3339 msgstr "B<SHT_RELA>"
3340
3341 #. type: Plain text
3342 #: build/C/man5/elf.5:1042
3343 msgid ""
3344 "This section holds relocation entries with explicit addends, such as type "
3345 "I<Elf32_Rela> for the 32-bit class of object files.  An object may have "
3346 "multiple relocation sections."
3347 msgstr ""
3348 "このセクションは明示的な加数 (addend) を持つ再配置エントリを保持する。 再配置"
3349 "エントリの型は、オブジェクトファイルの 32 ビットクラスでは I<Elf32_Rela> であ"
3350 "る。 オブジェクトファイルは複数の再配置セクションを持つことができる。"
3351
3352 #. type: TP
3353 #: build/C/man5/elf.5:1042
3354 #, no-wrap
3355 msgid "B<SHT_HASH>"
3356 msgstr "B<SHT_HASH>"
3357
3358 #. type: Plain text
3359 #: build/C/man5/elf.5:1049
3360 msgid ""
3361 "This section holds a symbol hash table.  An object participating in dynamic "
3362 "linking must contain a symbol hash table.  An object file may have only one "
3363 "hash table."
3364 msgstr ""
3365 "このセクションはシンボルハッシュテーブルを保持する。 動的リンクされるオブジェ"
3366 "クトは、 シンボルハッシュテーブルを含んでいなければならない。 オブジェクト"
3367 "ファイルは 1 つのハッシュテーブルのみを持つことができる。"
3368
3369 #. type: TP
3370 #: build/C/man5/elf.5:1049
3371 #, no-wrap
3372 msgid "B<SHT_DYNAMIC>"
3373 msgstr "B<SHT_DYNAMIC>"
3374
3375 #. type: Plain text
3376 #: build/C/man5/elf.5:1054
3377 msgid ""
3378 "This section holds information for dynamic linking.  An object file may have "
3379 "only one dynamic section."
3380 msgstr ""
3381 "このセクションは動的リンクの情報を保持する。 オブジェクトファイルは 1 つの動"
3382 "的セクションのみを持つことができる。"
3383
3384 #. type: TP
3385 #: build/C/man5/elf.5:1054
3386 #, no-wrap
3387 msgid "B<SHT_NOTE>"
3388 msgstr "B<SHT_NOTE>"
3389
3390 #. type: Plain text
3391 #: build/C/man5/elf.5:1057
3392 msgid "This section holds information that marks the file in some way."
3393 msgstr "このセクションはファイルに何らかの印を付ける情報を保持する。"
3394
3395 #. type: TP
3396 #: build/C/man5/elf.5:1057
3397 #, no-wrap
3398 msgid "B<SHT_NOBITS>"
3399 msgstr "B<SHT_NOBITS>"
3400
3401 #. type: Plain text
3402 #: build/C/man5/elf.5:1065
3403 msgid ""
3404 "A section of this type occupies no space in the file but otherwise resembles "
3405 "B<SHT_PROGBITS>.  Although this section contains no bytes, the I<sh_offset> "
3406 "member contains the conceptual file offset."
3407 msgstr ""
3408 "このタイプのセクションはファイルの領域を使わないという以外は、 "
3409 "B<SHT_PROGBITS> と似ている。 このセクションは 1 バイトも含まないが、 "
3410 "I<sh_offset> メンバは概念的なファイルオフセットを持つ。"
3411
3412 #. type: TP
3413 #: build/C/man5/elf.5:1065
3414 #, no-wrap
3415 msgid "B<SHT_REL>"
3416 msgstr "B<SHT_REL>"
3417
3418 #. type: Plain text
3419 #: build/C/man5/elf.5:1073
3420 msgid ""
3421 "This section holds relocation offsets without explicit addends, such as type "
3422 "I<Elf32_Rel> for the 32-bit class of object files.  An object file may have "
3423 "multiple relocation sections."
3424 msgstr ""
3425 "このセクションは明示的な加数を持たない再配置オフセットを保持する。 再配置オフ"
3426 "セットの型は、オブジェクトファイルの 32 ビットクラスでは I<Elf32_Rel> であ"
3427 "る。 オブジェクトファイルは複数の再配置セクションを持つことができる。"
3428
3429 #. type: TP
3430 #: build/C/man5/elf.5:1073
3431 #, no-wrap
3432 msgid "B<SHT_SHLIB>"
3433 msgstr "B<SHT_SHLIB>"
3434
3435 #. type: Plain text
3436 #: build/C/man5/elf.5:1076
3437 msgid "This section is reserved but has unspecified semantics."
3438 msgstr "このセクションは予約されているが、意味は指定されていない。"
3439
3440 #. type: TP
3441 #: build/C/man5/elf.5:1076
3442 #, no-wrap
3443 msgid "B<SHT_DYNSYM>"
3444 msgstr "B<SHT_DYNSYM>"
3445
3446 #. type: Plain text
3447 #: build/C/man5/elf.5:1083
3448 msgid ""
3449 "This section holds a minimal set of dynamic linking symbols.  An object file "
3450 "can also contain a B<SHT_SYMTAB> section."
3451 msgstr ""
3452 "このセクションは動的リンクシンボルの最小セットを保持する。 オブジェクトファイ"
3453 "ルは B<SHT_SYMTAB> セクションも含むことができる。"
3454
3455 #. type: TP
3456 #: build/C/man5/elf.5:1083
3457 #, no-wrap
3458 msgid "B<SHT_LOPROC>"
3459 msgstr "B<SHT_LOPROC>"
3460
3461 #. type: Plain text
3462 #: build/C/man5/elf.5:1088
3463 msgid ""
3464 "This value up to and including B<SHT_HIPROC> is reserved for processor-"
3465 "specific semantics."
3466 msgstr ""
3467 "この値以上で B<SHT_HIPROC> 以下の範囲はプロセッサ固有の意味に予約されている。"
3468
3469 #. type: TP
3470 #: build/C/man5/elf.5:1088
3471 #, no-wrap
3472 msgid "B<SHT_HIPROC>"
3473 msgstr "B<SHT_HIPROC>"
3474
3475 #. type: Plain text
3476 #: build/C/man5/elf.5:1093
3477 msgid ""
3478 "This value down to and including B<SHT_LOPROC> is reserved for processor-"
3479 "specific semantics."
3480 msgstr ""
3481 "この値以下で B<SHT_LOPROC> 以上の範囲はプロセッサ固有の意味に予約されている。"
3482
3483 #. type: TP
3484 #: build/C/man5/elf.5:1093
3485 #, no-wrap
3486 msgid "B<SHT_LOUSER>"
3487 msgstr "B<SHT_LOUSER>"
3488
3489 #. type: Plain text
3490 #: build/C/man5/elf.5:1097
3491 msgid ""
3492 "This value specifies the lower bound of the range of indices reserved for "
3493 "application programs."
3494 msgstr ""
3495 "この値はアプリケーションプログラムのために予約される インデックス範囲の下限を"
3496 "指定する。"
3497
3498 #. type: TP
3499 #: build/C/man5/elf.5:1097
3500 #, no-wrap
3501 msgid "B<SHT_HIUSER>"
3502 msgstr "B<SHT_HIUSER>"
3503
3504 #.  .El
3505 #. type: Plain text
3506 #: build/C/man5/elf.5:1108
3507 msgid ""
3508 "This value specifies the upper bound of the range of indices reserved for "
3509 "application programs.  Section types between B<SHT_LOUSER> and B<SHT_HIUSER> "
3510 "may be used by the application, without conflicting with current or future "
3511 "system-defined section types."
3512 msgstr ""
3513 "この値はアプリケーションプログラムのために予約される インデックス範囲の上限を"
3514 "指定する。 B<SHT_LOUSER> から B<SHT_HIUSER> の間のセクションタイプは、 現在ま"
3515 "たは将来のシステム定義セクションタイプと衝突することなく、 アプリケーションで"
3516 "使用することができる。"
3517
3518 #. type: TP
3519 #: build/C/man5/elf.5:1109
3520 #, no-wrap
3521 msgid "I<sh_flags>"
3522 msgstr "I<sh_flags>"
3523
3524 #.  .Bl -tag -width "SHF_EXECINSTR" -compact
3525 #. type: Plain text
3526 #: build/C/man5/elf.5:1122
3527 msgid ""
3528 "Sections support one-bit flags that describe miscellaneous attributes.  If a "
3529 "flag bit is set in I<sh_flags>, the attribute is \"on\" for the section.  "
3530 "Otherwise, the attribute is \"off\" or does not apply.  Undefined attributes "
3531 "are set to zero."
3532 msgstr ""
3533 "様々な属性を記述するための 1 ビットのフラグをサポートするセクション。 フラグ"
3534 "ビットが I<sh_flags> に設定された場合、そのセクションについての属性は \"オン"
3535 "\" になる。 それ以外の場合、属性が \"オフ\" であるか属性が適用されない。 未定"
3536 "義の属性は 0 に設定される。"
3537
3538 #. type: TP
3539 #: build/C/man5/elf.5:1123
3540 #, no-wrap
3541 msgid "B<SHF_WRITE>"
3542 msgstr "B<SHF_WRITE>"
3543
3544 #. type: Plain text
3545 #: build/C/man5/elf.5:1127
3546 msgid ""
3547 "This section contains data that should be writable during process execution."
3548 msgstr "このセクションはプロセス実行中に書き込み可能なデータを含む。"
3549
3550 #. type: TP
3551 #: build/C/man5/elf.5:1127
3552 #, no-wrap
3553 msgid "B<SHF_ALLOC>"
3554 msgstr "B<SHF_ALLOC>"
3555
3556 #. type: Plain text
3557 #: build/C/man5/elf.5:1134
3558 msgid ""
3559 "This section occupies memory during process execution.  Some control "
3560 "sections do not reside in the memory image of an object file.  This "
3561 "attribute is off for those sections."
3562 msgstr ""
3563 "このセクションはプロセス実行中にメモリを使用する。 制御セクションの中には、オ"
3564 "ブジェクトファイルのメモリイメージには 存在しないものもある。 そうしたセク"
3565 "ションの場合、この属性はオフである。"
3566
3567 #. type: TP
3568 #: build/C/man5/elf.5:1134
3569 #, no-wrap
3570 msgid "B<SHF_EXECINSTR>"
3571 msgstr "B<SHF_EXECINSTR>"
3572
3573 #. type: Plain text
3574 #: build/C/man5/elf.5:1137
3575 msgid "This section contains executable machine instructions."
3576 msgstr "このセクションは実行可能なマシン命令を含む。"
3577
3578 #. type: TP
3579 #: build/C/man5/elf.5:1137
3580 #, no-wrap
3581 msgid "B<SHF_MASKPROC>"
3582 msgstr "B<SHF_MASKPROC>"
3583
3584 #. type: Plain text
3585 #: build/C/man5/elf.5:1141
3586 msgid ""
3587 "All bits included in this mask are reserved for processor-specific semantics."
3588 msgstr ""
3589 "このマスクに含まれる全てのビットはプロセッサ固有の意味に予約されている。"
3590
3591 #. type: TP
3592 #: build/C/man5/elf.5:1143
3593 #, no-wrap
3594 msgid "I<sh_addr>"
3595 msgstr "I<sh_addr>"
3596
3597 #. type: Plain text
3598 #: build/C/man5/elf.5:1148
3599 msgid ""
3600 "If this section appears in the memory image of a process, this member holds "
3601 "the address at which the section's first byte should reside.  Otherwise, the "
3602 "member contains zero."
3603 msgstr ""
3604 "このセクションがプロセスのメモリイメージにある場合、 このメンバはセクションの"
3605 "最初のバイトが存在するアドレスを保持する。 それ以外の場合、このメンバは 0 で"
3606 "ある。"
3607
3608 #. type: TP
3609 #: build/C/man5/elf.5:1148
3610 #, no-wrap
3611 msgid "I<sh_offset>"
3612 msgstr "I<sh_offset>"
3613
3614 #. type: Plain text
3615 #: build/C/man5/elf.5:1157
3616 msgid ""
3617 "This member's value holds the byte offset from the beginning of the file to "
3618 "the first byte in the section.  One section type, B<SHT_NOBITS>, occupies no "
3619 "space in the file, and its I<sh_offset> member locates the conceptual "
3620 "placement in the file."
3621 msgstr ""
3622 "このメンバの値は、ファイルの先頭からセクションの最初のバイトへの バイトオフ"
3623 "セットを保持する。 セクションタイプ B<SHT_NOBITS> はファイルの領域を全く使用"
3624 "せず、このタイプの I<sh_offset> メンバはファイルの概念的な位置を示す。"
3625
3626 #. type: TP
3627 #: build/C/man5/elf.5:1157
3628 #, no-wrap
3629 msgid "I<sh_size>"
3630 msgstr "I<sh_size>"
3631
3632 #. type: Plain text
3633 #: build/C/man5/elf.5:1169
3634 msgid ""
3635 "This member holds the section's size in bytes.  Unless the section type is "
3636 "B<SHT_NOBITS>, the section occupies I<sh_size> bytes in the file.  A section "
3637 "of type B<SHT_NOBITS> may have a nonzero size, but it occupies no space in "
3638 "the file."
3639 msgstr ""
3640 "このメンバはセクションのサイズ (バイト単位) を保持する。 セクションタイプが "
3641 "B<SHT_NOBITS> でない限り、そのセクションはファイル中の I<sh_size> バイトを使"
3642 "用する。 タイプが B<SHT_NOBITS> のセクションはサイズが 0 でないが、ファイルの"
3643 "領域を使用しない。"
3644
3645 #. type: TP
3646 #: build/C/man5/elf.5:1169
3647 #, no-wrap
3648 msgid "I<sh_link>"
3649 msgstr "I<sh_link>"
3650
3651 #. type: Plain text
3652 #: build/C/man5/elf.5:1173
3653 msgid ""
3654 "This member holds a section header table index link, whose interpretation "
3655 "depends on the section type."
3656 msgstr ""
3657 "このメンバは、セクションヘッダテーブルインデックスリンクを保持する。 この解釈"
3658 "はセクションタイプに依存する。"
3659
3660 #. type: TP
3661 #: build/C/man5/elf.5:1173
3662 #, no-wrap
3663 msgid "I<sh_info>"
3664 msgstr "I<sh_info>"
3665
3666 #. type: Plain text
3667 #: build/C/man5/elf.5:1177
3668 msgid ""
3669 "This member holds extra information, whose interpretation depends on the "
3670 "section type."
3671 msgstr ""
3672 "このメンバは追加情報を保持する。 この解釈はセクションタイプに依存する。"
3673
3674 #. type: TP
3675 #: build/C/man5/elf.5:1177
3676 #, no-wrap
3677 msgid "I<sh_addralign>"
3678 msgstr "I<sh_addralign>"
3679
3680 #. type: Plain text
3681 #: build/C/man5/elf.5:1190
3682 msgid ""
3683 "Some sections have address alignment constraints.  If a section holds a "
3684 "doubleword, the system must ensure doubleword alignment for the entire "
3685 "section.  That is, the value of I<sh_addr> must be congruent to zero, modulo "
3686 "the value of I<sh_addralign>.  Only zero and positive integral powers of two "
3687 "are allowed.  Values of zero or one mean the section has no alignment "
3688 "constraints."
3689 msgstr ""
3690 "アドレス配置に制約があるセクションもある。 セクションが倍長語 (doubleword) を"
3691 "保持する場合、 システムは全てのセクションについて倍長語の配置を保証しなければ"
3692 "ならない。 つまり、 I<sh_addr> の値は I<sh_addralign> の値を法として 0 と合同"
3693 "でなければならない (訳注:「sh_addr mod sh_addralign = 0 でなければならな"
3694 "い)。 2 の 0 乗と正の整数乗のみが許可される。 0 または 1 はセクションの配置に"
3695 "制約がないことを意味する。"
3696
3697 #. type: TP
3698 #: build/C/man5/elf.5:1190
3699 #, no-wrap
3700 msgid "I<sh_entsize>"
3701 msgstr "I<sh_entsize>"
3702
3703 #.  .El
3704 #. type: Plain text
3705 #: build/C/man5/elf.5:1197
3706 msgid ""
3707 "Some sections hold a table of fixed-sized entries, such as a symbol table.  "
3708 "For such a section, this member gives the size in bytes for each entry.  "
3709 "This member contains zero if the section does not hold a table of fixed-size "
3710 "entries."
3711 msgstr ""
3712 "シンボルテーブルのような固定サイズエントリのテーブルを保持する セクションもあ"
3713 "る。 このようなセクションでは、 このメンバは各エントリのサイズ (バイト単位) "
3714 "を表す。 このメンバが 0 の場合、 そのセクションは固定サイズエントリのテーブル"
3715 "を保持しない。"
3716
3717 #.  .Bl -tag -width ".shstrtab"
3718 #. type: Plain text
3719 #: build/C/man5/elf.5:1200
3720 msgid "Various sections hold program and control information:"
3721 msgstr "さまざまなセクションにプログラム情報・制御情報が保持される:"
3722
3723 #. type: TP
3724 #: build/C/man5/elf.5:1200
3725 #, no-wrap
3726 msgid "I<.bss>"
3727 msgstr "I<.bss>"
3728
3729 #. type: Plain text
3730 #: build/C/man5/elf.5:1212
3731 msgid ""
3732 "This section holds uninitialized data that contributes to the program's "
3733 "memory image.  By definition, the system initializes the data with zeros "
3734 "when the program begins to run.  This section is of type B<SHT_NOBITS>.  The "
3735 "attribute types are B<SHF_ALLOC> and B<SHF_WRITE>."
3736 msgstr ""
3737 "このセクションはプログラムのメモリイメージに配置される 非初期化データを保持す"
3738 "る。 定義上、システムはプログラムの実行開始時に、データを 0 で初期化する。 こ"
3739 "のセクションのタイプは B<SHT_NOBITS> である。 属性タイプは B<SHF_ALLOC> と "
3740 "B<SHF_WRITE> である。"
3741
3742 #. type: TP
3743 #: build/C/man5/elf.5:1212
3744 #, no-wrap
3745 msgid "I<.comment>"
3746 msgstr "I<.comment>"
3747
3748 #. type: Plain text
3749 #: build/C/man5/elf.5:1218
3750 msgid ""
3751 "This section holds version control information.  This section is of type "
3752 "B<SHT_PROGBITS>.  No attribute types are used."
3753 msgstr ""
3754 "このセクションはバージョン制御情報を保持する。 このセクションのタイプは "
3755 "B<SHT_PROGBITS> である。 属性タイプは使用されない。"
3756
3757 #. type: TP
3758 #: build/C/man5/elf.5:1218
3759 #, no-wrap
3760 msgid "I<.ctors>"
3761 msgstr "I<.ctors>"
3762
3763 #. type: Plain text
3764 #: build/C/man5/elf.5:1227
3765 msgid ""
3766 "This section holds initialized pointers to the C++ constructor functions.  "
3767 "This section is of type B<SHT_PROGBITS>.  The attribute types are "
3768 "B<SHF_ALLOC> and B<SHF_WRITE>."
3769 msgstr ""
3770 "このセクションは C++ コンストラクタ関数への初期化されたポインタを保持する。 "
3771 "このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは B<SHF_ALLOC> "
3772 "と B<SHF_WRITE> である。"
3773
3774 #. type: TP
3775 #: build/C/man5/elf.5:1227
3776 #, no-wrap
3777 msgid "I<.data>"
3778 msgstr "I<.data>"
3779
3780 #. type: Plain text
3781 #: build/C/man5/elf.5:1237 build/C/man5/elf.5:1247
3782 msgid ""
3783 "This section holds initialized data that contribute to the program's memory "
3784 "image.  This section is of type B<SHT_PROGBITS>.  The attribute types are "
3785 "B<SHF_ALLOC> and B<SHF_WRITE>."
3786 msgstr ""
3787 "このセクションはプログラムのメモリイメージに配置される 初期化済みデータを保持"
3788 "する。 このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは "
3789 "B<SHF_ALLOC> と B<SHF_WRITE> である。"
3790
3791 #. type: TP
3792 #: build/C/man5/elf.5:1237
3793 #, no-wrap
3794 msgid "I<.data1>"
3795 msgstr "I<.data1>"
3796
3797 #. type: TP
3798 #: build/C/man5/elf.5:1247
3799 #, no-wrap
3800 msgid "I<.debug>"
3801 msgstr "I<.debug>"
3802
3803 #. type: Plain text
3804 #: build/C/man5/elf.5:1255
3805 msgid ""
3806 "This section holds information for symbolic debugging.  The contents are "
3807 "unspecified.  This section is of type B<SHT_PROGBITS>.  No attribute types "
3808 "are used."
3809 msgstr ""
3810 "このセクションはシンボリックデバッグ用の情報を保持する。 その内容は指定されて"
3811 "いない。 このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは使用さ"
3812 "れない。"
3813
3814 #. type: TP
3815 #: build/C/man5/elf.5:1255
3816 #, no-wrap
3817 msgid "I<.dtors>"
3818 msgstr "I<.dtors>"
3819
3820 #. type: Plain text
3821 #: build/C/man5/elf.5:1264
3822 msgid ""
3823 "This section holds initialized pointers to the C++ destructor functions.  "
3824 "This section is of type B<SHT_PROGBITS>.  The attribute types are "
3825 "B<SHF_ALLOC> and B<SHF_WRITE>."
3826 msgstr ""
3827 "このセクションは C++ デストラクタ関数への初期化されたポインタを保持する。 こ"
3828 "のセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは B<SHF_ALLOC> と "
3829 "B<SHF_WRITE> である。"
3830
3831 #. type: TP
3832 #: build/C/man5/elf.5:1264
3833 #, no-wrap
3834 msgid "I<.dynamic>"
3835 msgstr "I<.dynamic>"
3836
3837 #. type: Plain text
3838 #: build/C/man5/elf.5:1277
3839 msgid ""
3840 "This section holds dynamic linking information.  The section's attributes "
3841 "will include the B<SHF_ALLOC> bit.  Whether the B<SHF_WRITE> bit is set is "
3842 "processor-specific.  This section is of type B<SHT_DYNAMIC>.  See the "
3843 "attributes above."
3844 msgstr ""
3845 "このセクションは動的リンク情報を保持する。 このセクションの属性は "
3846 "B<SHF_ALLOC> ビットを含む。 B<SHF_WRITE> ビットが設定されるか否かはプロセッサ"
3847 "による。 このセクションのタイプは B<SHT_DYNAMIC> である。 上記の属性を参照す"
3848 "ること。"
3849
3850 #. type: TP
3851 #: build/C/man5/elf.5:1277
3852 #, no-wrap
3853 msgid "I<.dynstr>"
3854 msgstr "I<.dynstr>"
3855
3856 #. type: Plain text
3857 #: build/C/man5/elf.5:1285
3858 msgid ""
3859 "This section holds strings needed for dynamic linking, most commonly the "
3860 "strings that represent the names associated with symbol table entries.  This "
3861 "section is of type B<SHT_STRTAB>.  The attribute type used is B<SHF_ALLOC>."
3862 msgstr ""
3863 "このセクションは動的リンクに必要な文字列を保持する。 最も一般的には、この文字"
3864 "列はシンボルテーブルエントリと 関連づけられた名前を表す。 このセクションのタ"
3865 "イプは B<SHT_STRTAB> である。 使用される属性タイプは B<SHF_ALLOC> である。"
3866
3867 #. type: TP
3868 #: build/C/man5/elf.5:1285
3869 #, no-wrap
3870 msgid "I<.dynsym>"
3871 msgstr "I<.dynsym>"
3872
3873 #. type: Plain text
3874 #: build/C/man5/elf.5:1292
3875 msgid ""
3876 "This section holds the dynamic linking symbol table.  This section is of "
3877 "type B<SHT_DYNSYM>.  The attribute used is B<SHF_ALLOC>."
3878 msgstr ""
3879 "このセクションは動的リンクシンボルテーブルを保持する。 このセクションのタイプ"
3880 "は B<SHT_DYNSYM> である。 使用される属性タイプは B<SHF_ALLOC> である。"
3881
3882 #. type: TP
3883 #: build/C/man5/elf.5:1292
3884 #, no-wrap
3885 msgid "I<.fini>"
3886 msgstr "I<.fini>"
3887
3888 #. type: Plain text
3889 #: build/C/man5/elf.5:1304
3890 msgid ""
3891 "This section holds executable instructions that contribute to the process "
3892 "termination code.  When a program exits normally the system arranges to "
3893 "execute the code in this section.  This section is of type B<SHT_PROGBITS>.  "
3894 "The attributes used are B<SHF_ALLOC> and B<SHF_EXECINSTR>."
3895 msgstr ""
3896 "このセクションはプロセス終了コードに置かれる実行可能命令を保持する。 プロセス"
3897 "が正常に終了した場合、システムはこのセクションにある コードを配置して実行す"
3898 "る。 このセクションのタイプは B<SHT_PROGBITS> である。 使用される属性タイプ"
3899 "は B<SHF_ALLOC> と B<SHF_EXECINSTR> である。"
3900
3901 #. type: TP
3902 #: build/C/man5/elf.5:1304
3903 #, no-wrap
3904 msgid "I<.gnu.version>"
3905 msgstr "I<.gnu.version>"
3906
3907 #. type: Plain text
3908 #: build/C/man5/elf.5:1313
3909 msgid ""
3910 "This section holds the version symbol table, an array of I<ElfN_Half> "
3911 "elements.  This section is of type B<SHT_GNU_versym>.  The attribute type "
3912 "used is B<SHF_ALLOC>."
3913 msgstr ""
3914 "このセクションはバージョン・シンボル・テーブルを保持する。 その内容は "
3915 "I<ElfN_Half> 要素の配列である。 このセクションのタイプは B<SHT_GNU_versym> で"
3916 "ある。 使用される属性タイプは B<SHF_ALLOC> である。"
3917
3918 #. type: TP
3919 #: build/C/man5/elf.5:1313
3920 #, no-wrap
3921 msgid "I<.gnu.version_d>"
3922 msgstr "I<.gnu.version_d>"
3923
3924 #. type: Plain text
3925 #: build/C/man5/elf.5:1322
3926 msgid ""
3927 "This section holds the version symbol definitions, a table of I<ElfN_Verdef> "
3928 "structures.  This section is of type B<SHT_GNU_verdef>.  The attribute type "
3929 "used is B<SHF_ALLOC>."
3930 msgstr ""
3931 "このセクションはバージョンシンボルの定義を保持する。 その内容は "
3932 "I<ElfN_Verdef> 構造体のテーブルである。 このセクションのタイプは "
3933 "B<SHT_GNU_verdef> である。 使用される属性タイプは B<SHF_ALLOC> である。"
3934
3935 #. type: TP
3936 #: build/C/man5/elf.5:1322
3937 #, no-wrap
3938 msgid "I<.gnu.version_r>"
3939 msgstr "I<.gnu.version_r>"
3940
3941 #. type: Plain text
3942 #: build/C/man5/elf.5:1332
3943 msgid ""
3944 "This section holds the version symbol needed elements, a table of "
3945 "I<ElfN_Verneed> structures.  This section is of type B<SHT_GNU_versym>.  The "
3946 "attribute type used is B<SHF_ALLOC>."
3947 msgstr ""
3948 "このセクションはバージョンシンボルが必要とする要素を保持する。 その内容は "
3949 "I<ElfN_Verneed> 構造体のテーブルである。 このセクションのタイプは "
3950 "B<SHT_GNU_versym> である。 使用される属性タイプは B<shf_alloc> である。"
3951
3952 #. type: TP
3953 #: build/C/man5/elf.5:1332
3954 #, no-wrap
3955 msgid "I<.got>"
3956 msgstr "I<.got>"
3957
3958 #. type: Plain text
3959 #: build/C/man5/elf.5:1338
3960 msgid ""
3961 "This section holds the global offset table.  This section is of type "
3962 "B<SHT_PROGBITS>.  The attributes are processor-specific."
3963 msgstr ""
3964 "このセクションはグローバルオフセットテーブルを保持する。 このセクションのタイ"
3965 "プは B<SHT_PROGBITS> である。 属性はプロセッサ毎に異なる。"
3966
3967 #. type: TP
3968 #: build/C/man5/elf.5:1338
3969 #, no-wrap
3970 msgid "I<.hash>"
3971 msgstr "I<.hash>"
3972
3973 #. type: Plain text
3974 #: build/C/man5/elf.5:1345
3975 msgid ""
3976 "This section holds a symbol hash table.  This section is of type "
3977 "B<SHT_HASH>.  The attribute used is B<SHF_ALLOC>."
3978 msgstr ""
3979 "このセクションはシンボルハッシュテーブルを保持する。 セクションのタイプは "
3980 "B<SHT_HASH> である。 使用される属性は B<SHF_ALLOC> である。"
3981
3982 #. type: TP
3983 #: build/C/man5/elf.5:1345
3984 #, no-wrap
3985 msgid "I<.init>"
3986 msgstr "I<.init>"
3987
3988 #. type: Plain text
3989 #: build/C/man5/elf.5:1357
3990 msgid ""
3991 "This section holds executable instructions that contribute to the process "
3992 "initialization code.  When a program starts to run the system arranges to "
3993 "execute the code in this section before calling the main program entry "
3994 "point.  This section is of type B<SHT_PROGBITS>.  The attributes used are "
3995 "B<SHF_ALLOC> and B<SHF_EXECINSTR>."
3996 msgstr ""
3997 "このセクションはプロセス初期化コードに配置される実行可能命令を保持する。 プロ"
3998 "グラムが実行を開始すると、 システムはメインプログラムエントリポイントを呼び出"
3999 "す前に、 このセクションにあるコードを配置して実行する。 このセクションはのタ"
4000 "イプは B<SHT_PROGBITS> である。 使用される属性は B<SHF_ALLOC> と "
4001 "B<SHF_EXECINSTR> である。"
4002
4003 #. type: TP
4004 #: build/C/man5/elf.5:1357
4005 #, no-wrap
4006 msgid "I<.interp>"
4007 msgstr "I<.interp>"
4008
4009 #. type: Plain text
4010 #: build/C/man5/elf.5:1368
4011 msgid ""
4012 "This section holds the pathname of a program interpreter.  If the file has a "
4013 "loadable segment that includes the section, the section's attributes will "
4014 "include the B<SHF_ALLOC> bit.  Otherwise, that bit will be off.  This "
4015 "section is of type B<SHT_PROGBITS>."
4016 msgstr ""
4017 "このセクションはプログラムインタプリタのパス名を保持する。 ファイルにこのセク"
4018 "ションを含むロード可能セグメントがある場合、 そのセクションの属性には "
4019 "B<SHF_ALLOC> ビットが含まれる。 それ以外の場合このビットはオフになる。 このセ"
4020 "クションのタイプは B<SHT_PROGBITS> である。"
4021
4022 #. type: TP
4023 #: build/C/man5/elf.5:1368
4024 #, no-wrap
4025 msgid "I<.line>"
4026 msgstr "I<.line>"
4027
4028 #. type: Plain text
4029 #: build/C/man5/elf.5:1376
4030 msgid ""
4031 "This section holds line number information for symbolic debugging, which "
4032 "describes the correspondence between the program source and the machine "
4033 "code.  The contents are unspecified.  This section is of type "
4034 "B<SHT_PROGBITS>.  No attribute types are used."
4035 msgstr ""
4036 "このセクションはシンボリックデバッグのための行番号情報を保持する。 ここにはプ"
4037 "ログラムソースコードとマシンコードの対応関係が記述される。 内容は指定されてい"
4038 "ない。 このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは使用され"
4039 "ない。"
4040
4041 #. type: TP
4042 #: build/C/man5/elf.5:1376
4043 #, no-wrap
4044 msgid "I<.note>"
4045 msgstr "I<.note>"
4046
4047 #. type: Plain text
4048 #: build/C/man5/elf.5:1389
4049 msgid ""
4050 "This section holds information in the \"Note Section\" format.  This section "
4051 "is of type B<SHT_NOTE>.  No attribute types are used.  OpenBSD native "
4052 "executables usually contain a I<.note.openbsd.ident> section to identify "
4053 "themselves, for the kernel to bypass any compatibility ELF binary emulation "
4054 "tests when loading the file."
4055 msgstr ""
4056 "このセクションは \"Note Section\" 形式で情報を保持する。このセクションのタイ"
4057 "プ\n"
4058 "は B<SHT_NOTE> である。属性タイプは使用されない。通常 OpenBSD ネイティブ実"
4059 "行\n"
4060 "可能ファイルは自身を識別するために I<.note.openbsd.ident> セクションを持"
4061 "つ。\n"
4062 "これによりカーネルは、ファイルをロードする際に 互換 ELF バイナリエミュレー"
4063 "ショ\n"
4064 "ンテストを回避できる。"
4065
4066 #. type: TP
4067 #: build/C/man5/elf.5:1389
4068 #, no-wrap
4069 msgid "I<.note.GNU-stack>"
4070 msgstr "I<.note.GNU-stack>"
4071
4072 #. type: Plain text
4073 #: build/C/man5/elf.5:1398
4074 msgid ""
4075 "This section is used in Linux object files for declaring stack attributes.  "
4076 "This section is of type B<SHT_PROGBITS>.  The only attribute used is "
4077 "B<SHF_EXECINSTR>.  This indicates to the GNU linker that the object file "
4078 "requires an executable stack."
4079 msgstr ""
4080 "このセクションは Linux のオブジェクトファイルで スタック属性を宣言するのに使"
4081 "用される。 セクションのタイプは B<SHT_PROGBITS> である。使用される属性は "
4082 "B<SHF_EXECINSTR> だけである。この属性は GNU リンカに対して オブジェクトファイ"
4083 "ルが実行可能なスタック (executable stack) を必要とする 示すものである。"
4084
4085 #. type: TP
4086 #: build/C/man5/elf.5:1398
4087 #, no-wrap
4088 msgid "I<.plt>"
4089 msgstr "I<.plt>"
4090
4091 #. type: Plain text
4092 #: build/C/man5/elf.5:1404
4093 msgid ""
4094 "This section holds the procedure linkage table.  This section is of type "
4095 "B<SHT_PROGBITS>.  The attributes are processor-specific."
4096 msgstr ""
4097 "このセクションは手続き (procedure) リンクテーブルを保持する。 このセクション"
4098 "のタイプは B<SHT_PROGBITS> である。 属性はプロセッサ毎に異なる。"
4099
4100 #. type: TP
4101 #: build/C/man5/elf.5:1404
4102 #, no-wrap
4103 msgid "I<.relNAME>"
4104 msgstr "I<.relNAME>"
4105
4106 #. type: Plain text
4107 #: build/C/man5/elf.5:1423
4108 msgid ""
4109 "This section holds relocation information as described below.  If the file "
4110 "has a loadable segment that includes relocation, the section's attributes "
4111 "will include the B<SHF_ALLOC> bit.  Otherwise, the bit will be off.  By "
4112 "convention, \"NAME\" is supplied by the section to which the relocations "
4113 "apply.  Thus a relocation section for B<.text> normally would have the name "
4114 "B<.rel.text>.  This section is of type B<SHT_REL>."
4115 msgstr ""
4116 "このセクションは以下に記述される再配置情報を保持する。 ファイルが再配置を含む"
4117 "ロード可能セグメントを持っている場合、 このセクションの属性は B<SHF_ALLOC> "
4118 "ビットを含む。 それ以外の場合、そのビットはオフである。 慣例として、 \"NAME"
4119 "\" は再配置が適用されるセクションが指定される。 よって B<.text> についての再"
4120 "配置セクションは、通常は B<.rel.text> という名前を持つ。 このセクションのタイ"
4121 "プは B<SHT_REL> である。"
4122
4123 #. type: TP
4124 #: build/C/man5/elf.5:1423
4125 #, no-wrap
4126 msgid "I<.relaNAME>"
4127 msgstr "I<.relaNAME>"
4128
4129 #. type: Plain text
4130 #: build/C/man5/elf.5:1442
4131 msgid ""
4132 "This section holds relocation information as described below.  If the file "
4133 "has a loadable segment that includes relocation, the section's attributes "
4134 "will include the B<SHF_ALLOC> bit.  Otherwise, the bit will be off.  By "
4135 "convention, \"NAME\" is supplied by the section to which the relocations "
4136 "apply.  Thus a relocation section for B<.text> normally would have the name "
4137 "B<.rela.text>.  This section is of type B<SHT_RELA>."
4138 msgstr ""
4139 "このセクションは以下に記述される再配置情報を保持する。 ファイルが再配置を含む"
4140 "ロード可能セグメントを持っている場合、 このセクションの属性は B<SHF_ALLOC> "
4141 "ビットを含む。 それ以外の場合、そのビットはオフである。 慣例として、 \"NAME"
4142 "\" は再配置が適用されるセクションが指定される。 よって B<.text> についての再"
4143 "配置セクションは、通常は B<.rela.text> という名前を持つ。 このセクションのタ"
4144 "イプは B<SHT_RELA> である。"
4145
4146 #. type: TP
4147 #: build/C/man5/elf.5:1442
4148 #, no-wrap
4149 msgid "I<.rodata>"
4150 msgstr "I<.rodata>"
4151
4152 #. type: Plain text
4153 #: build/C/man5/elf.5:1450 build/C/man5/elf.5:1458
4154 msgid ""
4155 "This section holds read-only data that typically contributes to a "
4156 "nonwritable segment in the process image.  This section is of type "
4157 "B<SHT_PROGBITS>.  The attribute used is B<SHF_ALLOC>."
4158 msgstr ""
4159 "このセクションはリードオンリーのデータを保持する。 このデータはプロセスイメー"
4160 "ジにおける書き込み不可能なセグメントに置かれる。 このセクションのタイプは "
4161 "B<SHT_PROGBITS> である。 使用される属性は B<SHF_ALLOC> である。"
4162
4163 #. type: TP
4164 #: build/C/man5/elf.5:1450
4165 #, no-wrap
4166 msgid "I<.rodata1>"
4167 msgstr "I<.rodata1>"
4168
4169 #. type: TP
4170 #: build/C/man5/elf.5:1458
4171 #, no-wrap
4172 msgid "I<.shstrtab>"
4173 msgstr "I<.shstrtab>"
4174
4175 #. type: Plain text
4176 #: build/C/man5/elf.5:1464
4177 msgid ""
4178 "This section holds section names.  This section is of type B<SHT_STRTAB>.  "
4179 "No attribute types are used."
4180 msgstr ""
4181 "このセクションはセクション名を保持する。 このセクションのタイプは "
4182 "B<SHT_STRTAB> である。 属性タイプは使用されない。"
4183
4184 #. type: TP
4185 #: build/C/man5/elf.5:1464
4186 #, no-wrap
4187 msgid "I<.strtab>"
4188 msgstr "I<.strtab>"
4189
4190 #. type: Plain text
4191 #: build/C/man5/elf.5:1476
4192 msgid ""
4193 "This section holds strings, most commonly the strings that represent the "
4194 "names associated with symbol table entries.  If the file has a loadable "
4195 "segment that includes the symbol string table, the section's attributes will "
4196 "include the B<SHF_ALLOC> bit.  Otherwise, the bit will be off.  This section "
4197 "is of type B<SHT_STRTAB>."
4198 msgstr ""
4199 "このセクションは文字列を保持する。 最も一般的なのは、シンボルテーブルエントリ"
4200 "に関連づけられた 名前を表す文字列である。 ファイルがシンボル文字列テーブルを"
4201 "含むロード可能セグメントを持つ場合、 セクションの属性は B<SHF_ALLOC> ビットを"
4202 "含む。 それ以外の場合、そのビットはオフである。 このセクションのタイプは "
4203 "B<SHT_STRTAB> である。"
4204
4205 #. type: TP
4206 #: build/C/man5/elf.5:1476
4207 #, no-wrap
4208 msgid "I<.symtab>"
4209 msgstr "I<.symtab>"
4210
4211 #. type: Plain text
4212 #: build/C/man5/elf.5:1487
4213 msgid ""
4214 "This section holds a symbol table.  If the file has a loadable segment that "
4215 "includes the symbol table, the section's attributes will include the "
4216 "B<SHF_ALLOC> bit.  Otherwise, the bit will be off.  This section is of type "
4217 "B<SHT_SYMTAB>."
4218 msgstr ""
4219 "このセクションはシンボルテーブルを保持する。 ファイルがシンボルテーブルを含む"
4220 "ロード可能セグメントを持つ場合、 セクションの属性は B<SHF_ALLOC> ビットを含"
4221 "む。 それ以外の場合、ビットはオフである。 このセクションのタイプは "
4222 "B<SHT_SYMTAB> である。"
4223
4224 #. type: TP
4225 #: build/C/man5/elf.5:1487
4226 #, no-wrap
4227 msgid "I<.text>"
4228 msgstr "I<.text>"
4229
4230 #.  .El
4231 #. type: Plain text
4232 #: build/C/man5/elf.5:1499
4233 msgid ""
4234 "This section holds the \"text\", or executable instructions, of a program.  "
4235 "This section is of type B<SHT_PROGBITS>.  The attributes used are "
4236 "B<SHF_ALLOC> and B<SHF_EXECINSTR>."
4237 msgstr ""
4238 "このセクションはプログラムの \"テキスト\" または実行可能命令を保持する。 セク"
4239 "ションのタイプは B<SHT_PROGBITS> である。 使用される属性は B<SHF_ALLOC> と "
4240 "B<SHF_EXECINSTR> である。"
4241
4242 #. type: Plain text
4243 #: build/C/man5/elf.5:1510
4244 msgid ""
4245 "String table sections hold null-terminated character sequences, commonly "
4246 "called strings.  The object file uses these strings to represent symbol and "
4247 "section names.  One references a string as an index into the string table "
4248 "section.  The first byte, which is index zero, is defined to hold a null "
4249 "byte (\\(aq\\e0\\(aq).  Similarly, a string table's last byte is defined to "
4250 "hold a null byte, ensuring null termination for all strings."
4251 msgstr ""
4252 "文字列テーブルセクションはヌル文字で終端されたキャラクタ配列 (通常文字列と呼"
4253 "ばれるもの) を保持する。 オブジェクトファイルはこれらの文字列を シンボル名と"
4254 "セクション名を表すために使う。 文字列は、文字列テーブルセクションへのインデッ"
4255 "クスとして参照される。 インデックス 0 の最初のバイトは、ヌルバイト (\\(aq"
4256 "\\e0\\(aq) を 保持すると定義されている。 同様に文字列テーブルの最後のバイトも"
4257 "ヌル文字を保持すると定義されている。 これは全ての文字列がヌルバイトで終端され"
4258 "ていることを保証するためである。"
4259
4260 #. type: Plain text
4261 #: build/C/man5/elf.5:1515
4262 msgid ""
4263 "An object file's symbol table holds information needed to locate and "
4264 "relocate a program's symbolic definitions and references.  A symbol table "
4265 "index is a subscript into this array."
4266 msgstr ""
4267 "オブジェクトファイルのシンボルテーブルは、 プログラムのシンボル定義と参照を配"
4268 "置または再配置するのに 必要な情報を保持する。"
4269
4270 #. type: Plain text
4271 #: build/C/man5/elf.5:1526
4272 #, no-wrap
4273 msgid ""
4274 "typedef struct {\n"
4275 "    uint32_t      st_name;\n"
4276 "    Elf32_Addr    st_value;\n"
4277 "    uint32_t      st_size;\n"
4278 "    unsigned char st_info;\n"
4279 "    unsigned char st_other;\n"
4280 "    uint16_t      st_shndx;\n"
4281 "} Elf32_Sym;\n"
4282 msgstr ""
4283 "typedef struct {\n"
4284 "    uint32_t      st_name;\n"
4285 "    Elf32_Addr    st_value;\n"
4286 "    uint32_t      st_size;\n"
4287 "    unsigned char st_info;\n"
4288 "    unsigned char st_other;\n"
4289 "    uint16_t      st_shndx;\n"
4290 "} Elf32_Sym;\n"
4291
4292 #. type: Plain text
4293 #: build/C/man5/elf.5:1539
4294 #, no-wrap
4295 msgid ""
4296 "typedef struct {\n"
4297 "    uint32_t      st_name;\n"
4298 "    unsigned char st_info;\n"
4299 "    unsigned char st_other;\n"
4300 "    uint16_t      st_shndx;\n"
4301 "    Elf64_Addr    st_value;\n"
4302 "    uint64_t      st_size;\n"
4303 "} Elf64_Sym;\n"
4304 msgstr ""
4305 "typedef struct {\n"
4306 "    uint32_t      st_name;\n"
4307 "    unsigned char st_info;\n"
4308 "    unsigned char st_other;\n"
4309 "    uint16_t      st_shndx;\n"
4310 "    Elf64_Addr    st_value;\n"
4311 "    uint64_t      st_size;\n"
4312 "} Elf64_Sym;\n"
4313
4314 #.  .Bl -tag -width "st_value"
4315 #. type: Plain text
4316 #: build/C/man5/elf.5:1545
4317 msgid ""
4318 "The 32-bit and 64-bit versions have the same members, just in a different "
4319 "order."
4320 msgstr ""
4321 "32 ビット版と 64 ビット版は同じメンバを持ち、単に順番が異なるだけである。"
4322
4323 #. type: TP
4324 #: build/C/man5/elf.5:1545
4325 #, no-wrap
4326 msgid "I<st_name>"
4327 msgstr "I<st_name>"
4328
4329 #. type: Plain text
4330 #: build/C/man5/elf.5:1553
4331 msgid ""
4332 "This member holds an index into the object file's symbol string table, which "
4333 "holds character representations of the symbol names.  If the value is "
4334 "nonzero, it represents a string table index that gives the symbol name.  "
4335 "Otherwise, the symbol table has no name."
4336 msgstr ""
4337 "このメンバはオブジェクトファイルのシンボル文字列テーブルの インデックスを保持"
4338 "する。 シンボル文字列テーブルはシンボル名の文字表現を保持する。 この値が 0 で"
4339 "ない場合、シンボル名を得るための文字テーブルインデックスを表す。 それ以外の場"
4340 "合、シンボルテーブルは名前を持たない。"
4341
4342 #. type: TP
4343 #: build/C/man5/elf.5:1553
4344 #, no-wrap
4345 msgid "I<st_value>"
4346 msgstr "I<st_value>"
4347
4348 #. type: Plain text
4349 #: build/C/man5/elf.5:1556
4350 msgid "This member gives the value of the associated symbol."
4351 msgstr "このメンバは関連づけられたシンボルの値を表す。"
4352
4353 #. type: TP
4354 #: build/C/man5/elf.5:1556
4355 #, no-wrap
4356 msgid "I<st_size>"
4357 msgstr "I<st_size>"
4358
4359 #. type: Plain text
4360 #: build/C/man5/elf.5:1561
4361 msgid ""
4362 "Many symbols have associated sizes.  This member holds zero if the symbol "
4363 "has no size or an unknown size."
4364 msgstr ""
4365 "多くのシンボルにはそれに関連づけられたサイズがある。 シンボルがサイズを持たな"
4366 "い場合、またはサイズが不明な場合、 このメンバは 0 である。"
4367
4368 #. type: TP
4369 #: build/C/man5/elf.5:1561
4370 #, no-wrap
4371 msgid "I<st_info>"
4372 msgstr "I<st_info>"
4373
4374 #.  .Bl -tag -width "STT_SECTION"
4375 #. type: Plain text
4376 #: build/C/man5/elf.5:1565
4377 msgid "This member specifies the symbol's type and binding attributes:"
4378 msgstr "このメンバはシンボルのタイプとバインディング (binding) 属性を指定する:"
4379
4380 #. type: TP
4381 #: build/C/man5/elf.5:1566
4382 #, no-wrap
4383 msgid "B<STT_NOTYPE>"
4384 msgstr "B<STT_NOTYPE>"
4385
4386 #. type: Plain text
4387 #: build/C/man5/elf.5:1569
4388 msgid "The symbol's type is not defined."
4389 msgstr "シンボルのタイプが定義されていない。"
4390
4391 #. type: TP
4392 #: build/C/man5/elf.5:1569
4393 #, no-wrap
4394 msgid "B<STT_OBJECT>"
4395 msgstr "B<STT_OBJECT>"
4396
4397 #. type: Plain text
4398 #: build/C/man5/elf.5:1572
4399 msgid "The symbol is associated with a data object."
4400 msgstr "シンボルはデータオブジェクトに関連づけられている。"
4401
4402 #. type: TP
4403 #: build/C/man5/elf.5:1572
4404 #, no-wrap
4405 msgid "B<STT_FUNC>"
4406 msgstr "B<STT_FUNC>"
4407
4408 #. type: Plain text
4409 #: build/C/man5/elf.5:1575
4410 msgid "The symbol is associated with a function or other executable code."
4411 msgstr "シンボルは関数またはその他の実行コードに関連づけられている。"
4412
4413 #. type: TP
4414 #: build/C/man5/elf.5:1575
4415 #, no-wrap
4416 msgid "B<STT_SECTION>"
4417 msgstr "B<STT_SECTION>"
4418
4419 #. type: Plain text
4420 #: build/C/man5/elf.5:1582
4421 msgid ""
4422 "The symbol is associated with a section.  Symbol table entries of this type "
4423 "exist primarily for relocation and normally have B<STB_LOCAL> bindings."
4424 msgstr ""
4425 "シンボルはセクションに関連づけられている。 このタイプのシンボルテーブルエント"
4426 "リは、 主として再配置のために存在し、通常は B<STB_LOCAL> バインディングを持"
4427 "つ。"
4428
4429 #. type: TP
4430 #: build/C/man5/elf.5:1582
4431 #, no-wrap
4432 msgid "B<STT_FILE>"
4433 msgstr "B<STT_FILE>"
4434
4435 #. type: Plain text
4436 #: build/C/man5/elf.5:1593
4437 msgid ""
4438 "By convention, the symbol's name gives the name of the source file "
4439 "associated with the object file.  A file symbol has B<STB_LOCAL> bindings, "
4440 "its section index is B<SHN_ABS>, and it precedes the other B<STB_LOCAL> "
4441 "symbols of the file, if it is present."
4442 msgstr ""
4443 "慣例として、シンボルの名前は オブジェクトファイルに関連づけられたソースファイ"
4444 "ルの名前を指定する。 ファイルシンボルは B<STB_LOCAL> バインディングを持ち、そ"
4445 "のセクションインデックスは B<SHN_ABS> である。 ファイルシンボルは、ファイルに"
4446 "他の B<STB_LOCAL> シンボルがある場合は、それよりも先に来る。"
4447
4448 #. type: TP
4449 #: build/C/man5/elf.5:1593
4450 #, no-wrap
4451 msgid "B<STT_LOPROC>"
4452 msgstr "B<STT_LOPROC>"
4453
4454 #. type: Plain text
4455 #: build/C/man5/elf.5:1598
4456 msgid ""
4457 "This value up to and including B<STT_HIPROC> is reserved for processor-"
4458 "specific semantics."
4459 msgstr ""
4460 "この値以上で B<STT_HIPROC> 以下の範囲はプロセッサ固有の意味に予約されている。"
4461
4462 #. type: TP
4463 #: build/C/man5/elf.5:1598
4464 #, no-wrap
4465 msgid "B<STT_HIPROC>"
4466 msgstr "B<STT_HIPROC>"
4467
4468 #.  .El
4469 #.  .Bl -tag -width "STB_GLOBAL"
4470 #. type: Plain text
4471 #: build/C/man5/elf.5:1605
4472 msgid ""
4473 "This value down to and including B<STT_LOPROC> is reserved for processor-"
4474 "specific semantics."
4475 msgstr ""
4476 "この値以下で B<STT_LOPROC> 以上の範囲はプロセッサ固有の意味に予約されている。"
4477
4478 #. type: TP
4479 #: build/C/man5/elf.5:1605
4480 #, no-wrap
4481 msgid "B<STB_LOCAL>"
4482 msgstr "B<STB_LOCAL>"
4483
4484 #. type: Plain text
4485 #: build/C/man5/elf.5:1611
4486 msgid ""
4487 "Local symbols are not visible outside the object file containing their "
4488 "definition.  Local symbols of the same name may exist in multiple files "
4489 "without interfering with each other."
4490 msgstr ""
4491 "局所的シンボルはその定義を含むオブジェクトファイルの外からは見えない。 同じ名"
4492 "前の局所的シンボルは、お互いに影響を受けることなく、 複数のファイルに存在でき"
4493 "る。"
4494
4495 #. type: TP
4496 #: build/C/man5/elf.5:1611
4497 #, no-wrap
4498 msgid "B<STB_GLOBAL>"
4499 msgstr "B<STB_GLOBAL>"
4500
4501 #. type: Plain text
4502 #: build/C/man5/elf.5:1617
4503 msgid ""
4504 "Global symbols are visible to all object files being combined.  One file's "
4505 "definition of a global symbol will satisfy another file's undefined "
4506 "reference to the same symbol."
4507 msgstr ""
4508 "大域的シンボルは結びつけられている全てのオブジェクトファイルから見える。 1 つ"
4509 "のファイルで大域的シンボルが定義されていたら、 他のファイルでは同じシンボルへ"
4510 "の参照は未定義でなければならない。"
4511
4512 #. type: TP
4513 #: build/C/man5/elf.5:1617
4514 #, no-wrap
4515 msgid "B<STB_WEAK>"
4516 msgstr "B<STB_WEAK>"
4517
4518 #. type: Plain text
4519 #: build/C/man5/elf.5:1621
4520 msgid ""
4521 "Weak symbols resemble global symbols, but their definitions have lower "
4522 "precedence."
4523 msgstr "弱シンボルは大域的シンボルに似ているが、その定義は優先度が低い。"
4524
4525 #. type: TP
4526 #: build/C/man5/elf.5:1621
4527 #, no-wrap
4528 msgid "B<STB_LOPROC>"
4529 msgstr "B<STB_LOPROC>"
4530
4531 #. type: Plain text
4532 #: build/C/man5/elf.5:1626
4533 msgid ""
4534 "This value up to and including B<STB_HIPROC> is reserved for processor-"
4535 "specific semantics."
4536 msgstr ""
4537 "この値以上で B<STB_HIPROC> 以下の範囲はプロセッサ固有の意味に予約されている。"
4538
4539 #. type: TP
4540 #: build/C/man5/elf.5:1626
4541 #, no-wrap
4542 msgid "B<STB_HIPROC>"
4543 msgstr "B<STB_HIPROC>"
4544
4545 #. type: Plain text
4546 #: build/C/man5/elf.5:1631
4547 msgid ""
4548 "This value down to and including B<STB_LOPROC> is reserved for processor-"
4549 "specific semantics."
4550 msgstr ""
4551 "この値以下で B<STB_LOPROC> 以上の範囲はプロセッサ固有の意味に予約されている。"
4552
4553 #. type: Plain text
4554 #: build/C/man5/elf.5:1633
4555 msgid "There are macros for packing and unpacking the binding and type fields:"
4556 msgstr ""
4557 "バインディングとタイプフィールドを パックしたりアンパックしたりするマクロがあ"
4558 "る:"
4559
4560 #. type: Plain text
4561 #: build/C/man5/elf.5:1640
4562 msgid ""
4563 "B<ELF32_ST_BIND>(info)  or B<ELF64_ST_BIND>(info)  extract a binding from an "
4564 "I<st_info> value."
4565 msgstr ""
4566 "B<ELF32_ST_BIND>(info)  または B<ELF64_ST_BIND>(info)  I<st_info> の値からバ"
4567 "インディングを取り出す。"
4568
4569 #. type: Plain text
4570 #: build/C/man5/elf.5:1644
4571 msgid "B<ELF32_ST_TYPE>(info)  or B<ELF64_ST_TYPE>(info)"
4572 msgstr "B<ELF32_ST_TYPE>(info)  または B<ELF64_ST_TYPE>(info)"
4573
4574 #. type: Plain text
4575 #: build/C/man5/elf.5:1648
4576 msgid "extract a type from an I<st_info> value."
4577 msgstr "I<st_info> の値からタイプを取り出す。"
4578
4579 #. type: Plain text
4580 #: build/C/man5/elf.5:1652
4581 msgid "B<ELF32_ST_INFO>(bind, type)  or B<ELF64_ST_INFO>(bind, type)"
4582 msgstr "B<ELF32_ST_INFO>(bind, type)  または B<ELF64_ST_INFO>(bind, type)"
4583
4584 #. type: Plain text
4585 #: build/C/man5/elf.5:1656
4586 msgid "convert a binding and a type into an I<st_info> value."
4587 msgstr "バインディングとタイプを I<st_info> の値に変換する。"
4588
4589 #. type: TP
4590 #: build/C/man5/elf.5:1658
4591 #, no-wrap
4592 msgid "I<st_other>"
4593 msgstr "I<st_other>"
4594
4595 #.  .Bl -tag -width "STV_PROTECTED"
4596 #. type: Plain text
4597 #: build/C/man5/elf.5:1662
4598 msgid "This member defines the symbol visibility."
4599 msgstr "このメンバはシンボルの visibility (見える範囲) を規定する。"
4600
4601 #. type: TP
4602 #: build/C/man5/elf.5:1663
4603 #, no-wrap
4604 msgid "B<STV_DEFAULT>"
4605 msgstr "B<STV_DEFAULT>"
4606
4607 #. type: Plain text
4608 #: build/C/man5/elf.5:1667
4609 msgid "Default symbol visibility rules."
4610 msgstr "デフォルトのシンボル visibility ルール。"
4611
4612 #. type: TP
4613 #: build/C/man5/elf.5:1667
4614 #, no-wrap
4615 msgid "B<STV_INTERNAL>"
4616 msgstr "B<STV_INTERNAL>"
4617
4618 #. type: Plain text
4619 #: build/C/man5/elf.5:1670
4620 msgid "Processor-specific hidden class."
4621 msgstr "プロセッサ固有の隠しクラス。"
4622
4623 #. type: TP
4624 #: build/C/man5/elf.5:1670
4625 #, no-wrap
4626 msgid "B<STV_HIDDEN>"
4627 msgstr "B<STV_HIDDEN>"
4628
4629 #. type: Plain text
4630 #: build/C/man5/elf.5:1673
4631 msgid "Symbol is unavailable in other modules."
4632 msgstr "シンボルは他のモジュールからは利用できない。"
4633
4634 #. type: TP
4635 #: build/C/man5/elf.5:1673
4636 #, no-wrap
4637 msgid "B<STV_PROTECTED>"
4638 msgstr "B<STV_PROTECTED>"
4639
4640 #. type: Plain text
4641 #: build/C/man5/elf.5:1676
4642 msgid "Not preemptible, not exported."
4643 msgstr "横取りできず (not preemptible)、公開されない。"
4644
4645 #. type: Plain text
4646 #: build/C/man5/elf.5:1679
4647 msgid "There are macros for extracting the visibility type:"
4648 msgstr "visibility 種別を抽出するためのマクロがある。"
4649
4650 #. type: Plain text
4651 #: build/C/man5/elf.5:1683
4652 msgid "B<ELF32_ST_VISIBILITY>(other)  or B<ELF64_ST_VISIBILITY>(other)"
4653 msgstr "B<ELF32_ST_VISIBILITY>(other)  または B<ELF64_ST_VISIBILITY>(other)"
4654
4655 #. type: TP
4656 #: build/C/man5/elf.5:1685
4657 #, no-wrap
4658 msgid "I<st_shndx>"
4659 msgstr "I<st_shndx>"
4660
4661 #.  .El
4662 #. type: Plain text
4663 #: build/C/man5/elf.5:1693
4664 msgid ""
4665 "Every symbol table entry is \"defined\" in relation to some section.  This "
4666 "member holds the relevant section header table index."
4667 msgstr ""
4668 "各シンボルテーブルエントリは、いくつかのセクションに関連して \"定義されている"
4669 "\"。 このメンバは関連するセクションヘッダテーブルインデックスを保持する。"
4670
4671 #. type: Plain text
4672 #: build/C/man5/elf.5:1701
4673 msgid ""
4674 "Relocation is the process of connecting symbolic references with symbolic "
4675 "definitions.  Relocatable files must have information that describes how to "
4676 "modify their section contents, thus allowing executable and shared object "
4677 "files to hold the right information for a process's program image.  "
4678 "Relocation entries are these data."
4679 msgstr ""
4680 "再配置はシンボル参照とシンボル定義を結合するプロセスである。 再配置可能ファイ"
4681 "ルはセクションの内容をどのように修正するかに関する 情報を持たなければならな"
4682 "い。 これにより、実行可能ファイルと共有オブジェクトファイルは プロセスのプロ"
4683 "グラムイメージについての正しい情報を持つことができる。 再配置エントリは以下の"
4684 "ようなデータである。"
4685
4686 #. type: Plain text
4687 #: build/C/man5/elf.5:1703
4688 msgid "Relocation structures that do not need an addend:"
4689 msgstr "加数を必要としない再配置構造体。"
4690
4691 #. type: Plain text
4692 #: build/C/man5/elf.5:1710
4693 #, no-wrap
4694 msgid ""
4695 "typedef struct {\n"
4696 "    Elf32_Addr r_offset;\n"
4697 "    uint32_t   r_info;\n"
4698 "} Elf32_Rel;\n"
4699 msgstr ""
4700 "typedef struct {\n"
4701 "    Elf32_Addr r_offset;\n"
4702 "    uint32_t   r_info;\n"
4703 "} Elf32_Rel;\n"
4704
4705 #. type: Plain text
4706 #: build/C/man5/elf.5:1719
4707 #, no-wrap
4708 msgid ""
4709 "typedef struct {\n"
4710 "    Elf64_Addr r_offset;\n"
4711 "    uint64_t   r_info;\n"
4712 "} Elf64_Rel;\n"
4713 msgstr ""
4714 "typedef struct {\n"
4715 "    Elf64_Addr r_offset;\n"
4716 "    uint64_t   r_info;\n"
4717 "} Elf64_Rel;\n"
4718
4719 #. type: Plain text
4720 #: build/C/man5/elf.5:1723
4721 msgid "Relocation structures that need an addend:"
4722 msgstr "加数を必要とする再配置構造体。"
4723
4724 #. type: Plain text
4725 #: build/C/man5/elf.5:1731
4726 #, no-wrap
4727 msgid ""
4728 "typedef struct {\n"
4729 "    Elf32_Addr r_offset;\n"
4730 "    uint32_t   r_info;\n"
4731 "    int32_t    r_addend;\n"
4732 "} Elf32_Rela;\n"
4733 msgstr ""
4734 "typedef struct {\n"
4735 "    Elf32_Addr r_offset;\n"
4736 "    uint32_t   r_info;\n"
4737 "    int32_t    r_addend;\n"
4738 "} Elf32_Rela;\n"
4739
4740 #. type: Plain text
4741 #: build/C/man5/elf.5:1741
4742 #, no-wrap
4743 msgid ""
4744 "typedef struct {\n"
4745 "    Elf64_Addr r_offset;\n"
4746 "    uint64_t   r_info;\n"
4747 "    int64_t    r_addend;\n"
4748 "} Elf64_Rela;\n"
4749 msgstr ""
4750 "typedef struct {\n"
4751 "    Elf64_Addr r_offset;\n"
4752 "    uint64_t   r_info;\n"
4753 "    int64_t    r_addend;\n"
4754 "} Elf64_Rela;\n"
4755
4756 #. type: TP
4757 #: build/C/man5/elf.5:1744
4758 #, no-wrap
4759 msgid "I<r_offset>"
4760 msgstr "I<r_offset>"
4761
4762 #. type: Plain text
4763 #: build/C/man5/elf.5:1752
4764 msgid ""
4765 "This member gives the location at which to apply the relocation action.  For "
4766 "a relocatable file, the value is the byte offset from the beginning of the "
4767 "section to the storage unit affected by the relocation.  For an executable "
4768 "file or shared object, the value is the virtual address of the storage unit "
4769 "affected by the relocation."
4770 msgstr ""
4771 "このメンバは再配置動作が適用される位置を与える。 再配置可能ファイルの場合、こ"
4772 "の値はセクションの先頭から 再配置で影響を受ける格納単位 (storage unit) までの"
4773 "バイトオフセットである。 実行可能ファイルまたは共有オブジェクトの場合、 この"
4774 "値は再配置で影響を受ける格納単位の仮想アドレスである。"
4775
4776 #. type: TP
4777 #: build/C/man5/elf.5:1752
4778 #, no-wrap
4779 msgid "I<r_info>"
4780 msgstr "I<r_info>"
4781
4782 #. type: Plain text
4783 #: build/C/man5/elf.5:1767
4784 msgid ""
4785 "This member gives both the symbol table index with respect to which the "
4786 "relocation must be made and the type of relocation to apply.  Relocation "
4787 "types are processor-specific.  When the text refers to a relocation entry's "
4788 "relocation type or symbol table index, it means the result of applying "
4789 "B<ELF[32|64]_R_TYPE> or B<ELF[32|64]_R_SYM>, respectively, to the entry's "
4790 "I<r_info> member."
4791 msgstr ""
4792 "このメンバは、再配置が行われなければならないシンボルテーブルインデックスと、 "
4793 "適用される再配置のタイプの両方を与える。 再配置タイプはプロセッサ毎に異な"
4794 "る。 テキストが再配置エントリの再配置タイプ またはシンボルテーブルインデック"
4795 "スを参照している場合、 それぞれエントリの I<r_info> メンバに対して、それぞれ "
4796 "B<ELF[32|64]_R_TYPE> と B<ELF[32|64]_R_SYM> を適用した結果を意味する。"
4797
4798 #. type: TP
4799 #: build/C/man5/elf.5:1767
4800 #, no-wrap
4801 msgid "I<r_addend>"
4802 msgstr "I<r_addend>"
4803
4804 #.  .El
4805 #. type: Plain text
4806 #: build/C/man5/elf.5:1772
4807 msgid ""
4808 "This member specifies a constant addend used to compute the value to be "
4809 "stored into the relocatable field."
4810 msgstr ""
4811 "このメンバは定数の加数を指定する。 この加数は再配置可能フィールドに格納される"
4812 "値を計算するために使われる。"
4813
4814 #. type: Plain text
4815 #: build/C/man5/elf.5:1777
4816 msgid ""
4817 "The .dynamic section contains a series of structures that hold relevant "
4818 "dynamic linking information.  The d_tag member controls the interpretation "
4819 "of d_un."
4820 msgstr ""
4821 "\\&.dynamic セクションは、関連する動的リンク情報を保持している 一連の構造体を"
4822 "保持する。 d_tag メンバは d_un の解釈を制御する。"
4823
4824 #. type: Plain text
4825 #: build/C/man5/elf.5:1788
4826 #, no-wrap
4827 msgid ""
4828 "typedef struct {\n"
4829 "    Elf32_Sword    d_tag;\n"
4830 "    union {\n"
4831 "        Elf32_Word d_val;\n"
4832 "        Elf32_Addr d_ptr;\n"
4833 "    } d_un;\n"
4834 "} Elf32_Dyn;\n"
4835 "extern Elf32_Dyn _DYNAMIC[];\n"
4836 msgstr ""
4837 "typedef struct {\n"
4838 "    Elf32_Sword    d_tag;\n"
4839 "    union {\n"
4840 "        Elf32_Word d_val;\n"
4841 "        Elf32_Addr d_ptr;\n"
4842 "    } d_un;\n"
4843 "} Elf32_Dyn;\n"
4844 "extern Elf32_Dyn _DYNAMIC[];\n"
4845
4846 #. type: Plain text
4847 #: build/C/man5/elf.5:1801
4848 #, no-wrap
4849 msgid ""
4850 "typedef struct {\n"
4851 "    Elf64_Sxword    d_tag;\n"
4852 "    union {\n"
4853 "        Elf64_Xword d_val;\n"
4854 "        Elf64_Addr  d_ptr;\n"
4855 "    } d_un;\n"
4856 "} Elf64_Dyn;\n"
4857 "extern Elf64_Dyn _DYNAMIC[];\n"
4858 msgstr ""
4859 "typedef struct {\n"
4860 "    Elf64_Sxword    d_tag;\n"
4861 "    union {\n"
4862 "        Elf64_Xword d_val;\n"
4863 "        Elf64_Addr  d_ptr;\n"
4864 "    } d_un;\n"
4865 "} Elf64_Dyn;\n"
4866 "extern Elf64_Dyn _DYNAMIC[];\n"
4867
4868 #. type: TP
4869 #: build/C/man5/elf.5:1804
4870 #, no-wrap
4871 msgid "I<d_tag>"
4872 msgstr "I<d_tag>"
4873
4874 #.  .Bl -tag -width "DT_SYMBOLIC"
4875 #. type: Plain text
4876 #: build/C/man5/elf.5:1808
4877 msgid "This member may have any of the following values:"
4878 msgstr "このメンバは以下の値を持つことができる:"
4879
4880 #. type: TP
4881 #: build/C/man5/elf.5:1809
4882 #, no-wrap
4883 msgid "B<DT_NULL>"
4884 msgstr "B<DT_NULL>"
4885
4886 #. type: Plain text
4887 #: build/C/man5/elf.5:1812
4888 msgid "Marks end of dynamic section"
4889 msgstr "動的セクションの終りのマーク"
4890
4891 #. type: TP
4892 #: build/C/man5/elf.5:1812
4893 #, no-wrap
4894 msgid "B<DT_NEEDED>"
4895 msgstr "B<DT_NEEDED>"
4896
4897 #. type: Plain text
4898 #: build/C/man5/elf.5:1815
4899 msgid "String table offset to name of a needed library"
4900 msgstr "必要なライブラリの名前への文字列テーブルオフセット"
4901
4902 #. type: TP
4903 #: build/C/man5/elf.5:1815
4904 #, no-wrap
4905 msgid "B<DT_PLTRELSZ>"
4906 msgstr "B<DT_PLTRELSZ>"
4907
4908 #. type: Plain text
4909 #: build/C/man5/elf.5:1818
4910 msgid "Size in bytes of PLT relocs"
4911 msgstr "PLT 再配置 (reloc) テーブルのサイズ (バイト単位)"
4912
4913 #. type: TP
4914 #: build/C/man5/elf.5:1818
4915 #, no-wrap
4916 msgid "B<DT_PLTGOT>"
4917 msgstr "B<DT_PLTGOT>"
4918
4919 #. type: Plain text
4920 #: build/C/man5/elf.5:1821
4921 msgid "Address of PLT and/or GOT"
4922 msgstr "PLT と GOT (または何れか一方) のアドレス"
4923
4924 #. type: TP
4925 #: build/C/man5/elf.5:1821
4926 #, no-wrap
4927 msgid "B<DT_HASH>"
4928 msgstr "B<DT_HASH>"
4929
4930 #. type: Plain text
4931 #: build/C/man5/elf.5:1824
4932 msgid "Address of symbol hash table"
4933 msgstr "シンボルハッシュテーブルのアドレス"
4934
4935 #. type: TP
4936 #: build/C/man5/elf.5:1824
4937 #, no-wrap
4938 msgid "B<DT_STRTAB>"
4939 msgstr "B<DT_STRTAB>"
4940
4941 #. type: Plain text
4942 #: build/C/man5/elf.5:1827
4943 msgid "Address of string table"
4944 msgstr "文字列テーブルのアドレス"
4945
4946 #. type: TP
4947 #: build/C/man5/elf.5:1827
4948 #, no-wrap
4949 msgid "B<DT_SYMTAB>"
4950 msgstr "B<DT_SYMTAB>"
4951
4952 #. type: Plain text
4953 #: build/C/man5/elf.5:1830
4954 msgid "Address of symbol table"
4955 msgstr "シンボルテーブルのアドレス"
4956
4957 #. type: TP
4958 #: build/C/man5/elf.5:1830
4959 #, no-wrap
4960 msgid "B<DT_RELA>"
4961 msgstr "B<DT_RELA>"
4962
4963 #. type: Plain text
4964 #: build/C/man5/elf.5:1833
4965 msgid "Address of Rela relocs table"
4966 msgstr "Rela 再配置テーブルのアドレス"
4967
4968 #. type: TP
4969 #: build/C/man5/elf.5:1833
4970 #, no-wrap
4971 msgid "B<DT_RELASZ>"
4972 msgstr "B<DT_RELASZ>"
4973
4974 #. type: Plain text
4975 #: build/C/man5/elf.5:1836
4976 msgid "Size in bytes of Rela table"
4977 msgstr "Rela テーブルのサイズ (バイト単位)"
4978
4979 #. type: TP
4980 #: build/C/man5/elf.5:1836
4981 #, no-wrap
4982 msgid "B<DT_RELAENT>"
4983 msgstr "B<DT_RELAENT>"
4984
4985 #. type: Plain text
4986 #: build/C/man5/elf.5:1839
4987 msgid "Size in bytes of a Rela table entry"
4988 msgstr "Rela テーブルエントリのサイズ (バイト単位)"
4989
4990 #. type: TP
4991 #: build/C/man5/elf.5:1839
4992 #, no-wrap
4993 msgid "B<DT_STRSZ>"
4994 msgstr "B<DT_STRSZ>"
4995
4996 #. type: Plain text
4997 #: build/C/man5/elf.5:1842
4998 msgid "Size in bytes of string table"
4999 msgstr "文字列テーブルのサイズ (バイト単位)"
5000
5001 #. type: TP
5002 #: build/C/man5/elf.5:1842
5003 #, no-wrap
5004 msgid "B<DT_SYMENT>"
5005 msgstr "B<DT_SYMENT>"
5006
5007 #. type: Plain text
5008 #: build/C/man5/elf.5:1845
5009 msgid "Size in bytes of a symbol table entry"
5010 msgstr "シンボルテーブルエントリのサイズ (バイト単位)"
5011
5012 #. type: TP
5013 #: build/C/man5/elf.5:1845
5014 #, no-wrap
5015 msgid "B<DT_INIT>"
5016 msgstr "B<DT_INIT>"
5017
5018 #. type: Plain text
5019 #: build/C/man5/elf.5:1848
5020 msgid "Address of the initialization function"
5021 msgstr "初期化関数のアドレス"
5022
5023 #. type: TP
5024 #: build/C/man5/elf.5:1848
5025 #, no-wrap
5026 msgid "B<DT_FINI>"
5027 msgstr "B<DT_FINI>"
5028
5029 #. type: Plain text
5030 #: build/C/man5/elf.5:1851
5031 msgid "Address of the termination function"
5032 msgstr "終了関数のアドレス"
5033
5034 #. type: TP
5035 #: build/C/man5/elf.5:1851
5036 #, no-wrap
5037 msgid "B<DT_SONAME>"
5038 msgstr "B<DT_SONAME>"
5039
5040 #. type: Plain text
5041 #: build/C/man5/elf.5:1854
5042 msgid "String table offset to name of shared object"
5043 msgstr "共有オブジェクトの名前への文字列テーブルオフセット"
5044
5045 #. type: TP
5046 #: build/C/man5/elf.5:1854
5047 #, no-wrap
5048 msgid "B<DT_RPATH>"
5049 msgstr "B<DT_RPATH>"
5050
5051 #. type: Plain text
5052 #: build/C/man5/elf.5:1857
5053 msgid "String table offset to library search path (deprecated)"
5054 msgstr "ライブラリ検索パスへの文字列テーブルオフセット (推奨されない)"
5055
5056 #. type: TP
5057 #: build/C/man5/elf.5:1857
5058 #, no-wrap
5059 msgid "B<DT_SYMBOLIC>"
5060 msgstr "B<DT_SYMBOLIC>"
5061
5062 #. type: Plain text
5063 #: build/C/man5/elf.5:1860
5064 msgid ""
5065 "Alert linker to search this shared object before the executable for symbols"
5066 msgstr ""
5067 "リンカがシンボルの実行可能ファイルより前に この共有オブジェクトを検索した場合"
5068 "は、警告を出す。"
5069
5070 #. type: TP
5071 #: build/C/man5/elf.5:1860
5072 #, no-wrap
5073 msgid "B<DT_REL>"
5074 msgstr "B<DT_REL>"
5075
5076 #. type: Plain text
5077 #: build/C/man5/elf.5:1863
5078 msgid "Address of Rel relocs table"
5079 msgstr "Rel 再配置テーブルのアドレス"
5080
5081 #. type: TP
5082 #: build/C/man5/elf.5:1863
5083 #, no-wrap
5084 msgid "B<DT_RELSZ>"
5085 msgstr "B<DT_RELSZ>"
5086
5087 #. type: Plain text
5088 #: build/C/man5/elf.5:1866
5089 msgid "Size in bytes of Rel table"
5090 msgstr "Rel テーブルのサイズ (バイト単位)"
5091
5092 #. type: TP
5093 #: build/C/man5/elf.5:1866
5094 #, no-wrap
5095 msgid "B<DT_RELENT>"
5096 msgstr "B<DT_RELENT>"
5097
5098 #. type: Plain text
5099 #: build/C/man5/elf.5:1869
5100 msgid "Size in bytes of a Rel table entry"
5101 msgstr "Rel テーブルエントリのサイズ (バイト単位)"
5102
5103 #. type: TP
5104 #: build/C/man5/elf.5:1869
5105 #, no-wrap
5106 msgid "B<DT_PLTREL>"
5107 msgstr "B<DT_PLTREL>"
5108
5109 #. type: Plain text
5110 #: build/C/man5/elf.5:1872
5111 msgid "Type of reloc the PLT refers (Rela or Rel)"
5112 msgstr "PLT が参照する再配置テーブルのタイプ (Rela または Rel)"
5113
5114 #. type: TP
5115 #: build/C/man5/elf.5:1872
5116 #, no-wrap
5117 msgid "B<DT_DEBUG>"
5118 msgstr "B<DT_DEBUG>"
5119
5120 #. type: Plain text
5121 #: build/C/man5/elf.5:1875
5122 msgid "Undefined use for debugging"
5123 msgstr "デバッグのために使用されている。内容は定義されていない。"
5124
5125 #. type: TP
5126 #: build/C/man5/elf.5:1875
5127 #, no-wrap
5128 msgid "B<DT_TEXTREL>"
5129 msgstr "B<DT_TEXTREL>"
5130
5131 #. type: Plain text
5132 #: build/C/man5/elf.5:1878
5133 msgid ""
5134 "Absence of this indicates no relocs should apply to a nonwritable segment"
5135 msgstr ""
5136 "これが指定されていない場合、 書き込み不可のセグメントには再配置は適用されな"
5137 "い。"
5138
5139 #. type: TP
5140 #: build/C/man5/elf.5:1878
5141 #, no-wrap
5142 msgid "B<DT_JMPREL>"
5143 msgstr "B<DT_JMPREL>"
5144
5145 #. type: Plain text
5146 #: build/C/man5/elf.5:1881
5147 msgid "Address of reloc entries solely for the PLT"
5148 msgstr "PLT 専用の再配置エントリのアドレス"
5149
5150 #. type: TP
5151 #: build/C/man5/elf.5:1881
5152 #, no-wrap
5153 msgid "B<DT_BIND_NOW>"
5154 msgstr "B<DT_BIND_NOW>"
5155
5156 #. type: Plain text
5157 #: build/C/man5/elf.5:1885
5158 msgid ""
5159 "Instruct dynamic linker to process all relocs before transferring control to "
5160 "the executable"
5161 msgstr ""
5162 "実行可能ファイルに制御を譲る前に、 全ての再配置を処理するように動的リンカに指"
5163 "示する。"
5164
5165 #. type: TP
5166 #: build/C/man5/elf.5:1885
5167 #, no-wrap
5168 msgid "B<DT_RUNPATH>"
5169 msgstr "B<DT_RUNPATH>"
5170
5171 #. type: Plain text
5172 #: build/C/man5/elf.5:1888
5173 msgid "String table offset to library search path"
5174 msgstr "ライブラリ検索パスへの文字列テーブルオフセット"
5175
5176 #. type: TP
5177 #: build/C/man5/elf.5:1888
5178 #, no-wrap
5179 msgid "B<DT_LOPROC>"
5180 msgstr "B<DT_LOPROC>"
5181
5182 #. type: Plain text
5183 #: build/C/man5/elf.5:1891
5184 msgid "Start of processor-specific semantics"
5185 msgstr "プロセッサ固有の意味の開始"
5186
5187 #. type: TP
5188 #: build/C/man5/elf.5:1891
5189 #, no-wrap
5190 msgid "B<DT_HIPROC>"
5191 msgstr "B<DT_HIPROC>"
5192
5193 #. type: Plain text
5194 #: build/C/man5/elf.5:1894
5195 msgid "End of processor-specific semantics"
5196 msgstr "プロセッサ固有の意味の終了"
5197
5198 #. type: TP
5199 #: build/C/man5/elf.5:1896
5200 #, no-wrap
5201 msgid "I<d_val>"
5202 msgstr "I<d_val>"
5203
5204 #. type: Plain text
5205 #: build/C/man5/elf.5:1899
5206 msgid "This member represents integer values with various interpretations."
5207 msgstr "このメンバは様々な意味に解釈される整数値である。"
5208
5209 #. type: TP
5210 #: build/C/man5/elf.5:1899
5211 #, no-wrap
5212 msgid "I<d_ptr>"
5213 msgstr "I<d_ptr>"
5214
5215 #. type: Plain text
5216 #: build/C/man5/elf.5:1907
5217 msgid ""
5218 "This member represents program virtual addresses.  When interpreting these "
5219 "addresses, the actual address should be computed based on the original file "
5220 "value and memory base address.  Files do not contain relocation entries to "
5221 "fixup these addresses."
5222 msgstr ""
5223 "このメンバはプログラムの仮想アドレスを表す。 これらのアドレスを解釈する際"
5224 "に、 実際のアドレスは元々のファイルの値と メモリの基底アドレスから計算され"
5225 "る。 ファイルにはこれらのアドレスを修正するための 再配置エントリを含めてはな"
5226 "らない。"
5227
5228 #. type: TP
5229 #: build/C/man5/elf.5:1907
5230 #, no-wrap
5231 msgid "I<_DYNAMIC>"
5232 msgstr "I<_DYNAMIC>"
5233
5234 #.  .El
5235 #. type: Plain text
5236 #: build/C/man5/elf.5:1912
5237 msgid ""
5238 "Array containing all the dynamic structures in the .dynamic section.  This "
5239 "is automatically populated by the linker."
5240 msgstr ""
5241 "\\&.dynamic セクションにある全ての動的構造体を含む配列。 これは自動的にリンカ"
5242 "に渡される。"
5243
5244 #.  OpenBSD
5245 #.  ELF support first appeared in
5246 #.  OpenBSD 1.2,
5247 #.  although not all supported platforms use it as the native
5248 #.  binary file format.
5249 #. type: Plain text
5250 #: build/C/man5/elf.5:1921
5251 msgid "ELF first appeared in System V.  The ELF format is an adopted standard."
5252 msgstr ""
5253 "ELF は System V で初めて登場した。 ELF 自体は System V で初めて登場した。 "
5254 "ELF フォーマットは採択された標準である。"
5255
5256 #.  .SH AUTHORS
5257 #.  The original version of this manual page was written by
5258 #.  .An Jeroen Ruigrok van der Werven
5259 #.  .Aq asmodai@FreeBSD.org
5260 #.  with inspiration from BSDi's
5261 #.  .Bsx
5262 #.  .Nm elf
5263 #.  man page.
5264 #. type: Plain text
5265 #: build/C/man5/elf.5:1939
5266 msgid ""
5267 "The extensions for I<e_phnum>, I<e_shnum> and I<e_strndx> respectively are "
5268 "Linux extensions.  Sun, BSD and AMD64 also support them; for further "
5269 "information, look under SEE ALSO."
5270 msgstr ""
5271 "I<e_phnum>, I<e_shnum>, I<e_strndx> に対する拡張は、いずれも Linux での拡張"
5272 "で\n"
5273 "ある。Sun, BSD, AMD64 もこれに対応している。詳しい情報は、関連項目を参照。"
5274
5275 #. type: Plain text
5276 #: build/C/man5/elf.5:1946
5277 msgid "B<as>(1), B<gdb>(1), B<ld>(1), B<objdump>(1), B<execve>(2), B<core>(5)"
5278 msgstr "B<as>(1), B<gdb>(1), B<ld>(1), B<objdump>(1), B<execve>(2), B<core>(5)"
5279
5280 #. type: Plain text
5281 #: build/C/man5/elf.5:1949
5282 msgid "Hewlett-Packard, I<Elf-64 Object File Format>."
5283 msgstr "Hewlett-Packard, I<Elf-64 Object File Format>."
5284
5285 #. type: Plain text
5286 #: build/C/man5/elf.5:1952
5287 msgid "Santa Cruz Operation, I<System V Application Binary Interface>."
5288 msgstr "Santa Cruz Operation, I<System V Application Binary Interface>."
5289
5290 #. type: Plain text
5291 #: build/C/man5/elf.5:1956
5292 msgid ""
5293 "UNIX System Laboratories, \"Object Files\", I<Executable and Linking Format "
5294 "(ELF)>."
5295 msgstr ""
5296 "UNIX System Laboratories, \"Object Files\", I<Executable and Linking Format "
5297 "(ELF)>."
5298
5299 #. type: Plain text
5300 #: build/C/man5/elf.5:1959
5301 msgid "Sun Microsystems, I<Linker and Libraries Guide>."
5302 msgstr "Sun Microsystems, I<Linker and Libraries Guide>."
5303
5304 #. type: Plain text
5305 #: build/C/man5/elf.5:1962
5306 msgid ""
5307 "AMD64 ABI Draft, I<System V Application Binary Interface AMD64 Architecture "
5308 "Processor Supplement>."
5309 msgstr ""
5310 "AMD64 ABI Draft, I<System V Application Binary Interface AMD64 Architecture\n"
5311 "Processor Supplement>."
5312
5313 #. type: TH
5314 #: build/C/man3/end.3:26
5315 #, no-wrap
5316 msgid "END"
5317 msgstr "END"
5318
5319 #. type: TH
5320 #: build/C/man3/end.3:26
5321 #, no-wrap
5322 msgid "2008-07-17"
5323 msgstr "2008-07-17"
5324
5325 #. type: Plain text
5326 #: build/C/man3/end.3:29
5327 msgid "etext, edata, end - end of program segments"
5328 msgstr "etext, edata, end - プログラムセグメントの終わり"
5329
5330 #. type: Plain text
5331 #: build/C/man3/end.3:34
5332 #, no-wrap
5333 msgid ""
5334 "B<extern>I< etext>B<;>\n"
5335 "B<extern>I< edata>B<;>\n"
5336 "B<extern>I< end>B<;>\n"
5337 msgstr ""
5338 "B<extern>I< etext>B<;>\n"
5339 "B<extern>I< edata>B<;>\n"
5340 "B<extern>I< end>B<;>\n"
5341
5342 #. type: Plain text
5343 #: build/C/man3/end.3:38
5344 msgid ""
5345 "The addresses of these symbols indicate the end of various program segments:"
5346 msgstr "これらのシンボルのアドレスは各種のプログラムセグメントの終わりを示す。"
5347
5348 #. type: TP
5349 #: build/C/man3/end.3:38
5350 #, no-wrap
5351 msgid "I<etext>"
5352 msgstr "I<etext>"
5353
5354 #. type: Plain text
5355 #: build/C/man3/end.3:42
5356 msgid ""
5357 "This is the first address past the end of the text segment (the program "
5358 "code)."
5359 msgstr "テキストセグメント (プログラムのコード) の末尾の次のアドレス。"
5360
5361 #. type: TP
5362 #: build/C/man3/end.3:42
5363 #, no-wrap
5364 msgid "I<edata>"
5365 msgstr "I<edata>"
5366
5367 #. type: Plain text
5368 #: build/C/man3/end.3:46
5369 msgid "This is the first address past the end of the initialized data segment."
5370 msgstr "初期化されたデータのセグメントの末尾の次のアドレス。"
5371
5372 #. type: TP
5373 #: build/C/man3/end.3:46
5374 #, no-wrap
5375 msgid "I<end>"
5376 msgstr "I<end>"
5377
5378 #. type: Plain text
5379 #: build/C/man3/end.3:50
5380 msgid ""
5381 "This is the first address past the end of the uninitialized data segment "
5382 "(also known as the BSS segment)."
5383 msgstr ""
5384 "初期化されていないデータのセグメント (BSS セグメントとも言われる)  の末尾の次"
5385 "のアドレス。"
5386
5387 #. type: Plain text
5388 #: build/C/man3/end.3:53
5389 msgid ""
5390 "Although these symbols have long been provided on most UNIX systems, they "
5391 "are not standardized; use with caution."
5392 msgstr ""
5393 "これらのシンボルは長年ほとんどの UNIX システムで提供されているが、 標準化され"
5394 "てはいない。注意して使うこと。"
5395
5396 #. type: Plain text
5397 #: build/C/man3/end.3:56
5398 msgid ""
5399 "The program must explicitly declare these symbols; they are not defined in "
5400 "any header file."
5401 msgstr ""
5402 "プログラムではこれらのシンボルは明示的に宣言しなければならない。 これらはどの"
5403 "ヘッダファイルでも定義されていない。"
5404
5405 #. type: Plain text
5406 #: build/C/man3/end.3:64
5407 msgid ""
5408 "On some systems the names of these symbols are preceded by underscores, "
5409 "thus: I<_etext>, I<_edata>, and I<_end>.  These symbols are also defined for "
5410 "programs compiled on Linux."
5411 msgstr ""
5412 "いくつかのシステムでは、これらのシンボルの名前は前にアンダースコアが 付いてい"
5413 "て、 I<_etext>, I<_edata>, I<_end> となっている。 Linux でコンパイルされたプ"
5414 "ログラムでは、 これらのシンボルでも定義される。"
5415
5416 #. type: Plain text
5417 #: build/C/man3/end.3:76
5418 msgid ""
5419 "At the start of program execution, the program break will be somewhere near "
5420 "I<&end> (perhaps at the start of the following page).  However, the break "
5421 "will change as memory is allocated via B<brk>(2)  or B<malloc>(3).  Use "
5422 "B<sbrk>(2)  with an argument of zero to find the current value of the "
5423 "program break."
5424 msgstr ""
5425 "プログラムの実行開始時に、プログラム・ブレークは I<&end> の近くのどこか (おそ"
5426 "らく次のページの先頭) になる。 しかしながら、 B<brk>(2)  や B<malloc>(3)  で"
5427 "メモリが割り当てられるに連れて、プログラム・ブレークは変化していく。 引き数"
5428 "に 0 を指定して B<sbrk>(2)  を呼び出すことで、プログラム・ブレークの現在値を"
5429 "知ることができる。"
5430
5431 #. type: Plain text
5432 #: build/C/man3/end.3:78
5433 msgid "When run, the program below produces output such as the following:"
5434 msgstr "下記のプログラムを実行すると、次のような出力が得られる。"
5435
5436 #. type: Plain text
5437 #: build/C/man3/end.3:86
5438 #, no-wrap
5439 msgid ""
5440 "$B< ./a.out>\n"
5441 "First address past:\n"
5442 "    program text (etext)       0x8048568\n"
5443 "    initialized data (edata)   0x804a01c\n"
5444 "    uninitialized data (end)   0x804a024\n"
5445 msgstr ""
5446 "$B< ./a.out>\n"
5447 "First address past:\n"
5448 "    program text (etext)       0x8048568\n"
5449 "    initialized data (edata)   0x804a01c\n"
5450 "    uninitialized data (end)   0x804a024\n"
5451
5452 #. type: SS
5453 #: build/C/man3/end.3:88 build/C/man1/memusage.1:234
5454 #, no-wrap
5455 msgid "Program source"
5456 msgstr "プログラムのソース"
5457
5458 #. type: Plain text
5459 #: build/C/man3/end.3:93 build/C/man1/memusage.1:238
5460 #, no-wrap
5461 msgid ""
5462 "#include E<lt>stdio.hE<gt>\n"
5463 "#include E<lt>stdlib.hE<gt>\n"
5464 msgstr ""
5465 "#include E<lt>stdio.hE<gt>\n"
5466 "#include E<lt>stdlib.hE<gt>\n"
5467
5468 #. type: Plain text
5469 #: build/C/man3/end.3:96
5470 #, no-wrap
5471 msgid ""
5472 "extern char etext, edata, end; /* The symbols must have some type,\n"
5473 "                                   or \"gcc -Wall\" complains */\n"
5474 msgstr ""
5475 "extern char etext, edata, end; /* The symbols must have some type,\n"
5476 "                                   or \"gcc -Wall\" complains */\n"
5477
5478 #. type: Plain text
5479 #: build/C/man3/end.3:104
5480 #, no-wrap
5481 msgid ""
5482 "int\n"
5483 "main(int argc, char *argv[])\n"
5484 "{\n"
5485 "    printf(\"First address past:\\en\");\n"
5486 "    printf(\"    program text (etext)      %10p\\en\", &etext);\n"
5487 "    printf(\"    initialized data (edata)  %10p\\en\", &edata);\n"
5488 "    printf(\"    uninitialized data (end)  %10p\\en\", &end);\n"
5489 msgstr ""
5490 "int\n"
5491 "main(int argc, char *argv[])\n"
5492 "{\n"
5493 "    printf(\"First address past:\\en\");\n"
5494 "    printf(\"    program text (etext)      %10p\\en\", &etext);\n"
5495 "    printf(\"    initialized data (edata)  %10p\\en\", &edata);\n"
5496 "    printf(\"    uninitialized data (end)  %10p\\en\", &end);\n"
5497
5498 #. type: Plain text
5499 #: build/C/man3/end.3:113
5500 msgid "B<objdump>(1), B<readelf>(1), B<sbrk>(2), B<elf>(5)"
5501 msgstr "B<objdump>(1), B<readelf>(1), B<sbrk>(2), B<elf>(5)"
5502
5503 #. type: TH
5504 #: build/C/man8/ld.so.8:5
5505 #, no-wrap
5506 msgid "LD.SO"
5507 msgstr "LD.SO"
5508
5509 #. type: Plain text
5510 #: build/C/man8/ld.so.8:8
5511 msgid "ld.so, ld-linux.so* - dynamic linker/loader"
5512 msgstr "ld.so, ld-linux.so* - 動的なリンカ/ローダ"
5513
5514 #. type: Plain text
5515 #: build/C/man8/ld.so.8:15
5516 msgid ""
5517 "The dynamic linker can be run either indirectly by running some dynamically "
5518 "linked program or library (in which case no command-line options to the "
5519 "dynamic linker can be passed and, in the ELF case, the dynamic linker which "
5520 "is stored in the B<.interp> section of the program is executed) or directly "
5521 "by running:"
5522 msgstr ""
5523 "動的リンカは、動的にリンクされたプログラムやライブラリの実行によって 間接的に"
5524 "実行することができる (ELF の場合、動的リンカにコマンドラインオプションを渡す"
5525 "ことはできず、 プログラムの B<.interp> セクションに入っている動的リンカが実行"
5526 "される)。 また以下のように直接実行することもできる"
5527
5528 #. type: Plain text
5529 #: build/C/man8/ld.so.8:18
5530 msgid "I</lib/ld-linux.so.*> [OPTIONS] [PROGRAM [ARGUMENTS]]"
5531 msgstr "I</lib/ld-linux.so.*> [OPTIONS] [PROGRAM [ARGUMENTS]]"
5532
5533 #. type: Plain text
5534 #: build/C/man8/ld.so.8:25
5535 msgid ""
5536 "The programs B<ld.so> and B<ld-linux.so*> find and load the shared libraries "
5537 "needed by a program, prepare the program to run, and then run it."
5538 msgstr ""
5539 "プログラム B<ld.so> と B<ld-linux.so*> はプログラムに必要な共有ライブラリを見"
5540 "つけてロードし、 プログラムの実行を準備してから起動させる。"
5541
5542 #. type: Plain text
5543 #: build/C/man8/ld.so.8:32
5544 msgid ""
5545 "Linux binaries require dynamic linking (linking at run time)  unless the B<-"
5546 "static> option was given to B<ld>(1)  during compilation."
5547 msgstr ""
5548 "Linux のバイナリは、コンパイルの時に B<ld>(1)  に対して B<-static> オプション"
5549 "が指定されていない限り、動的リンク (実行時リンク) が必要となる。"
5550
5551 #. type: Plain text
5552 #: build/C/man8/ld.so.8:45
5553 msgid ""
5554 "The program B<ld.so> handles a.out binaries, a format used long ago; B<ld-"
5555 "linux.so*> handles ELF (I</lib/ld-linux.so.1> for libc5, I</lib/ld-linux."
5556 "so.2> for glibc2), which everybody has been using for years now.  Otherwise, "
5557 "both have the same behavior, and use the same support files and programs "
5558 "B<ldd>(1), B<ldconfig>(8), and I</etc/ld.so.conf>."
5559 msgstr ""
5560 "プログラム B<ld.so> は a.out バイナリを扱う。 これはずっと昔に使われていた"
5561 "フォーマットである。 B<ld-linux.so*> (libc5 では I</lib/ld-linux.so.1>, "
5562 "glibc2 では I</lib/ld-linux.so.2>)  は ELF バイナリを扱う。 このフォーマット"
5563 "は多くの人が最近何年も使っている。 それ以外の点では両方とも同じように動作"
5564 "し、 同じサポートファイルとプログラム B<ldd>(1), B<ldconfig>(8), I</etc/ld."
5565 "so.conf> を使用する。"
5566
5567 #. type: Plain text
5568 #: build/C/man8/ld.so.8:53
5569 msgid ""
5570 "When resolving library dependencies, the dynamic linker first inspects each "
5571 "dependency string to see if it contains a slash (this can occur if a library "
5572 "pathname containing slashes was specified at link time).  If a slash is "
5573 "found, then the dependency string is interpreted as a (relative or absolute) "
5574 "pathname, and the library is loaded using that pathname."
5575 msgstr ""
5576 "ライブラリの依存関係を解決する際、動的リンカは、最初に、依存関係の各文字列が"
5577 "スラッシュを含んでいるかをチェックする (この状況になるのは、リンク時にスラッ"
5578 "シュを含むライブラリのパス名が指定された場合である)。スラッシュが見つかった場"
5579 "合、その依存関係の文字列はパス名 (相対パス、絶対パスのどちらも可) として解釈"
5580 "され、そのパス名を使ってそのライブラリはロードされる。"
5581
5582 #. type: Plain text
5583 #: build/C/man8/ld.so.8:56
5584 msgid ""
5585 "If a library dependency does not contain a slash, then it is searched for in "
5586 "the following order:"
5587 msgstr ""
5588 "ライブラリの依存関係にスラッシュが含まれない場合、以下の順序で検索される。"
5589
5590 #. type: Plain text
5591 #: build/C/man8/ld.so.8:61
5592 msgid ""
5593 "(ELF only) Using the directories specified in the DT_RPATH dynamic section "
5594 "attribute of the binary if present and DT_RUNPATH attribute does not exist.  "
5595 "Use of DT_RPATH is deprecated."
5596 msgstr ""
5597 "(ELF のみ)  バイナリの動的セクション属性 DT_RPATH が存在し、 DT_RUNPATH 属性"
5598 "が存在しない場合は、 DT_RPATH で指定されたディレクトリを使用する。 DT_RPATH "
5599 "の使用は推奨されない。"
5600
5601 #. type: Plain text
5602 #: build/C/man8/ld.so.8:66
5603 msgid ""
5604 "Using the environment variable B<LD_LIBRARY_PATH>.  Except if the executable "
5605 "is a set-user-ID/set-group-ID binary, in which case it is ignored."
5606 msgstr ""
5607 "環境変数 B<LD_LIBRARY_PATH> を用いる。 ただし実行ファイルが set-user-ID/set-"
5608 "group-ID バイナリの場合、 これは無視される。"
5609
5610 #. type: Plain text
5611 #: build/C/man8/ld.so.8:70
5612 msgid ""
5613 "(ELF only) Using the directories specified in the DT_RUNPATH dynamic section "
5614 "attribute of the binary if present."
5615 msgstr ""
5616 "(ELF のみ)  バイナリの動的セクション属性 DT_RUNPATH が存在すれば、 "
5617 "DT_RUNPATH で指定されたディレクトリを使用する。"
5618
5619 #. type: Plain text
5620 #: build/C/man8/ld.so.8:80
5621 msgid ""
5622 "From the cache file I</etc/ld.so.cache>, which contains a compiled list of "
5623 "candidate libraries previously found in the augmented library path.  If, "
5624 "however, the binary was linked with the B<-z nodeflib> linker option, "
5625 "libraries in the default library paths are skipped.  Libraries installed in "
5626 "hardware capability directories (see below)  are preferred to other "
5627 "libraries."
5628 msgstr ""
5629 "キャッシュファイル I</etc/ld.so.cache> を探す。このファイルは、 (ld.so.conf "
5630 "で追加指定されたものも含めた) ライブラリ検索パスから見つかったライブラリファ"
5631 "イルの情報を集めたものである。ただし、バイナリがリンカオプション B<-z "
5632 "nodeflib> でリンクされている場合は、デフォルトのライブラリパスにある ライブラ"
5633 "リはスキップされる。ハードウェア機能ディレクトリ (下記参照) にインストールさ"
5634 "れたライブラリは、他のライブラリよりも優先される。"
5635
5636 #. type: Plain text
5637 #: build/C/man8/ld.so.8:88
5638 msgid ""
5639 "In the default path I</lib>, and then I</usr/lib>.  If the binary was linked "
5640 "with the B<-z nodeflib> linker option, this step is skipped."
5641 msgstr ""
5642 "デフォルトパスである I</lib>、 次いで I</usr/lib> を用いる。 バイナリがリンカ"
5643 "オプション B<-z nodeflib> でリンクされている場合、このステップはスキップされ"
5644 "る。"
5645
5646 #. type: SS
5647 #: build/C/man8/ld.so.8:88
5648 #, no-wrap
5649 msgid "Rpath token expansion"
5650 msgstr "rpath トークンの展開"
5651
5652 #. type: Plain text
5653 #: build/C/man8/ld.so.8:92
5654 msgid ""
5655 "B<ld.so> understands certain strings in an rpath specification (DT_RPATH or "
5656 "DT_RUNPATH); those strings are substituted as follows"
5657 msgstr ""
5658 "B<ld.so> では rpath 指定 (DT_RPATH や DT_RUNPATH) 中にいくつかの特定の文字列"
5659 "を使うことができる。 それらの文字列は以下のように置き換えられる。"
5660
5661 #. type: TP
5662 #: build/C/man8/ld.so.8:92
5663 #, no-wrap
5664 msgid "I<$ORIGIN> (or equivalently I<${ORIGIN}>)"
5665 msgstr "I<$ORIGIN> (I<${ORIGIN}> も同じ)"
5666
5667 #. type: Plain text
5668 #: build/C/man8/ld.so.8:99
5669 msgid ""
5670 "This expands to the directory containing the application executable.  Thus, "
5671 "an application located in I<somedir/app> could be compiled with"
5672 msgstr ""
5673 "アプリケーションの実行ファイルが入っているディレクトリに展開される。 したがっ"
5674 "て、 I<somedir/app> に置かれたアプリケーションを"
5675
5676 #. type: Plain text
5677 #: build/C/man8/ld.so.8:101
5678 #, no-wrap
5679 msgid "    gcc -Wl,-rpath,\\(aq$ORIGIN/../lib\\(aq\n"
5680 msgstr "    gcc -Wl,-rpath,\\(aq$ORIGIN/../lib\\(aq\n"
5681
5682 #. type: Plain text
5683 #: build/C/man8/ld.so.8:111
5684 msgid ""
5685 "so that it finds an associated shared library in I<somedir/lib> no matter "
5686 "where I<somedir> is located in the directory hierarchy.  This facilitates "
5687 "the creation of \"turn-key\" applications that do not need to be installed "
5688 "into special directories, but can instead be unpacked into any directory and "
5689 "still find their own shared libraries."
5690 msgstr ""
5691 "でコンパイルすることで、 I<somedir> がディレクトリ階層のどこにあっても、 "
5692 "B<ld.so> は I<somedir/lib> にある対応する共有ライブラリを見つけることができ"
5693 "る。 この機能を使うと、 特別なディレクトリではなく任意のディレクトリにインス"
5694 "トールしても「ややこしい設定なしで」独自の共有ライブラリを使えるアプリケー"
5695 "ションを作成することができる。"
5696
5697 #. type: TP
5698 #: build/C/man8/ld.so.8:111
5699 #, no-wrap
5700 msgid "I<$LIB> (or equivalently I<${LIB}>)"
5701 msgstr "I<$LIB> (I<${LIB}> も同じ)"
5702
5703 #. type: Plain text
5704 #: build/C/man8/ld.so.8:123
5705 msgid ""
5706 "This expands to I<lib> or I<lib64> depending on the architecture (e.g., on "
5707 "x86-64, it expands to I<lib64> and on x86-32, it expands to I<lib>)."
5708 msgstr ""
5709 "アーキテクチャに応じて I<lib> か I<lib64> に展開される (例えば、 x86-64 では "
5710 "I<lib64> に、 x86-32 では I<lib> に展開される)。"
5711
5712 #. type: TP
5713 #: build/C/man8/ld.so.8:123
5714 #, no-wrap
5715 msgid "I<$PLATFORM> (or equivalently I<${PLATFORM}>)"
5716 msgstr "I<$PLATFORM> (I<${PLATFORM}> も同じ)"
5717
5718 #
5719 #
5720 #.  To get an idea of the places that $PLATFORM would match,
5721 #.  look at the output of the following:
5722 #.      mkdir /tmp/d
5723 #.      LD_LIBRARY_PATH=/tmp/d strace -e open /bin/date 2>&1 | grep /tmp/d
5724 #.  ld.so lets names be abbreviated, so $O will work for $ORIGIN;
5725 #.  Don't do this!!
5726 #. type: Plain text
5727 #: build/C/man8/ld.so.8:141
5728 msgid ""
5729 "This expands to a string corresponding to the processor type of the host "
5730 "system (e.g., \"x86_64\").  On some architectures, the Linux kernel doesn't "
5731 "provide a platform string to the dynamic linker.  The value of this string "
5732 "is taken from the B<AT_PLATFORM> value in the auxiliary vector (see "
5733 "B<getauxval>(3))."
5734 msgstr ""
5735 "ホストシステムのプロセッサ種別に対応する文字列に展開される (例えば "
5736 "\"x86_64\")。\n"
5737 "いくつかのアーキテクチャでは、 Linux カーネルから動的リンカにプラットフォーム"
5738 "を表す文字列が提供されない。 この文字列の値は補助ベクトルの B<AT_PLATFORM> 値"
5739 "から取得される (B<getauxval>(3) 参照)。"
5740
5741 #. type: SH
5742 #: build/C/man8/ld.so.8:141 build/C/man8/ldconfig.8:100 build/C/man1/ldd.1:51
5743 #: build/C/man1/memusage.1:135 build/C/man1/memusagestat.1:47
5744 #: build/C/man1/mtrace.1:51 build/C/man1/pldd.1:40 build/C/man1/sprof.1:46
5745 #, no-wrap
5746 msgid "OPTIONS"
5747 msgstr "オプション"
5748
5749 #. type: TP
5750 #: build/C/man8/ld.so.8:142
5751 #, no-wrap
5752 msgid "B<--list>"
5753 msgstr "B<--list>"
5754
5755 #. type: Plain text
5756 #: build/C/man8/ld.so.8:145
5757 msgid "List all dependencies and how they are resolved."
5758 msgstr "全ての依存関係とその解決法をリストする。"
5759
5760 #. type: TP
5761 #: build/C/man8/ld.so.8:145
5762 #, no-wrap
5763 msgid "B<--verify>"
5764 msgstr "B<--verify>"
5765
5766 #. type: Plain text
5767 #: build/C/man8/ld.so.8:149
5768 msgid ""
5769 "Verify that program is dynamically linked and this dynamic linker can handle "
5770 "it."
5771 msgstr ""
5772 "プログラムが動的にリンクされているかと、 動的リンカがそのプログラムを扱えるか"
5773 "を検証する。"
5774
5775 #. type: TP
5776 #: build/C/man8/ld.so.8:149
5777 #, no-wrap
5778 msgid "B<--library-path PATH>"
5779 msgstr "B<--library-path PATH>"
5780
5781 #. type: Plain text
5782 #: build/C/man8/ld.so.8:154
5783 msgid ""
5784 "Use PATH instead of B<LD_LIBRARY_PATH> environment variable setting (see "
5785 "below)."
5786 msgstr ""
5787 "B<LD_LIBRARY_PATH> 環境変数の設定ではなく、\n"
5788 "指定した PATH を使用する (下記参照)。"
5789
5790 #. type: TP
5791 #: build/C/man8/ld.so.8:154
5792 #, no-wrap
5793 msgid "B<--inhibit-rpath LIST>"
5794 msgstr "B<--inhibit-rpath LIST>"
5795
5796 #. type: Plain text
5797 #: build/C/man8/ld.so.8:160
5798 msgid ""
5799 "Ignore RPATH and RUNPATH information in object names in LIST.  This option "
5800 "is ignored if B<ld.so> is set-user-ID or set-group-ID."
5801 msgstr ""
5802 "LIST にあるオブジェクト名の RPATH と RUNPATH の情報を無視する。 B<ld.so> が "
5803 "set-user-ID か set-group-ID されている場合、 このオプションは無視される。"
5804
5805 #. type: TP
5806 #: build/C/man8/ld.so.8:160
5807 #, no-wrap
5808 msgid "B<--audit LIST>"
5809 msgstr "B<--audit LIST>"
5810
5811 #. type: Plain text
5812 #: build/C/man8/ld.so.8:163
5813 msgid "Use objects named in LIST as auditors."
5814 msgstr "LIST で指定された名前のオブジェクトを監査者として使用する。"
5815
5816 #. type: SH
5817 #: build/C/man8/ld.so.8:163
5818 #, no-wrap
5819 msgid "HARDWARE CAPABILITIES"
5820 msgstr "ハードウェア機能"
5821
5822 #. type: Plain text
5823 #: build/C/man8/ld.so.8:174
5824 msgid ""
5825 "Some libraries are compiled using hardware-specific instructions which do "
5826 "not exist on every CPU.  Such libraries should be installed in directories "
5827 "whose names define the required hardware capabilities, such as I</usr/lib/"
5828 "sse2/>.  The dynamic linker checks these directories against the hardware of "
5829 "the machine and selects the most suitable version of a given library.  "
5830 "Hardware capability directories can be cascaded to combine CPU features.  "
5831 "The list of supported hardware capability names depends on the CPU.  The "
5832 "following names are currently recognized:"
5833 msgstr ""
5834 "いくつかのライブラリは、(すべての CPU に存在するわけではない)ハードウェア固"
5835 "有\n"
5836 "の命令を使ってコンパイルされている。そのようなライブラリは、\n"
5837 "I</usr/lib/sse2/> のような、必要なハードウェア機能 (hardware capability) を"
5838 "規\n"
5839 "定する名前のディレクトリにインストールすべきである。\n"
5840 "動的リンカは、マシンのハードウェアに基づいてこれらのディレクトリを確認し、\n"
5841 "指定されたライブラリに最も適したバージョンを選択する。\n"
5842 "ハードウェア機能ディレクトリはつなげることができ、\n"
5843 "複数の CPU 機能を組み合わることができる。\n"
5844 "対応しているハードウェア機能名のリストは CPU に依存する。\n"
5845 "現在のところ、以下の名前が認識される。"
5846
5847 #. type: TP
5848 #: build/C/man8/ld.so.8:174
5849 #, no-wrap
5850 msgid "B<Alpha>"
5851 msgstr "B<Alpha>"
5852
5853 #. type: Plain text
5854 #: build/C/man8/ld.so.8:177
5855 msgid "ev4, ev5, ev56, ev6, ev67"
5856 msgstr "ev4, ev5, ev56, ev6, ev67"
5857
5858 #. type: TP
5859 #: build/C/man8/ld.so.8:177
5860 #, no-wrap
5861 msgid "B<MIPS>"
5862 msgstr "B<MIPS>"
5863
5864 #. type: Plain text
5865 #: build/C/man8/ld.so.8:180
5866 msgid "loongson2e, loongson2f, octeon, octeon2"
5867 msgstr "loongson2e, loongson2f, octeon, octeon2"
5868
5869 #. type: TP
5870 #: build/C/man8/ld.so.8:180
5871 #, no-wrap
5872 msgid "B<PowerPC>"
5873 msgstr "B<PowerPC>"
5874
5875 #. type: Plain text
5876 #: build/C/man8/ld.so.8:185
5877 msgid ""
5878 "4xxmac, altivec, arch_2_05, arch_2_06, booke, cellbe, dfp, efpdouble, "
5879 "efpsingle, fpu, ic_snoop, mmu, notb, pa6t, power4, power5, power5+, power6x, "
5880 "ppc32, ppc601, ppc64, smt, spe, ucache, vsx"
5881 msgstr ""
5882 "4xxmac, altivec, arch_2_05, arch_2_06, booke, cellbe, dfp, efpdouble, "
5883 "efpsingle, fpu, ic_snoop, mmu, notb, pa6t, power4, power5, power5+, power6x, "
5884 "ppc32, ppc601, ppc64, smt, spe, ucache, vsx"
5885
5886 #. type: TP
5887 #: build/C/man8/ld.so.8:185
5888 #, no-wrap
5889 msgid "B<SPARC>"
5890 msgstr "B<SPARC>"
5891
5892 #. type: Plain text
5893 #: build/C/man8/ld.so.8:188
5894 msgid "flush, muldiv, stbar, swap, ultra3, v9, v9v, v9v2"
5895 msgstr "flush, muldiv, stbar, swap, ultra3, v9, v9v, v9v2"
5896
5897 #. type: TP
5898 #: build/C/man8/ld.so.8:188
5899 #, no-wrap
5900 msgid "B<s390>"
5901 msgstr "B<s390>"
5902
5903 #. type: Plain text
5904 #: build/C/man8/ld.so.8:192
5905 msgid ""
5906 "dfp, eimm, esan3, etf3enh, g5, highgprs, hpage, ldisp, msa, stfle, z900, "
5907 "z990, z9-109, z10, zarch"
5908 msgstr ""
5909 "dfp, eimm, esan3, etf3enh, g5, highgprs, hpage, ldisp, msa, stfle, z900, "
5910 "z990, z9-109, z10, zarch"
5911
5912 #. type: TP
5913 #: build/C/man8/ld.so.8:192
5914 #, no-wrap
5915 msgid "B<x86 (32-bit only)>"
5916 msgstr "B<x86 (32-bit のみ)>"
5917
5918 #. type: Plain text
5919 #: build/C/man8/ld.so.8:196
5920 msgid ""
5921 "acpi, apic, clflush, cmov, cx8, dts, fxsr, ht, i386, i486, i586, i686, mca, "
5922 "mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm"
5923 msgstr ""
5924 "acpi, apic, clflush, cmov, cx8, dts, fxsr, ht, i386, i486, i586, i686, mca, "
5925 "mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm"
5926
5927 #. type: SH
5928 #: build/C/man8/ld.so.8:196
5929 #, no-wrap
5930 msgid "ENVIRONMENT"
5931 msgstr "環境変数"
5932
5933 #. type: Plain text
5934 #: build/C/man8/ld.so.8:198
5935 msgid "Among the more important environment variables are the following:"
5936 msgstr "重要な環境変数には以下のものがある。"
5937
5938 #. type: TP
5939 #: build/C/man8/ld.so.8:198
5940 #, no-wrap
5941 msgid "B<LD_ASSUME_KERNEL>"
5942 msgstr "B<LD_ASSUME_KERNEL>"
5943
5944 #. type: Plain text
5945 #: build/C/man8/ld.so.8:211
5946 msgid ""
5947 "(glibc since 2.2.3)  Each shared library can inform the dynamic linker of "
5948 "the minimum kernel ABI version that it requires.  (This requirement is "
5949 "encoded in an ELF note section that is viewable via I<readelf\\ -n> as a "
5950 "section labeled B<NT_GNU_ABI_TAG>.)  At run time, the dynamic linker "
5951 "determines the ABI version of the running kernel and will reject loading "
5952 "shared libraries that specify minimum ABI versions that exceed that ABI "
5953 "version."
5954 msgstr ""
5955 "(glibc 2.2.3 以降)  各共有ライブラリは動的リンカに必要なカーネル ABI の最小"
5956 "バージョンを通知することができる (必要なバージョンは ELF の note section に格"
5957 "納され、 I<readelf\\ -n> で B<NT_GNU_ABI_TAG> のラベルが付いたセクションとし"
5958 "て見ることができる)。 実行時に、 動的リンカは実行中のカーネルの ABI バージョ"
5959 "ンを判定し、 カーネルの ABI バージョンよりも大きな ABI の最小バージョンが指定"
5960 "された共有ライブラリのロードを行わない。"
5961
5962 #. type: Plain text
5963 #: build/C/man8/ld.so.8:220
5964 msgid ""
5965 "B<LD_ASSUME_KERNEL> can be used to cause the dynamic linker to assume that "
5966 "it is running on a system with a different kernel ABI version.  For example, "
5967 "the following command line causes the dynamic linker to assume it is running "
5968 "on Linux 2.2.5 when loading the shared libraries required by I<myprog>:"
5969 msgstr ""
5970 "B<LD_ASSUME_KERNEL> を使うことで、 動的リンカに、 異なるカーネル ABI バージョ"
5971 "ンのシステムで実行されているかのように見せることができる。 例えば、 以下のコ"
5972 "マンドラインを実行すると、 動的リンカは I<myprog> が必要とする共有ライブラリ"
5973 "をロードする際に Linux 2.2.5 上で動作していると仮定する。"
5974
5975 #. type: Plain text
5976 #: build/C/man8/ld.so.8:224
5977 #, no-wrap
5978 msgid "$ B<LD_ASSUME_KERNEL=2.2.5 ./myprog>\n"
5979 msgstr "$ B<LD_ASSUME_KERNEL=2.2.5 ./myprog>\n"
5980
5981 #. type: Plain text
5982 #: build/C/man8/ld.so.8:241
5983 msgid ""
5984 "On systems that provide multiple versions of a shared library (in different "
5985 "directories in the search path) that have different minimum kernel ABI "
5986 "version requirements, B<LD_ASSUME_KERNEL> can be used to select the version "
5987 "of the library that is used (dependent on the directory search order).  "
5988 "Historically, the most common use of the B<LD_ASSUME_KERNEL> feature was to "
5989 "manually select the older LinuxThreads POSIX threads implementation on "
5990 "systems that provided both LinuxThreads and NPTL (which latter was typically "
5991 "the default on such systems); see B<pthreads>(7)."
5992 msgstr ""
5993 "必要なカーネル ABI の最低バージョンが異なる複数の共有ライブラリが (検索パス中"
5994 "の異なるディレクトリに) あるシステムでは、 B<LD_ASSUME_KERNEL> を使って (ディ"
5995 "レクトリ検索順序に基づき) 使用するライブラリのバージョンを選択することができ"
5996 "る。 歴史的に見ると、 B<LD_ASSUME_KERNEL> の最も一般的な使い道は、 "
5997 "LinuxThreads と NPTL の両方を提供しているシステムで、 古い LinuxThreads の "
5998 "POSIX スレッド実装を手動で選択するためであった (そのようなシステムでは、通常"
5999 "は NPTL がデフォルトであった)。 B<pthreads>(7) を参照。"
6000
6001 #. type: TP
6002 #: build/C/man8/ld.so.8:241 build/C/man8/ld.so.8:322
6003 #, no-wrap
6004 msgid "B<LD_BIND_NOT>"
6005 msgstr "B<LD_BIND_NOT>"
6006
6007 #. type: Plain text
6008 #: build/C/man8/ld.so.8:246
6009 msgid ""
6010 "(glibc since 2.2)  Don't update the Global Offset Table (GOT) and Procedure "
6011 "Linkage Table (PLT)  when resolving a symbol."
6012 msgstr ""
6013 "(glibc 2.2 以降) シンボルを解決した際、Global Offset Table (GOT) と "
6014 "Procedure Linkage Table (PLT) を更新しない。"
6015
6016 #. type: TP
6017 #: build/C/man8/ld.so.8:246
6018 #, no-wrap
6019 msgid "B<LD_BIND_NOW>"
6020 msgstr "B<LD_BIND_NOW>"
6021
6022 #. type: Plain text
6023 #: build/C/man8/ld.so.8:254
6024 msgid ""
6025 "(libc5; glibc since 2.1.1)  If set to a nonempty string, causes the dynamic "
6026 "linker to resolve all symbols at program startup instead of deferring "
6027 "function call resolution to the point when they are first referenced.  This "
6028 "is useful when using a debugger."
6029 msgstr ""
6030 "(libc5; glibc 2.1.1 以降)  空文字列でない場合、 動的リンカはプログラムの開始"
6031 "時に全てのシンボルを解決する。 空文字列の場合、解決しなければならない関数呼び"
6032 "出しが 最初に参照された時点で解決する。 デバッガを使っているときに役立つ。"
6033
6034 #. type: TP
6035 #: build/C/man8/ld.so.8:254
6036 #, no-wrap
6037 msgid "B<LD_LIBRARY_PATH>"
6038 msgstr "B<LD_LIBRARY_PATH>"
6039
6040 #. type: Plain text
6041 #: build/C/man8/ld.so.8:262
6042 msgid ""
6043 "A colon-separated list of directories in which to search for ELF libraries "
6044 "at execution-time.  Similar to the B<PATH> environment variable.  Ignored in "
6045 "set-user-ID and set-group-ID programs."
6046 msgstr ""
6047 "コロン区切りのディレクトリのリスト。実行時に ELF ライブラリを検索するディレク"
6048 "トリを指定する。 B<PATH> 環境変数と同じように指定する。 set-user-ID/set-"
6049 "group-ID されたプログラムでは無視される。"
6050
6051 #. type: TP
6052 #: build/C/man8/ld.so.8:262
6053 #, no-wrap
6054 msgid "B<LD_PRELOAD>"
6055 msgstr "B<LD_PRELOAD>"
6056
6057 #. type: Plain text
6058 #: build/C/man8/ld.so.8:273
6059 msgid ""
6060 "A list of additional, user-specified, ELF shared libraries to be loaded "
6061 "before all others.  The items of the list can be separated by spaces or "
6062 "colons.  This can be used to selectively override functions in other shared "
6063 "libraries.  The libraries are searched for using the rules given under "
6064 "DESCRIPTION.  For set-user-ID/set-group-ID ELF binaries, preload pathnames "
6065 "containing slashes are ignored, and libraries in the standard search "
6066 "directories are loaded only if the set-user-ID permission bit is enabled on "
6067 "the library file."
6068 msgstr ""
6069 "追加でユーザが指定する ELF 共有ライブラリのリスト。指定されたライブラリは、す"
6070 "べてのライブラリより前にロードされる。リストの区切りはスペースとコロンであ"
6071 "る。他の共有ライブラリにある関数を選択的に置き換えるために用いることができ"
6072 "る。指定されたライブラリは「説明」の節で述べたルールを基いて検索される。 set-"
6073 "user-ID/set-group-ID された ELF バイナリでは、スラッシュを含んだパス名のライ"
6074 "ブラリは無視され、標準の検索ディレクトリのライブラリはそのライブラリファイル"
6075 "の set-user-ID 許可ビットが有効になっている場合のみロードされる。"
6076
6077 #. type: TP
6078 #: build/C/man8/ld.so.8:273
6079 #, no-wrap
6080 msgid "B<LD_TRACE_LOADED_OBJECTS>"
6081 msgstr "B<LD_TRACE_LOADED_OBJECTS>"
6082
6083 #. type: Plain text
6084 #: build/C/man8/ld.so.8:280
6085 msgid ""
6086 "(ELF only)  If set to a nonempty string, causes the program to list its "
6087 "dynamic library dependencies, as if run by B<ldd>(1), instead of running "
6088 "normally."
6089 msgstr ""
6090 "(ELF のみ)  空文字列でない場合、 プログラムを普通に実行するのではなく、 "
6091 "B<ldd>(1)  を実行したときのように動的ライブラリの依存関係をリスト表示させる。"
6092
6093 #. type: Plain text
6094 #: build/C/man8/ld.so.8:283
6095 msgid ""
6096 "Then there are lots of more or less obscure variables, many obsolete or only "
6097 "for internal use."
6098 msgstr ""
6099 "そして、それほど知られていない環境変数もある。 多くは廃れてしまったものか内部"
6100 "でのみ使用される環境変数である。"
6101
6102 #. type: TP
6103 #: build/C/man8/ld.so.8:283
6104 #, no-wrap
6105 msgid "B<LD_AOUT_LIBRARY_PATH>"
6106 msgstr "B<LD_AOUT_LIBRARY_PATH>"
6107
6108 #. type: Plain text
6109 #: build/C/man8/ld.so.8:291
6110 msgid ""
6111 "(libc5)  Version of B<LD_LIBRARY_PATH> for a.out binaries only.  Old "
6112 "versions of ld-linux.so.1 also supported B<LD_ELF_LIBRARY_PATH>."
6113 msgstr ""
6114 "(libc5)  a.out バイナリにのみ使われる環境変数で、 B<LD_LIBRARY_PATH> と同じ役"
6115 "割をする。 ld-linux.so.1 の古いバージョンでは B<LD_ELF_LIBRARY_PATH> もサポー"
6116 "トしていた。"
6117
6118 #. type: TP
6119 #: build/C/man8/ld.so.8:291
6120 #, no-wrap
6121 msgid "B<LD_AOUT_PRELOAD>"
6122 msgstr "B<LD_AOUT_PRELOAD>"
6123
6124 #. type: Plain text
6125 #: build/C/man8/ld.so.8:299
6126 msgid ""
6127 "(libc5)  Version of B<LD_PRELOAD> for a.out binaries only.  Old versions of "
6128 "ld-linux.so.1 also supported B<LD_ELF_PRELOAD>."
6129 msgstr ""
6130 "(libc5)  a.out バイナリにのみ使われる環境変数で、 B<LD_PRELOAD> と同じ役割を"
6131 "する。 ld-linux.so.1 の古いバージョンでは B<LD_ELF_PRELOAD> もサポートしてい"
6132 "た。"
6133
6134 #. type: TP
6135 #: build/C/man8/ld.so.8:299
6136 #, no-wrap
6137 msgid "B<LD_AUDIT>"
6138 msgstr "B<LD_AUDIT>"
6139
6140 #. type: Plain text
6141 #: build/C/man8/ld.so.8:309
6142 msgid ""
6143 "(glibc since 2.4)  A colon-separated list of user-specified, ELF shared "
6144 "objects to be loaded before all others in a separate linker namespace (i.e., "
6145 "one that does not intrude upon the normal symbol bindings that would occur "
6146 "in the process).  These libraries can be used to audit the operation of the "
6147 "dynamic linker.  B<LD_AUDIT> is ignored for set-user-ID/set-group-ID "
6148 "binaries."
6149 msgstr ""
6150 "(glibc 2.4 以降)  他のオブジェクトよりも前に、別のリンカ名前空間 (そのプロセ"
6151 "スで行われる 通常のシンボル結合 (symbol bindigns) には関与しない名前空間) で "
6152 "ロードされる、ユーザ指定の ELF 共有オブジェクトのコロン区切りのリスト。 これ"
6153 "らのライブラリを使って、動的リンカの動作を監査することができる。 set-user-ID/"
6154 "set-group-ID されたバイナリでは、 B<LD_AUDIT> は無視される。"
6155
6156 #. type: Plain text
6157 #: build/C/man8/ld.so.8:322
6158 msgid ""
6159 "The dynamic linker will notify the audit libraries at so-called auditing "
6160 "checkpoints\\(emfor example, loading a new library, resolving a symbol, or "
6161 "calling a symbol from another shared object\\(emby calling an appropriate "
6162 "function within the audit library.  For details, see B<rtld-audit>(7).  The "
6163 "auditing interface is largely compatible with that provided on Solaris, as "
6164 "described in its I<Linker and Libraries Guide>, in the chapter I<Runtime "
6165 "Linker Auditing Interface>."
6166 msgstr ""
6167 "動的リンカは、いわゆる監査チェックポイント (auditing checkpoints)  において、"
6168 "監査 (audit) ライブラリの適切な関数を呼び出すことで、 監査ライブラリへの通知"
6169 "を行う。監査チェックポイントの例としては、 新たなライブラリのロード、シンボル"
6170 "の解決、別の共有オブジェクト からのシンボルの呼び出し、などがある。 詳細は "
6171 "B<rtld-audit>(7)  を参照してほしい。 audit インタフェースは、Solaris で提供さ"
6172 "れているものと 大部分は互換性がある。Solaris の audit インタフェースについて"
6173 "は、 I<Linker and Libraries Guide> の I<Runtime Linker Auditing Interface> の"
6174 "章に説明がある。"
6175
6176 #. type: Plain text
6177 #: build/C/man8/ld.so.8:327
6178 msgid ""
6179 "(glibc since 2.1.95)  Do not update the GOT (global offset table) and PLT "
6180 "(procedure linkage table)  after resolving a symbol."
6181 msgstr ""
6182 "(glibc 2.1.95 以降)  シンボルを解決した後、GOT (global offset table) と PLT "
6183 "(procedure linkage table) を更新しない。"
6184
6185 #. type: TP
6186 #: build/C/man8/ld.so.8:327
6187 #, no-wrap
6188 msgid "B<LD_DEBUG>"
6189 msgstr "B<LD_DEBUG>"
6190
6191 #. type: Plain text
6192 #: build/C/man8/ld.so.8:340
6193 msgid ""
6194 "(glibc since 2.1)  Output verbose debugging information about the dynamic "
6195 "linker.  If set to B<all> prints all debugging information it has, if set to "
6196 "B<help> prints a help message about which categories can be specified in "
6197 "this environment variable.  Since glibc 2.3.4, B<LD_DEBUG> is ignored for "
6198 "set-user-ID/set-group-ID binaries."
6199 msgstr ""
6200 "(glibc 2.1 以降)  動的リンカの詳細なデバッグ情報を出力する。 B<all> に設定し"
6201 "た場合、全ての動的リンカが持つデバッグ情報を表示する。 B<help> に設定した場"
6202 "合、この環境変数で指定されるカテゴリのヘルプ情報を表示する。 glibc 2.3.4 以"
6203 "降、 set-user-ID/set-group-ID されたバイナリでは B<LD_DEBUG> は無視される。"
6204
6205 #. type: TP
6206 #: build/C/man8/ld.so.8:340
6207 #, no-wrap
6208 msgid "B<LD_DEBUG_OUTPUT>"
6209 msgstr "B<LD_DEBUG_OUTPUT>"
6210
6211 #. type: Plain text
6212 #: build/C/man8/ld.so.8:349
6213 msgid ""
6214 "(glibc since 2.1)  File in which B<LD_DEBUG> output should be written.  The "
6215 "default is standard error.  B<LD_DEBUG_OUTPUT> is ignored for set-user-ID/"
6216 "set-group-ID binaries."
6217 msgstr ""
6218 "(glibc 2.1 以降)  B<LD_DEBUG> の出力を書き込むファイル。 デフォルトは標準エ"
6219 "ラーである。 set-user-ID/set-group-ID されたバイナリでは、 "
6220 "B<LD_DEBUG_OUTPUT> は無視される。"
6221
6222 #. type: TP
6223 #: build/C/man8/ld.so.8:349
6224 #, no-wrap
6225 msgid "B<LD_DYNAMIC_WEAK>"
6226 msgstr "B<LD_DYNAMIC_WEAK>"
6227
6228 #. type: Plain text
6229 #: build/C/man8/ld.so.8:356
6230 msgid ""
6231 "(glibc since 2.1.91)  Allow weak symbols to be overridden (reverting to old "
6232 "glibc behavior).  For security reasons, since glibc 2.3.4, "
6233 "B<LD_DYNAMIC_WEAK> is ignored for set-user-ID/set-group-ID binaries."
6234 msgstr ""
6235 "(glibc 2.1.19 以降)  上書きされる弱いシンボル (昔の glibc の挙動を逆にす"
6236 "る)。 セキュリティ上の理由から、glibc 2.3.4 以降、 set-user-ID/set-group-ID "
6237 "されたバイナリでは B<LD_DYNAMIC_WEAK> は無視される。"
6238
6239 #. type: TP
6240 #: build/C/man8/ld.so.8:356
6241 #, no-wrap
6242 msgid "B<LD_HWCAP_MASK>"
6243 msgstr "B<LD_HWCAP_MASK>"
6244
6245 #. type: Plain text
6246 #: build/C/man8/ld.so.8:360
6247 msgid "(glibc since 2.1)  Mask for hardware capabilities."
6248 msgstr "(glibc 2.1 以降)  ハードウェア機能のマスク。"
6249
6250 #. type: TP
6251 #: build/C/man8/ld.so.8:360
6252 #, no-wrap
6253 msgid "B<LD_KEEPDIR>"
6254 msgstr "B<LD_KEEPDIR>"
6255
6256 #. type: Plain text
6257 #: build/C/man8/ld.so.8:365
6258 msgid ""
6259 "(a.out only)(libc5)  Don't ignore the directory in the names of a.out "
6260 "libraries to be loaded.  Use of this option is strongly discouraged."
6261 msgstr ""
6262 "(a.out のみ)(libc5)  ロードする a.out ライブラリの名前において、ディレクトリ"
6263 "を無視しない。 このオプションは用いるべきではない。"
6264
6265 #. type: TP
6266 #: build/C/man8/ld.so.8:365
6267 #, no-wrap
6268 msgid "B<LD_NOWARN>"
6269 msgstr "B<LD_NOWARN>"
6270
6271 #. type: Plain text
6272 #: build/C/man8/ld.so.8:370
6273 msgid ""
6274 "(a.out only)(libc5)  Suppress warnings about a.out libraries with "
6275 "incompatible minor version numbers."
6276 msgstr ""
6277 "(a.out のみ)(libc5)  a.out ライブラリにおけるマイナーバージョン番号の非互換"
6278 "に 対する警告メッセージを抑制する。"
6279
6280 #. type: TP
6281 #: build/C/man8/ld.so.8:370
6282 #, no-wrap
6283 msgid "B<LD_ORIGIN_PATH>"
6284 msgstr "B<LD_ORIGIN_PATH>"
6285
6286 #.  Only used if $ORIGIN can't be determined by normal means
6287 #.  (from the origin path saved at load time, or from /proc/self/exe)?
6288 #. type: Plain text
6289 #: build/C/man8/ld.so.8:379
6290 msgid ""
6291 "(glibc since 2.1)  Path where the binary is found (for non-set-user-ID "
6292 "programs).  For security reasons, since glibc 2.4, B<LD_ORIGIN_PATH> is "
6293 "ignored for set-user-ID/set-group-ID binaries."
6294 msgstr ""
6295 "(glibc 2.1 以降)  バイナリへのパス (set-user-ID されていないプログラムについ"
6296 "て)。 セキュリティ上の理由から、glibc 2.3.4 以降、 set-user-ID/set-group-ID "
6297 "されたバイナリでは B<LD_ORIGIN_PATH> は無視される。"
6298
6299 #. type: TP
6300 #: build/C/man8/ld.so.8:379
6301 #, no-wrap
6302 msgid "B<LD_POINTER_GUARD>"
6303 msgstr "B<LD_POINTER_GUARD>"
6304
6305 #. type: Plain text
6306 #: build/C/man8/ld.so.8:391
6307 msgid ""
6308 "(glibc since 2.4)  Set to 0 to disable pointer guarding.  Any other value "
6309 "enables pointer guarding, which is also the default.  Pointer guarding is a "
6310 "security mechanism whereby some pointers to code stored in writable program "
6311 "memory (return addresses saved by B<setjmp>(3)  or function pointers used by "
6312 "various glibc internals) are mangled semi-randomly to make it more difficult "
6313 "for an attacker to hijack the pointers for use in the event of a buffer "
6314 "overrun or stack-smashing attack."
6315 msgstr ""
6316 "(glibc 2.4 以降)  0 に設定すると、ポインタ保護 (pointer guarding) が無効にな"
6317 "る。 それ以外の値の場合はポインタ保護が有効になる。 デフォルトはポインタ保護"
6318 "有効である。 ポインタ保護はセキュリティ機構の一つで、書き込み可能なプログラム"
6319 "メモリ に格納されたコードへのポインタをほぼランダム化することで、 攻撃者が"
6320 "バッファオーバーランやスタック破壊 (stack-smashing) 攻撃の際に ポインタを乗っ"
6321 "取ることを困難にするものである。"
6322
6323 #. type: TP
6324 #: build/C/man8/ld.so.8:391
6325 #, no-wrap
6326 msgid "B<LD_PROFILE>"
6327 msgstr "B<LD_PROFILE>"
6328
6329 #. type: Plain text
6330 #: build/C/man8/ld.so.8:398
6331 msgid ""
6332 "(glibc since 2.1)  The name of a (single) shared object to be profiled, "
6333 "specified either as a pathname or a soname.  Profiling output is appended to "
6334 "the file whose name is: \"I<$LD_PROFILE_OUTPUT>/I<$LD_PROFILE>.profile\"."
6335 msgstr "(glibc 2.1 以降)  プロファイルを行う共有オブジェクトの名前。 パス名か共有オブジェクト名 (soname) で指定される。 プロフィールの出力は \"I<$LD_PROFILE_OUTPUT>/I<$LD_PROFILE>.profile\" という名前の ファイルに追記される。"
6336
6337 #. type: TP
6338 #: build/C/man8/ld.so.8:398
6339 #, no-wrap
6340 msgid "B<LD_PROFILE_OUTPUT>"
6341 msgstr "B<LD_PROFILE_OUTPUT>"
6342
6343 #. type: Plain text
6344 #: build/C/man8/ld.so.8:411
6345 msgid ""
6346 "(glibc since 2.1)  Directory where B<LD_PROFILE> output should be written.  "
6347 "If this variable is not defined, or is defined as an empty string, then the "
6348 "default is I</var/tmp>.  B<LD_PROFILE_OUTPUT> is ignored for set-user-ID and "
6349 "set-group-ID programs, which always use I</var/profile>."
6350 msgstr ""
6351 "(glibc 2.1 以降)  B<LD_PROFILE> の出力が書き込まれるディレクトリ。 この変数が"
6352 "定義されていないか、空の文字列が定義されている場合、 デフォルト値は I</var/"
6353 "tmp> となる。 set-user-ID/set-group-ID されたプログラムでは、 "
6354 "LD_PROFILE_OUTPUT は無視される。 出力ファイルは常に I</var/profile> が使用さ"
6355 "れる。"
6356
6357 #. type: TP
6358 #: build/C/man8/ld.so.8:411
6359 #, no-wrap
6360 msgid "B<LD_SHOW_AUXV>"
6361 msgstr "B<LD_SHOW_AUXV>"
6362
6363 #.  FIXME
6364 #.  Document LD_TRACE_PRELINKING (e.g.: LD_TRACE_PRELINKING=libx1.so ./prog)
6365 #.      Available since glibc 2.3
6366 #.      Also enables DL_DEBUG_PRELINK
6367 #. type: Plain text
6368 #: build/C/man8/ld.so.8:422
6369 msgid ""
6370 "(glibc since 2.1)  Show auxiliary array passed up from the kernel.  For "
6371 "security reasons, since glibc 2.3.5, B<LD_SHOW_AUXV> is ignored for set-user-"
6372 "ID/set-group-ID binaries."
6373 msgstr ""
6374 "(glibc 2.1 以降)  カーネルから渡される補助的な (パラメータの) 配列を表示す"
6375 "る。 セキュリティ上の理由から、glibc 2.3.4 以降、 set-user-ID/set-group-ID さ"
6376 "れたバイナリでは B<LD_SHOW_AUXV> は無視される。"
6377
6378 #. type: TP
6379 #: build/C/man8/ld.so.8:422
6380 #, no-wrap
6381 msgid "B<LD_USE_LOAD_BIAS>"
6382 msgstr "B<LD_USE_LOAD_BIAS>"
6383
6384 #.  http://sources.redhat.com/ml/libc-hacker/2003-11/msg00127.html
6385 #.  Subject: [PATCH] Support LD_USE_LOAD_BIAS
6386 #.  Jakub Jelinek
6387 #. type: Plain text
6388 #: build/C/man8/ld.so.8:441
6389 msgid ""
6390 "By default (i.e., if this variable is not defined)  executables and "
6391 "prelinked shared objects will honor base addresses of their dependent "
6392 "libraries and (nonprelinked) position-independent executables (PIEs)  and "
6393 "other shared objects will not honor them.  If B<LD_USE_LOAD_BIAS> is defined "
6394 "wit the value, both executables and PIEs will honor the base addresses.  If "
6395 "B<LD_USE_LOAD_BIAS> is defined with the value 0, neither executables nor "
6396 "PIEs will honor the base addresses.  This variable is ignored by set-user-ID "
6397 "and set-group-ID programs."
6398 msgstr ""
6399 "デフォルトでは (つまり、この変数が定義されていない場合)、 実行ファイルと "
6400 "prelink された共有オブジェクトでは、それらが依存する ライブラリのベースアドレ"
6401 "スが尊重される一方、 (prelink されていない) position-independent executables "
6402 "(PIEs) と 他の共有オブジェクトでは依存するライブラリのベースアドレスは 尊重さ"
6403 "れない。 B<LD_USE_LOAD_BIAS> に値が定義された場合、実行ファイルと PIE のどち"
6404 "らでも ベースアドレスが尊重される。 B<LD_USE_LOAD_BIAS> が値 0 で定義された場"
6405 "合、実行ファイルと PIE のどちらでも ベースアドレスは尊重されない。 set-user-"
6406 "ID や set-group-ID されたプログラムでは、 この変数は無視される。"
6407
6408 #. type: TP
6409 #: build/C/man8/ld.so.8:441
6410 #, no-wrap
6411 msgid "B<LD_VERBOSE>"
6412 msgstr "B<LD_VERBOSE>"
6413
6414 #. type: Plain text
6415 #: build/C/man8/ld.so.8:449
6416 msgid ""
6417 "(glibc since 2.1)  If set to a nonempty string, output symbol versioning "
6418 "information about the program if the B<LD_TRACE_LOADED_OBJECTS> environment "
6419 "variable has been set."
6420 msgstr ""
6421 "(glibc 2.1 以降) 空文字列でない場合に、B<LD_TRACE_LOADED_OBJECTS> 環境変数が"
6422 "設定されていれば、プログラムのシンボルバージョン情報を出力する。"
6423
6424 #. type: TP
6425 #: build/C/man8/ld.so.8:449
6426 #, no-wrap
6427 msgid "B<LD_WARN>"
6428 msgstr "B<LD_WARN>"
6429
6430 #. type: Plain text
6431 #: build/C/man8/ld.so.8:453
6432 msgid ""
6433 "(ELF only)(glibc since 2.1.3)  If set to a nonempty string, warn about "
6434 "unresolved symbols."
6435 msgstr ""
6436 "(ELF のみ)(glibc 2.1.3 以降)  空文字列でない場合、解決されていないシンボルが"
6437 "あれば警告を出す。"
6438
6439 #. type: TP
6440 #: build/C/man8/ld.so.8:453
6441 #, no-wrap
6442 msgid "B<LDD_ARGV0>"
6443 msgstr "B<LDD_ARGV0>"
6444
6445 #. type: Plain text
6446 #: build/C/man8/ld.so.8:460
6447 msgid "(libc5)  I<argv>[0] to be used by B<ldd>(1)  when none is present."
6448 msgstr ""
6449 "(libc5)  B<ldd>(1)  の引き数がない場合に、 I<argv>[0] として使われる値。"
6450
6451 #. type: SH
6452 #: build/C/man8/ld.so.8:460 build/C/man8/ldconfig.8:156
6453 #, no-wrap
6454 msgid "FILES"
6455 msgstr "ファイル"
6456
6457 #. type: TP
6458 #: build/C/man8/ld.so.8:462 build/C/man8/ldconfig.8:158
6459 #, no-wrap
6460 msgid "I</lib/ld.so>"
6461 msgstr "I</lib/ld.so>"
6462
6463 #. type: Plain text
6464 #: build/C/man8/ld.so.8:465
6465 msgid "a.out dynamic linker/loader"
6466 msgstr "a.out の動的リンカ/ローダ"
6467
6468 #. type: TP
6469 #: build/C/man8/ld.so.8:465
6470 #, no-wrap
6471 msgid "I</lib/ld-linux.so.>{I<1>,I<2>}"
6472 msgstr "I</lib/ld-linux.so.>{I<1>,I<2>}"
6473
6474 #. type: Plain text
6475 #: build/C/man8/ld.so.8:468
6476 msgid "ELF dynamic linker/loader"
6477 msgstr "ELF の動的リンカ/ローダ"
6478
6479 #. type: TP
6480 #: build/C/man8/ld.so.8:468 build/C/man8/ldconfig.8:165
6481 #, no-wrap
6482 msgid "I</etc/ld.so.cache>"
6483 msgstr "I</etc/ld.so.cache>"
6484
6485 #. type: Plain text
6486 #: build/C/man8/ld.so.8:472
6487 msgid ""
6488 "File containing a compiled list of directories in which to search for "
6489 "libraries and an ordered list of candidate libraries."
6490 msgstr ""
6491 "ライブラリを検索するディレクトリを集めたリストと、 共有ライブラリの候補の整列"
6492 "リストを含むファイル。"
6493
6494 #. type: TP
6495 #: build/C/man8/ld.so.8:472
6496 #, no-wrap
6497 msgid "I</etc/ld.so.preload>"
6498 msgstr "I</etc/ld.so.preload>"
6499
6500 #. type: Plain text
6501 #: build/C/man8/ld.so.8:476
6502 msgid ""
6503 "File containing a whitespace-separated list of ELF shared libraries to be "
6504 "loaded before the program."
6505 msgstr ""
6506 "プログラムの前にロードすべき ELF 共有ライブラリを スペースで区切ったリストが"
6507 "書かれているファイル。"
6508
6509 #. type: TP
6510 #: build/C/man8/ld.so.8:476
6511 #, no-wrap
6512 msgid "B<lib*.so*>"
6513 msgstr "B<lib*.so*>"
6514
6515 #. type: Plain text
6516 #: build/C/man8/ld.so.8:479
6517 msgid "shared libraries"
6518 msgstr "共有ライブラリ"
6519
6520 #. type: Plain text
6521 #: build/C/man8/ld.so.8:486
6522 msgid ""
6523 "The B<ld.so> functionality is available for executables compiled using libc "
6524 "version 4.4.3 or greater.  ELF functionality is available since Linux 1.1.52 "
6525 "and libc5."
6526 msgstr ""
6527 "B<ld.so> の機能は libc のバージョン 4.4.3 以上を用いてコンパイルされた 実行"
6528 "ファイルで使用可能である。 ELF の機能は Linux 1.1.52 以降と libc5 以降で使用"
6529 "可能である。"
6530
6531 #.  .SH AUTHORS
6532 #.  ld.so: David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu, Linus
6533 #.   Torvalds, Lars Wirzenius and Mitch D'Souza
6534 #.  ld-linux.so: Roland McGrath, Ulrich Drepper and others.
6535 #.  In the above, (libc5) stands for David Engel's ld.so/ld-linux.so.
6536 #. type: Plain text
6537 #: build/C/man8/ld.so.8:502
6538 msgid ""
6539 "B<ld>(1), B<ldd>(1), B<pldd>(1), B<sprof>(1), B<dlopen>(3), B<getauxval>(3), "
6540 "B<rtld-audit>(7), B<ldconfig>(8), B<sln>(8)"
6541 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)"
6542
6543 #. type: TH
6544 #: build/C/man8/ldconfig.8:22
6545 #, no-wrap
6546 msgid "LDCONFIG"
6547 msgstr "LDCONFIG"
6548
6549 #. type: TH
6550 #: build/C/man8/ldconfig.8:22
6551 #, no-wrap
6552 msgid "2012-05-10"
6553 msgstr "2012-05-10"
6554
6555 #. type: Plain text
6556 #: build/C/man8/ldconfig.8:25
6557 msgid "ldconfig - configure dynamic linker run-time bindings"
6558 msgstr "ldconfig - 動的リンカによる実行時の結合関係を設定する"
6559
6560 #. type: Plain text
6561 #: build/C/man8/ldconfig.8:40
6562 msgid ""
6563 "B</sbin/ldconfig> [ B<-nNvXV> ] [ B<-f\\ conf> ] [ B<-C\\ cache> ] [ B<-r\\ "
6564 "root> ] I<directory>\\ ..."
6565 msgstr ""
6566 "B</sbin/ldconfig> [ B<-nNvXV> ] [ B<-f\\ conf> ] [ B<-C\\ cache> ] [ B<-r\\ "
6567 "root> ] I<directory>\\ ..."
6568
6569 #. type: Plain text
6570 #: build/C/man8/ldconfig.8:49
6571 msgid "B</sbin/ldconfig> B<-l> [ B<-v> ] I<library>\\ ..."
6572 msgstr "B</sbin/ldconfig> B<-l> [ B<-v> ] I<library>\\ ..."
6573
6574 #. type: Plain text
6575 #: build/C/man8/ldconfig.8:54
6576 msgid "B</sbin/ldconfig> B<-p>"
6577 msgstr "B</sbin/ldconfig> B<-p>"
6578
6579 #. type: Plain text
6580 #: build/C/man8/ldconfig.8:71
6581 msgid ""
6582 "B<ldconfig> creates the necessary links and cache to the most recent shared "
6583 "libraries found in the directories specified on the command line, in the "
6584 "file I</etc/ld.so.conf>, and in the trusted directories (I</lib> and I</usr/"
6585 "lib>).  The cache is used by the run-time linker, I<ld.so> or I<ld-linux."
6586 "so>.  B<ldconfig> checks the header and filenames of the libraries it "
6587 "encounters when determining which versions should have their links updated."
6588 msgstr ""
6589 "B<ldcofig> は最新の共有ライブラリに対して必要なリンクを作成したり、 ライブラ"
6590 "リをキャッシュしたりする。 ライブラリは、コマンドラインや I</etc/ld.so.conf> "
6591 "ファイルで指定されたディレクトリや、共有ライブラリが 通常置かれるディレクト"
6592 "リ (I</lib> と I</usr/lib>)  から検索される。 キャッシュは実行時リンカ I<ld."
6593 "so> または I<ld-linux.so> によって使われる。 B<ldconfig> は処理するライブラリ"
6594 "のヘッダ部分とファイル名をチェックし、 どのバージョンに対してリンクを更新すべ"
6595 "きかを判断する。"
6596
6597 #.  The following sentence looks suspect
6598 #.  (perhaps historical cruft) -- MTK, Jul 2005
6599 #.  Therefore, when making dynamic libraries,
6600 #.  it is wise to explicitly link against libc (use \-lc).
6601 #. type: Plain text
6602 #: build/C/man8/ldconfig.8:79
6603 msgid ""
6604 "B<ldconfig> will attempt to deduce the type of ELF libs (i.e., libc5 or "
6605 "libc6/glibc)  based on what C libs, if any, the library was linked against."
6606 msgstr ""
6607 "B<ldconfig> は ELF ライブラリの種類 (libc5 か libc6/glibc か) を判断すると"
6608 "き、 そのライブラリがリンクしている C ライブラリを参考にする。"
6609
6610 #. type: Plain text
6611 #: build/C/man8/ldconfig.8:100
6612 msgid ""
6613 "Some existing libs do not contain enough information to allow the deduction "
6614 "of their type.  Therefore, the I</etc/ld.so.conf> file format allows the "
6615 "specification of an expected type.  This is used I<only> for those ELF libs "
6616 "which we can not work out.  The format is \"dirname=TYPE\", where TYPE can "
6617 "be libc4, libc5, or libc6.  (This syntax also works on the command line.)  "
6618 "Spaces are I<not> allowed.  Also see the B<-p> option.  B<ldconfig> should "
6619 "normally be run by the superuser as it may require write permission on some "
6620 "root owned directories and files."
6621 msgstr ""
6622 "すでに存在しているライブラリの中には、種類を区別するために充分な 情報が含まれ"
6623 "ていないものもある。 このため I</etc/ld.so.conf> ファイルでライブラリの形式を"
6624 "指定することができるようになっている。 これは区別不能な ELF ライブラリ「だ"
6625 "け」に用いるものである。 フォーマットは \"dirname=TYPE\" とする。 ここで "
6626 "TYPE は libc4, libc5, libc6 のいずれかである (この書式はコマンドラインでも使"
6627 "える)。 「スペースを入れてはならない」。 B<-p> オプションも見ておくこと。 "
6628 "B<ldconfig> は通常スーパーユーザー権限で実行しなければならない。 root が所有"
6629 "しているディレクトリやファイルへの書き込み権限が 必要になるからである。"
6630
6631 #. type: TP
6632 #: build/C/man8/ldconfig.8:101
6633 #, no-wrap
6634 msgid "B<-v>"
6635 msgstr "B<-v>"
6636
6637 #. type: Plain text
6638 #: build/C/man8/ldconfig.8:107
6639 msgid ""
6640 "Verbose mode.  Print current version number, the name of each directory as "
6641 "it is scanned, and any links that are created.  Overrides quiet mode."
6642 msgstr ""
6643 "詳細表示モード。 現在のバージョン番号を表示する。 またそれぞれのディレクトリ"
6644 "をスキャンし、 新しいリンクを生成するたびに、その内容を表示する。 メッセージ"
6645 "抑制モードを上書きする。"
6646
6647 #. type: TP
6648 #: build/C/man8/ldconfig.8:107
6649 #, no-wrap
6650 msgid "B<-n>"
6651 msgstr "B<-n>"
6652
6653 #. type: Plain text
6654 #: build/C/man8/ldconfig.8:118
6655 msgid ""
6656 "Only process directories specified on the command line.  Don't process the "
6657 "trusted directories (I</lib> and I</usr/lib>)  nor those specified in I</etc/"
6658 "ld.so.conf>.  Implies B<-N>."
6659 msgstr ""
6660 "コマンドラインで指定されたディレクトリのみを処理する。 通常共有ライブラリが置"
6661 "かれるディレクトリ (I</lib> と I</usr/lib>)  や I</etc/ld.so.conf> で指定され"
6662 "たディレクトリは処理しない。 暗黙のうちに B<-N> が指定される。"
6663
6664 #. type: TP
6665 #: build/C/man8/ldconfig.8:118
6666 #, no-wrap
6667 msgid "B<-N>"
6668 msgstr "B<-N>"
6669
6670 #. type: Plain text
6671 #: build/C/man8/ldconfig.8:124
6672 msgid ""
6673 "Don't rebuild the cache.  Unless B<-X> is also specified, links are still "
6674 "updated."
6675 msgstr ""
6676 "キャッシュを再構成しない。 同時に B<-X> が同時に指定されなければ、リンクのほ"
6677 "うは更新される。"
6678
6679 #. type: TP
6680 #: build/C/man8/ldconfig.8:124
6681 #, no-wrap
6682 msgid "B<-X>"
6683 msgstr "B<-X>"
6684
6685 #. type: Plain text
6686 #: build/C/man8/ldconfig.8:130
6687 msgid ""
6688 "Don't update links.  Unless B<-N> is also specified, the cache is still "
6689 "rebuilt."
6690 msgstr ""
6691 "リンクを更新しない。 B<-N> が同時に指定されなければ、キャッシュのほうは再構成"
6692 "される。"
6693
6694 #. type: TP
6695 #: build/C/man8/ldconfig.8:130
6696 #, no-wrap
6697 msgid "B<-f conf>"
6698 msgstr "B<-f conf>"
6699
6700 #. type: Plain text
6701 #: build/C/man8/ldconfig.8:136
6702 msgid "Use B<conf> instead of I</etc/ld.so.conf>."
6703 msgstr "B<conf> を I</etc/ld.so.conf> の代わりに用いる。"
6704
6705 #. type: TP
6706 #: build/C/man8/ldconfig.8:136
6707 #, no-wrap
6708 msgid "B<-C cache>"
6709 msgstr "B<-C cache>"
6710
6711 #. type: Plain text
6712 #: build/C/man8/ldconfig.8:142
6713 msgid "Use B<cache> instead of I</etc/ld.so.cache>."
6714 msgstr "B<cache> を I</etc/ld.so.cache> の代わりに用いる。"
6715
6716 #. type: TP
6717 #: build/C/man8/ldconfig.8:142
6718 #, no-wrap
6719 msgid "B<-r root>"
6720 msgstr "B<-r root>"
6721
6722 #. type: Plain text
6723 #: build/C/man8/ldconfig.8:147
6724 msgid "Change to and use I<root> as the root directory."
6725 msgstr ""
6726 "I<root> にカレントディレクトリを変更し、ここをルートディレクトリとして用い"
6727 "る。"
6728
6729 #. type: TP
6730 #: build/C/man8/ldconfig.8:147
6731 #, no-wrap
6732 msgid "B<-l>"
6733 msgstr "B<-l>"
6734
6735 #. type: Plain text
6736 #: build/C/man8/ldconfig.8:152
6737 msgid ""
6738 "Library mode.  Manually link individual libraries.  Intended for use by "
6739 "experts only."
6740 msgstr ""
6741 "ライブラリモード。それぞれのライブラリを手動でリンクする。 熟練者のみが用いる"
6742 "べきである。"
6743
6744 #. type: TP
6745 #: build/C/man8/ldconfig.8:152
6746 #, no-wrap
6747 msgid "B<-p>"
6748 msgstr "B<-p>"
6749
6750 #. type: Plain text
6751 #: build/C/man8/ldconfig.8:156
6752 msgid ""
6753 "Print the lists of directories and candidate libraries stored in the current "
6754 "cache."
6755 msgstr ""
6756 "現在のキャッシュに保存されているディレクトリのリストと、 ライブラリの候補を表"
6757 "示する。"
6758
6759 #. type: Plain text
6760 #: build/C/man8/ldconfig.8:161
6761 msgid "run-time linker/loader"
6762 msgstr "実行時リンカ/ローダー。"
6763
6764 #. type: TP
6765 #: build/C/man8/ldconfig.8:161
6766 #, no-wrap
6767 msgid "I</etc/ld.so.conf>"
6768 msgstr "I</etc/ld.so.conf>"
6769
6770 #. type: Plain text
6771 #: build/C/man8/ldconfig.8:165
6772 msgid ""
6773 "File containing a list of colon, space, tab, newline, or comma-separated "
6774 "directories in which to search for libraries."
6775 msgstr ""
6776 "コロン・スペース・タブ・改行・コンマで区切られたディレクトリのリスト。 それぞ"
6777 "れのディレクトリでライブラリが検索される。"
6778
6779 #. type: Plain text
6780 #: build/C/man8/ldconfig.8:174
6781 msgid ""
6782 "File containing an ordered list of libraries found in the directories "
6783 "specified in I</etc/ld.so.conf>, as well as those found in I</lib> and I</"
6784 "usr/lib>."
6785 msgstr ""
6786 "I</etc/ld.so.conf> で指定されたディレクトリにあるライブラリ、および I</lib> "
6787 "と I</usr/lib> にあるライブラリの順序付きリスト。"
6788
6789 #. type: Plain text
6790 #: build/C/man8/ldconfig.8:178
6791 msgid "B<ldd>(1), B<ld.so>(8)"
6792 msgstr "B<ldd>(1), B<ld.so>(8)"
6793
6794 #. type: TH
6795 #: build/C/man1/ldd.1:14
6796 #, no-wrap
6797 msgid "LDD"
6798 msgstr "LDD"
6799
6800 #. type: Plain text
6801 #: build/C/man1/ldd.1:17
6802 msgid "ldd - print shared library dependencies"
6803 msgstr "ldd - 共有ライブラリへの依存関係を表示する"
6804
6805 #. type: Plain text
6806 #: build/C/man1/ldd.1:19
6807 msgid "B<ldd> [I<option>]... I<file>..."
6808 msgstr "B<ldd> [I<option>]... I<file>..."
6809
6810 #. type: Plain text
6811 #: build/C/man1/ldd.1:23
6812 msgid ""
6813 "B<ldd> prints the shared libraries required by each program or shared "
6814 "library specified on the command line."
6815 msgstr ""
6816 "B<ldd> はコマンドラインで指定したプログラムや共有ライブラリについて、 それぞ"
6817 "れで必要とされる共有ライブラリを表示する。"
6818
6819 #. type: SS
6820 #: build/C/man1/ldd.1:23
6821 #, no-wrap
6822 msgid "Security"
6823 msgstr "セキュリティ"
6824
6825 #.  Mainline glibc's ldd allows this possibility (the line
6826 #.       try_trace "$file"
6827 #.  in glibc 2.15, for example), but many distro versions of
6828 #.  ldd seem to remove that code path from the script.
6829 #. type: Plain text
6830 #: build/C/man1/ldd.1:49
6831 msgid ""
6832 "In the usual case, B<ldd> invokes the standard dynamic linker (see B<ld."
6833 "so>(8))  with the B<LD_TRACE_LOADED_OBJECTS> environment variable set to 1, "
6834 "which causes the linker to display the library dependencies.  Be aware, "
6835 "however, that in some circumstances, some versions of B<ldd> may attempt to "
6836 "obtain the dependency information by directly executing the program.  Thus, "
6837 "you should I<never> employ B<ldd> on an untrusted executable, since this may "
6838 "result in the execution of arbitrary code.  A safer alternative when dealing "
6839 "with untrusted executables is:"
6840 msgstr ""
6841 "通常の場合、 B<ldd> は標準の動的リンカ (B<ld.so>(8) 参照) を "
6842 "B<LD_TRACE_LOADED_OBJECTS> 環境変数に 1 をセットして起動する。 "
6843 "B<LD_TRACE_LOADED_OBJECTS> に 1 をセットすると、リンカはライブラリの依存関係"
6844 "を表示する。但し、状況次第では、依存関係の情報を得るのにプログラムを直接実行"
6845 "するバージョンの B<ldd> が存在する。したがって、信頼できない実行ファイルに対"
6846 "しては「決して」 B<ldd> を使っては「ならない」。任意のコードを実行することに"
6847 "つながるからである。信頼できない実行ファイルを扱う、より安全な別の方法として"
6848 "は次のようにするとよい。"
6849
6850 #. type: Plain text
6851 #: build/C/man1/ldd.1:51
6852 #, no-wrap
6853 msgid "    $ objdump -p /path/to/program | grep NEEDED\n"
6854 msgstr "    $ objdump -p /path/to/program | grep NEEDED\n"
6855
6856 #. type: TP
6857 #: build/C/man1/ldd.1:52 build/C/man1/mtrace.1:55
6858 #, no-wrap
6859 msgid "B<--version>"
6860 msgstr "B<--version>"
6861
6862 #. type: Plain text
6863 #: build/C/man1/ldd.1:56
6864 msgid "Print the version number of B<ldd>."
6865 msgstr "B<ldd> のバージョン番号を表示する。"
6866
6867 #. type: TP
6868 #: build/C/man1/ldd.1:56
6869 #, no-wrap
6870 msgid "B<-v\\ --verbose>"
6871 msgstr "B<-v\\ --verbose>"
6872
6873 #. type: Plain text
6874 #: build/C/man1/ldd.1:60
6875 msgid ""
6876 "Print all information, including, for example, symbol versioning information."
6877 msgstr "シンボルのバージョン情報などを含めた全ての情報を表示する。"
6878
6879 #. type: TP
6880 #: build/C/man1/ldd.1:60
6881 #, no-wrap
6882 msgid "B<-u\\ --unused>"
6883 msgstr "B<-u\\ --unused>"
6884
6885 #. type: Plain text
6886 #: build/C/man1/ldd.1:64
6887 msgid "Print unused direct dependencies.  (Since glibc 2.3.4.)"
6888 msgstr "使用されていない直接の依存関係を表示する (glibc 2.3.4 以降)。"
6889
6890 #. type: TP
6891 #: build/C/man1/ldd.1:64
6892 #, no-wrap
6893 msgid "B<-d\\ --data-relocs>"
6894 msgstr "B<-d\\ --data-relocs>"
6895
6896 #. type: Plain text
6897 #: build/C/man1/ldd.1:67
6898 msgid "Perform relocations and report any missing objects (ELF only)."
6899 msgstr ""
6900 "リロケーションを実行し、足りないオブジェクトについてレポートする (ELF のみ)。"
6901
6902 #. type: TP
6903 #: build/C/man1/ldd.1:67
6904 #, no-wrap
6905 msgid "B<-r\\ --function-relocs>"
6906 msgstr "B<-r\\ --function-relocs>"
6907
6908 #. type: Plain text
6909 #: build/C/man1/ldd.1:71
6910 msgid ""
6911 "Perform relocations for both data objects and functions, and report any "
6912 "missing objects or functions (ELF only)."
6913 msgstr "足りないオブジェクトや関数についてレポートする (ELF のみ)。"
6914
6915 #. type: TP
6916 #: build/C/man1/ldd.1:71 build/C/man1/mtrace.1:52
6917 #, no-wrap
6918 msgid "B<--help>"
6919 msgstr "B<--help>"
6920
6921 #.  .SH NOTES
6922 #.  The standard version of
6923 #.  .B ldd
6924 #.  comes with glibc2.
6925 #.  Libc5 came with an older version, still present
6926 #.  on some systems.
6927 #.  The long options are not supported by the libc5 version.
6928 #.  On the other hand, the glibc2 version does not support
6929 #.  .B \-V
6930 #.  and only has the equivalent
6931 #.  .BR \-\-version .
6932 #.  .LP
6933 #.  The libc5 version of this program will use the name of a library given
6934 #.  on the command line as-is when it contains a \(aq/\(aq; otherwise it
6935 #.  searches for the library in the standard locations.
6936 #.  To run it
6937 #.  on a shared library in the current directory, prefix the name with "./".
6938 #. type: Plain text
6939 #: build/C/man1/ldd.1:91
6940 msgid "Usage information."
6941 msgstr "使用法を表示する。"
6942
6943 #. type: Plain text
6944 #: build/C/man1/ldd.1:94
6945 msgid "B<ldd> does not work on a.out shared libraries."
6946 msgstr "B<ldd> は a.out 共有ライブラリでは動作しない。"
6947
6948 #.  .SH AUTHOR
6949 #.  David Engel.
6950 #.  Roland McGrath and Ulrich Drepper.
6951 #. type: Plain text
6952 #: build/C/man1/ldd.1:108
6953 msgid ""
6954 "B<ldd> does not work with some extremely old a.out programs which were built "
6955 "before B<ldd> support was added to the compiler releases.  If you use B<ldd> "
6956 "on one of these programs, the program will attempt to run with I<argc> = 0 "
6957 "and the results will be unpredictable."
6958 msgstr ""
6959 "B<ldd> は非常に古い a.out プログラム (B<ldd> のサポートがコンパイラに追加され"
6960 "る以前にビルドされたようなプログラム)  では動作しない。 このようなプログラム"
6961 "に対して B<ldd> を用いると、プログラムは I<argc> = 0 で実行される。結果は予想"
6962 "不可能である。"
6963
6964 #. type: Plain text
6965 #: build/C/man1/ldd.1:113
6966 msgid "B<sprof>(1), B<pldd>(1), B<ld.so>(8), B<ldconfig>(8)"
6967 msgstr "B<sprof>(1), B<pldd>(1), B<ld.so>(8), B<ldconfig>(8)"
6968
6969 #. type: TH
6970 #: build/C/man1/memusage.1:24
6971 #, no-wrap
6972 msgid "MEMUSAGE"
6973 msgstr ""
6974
6975 #. type: TH
6976 #: build/C/man1/memusage.1:24 build/C/man1/memusagestat.1:23
6977 #, no-wrap
6978 msgid "2014-09-06"
6979 msgstr "2014-09-06"
6980
6981 #. type: TH
6982 #: build/C/man1/memusage.1:24 build/C/man1/mtrace.1:23
6983 #, no-wrap
6984 msgid "Linux user manual"
6985 msgstr "Linux user manual"
6986
6987 #. type: Plain text
6988 #: build/C/man1/memusage.1:27
6989 msgid "memusage - profile memory usage of a program"
6990 msgstr ""
6991
6992 #. type: Plain text
6993 #: build/C/man1/memusage.1:29
6994 msgid "B<memusage> [I<option>]... I<program> [I<programoption>]..."
6995 msgstr ""
6996
6997 #. type: Plain text
6998 #: build/C/man1/memusage.1:53
6999 msgid ""
7000 "B<memusage> is a bash script which profiles memory usage of the program, "
7001 "I<program>.  It preloads the B<libmemusage.so> library into the caller's "
7002 "environment (via the B<LD_PRELOAD> environment variable; see B<ld.so>(8)).  "
7003 "The B<libmemusage.so> library traces memory allocation by intercepting calls "
7004 "to B<malloc>(3), B<calloc>(3), B<free>(3), and B<realloc>(3); optionally, "
7005 "calls to B<mmap>(2), B<mremap>(2), and B<munmap>(2)  can also be intercepted."
7006 msgstr ""
7007
7008 #. type: Plain text
7009 #: build/C/man1/memusage.1:62
7010 msgid ""
7011 "B<memusage> can output the collected data in textual form, or it can use "
7012 "B<memusagestat>(1)  (see the B<-p> option, below)  to create a PNG file "
7013 "containing graphical representation of the collected data."
7014 msgstr ""
7015
7016 #. type: SS
7017 #: build/C/man1/memusage.1:62
7018 #, no-wrap
7019 msgid "Memory usage summary"
7020 msgstr ""
7021
7022 #. type: Plain text
7023 #: build/C/man1/memusage.1:66
7024 msgid ""
7025 "The \"Memory usage summary\" line output by B<memusage> contains three "
7026 "fields:"
7027 msgstr ""
7028
7029 #. type: TP
7030 #: build/C/man1/memusage.1:67
7031 #, no-wrap
7032 msgid "B<heap total>"
7033 msgstr ""
7034
7035 #. type: Plain text
7036 #: build/C/man1/memusage.1:84
7037 msgid ""
7038 "Sum of I<size> arguments of all B<malloc>(3)  calls, products of arguments "
7039 "(I<nmemb>*I<size>) of all B<calloc>(3)  calls, and sum of I<length> "
7040 "arguments of all B<mmap>(2)  calls.  In the case of B<realloc>(3)  and "
7041 "B<mremap>(2), if the new size of an allocation is larger than the previous "
7042 "size, the sum of all such differences (new size minus old size) is added."
7043 msgstr ""
7044
7045 #. type: TP
7046 #: build/C/man1/memusage.1:84
7047 #, no-wrap
7048 msgid "B<heap peak>"
7049 msgstr ""
7050
7051 #. type: Plain text
7052 #: build/C/man1/memusage.1:98
7053 msgid ""
7054 "Maximum of all I<size> arguments of B<malloc>(3), all products of "
7055 "I<nmemb>*I<size> of B<calloc>(3), all I<size> arguments of B<realloc>(3), "
7056 "I<length> arguments of B<mmap>(2), and I<new_size> arguments of B<mremap>(2)."
7057 msgstr ""
7058
7059 #. type: TP
7060 #: build/C/man1/memusage.1:98
7061 #, no-wrap
7062 msgid "B<stack peak>"
7063 msgstr ""
7064
7065 #. type: Plain text
7066 #: build/C/man1/memusage.1:105
7067 msgid ""
7068 "Before the first call to any monitored function, the stack pointer address "
7069 "(base stack pointer) is saved.  After each function call, the actual stack "
7070 "pointer address is read and the difference from the base stack pointer "
7071 "computed.  The maximum of these differences is then the stack peak."
7072 msgstr ""
7073
7074 #. type: Plain text
7075 #: build/C/man1/memusage.1:122
7076 msgid ""
7077 "Immediately following this summary line, a table shows the number calls, "
7078 "total memory allocated or deallocated, and number of failed calls for each "
7079 "intercepted function.  For B<realloc>(3)  and B<mremap>(2), the additional "
7080 "field \"nomove\" shows reallocations that changed the address of a block, "
7081 "and the additional \"dec\" field shows reallocations that decreased the size "
7082 "of the block.  For B<realloc>(3), the additional field \"free\" shows "
7083 "reallocations that caused a block to be freed (i.e., the reallocated size "
7084 "was 0)."
7085 msgstr ""
7086
7087 #. type: Plain text
7088 #: build/C/man1/memusage.1:132
7089 msgid ""
7090 "The \"realloc/total memory\" of the table output by B<memusage> does not "
7091 "reflect cases where B<realloc>(3)  is used to reallocate a block of memory "
7092 "to have a smaller size than previously.  This can cause sum of all \"total "
7093 "memory\" cells (excluding \"free\")  to be larger than the \"free/total "
7094 "memory\" cell."
7095 msgstr ""
7096
7097 #. type: SS
7098 #: build/C/man1/memusage.1:132
7099 #, no-wrap
7100 msgid "Histogram for block sizes"
7101 msgstr ""
7102
7103 #. type: Plain text
7104 #: build/C/man1/memusage.1:135
7105 msgid ""
7106 "The \"Histogram for block sizes\" provides a breakdown of memory allocations "
7107 "into various bucket sizes."
7108 msgstr ""
7109
7110 #. type: TP
7111 #: build/C/man1/memusage.1:136
7112 #, no-wrap
7113 msgid "B<-n\\ >I<name>,\\ B<--progname=>I<name>"
7114 msgstr ""
7115
7116 #. type: Plain text
7117 #: build/C/man1/memusage.1:139
7118 msgid "Name of the program file to profile."
7119 msgstr ""
7120
7121 #. type: TP
7122 #: build/C/man1/memusage.1:139
7123 #, no-wrap
7124 msgid "B<-p\\ >I<file>,\\ B<--png=>I<file>"
7125 msgstr ""
7126
7127 #. type: Plain text
7128 #: build/C/man1/memusage.1:143
7129 msgid "Generate PNG graphic and store it in I<file>."
7130 msgstr ""
7131
7132 #. type: TP
7133 #: build/C/man1/memusage.1:143
7134 #, no-wrap
7135 msgid "B<-d\\ >I<file>,\\ B<--data=>I<file>"
7136 msgstr ""
7137
7138 #. type: Plain text
7139 #: build/C/man1/memusage.1:147
7140 msgid "Generate binary data file and store it in I<file>."
7141 msgstr ""
7142
7143 #. type: TP
7144 #: build/C/man1/memusage.1:147
7145 #, no-wrap
7146 msgid "B<-u>,\\ B<--unbuffered>"
7147 msgstr "B<-u>,\\ B<--unbuffered>"
7148
7149 #. type: Plain text
7150 #: build/C/man1/memusage.1:150
7151 msgid "Do not buffer output."
7152 msgstr ""
7153
7154 #. type: TP
7155 #: build/C/man1/memusage.1:150
7156 #, no-wrap
7157 msgid "B<-b\\ >I<size>,\\ B<--buffer=>I<size>"
7158 msgstr ""
7159
7160 #. type: Plain text
7161 #: build/C/man1/memusage.1:155
7162 msgid "Collect I<size> entries before writing them out."
7163 msgstr ""
7164
7165 #. type: TP
7166 #: build/C/man1/memusage.1:155
7167 #, no-wrap
7168 msgid "B<--no-timer>"
7169 msgstr ""
7170
7171 #. type: Plain text
7172 #: build/C/man1/memusage.1:160
7173 msgid "Disable timer-based (B<SIGPROF>)  sampling of stack pointer value."
7174 msgstr ""
7175
7176 #. type: TP
7177 #: build/C/man1/memusage.1:160
7178 #, no-wrap
7179 msgid "B<-m>,\\ B<--mmap>"
7180 msgstr ""
7181
7182 #. type: Plain text
7183 #: build/C/man1/memusage.1:167
7184 msgid "Also trace B<mmap>(2), B<mremap>(2), and B<mmap>(2)."
7185 msgstr ""
7186
7187 #. type: TP
7188 #: build/C/man1/memusage.1:167 build/C/man1/memusagestat.1:72
7189 #, no-wrap
7190 msgid "B<-?>,\\ B<--help>"
7191 msgstr "B<-?>,\\ B<--help>"
7192
7193 #. type: Plain text
7194 #: build/C/man1/memusage.1:170 build/C/man1/mtrace.1:55
7195 msgid "Print help and exit."
7196 msgstr ""
7197
7198 #. type: TP
7199 #: build/C/man1/memusage.1:170 build/C/man1/memusagestat.1:75
7200 #: build/C/man1/pldd.1:44 build/C/man1/sprof.1:69
7201 #, no-wrap
7202 msgid "B<--usage>"
7203 msgstr "B<--usage>"
7204
7205 #. type: Plain text
7206 #: build/C/man1/memusage.1:173 build/C/man1/memusagestat.1:78
7207 msgid "Print a short usage message and exit."
7208 msgstr ""
7209
7210 #. type: TP
7211 #: build/C/man1/memusage.1:173 build/C/man1/memusagestat.1:78
7212 #, no-wrap
7213 msgid "B<-V>,\\ B<--version>"
7214 msgstr "B<-V>,\\ B<--version>"
7215
7216 #. type: Plain text
7217 #: build/C/man1/memusage.1:176 build/C/man1/memusagestat.1:81
7218 #: build/C/man1/mtrace.1:58
7219 msgid "Print version information and exit."
7220 msgstr ""
7221
7222 #. type: TP
7223 #: build/C/man1/memusage.1:176
7224 #, no-wrap
7225 msgid "The following options only apply when generating graphical output:"
7226 msgstr ""
7227
7228 #. type: TP
7229 #: build/C/man1/memusage.1:178
7230 #, no-wrap
7231 msgid "B<-t>,\\ B<--time-based>"
7232 msgstr ""
7233
7234 #. type: Plain text
7235 #: build/C/man1/memusage.1:181 build/C/man1/memusagestat.1:59
7236 msgid ""
7237 "Use time (rather than number of function calls) as the scale for the X axis."
7238 msgstr ""
7239
7240 #. type: TP
7241 #: build/C/man1/memusage.1:181 build/C/man1/memusagestat.1:59
7242 #, no-wrap
7243 msgid "B<-T>,\\ B<--total>"
7244 msgstr ""
7245
7246 #. type: Plain text
7247 #: build/C/man1/memusage.1:184
7248 msgid "Also draw a graph of total memory use."
7249 msgstr ""
7250
7251 #. type: TP
7252 #: build/C/man1/memusage.1:184
7253 #, no-wrap
7254 msgid "B<--title=>I<name>"
7255 msgstr ""
7256
7257 #. type: Plain text
7258 #: build/C/man1/memusage.1:189
7259 msgid "Use I<name> as the title of the graph."
7260 msgstr ""
7261
7262 #. type: TP
7263 #: build/C/man1/memusage.1:189 build/C/man1/memusagestat.1:62
7264 #, no-wrap
7265 msgid "B<-x\\ >I<size>,\\ B<--x-size=>I<size>"
7266 msgstr ""
7267
7268 #. type: Plain text
7269 #: build/C/man1/memusage.1:194
7270 msgid "Make the graph I<size> pixels wide."
7271 msgstr ""
7272
7273 #. type: TP
7274 #: build/C/man1/memusage.1:194 build/C/man1/memusagestat.1:67
7275 #, no-wrap
7276 msgid "B<-y\\ >I<size>,\\ B<--y-size=>I<size>"
7277 msgstr ""
7278
7279 #. type: Plain text
7280 #: build/C/man1/memusage.1:199
7281 msgid "Make the graph I<size> pixels high."
7282 msgstr ""
7283
7284 #. type: SH
7285 #: build/C/man1/memusage.1:199 build/C/man1/pldd.1:60
7286 #, no-wrap
7287 msgid "EXIT STATUS"
7288 msgstr ""
7289
7290 #. type: Plain text
7291 #: build/C/man1/memusage.1:201
7292 msgid "Exit status is equal to the exit status of profiled program."
7293 msgstr ""
7294
7295 #. type: Plain text
7296 #: build/C/man1/memusage.1:208
7297 msgid ""
7298 "Below is a simple program that reallocates a block of memory in cycles that "
7299 "rise to a peak before then cyclically reallocating the memory in smaller "
7300 "blocks that return to zero.  After compiling the program and running the "
7301 "following commands, a graph of the memory usage of the program can be found "
7302 "in the file I<memusage.png>:"
7303 msgstr ""
7304
7305 #. type: Plain text
7306 #: build/C/man1/memusage.1:232
7307 #, no-wrap
7308 msgid ""
7309 "$ B<memusage --data=memusage.dat ./a.out>\n"
7310 "\\&...\n"
7311 "Memory usage summary: heap total: 45200, heap peak: 6440, stack peak: 224\n"
7312 "        total calls  total memory  failed calls\n"
7313 " malloc|         1           400             0\n"
7314 "realloc|        40         44800             0  (nomove:40, dec:19, free:0)\n"
7315 " calloc|         0             0             0\n"
7316 "   free|         1           440\n"
7317 "Histogram for block sizes:\n"
7318 "  192-207             1   2% ================\n"
7319 "\\&...\n"
7320 " 2192-2207            1   2% ================\n"
7321 " 2240-2255            2   4% =================================\n"
7322 " 2832-2847            2   4% =================================\n"
7323 " 3440-3455            2   4% =================================\n"
7324 " 4032-4047            2   4% =================================\n"
7325 " 4640-4655            2   4% =================================\n"
7326 " 5232-5247            2   4% =================================\n"
7327 " 5840-5855            2   4% =================================\n"
7328 " 6432-6447            1   2% ================\n"
7329 "$ B<memusagestat memusage.dat memusage.png>\n"
7330 msgstr ""
7331
7332 #. type: Plain text
7333 #: build/C/man1/memusage.1:240
7334 #, no-wrap
7335 msgid "#define CYCLES 20\n"
7336 msgstr ""
7337
7338 #. type: Plain text
7339 #: build/C/man1/memusage.1:246
7340 #, no-wrap
7341 msgid ""
7342 "int\n"
7343 "main(int argc, char *argv[])\n"
7344 "{\n"
7345 "     int i, j;\n"
7346 "     int *p;\n"
7347 msgstr ""
7348 "int\n"
7349 "main(int argc, char *argv[])\n"
7350 "{\n"
7351 "     int i, j;\n"
7352 "     int *p;\n"
7353
7354 #. type: Plain text
7355 #: build/C/man1/memusage.1:249
7356 #, no-wrap
7357 msgid ""
7358 "     printf(\"malloc: %zd\\en\", sizeof(int) * 100);\n"
7359 "     p = malloc(sizeof(int) * 100);\n"
7360 msgstr ""
7361
7362 #. type: Plain text
7363 #: build/C/man1/memusage.1:255
7364 #, no-wrap
7365 msgid ""
7366 "     for (i = 0; i E<lt> CYCLES; i++) {\n"
7367 "         if (i E<lt> CYCLES / 2)\n"
7368 "             j = i;\n"
7369 "         else\n"
7370 "             j--;\n"
7371 msgstr ""
7372
7373 #. type: Plain text
7374 #: build/C/man1/memusage.1:258
7375 #, no-wrap
7376 msgid ""
7377 "         printf(\"realloc: %zd\\en\", sizeof(int) * (j * 50 + 110));\n"
7378 "         p = realloc(p, sizeof(int) * (j * 50 + 100));\n"
7379 msgstr ""
7380
7381 #. type: Plain text
7382 #: build/C/man1/memusage.1:262
7383 #, no-wrap
7384 msgid ""
7385 "         printf(\"realloc: %zd\\en\", sizeof(int) * ((j+1) * 150 + 110));\n"
7386 "         p = realloc(p, sizeof(int) * ((j + 1) * 150 + 110));\n"
7387 "     }\n"
7388 msgstr ""
7389
7390 #. type: Plain text
7391 #: build/C/man1/memusage.1:266
7392 #, no-wrap
7393 msgid ""
7394 "     free(p);\n"
7395 "     exit(EXIT_SUCCESS);\n"
7396 "}\n"
7397 msgstr ""
7398 "     free(p);\n"
7399 "     exit(EXIT_SUCCESS);\n"
7400 "}\n"
7401
7402 #. type: Plain text
7403 #: build/C/man1/memusage.1:271 build/C/man1/memusagestat.1:88
7404 msgid ""
7405 "To report bugs, see E<.UR http://www.gnu.org/software/libc/bugs.html> E<.UE>"
7406 msgstr ""
7407
7408 #. type: Plain text
7409 #: build/C/man1/memusage.1:275
7410 msgid "B<memusagestat>(1), B<mtrace>(1)  B<ld.so>(8)"
7411 msgstr "B<memusagestat>(1), B<mtrace>(1)  B<ld.so>(8)"
7412
7413 #. type: TH
7414 #: build/C/man1/memusagestat.1:23
7415 #, no-wrap
7416 msgid "MEMUSAGESTAT"
7417 msgstr ""
7418
7419 #. type: TH
7420 #: build/C/man1/memusagestat.1:23
7421 #, no-wrap
7422 msgid "Linux programmer's manual"
7423 msgstr "Linux programmer's manual"
7424
7425 #. type: Plain text
7426 #: build/C/man1/memusagestat.1:26
7427 msgid "memusagestat - generate graphic from memory profiling data"
7428 msgstr ""
7429
7430 #. type: Plain text
7431 #: build/C/man1/memusagestat.1:28
7432 msgid "B<memusagestat> [I<option>]... I<datafile> [I<outfile>]"
7433 msgstr ""
7434
7435 #. type: Plain text
7436 #: build/C/man1/memusagestat.1:39
7437 msgid ""
7438 "B<memusagestat> creates a PNG file containing a graphical representation of "
7439 "the memory profiling data in the file I<datafile>; that file is generated "
7440 "via the I<-d> (or I<--data>)  option of B<memusage>(1)."
7441 msgstr ""
7442
7443 #. type: Plain text
7444 #: build/C/man1/memusagestat.1:47
7445 msgid ""
7446 "The red line in the graph shows the heap usage (allocated memory)  and the "
7447 "green line shows the stack usage.  The x-scale is either the number of "
7448 "memory-handling function calls or (if the I<-t> option is specified)  time."
7449 msgstr ""
7450
7451 #. type: TP
7452 #: build/C/man1/memusagestat.1:48
7453 #, no-wrap
7454 msgid "B<-o\\ >I<file>,\\ B<--output=>I<file>"
7455 msgstr ""
7456
7457 #. type: Plain text
7458 #: build/C/man1/memusagestat.1:51
7459 msgid "Name of the output file."
7460 msgstr ""
7461
7462 #. type: TP
7463 #: build/C/man1/memusagestat.1:51
7464 #, no-wrap
7465 msgid "B<-s\\ >I<string>,\\ B<--string=>I<string>"
7466 msgstr ""
7467
7468 #. type: Plain text
7469 #: build/C/man1/memusagestat.1:56
7470 msgid "Use I<string> as the title inside the output graph."
7471 msgstr ""
7472
7473 #. type: TP
7474 #: build/C/man1/memusagestat.1:56
7475 #, no-wrap
7476 msgid "B<-t>,\\ B<--time>"
7477 msgstr ""
7478
7479 #. type: Plain text
7480 #: build/C/man1/memusagestat.1:62
7481 msgid "Also draw a graph of total memory consumption."
7482 msgstr ""
7483
7484 #. type: Plain text
7485 #: build/C/man1/memusagestat.1:67
7486 msgid "Make the output graph I<size> pixels wide."
7487 msgstr ""
7488
7489 #. type: Plain text
7490 #: build/C/man1/memusagestat.1:72
7491 msgid "Make the output graph I<size> pixels high."
7492 msgstr ""
7493
7494 #. type: Plain text
7495 #: build/C/man1/memusagestat.1:75
7496 msgid "Print a help message and exit."
7497 msgstr ""
7498
7499 #. type: Plain text
7500 #: build/C/man1/memusagestat.1:84
7501 msgid "See B<memusage>(1)."
7502 msgstr ""
7503
7504 #. type: Plain text
7505 #: build/C/man1/memusagestat.1:91
7506 msgid "B<memusage>(1), B<mtrace>(1)"
7507 msgstr ""
7508
7509 #. type: TH
7510 #: build/C/man1/mtrace.1:23
7511 #, no-wrap
7512 msgid "MTRACE"
7513 msgstr ""
7514
7515 #. type: TH
7516 #: build/C/man1/mtrace.1:23
7517 #, no-wrap
7518 msgid "2014-09-01"
7519 msgstr "2014-09-01"
7520
7521 #. type: Plain text
7522 #: build/C/man1/mtrace.1:26
7523 msgid "mtrace - interpret the malloc trace log"
7524 msgstr ""
7525
7526 #. type: Plain text
7527 #: build/C/man1/mtrace.1:28
7528 msgid "B<mtrace> [I<option>]... [I<binary>] I<mtracedata>"
7529 msgstr ""
7530
7531 #. type: Plain text
7532 #: build/C/man1/mtrace.1:44
7533 msgid ""
7534 "B<mtrace> is a Perl script used to interpret and provide human readable "
7535 "output of the trace log contained in the file I<mtracedata>, whose contents "
7536 "were produced by B<mtrace>(3).  If I<binary> is provided, the output of "
7537 "B<mtrace> also contains the source file name with line number information "
7538 "for problem locations (assuming that I<binary> was compiled with debugging "
7539 "information)."
7540 msgstr ""
7541
7542 #. type: Plain text
7543 #: build/C/man1/mtrace.1:51
7544 msgid ""
7545 "For more information about the B<mtrace>(3)  function and B<mtrace> script "
7546 "usage, see B<mtrace>(3)."
7547 msgstr ""
7548
7549 #. type: Plain text
7550 #: build/C/man1/mtrace.1:61
7551 msgid ""
7552 "For bug reporting instructions, please see: E<lt>http://www.gnu.org/software/"
7553 "libc/bugs.htmlE<gt>."
7554 msgstr ""
7555
7556 #. type: Plain text
7557 #: build/C/man1/mtrace.1:64
7558 msgid "B<memusage>(1), B<mtrace>(3)"
7559 msgstr ""
7560
7561 #. type: TH
7562 #: build/C/man1/pldd.1:25
7563 #, no-wrap
7564 msgid "PLDD"
7565 msgstr ""
7566
7567 #. type: TH
7568 #: build/C/man1/pldd.1:25
7569 #, no-wrap
7570 msgid "2014-09-27"
7571 msgstr "2014-09-27"
7572
7573 #. type: TH
7574 #: build/C/man1/pldd.1:25 build/C/man1/sprof.1:25
7575 #, no-wrap
7576 msgid "Linux User Manual"
7577 msgstr "Linux User Manual"
7578
7579 #. type: Plain text
7580 #: build/C/man1/pldd.1:28
7581 msgid "pldd - display dynamic shared objects linked into a process"
7582 msgstr ""
7583
7584 #. type: Plain text
7585 #: build/C/man1/pldd.1:32
7586 #, no-wrap
7587 msgid ""
7588 "B<pldd >I<PID>\n"
7589 "B<pldd> OPTION\n"
7590 msgstr ""
7591
7592 #. type: Plain text
7593 #: build/C/man1/pldd.1:40
7594 msgid ""
7595 "The B<pldd> command displays a list of the dynamic shared objects that are "
7596 "linked into the process with the specified process ID.  The list includes "
7597 "the libraries that have been dynamically loaded using B<dlopen>(3)."
7598 msgstr ""
7599
7600 #. type: TP
7601 #: build/C/man1/pldd.1:41 build/C/man1/sprof.1:66
7602 #, no-wrap
7603 msgid "B<-?>, B<--help>"
7604 msgstr "B<-?>, B<--help>"
7605
7606 #. type: Plain text
7607 #: build/C/man1/pldd.1:44
7608 msgid "Display program help message."
7609 msgstr ""
7610
7611 #. type: Plain text
7612 #: build/C/man1/pldd.1:47
7613 msgid "Display a short usage message."
7614 msgstr ""
7615
7616 #. type: TP
7617 #: build/C/man1/pldd.1:47 build/C/man1/sprof.1:72
7618 #, no-wrap
7619 msgid "B<-V>, B<--version>"
7620 msgstr "B<-V>, B<--version>"
7621
7622 #. type: Plain text
7623 #: build/C/man1/pldd.1:50
7624 msgid "Display the program version."
7625 msgstr ""
7626
7627 #. type: Plain text
7628 #: build/C/man1/pldd.1:53
7629 msgid "B<pldd> is available since glibc 2.15."
7630 msgstr ""
7631
7632 #.  There are man pages on Solaris and HP-UX.
7633 #. type: Plain text
7634 #: build/C/man1/pldd.1:60
7635 msgid ""
7636 "The B<pldd> command is not specified by POSIX.1.  Some other systems have a "
7637 "similar command."
7638 msgstr ""
7639
7640 #. type: Plain text
7641 #: build/C/man1/pldd.1:71
7642 msgid ""
7643 "On success, B<pldd> exits with the status 0.  If the specified process does "
7644 "not exist, the user does not have permission to access its dynamic shared "
7645 "object list, or no command-line arguments are supplied, B<pldd> exists with "
7646 "a status of 1.  If given an invalid option, it exits with the status 64."
7647 msgstr ""
7648
7649 #. type: Plain text
7650 #: build/C/man1/pldd.1:83
7651 #, no-wrap
7652 msgid ""
7653 "$ B<echo $$>               # Display PID of shell\n"
7654 "1143\n"
7655 "$ B<pldd $$>               # Display DSOs linked into the shell\n"
7656 "1143:\t/usr/bin/bash\n"
7657 "linux-vdso.so.1\n"
7658 "/lib64/libtinfo.so.5\n"
7659 "/lib64/libdl.so.2\n"
7660 "/lib64/libc.so.6\n"
7661 "/lib64/ld-linux-x86-64.so.2\n"
7662 "/lib64/libnss_files.so.2\n"
7663 msgstr ""
7664
7665 #. type: Plain text
7666 #: build/C/man1/pldd.1:86
7667 msgid "The command"
7668 msgstr ""
7669
7670 #. type: Plain text
7671 #: build/C/man1/pldd.1:88
7672 #, no-wrap
7673 msgid "     lsof -p PID\n"
7674 msgstr ""
7675
7676 #. type: Plain text
7677 #: build/C/man1/pldd.1:91
7678 msgid ""
7679 "also shows output that includes the dynamic shared objects that are linked "
7680 "into a process."
7681 msgstr ""
7682
7683 #. type: Plain text
7684 #: build/C/man1/pldd.1:96
7685 msgid "B<ldd>(1), B<lsof>(1), B<dlopen>(3), B<ld.so>(8)"
7686 msgstr "B<ldd>(1), B<lsof>(1), B<dlopen>(3), B<ld.so>(8)"
7687
7688 #. type: TH
7689 #: build/C/man7/rtld-audit.7:28
7690 #, no-wrap
7691 msgid "RTLD-AUDIT"
7692 msgstr "RTLD-AUDIT"
7693
7694 #. type: TH
7695 #: build/C/man7/rtld-audit.7:28
7696 #, no-wrap
7697 msgid "2012-07-07"
7698 msgstr "2012-07-07"
7699
7700 #. type: Plain text
7701 #: build/C/man7/rtld-audit.7:31
7702 msgid "rtld-audit - auditing API for the dynamic linker"
7703 msgstr ""
7704
7705 #. type: Plain text
7706 #: build/C/man7/rtld-audit.7:33
7707 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
7708 msgstr ""
7709
7710 #. type: Plain text
7711 #: build/C/man7/rtld-audit.7:35
7712 msgid "B<#include E<lt>link.hE<gt>>"
7713 msgstr ""
7714
7715 #. type: Plain text
7716 #: build/C/man7/rtld-audit.7:43
7717 msgid ""
7718 "The GNU dynamic linker (run-time linker)  provides an auditing API that "
7719 "allows an application to be notified when various dynamic linking events "
7720 "occur.  This API is very similar to the auditing interface provided by the "
7721 "Solaris run-time linker.  The necessary constants and prototypes are defined "
7722 "by including I<E<lt>link.hE<gt>>."
7723 msgstr ""
7724
7725 #. type: Plain text
7726 #: build/C/man7/rtld-audit.7:50
7727 msgid ""
7728 "To use this interface, the programmer creates a shared library that "
7729 "implements a standard set of function names.  Not all of the functions need "
7730 "to be implemented: in most cases, if the programmer is not interested in a "
7731 "particular class of auditing event, then no implementation needs to be "
7732 "provided for the corresponding auditing function."
7733 msgstr ""
7734
7735 #. type: Plain text
7736 #: build/C/man7/rtld-audit.7:58
7737 msgid ""
7738 "To employ the auditing interface, the environment variable B<LD_AUDIT> must "
7739 "be defined to contain a colon-separated list of shared libraries, each of "
7740 "which can implement (parts of) the auditing API.  When an auditable event "
7741 "occurs, the corresponding function is invoked in each library, in the order "
7742 "that the libraries are listed."
7743 msgstr ""
7744
7745 #. type: SS
7746 #: build/C/man7/rtld-audit.7:58
7747 #, no-wrap
7748 msgid "la_version()"
7749 msgstr ""
7750
7751 #. type: Plain text
7752 #: build/C/man7/rtld-audit.7:62
7753 #, no-wrap
7754 msgid "B<unsigned int la_version(unsigned int >I<version>B<);>\n"
7755 msgstr ""
7756
7757 #. type: Plain text
7758 #: build/C/man7/rtld-audit.7:74
7759 msgid ""
7760 "This is the only function that I<must> be defined by an auditing library: it "
7761 "performs the initial handshake between the dynamic linker and the auditing "
7762 "library.  When invoking this function, the dynamic linker passes, in "
7763 "I<version>, the highest version of the auditing interface that the linker "
7764 "supports.  If necessary, the auditing library can check that this version is "
7765 "sufficient for its requirements."
7766 msgstr ""
7767
7768 #. type: Plain text
7769 #: build/C/man7/rtld-audit.7:83
7770 msgid ""
7771 "As its function result, this function should return the version of the "
7772 "auditing interface that this auditing library expects to use (returning "
7773 "I<version> is acceptable).  If the returned value is 0, or a version that is "
7774 "greater than that supported by the dynamic linker, then the audit library is "
7775 "ignored."
7776 msgstr ""
7777
7778 #. type: SS
7779 #: build/C/man7/rtld-audit.7:83
7780 #, no-wrap
7781 msgid "la_objsearch()"
7782 msgstr ""
7783
7784 #. type: Plain text
7785 #: build/C/man7/rtld-audit.7:88
7786 #, no-wrap
7787 msgid ""
7788 "B<char *la_objsearch(const char *>I<name>B<, uintptr_t *>I<cookie>B<,>\n"
7789 "B<                   unsigned int >I<flag>B<);>\n"
7790 msgstr ""
7791
7792 #. type: Plain text
7793 #: build/C/man7/rtld-audit.7:99
7794 msgid ""
7795 "The dynamic linker invokes this function to inform the auditing library that "
7796 "it is about to search for a shared object.  The I<name> argument is the "
7797 "filename or pathname that is to be searched for.  I<cookie> identifies the "
7798 "shared object that initiated the search.  I<flag> is set to one of the "
7799 "following values:"
7800 msgstr ""
7801
7802 #. type: TP
7803 #: build/C/man7/rtld-audit.7:99
7804 #, no-wrap
7805 msgid "B<LA_SER_ORIG>"
7806 msgstr ""
7807
7808 #. type: Plain text
7809 #: build/C/man7/rtld-audit.7:108
7810 msgid ""
7811 "This is the original name that is being searched for.  Typically, this name "
7812 "comes from an ELF B<DT_NEEDED> entry, or is the I<filename> argument given "
7813 "to B<dlopen>(3)."
7814 msgstr ""
7815
7816 #. type: TP
7817 #: build/C/man7/rtld-audit.7:108
7818 #, no-wrap
7819 msgid "B<LA_SER_LIBPATH>"
7820 msgstr ""
7821
7822 #. type: Plain text
7823 #: build/C/man7/rtld-audit.7:113
7824 msgid "I<name> was created using a directory specified in B<LD_LIBRARY_PATH>."
7825 msgstr ""
7826
7827 #. type: TP
7828 #: build/C/man7/rtld-audit.7:113
7829 #, no-wrap
7830 msgid "B<LA_SER_RUNPATH>"
7831 msgstr ""
7832
7833 #. type: Plain text
7834 #: build/C/man7/rtld-audit.7:121
7835 msgid ""
7836 "I<name> was created using a directory specified in an ELF B<DT_RPATH> or "
7837 "B<DT_RUNPATH> list."
7838 msgstr ""
7839
7840 #. type: TP
7841 #: build/C/man7/rtld-audit.7:121
7842 #, no-wrap
7843 msgid "B<LA_SER_CONFIG>"
7844 msgstr ""
7845
7846 #. type: Plain text
7847 #: build/C/man7/rtld-audit.7:128
7848 msgid "I<name> was found via the B<ldconfig>(8)  cache (I</etc/ld.so.cache>)."
7849 msgstr ""
7850
7851 #. type: TP
7852 #: build/C/man7/rtld-audit.7:128
7853 #, no-wrap
7854 msgid "B<LA_SER_DEFAULT>"
7855 msgstr ""
7856
7857 #. type: Plain text
7858 #: build/C/man7/rtld-audit.7:132
7859 msgid "I<name> was found via a search of one of the default directories."
7860 msgstr ""
7861
7862 #. type: TP
7863 #: build/C/man7/rtld-audit.7:132
7864 #, no-wrap
7865 msgid "B<LA_SER_SECURE>"
7866 msgstr ""
7867
7868 #. type: Plain text
7869 #: build/C/man7/rtld-audit.7:136
7870 msgid "I<name> is specific to a secure object (unused on Linux)."
7871 msgstr ""
7872
7873 #. type: Plain text
7874 #: build/C/man7/rtld-audit.7:145
7875 msgid ""
7876 "As its function result, B<la_objsearch>()  returns the pathname that the "
7877 "dynamic linker should use for further processing.  If NULL is returned, then "
7878 "this pathname is ignored for further processing.  If this audit library "
7879 "simply intends to monitor search paths, then I<name> should be returned."
7880 msgstr ""
7881
7882 #. type: SS
7883 #: build/C/man7/rtld-audit.7:145
7884 #, no-wrap
7885 msgid "la_activity()"
7886 msgstr ""
7887
7888 #. type: Plain text
7889 #: build/C/man7/rtld-audit.7:149
7890 #, no-wrap
7891 msgid "B<void la_activity( uintptr_t *>I<cookie>B<, unsigned int >I<flag>B<);>\n"
7892 msgstr ""
7893
7894 #. type: Plain text
7895 #: build/C/man7/rtld-audit.7:158
7896 msgid ""
7897 "The dynamic linker calls this function to inform the auditing library that "
7898 "link-map activity is occurring.  I<cookie> identifies the object at the head "
7899 "of the link map.  When the dynamic linker invokes this function, I<flag> is "
7900 "set to one of the following values:"
7901 msgstr ""
7902
7903 #. type: TP
7904 #: build/C/man7/rtld-audit.7:158
7905 #, no-wrap
7906 msgid "B<LA_ACT_ADD>"
7907 msgstr ""
7908
7909 #. type: Plain text
7910 #: build/C/man7/rtld-audit.7:161
7911 msgid "New objects are being added to the link map."
7912 msgstr ""
7913
7914 #. type: TP
7915 #: build/C/man7/rtld-audit.7:161
7916 #, no-wrap
7917 msgid "B<LA_ACT_DELETE>"
7918 msgstr ""
7919
7920 #. type: Plain text
7921 #: build/C/man7/rtld-audit.7:164
7922 msgid "Objects are being removed from the link map."
7923 msgstr ""
7924
7925 #. type: TP
7926 #: build/C/man7/rtld-audit.7:164
7927 #, no-wrap
7928 msgid "B<LA_ACT_CONSISTENT>"
7929 msgstr ""
7930
7931 #. type: Plain text
7932 #: build/C/man7/rtld-audit.7:167
7933 msgid "Link-map activity has been completed: the map is once again consistent."
7934 msgstr ""
7935
7936 #. type: SS
7937 #: build/C/man7/rtld-audit.7:167
7938 #, no-wrap
7939 msgid "la_objopen()"
7940 msgstr ""
7941
7942 #. type: Plain text
7943 #: build/C/man7/rtld-audit.7:172
7944 #, no-wrap
7945 msgid ""
7946 "B<unsigned int la_objopen(struct link_map *>I<map>B<, Lmid_t >I<lmid>B<,>\n"
7947 "B<                        uintptr_t *>I<cookie>B<);>\n"
7948 msgstr ""
7949
7950 #. type: Plain text
7951 #: build/C/man7/rtld-audit.7:181
7952 msgid ""
7953 "The dynamic linker calls this function when a new shared object is loaded.  "
7954 "The I<map> argument is a pointer to a link-map structure that describes the "
7955 "object.  The I<lmid> field has one of the following values"
7956 msgstr ""
7957
7958 #. type: TP
7959 #: build/C/man7/rtld-audit.7:181
7960 #, no-wrap
7961 msgid "B<LM_ID_BASE>"
7962 msgstr ""
7963
7964 #. type: Plain text
7965 #: build/C/man7/rtld-audit.7:184
7966 msgid "Link map is part of the initial namespace."
7967 msgstr ""
7968
7969 #. type: TP
7970 #: build/C/man7/rtld-audit.7:184
7971 #, no-wrap
7972 msgid "B<LM_ID_NEWLM>"
7973 msgstr ""
7974
7975 #. type: Plain text
7976 #: build/C/man7/rtld-audit.7:188
7977 msgid "Link map is part of a new namespace requested via B<dlmopen>(3)."
7978 msgstr ""
7979
7980 #. type: Plain text
7981 #: build/C/man7/rtld-audit.7:196
7982 msgid ""
7983 "I<cookie> is a pointer to an identifier for this object.  The identifier is "
7984 "provided to later calls to functions in the auditing library in order to "
7985 "identify this object.  This identifier is initialized to point to object's "
7986 "link map, but the audit library can change the identifier to some other "
7987 "value that it may prefer to use to identify the object."
7988 msgstr ""
7989
7990 #. type: Plain text
7991 #: build/C/man7/rtld-audit.7:203
7992 msgid ""
7993 "As its return value, B<la_objopen>()  returns a bit mask created by ORing "
7994 "zero or more of the following constants, which allow the auditing library to "
7995 "select the objects to be monitored by B<la_symbind*>():"
7996 msgstr ""
7997
7998 #. type: TP
7999 #: build/C/man7/rtld-audit.7:203
8000 #, no-wrap
8001 msgid "B<LA_FLG_BINDTO>"
8002 msgstr ""
8003
8004 #. type: Plain text
8005 #: build/C/man7/rtld-audit.7:206
8006 msgid "Audit symbol bindings to this object."
8007 msgstr ""
8008
8009 #. type: TP
8010 #: build/C/man7/rtld-audit.7:206
8011 #, no-wrap
8012 msgid "B<LA_FLG_BINDFROM>"
8013 msgstr ""
8014
8015 #. type: Plain text
8016 #: build/C/man7/rtld-audit.7:209
8017 msgid "Audit symbol bindings from this object."
8018 msgstr ""
8019
8020 #. type: Plain text
8021 #: build/C/man7/rtld-audit.7:213
8022 msgid ""
8023 "A return value of 0 from B<la_objopen>()  indicates that no symbol bindings "
8024 "should be audited for this object."
8025 msgstr ""
8026
8027 #. type: SS
8028 #: build/C/man7/rtld-audit.7:213
8029 #, no-wrap
8030 msgid "la_objclose()"
8031 msgstr ""
8032
8033 #. type: Plain text
8034 #: build/C/man7/rtld-audit.7:217
8035 #, no-wrap
8036 msgid "B<unsigned int la_objclose(uintptr_t *>I<cookie>B<);>\n"
8037 msgstr ""
8038
8039 #. type: Plain text
8040 #: build/C/man7/rtld-audit.7:226
8041 msgid ""
8042 "The dynamic linker invokes this function after any finalization code for the "
8043 "object has been executed, before the object is unloaded.  The I<cookie> "
8044 "argument is the identifier obtained from a previous invocation of "
8045 "B<la_objopen>()."
8046 msgstr ""
8047
8048 #. type: Plain text
8049 #: build/C/man7/rtld-audit.7:230
8050 msgid ""
8051 "In the current implementation, the value returned by B<la_objclose>()  is "
8052 "ignored."
8053 msgstr ""
8054
8055 #. type: SS
8056 #: build/C/man7/rtld-audit.7:230
8057 #, no-wrap
8058 msgid "la_preinit()"
8059 msgstr ""
8060
8061 #. type: Plain text
8062 #: build/C/man7/rtld-audit.7:234
8063 #, no-wrap
8064 msgid "B<void la_preinit(uintptr_t *>I<cookie>B<);>\n"
8065 msgstr ""
8066
8067 #. type: Plain text
8068 #: build/C/man7/rtld-audit.7:244
8069 msgid ""
8070 "The dynamic linker invokes this function after all shared objects have been "
8071 "loaded, before control is passed to the application (i.e., before calling "
8072 "I<main>()).  Note that I<main>()  may still later dynamically load objects "
8073 "using B<dlopen>(3)."
8074 msgstr ""
8075
8076 #. type: SS
8077 #: build/C/man7/rtld-audit.7:244
8078 #, no-wrap
8079 msgid "la_symbind*()"
8080 msgstr ""
8081
8082 #. type: Plain text
8083 #: build/C/man7/rtld-audit.7:253
8084 #, no-wrap
8085 msgid ""
8086 "B<uintptr_t la_symbind32(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
8087 "B<                       uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
8088 "B<                       unsigned int *>I<flags>B<, const char *>I<symname>B<);>\n"
8089 "B<uintptr_t la_symbind64(Elf64_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
8090 "B<                       uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
8091 "B<                       unsigned int *>I<flags>B<, const char *>I<symname>B<);>\n"
8092 msgstr ""
8093
8094 #. type: Plain text
8095 #: build/C/man7/rtld-audit.7:265
8096 msgid ""
8097 "The dynamic linker invokes one of these functions when a symbol binding "
8098 "occurs between two shared objects that have been marked for auditing "
8099 "notification by B<la_objopen>().  The B<la_symbind32>()  function is "
8100 "employed on 32-bit platforms; the B<la_symbind64>()  function is employed on "
8101 "64-bit platforms."
8102 msgstr ""
8103
8104 #. type: Plain text
8105 #: build/C/man7/rtld-audit.7:275
8106 msgid ""
8107 "The I<sym> argument is a pointer to a structure that provides information "
8108 "about the symbol being bound.  The structure definition is shown in "
8109 "I<E<lt>elf.hE<gt>>.  Among the fields of this structure, I<st_value> "
8110 "indicates the address to which the symbol is bound."
8111 msgstr ""
8112
8113 #. type: Plain text
8114 #: build/C/man7/rtld-audit.7:280
8115 msgid ""
8116 "The I<ndx> argument gives the index of the symbol in the symbol table of the "
8117 "bound shared object."
8118 msgstr ""
8119
8120 #. type: Plain text
8121 #: build/C/man7/rtld-audit.7:295
8122 msgid ""
8123 "The I<refcook> argument identifies the shared object that is making the "
8124 "symbol reference; this is the same identifier that is provided to the "
8125 "B<la_objopen>()  function that returned B<LA_FLG_BINDFROM>.  The I<defcook> "
8126 "argument identifies the shared object that defines the referenced symbol; "
8127 "this is the same identifier that is provided to the B<la_objopen>()  "
8128 "function that returned B<LA_FLG_BINDTO>."
8129 msgstr ""
8130
8131 #. type: Plain text
8132 #: build/C/man7/rtld-audit.7:299
8133 msgid ""
8134 "The I<symname> argument points a string containing the name of the symbol."
8135 msgstr ""
8136
8137 #.  LA_SYMB_STRUCTCALL appears to be unused
8138 #. type: Plain text
8139 #: build/C/man7/rtld-audit.7:307
8140 msgid ""
8141 "The I<flags> argument is a bit mask that both provides information about the "
8142 "symbol and can be used to modify further auditing of this PLT (Procedure "
8143 "Linkage Table) entry.  The dynamic linker may supply the following bit "
8144 "values in this argument:"
8145 msgstr ""
8146
8147 #. type: TP
8148 #: build/C/man7/rtld-audit.7:307
8149 #, no-wrap
8150 msgid "B<LA_SYMB_DLSYM>"
8151 msgstr ""
8152
8153 #. type: Plain text
8154 #: build/C/man7/rtld-audit.7:311
8155 msgid "The binding resulted from a call to B<dlsym>(3)."
8156 msgstr ""
8157
8158 #. type: TP
8159 #: build/C/man7/rtld-audit.7:311
8160 #, no-wrap
8161 msgid "B<LA_SYMB_ALTVALUE>"
8162 msgstr ""
8163
8164 #. type: Plain text
8165 #: build/C/man7/rtld-audit.7:316
8166 msgid ""
8167 "A previous B<la_symbind*>()  call returned an alternate value for this "
8168 "symbol."
8169 msgstr ""
8170
8171 #.  pltenter/pltexit are called for non-dynamically loaded libraries,
8172 #.  but don't seem to be called for dynamically loaded libs?
8173 #.  Is this the same on Solaris?
8174 #. type: Plain text
8175 #: build/C/man7/rtld-audit.7:330
8176 msgid ""
8177 "By default, if the auditing library implements B<la_pltenter>()  and "
8178 "B<la_pltexit>()  functions (see below), then these functions are invoked, "
8179 "after B<la_symbind>(), for PLT entries, each time the symbol is referenced.  "
8180 "The following flags can be ORed into I<*flags> to change this default "
8181 "behavior:"
8182 msgstr ""
8183
8184 #. type: TP
8185 #: build/C/man7/rtld-audit.7:330
8186 #, no-wrap
8187 msgid "B<LA_SYMB_NOPLTENTER>"
8188 msgstr ""
8189
8190 #. type: Plain text
8191 #: build/C/man7/rtld-audit.7:335
8192 msgid "Don't call B<la_pltenter>()  for this symbol."
8193 msgstr ""
8194
8195 #. type: TP
8196 #: build/C/man7/rtld-audit.7:335
8197 #, no-wrap
8198 msgid "B<LA_SYMB_NOPLTEXIT>"
8199 msgstr ""
8200
8201 #. type: Plain text
8202 #: build/C/man7/rtld-audit.7:340
8203 msgid "Don't call B<la_pltexit>()  for this symbol."
8204 msgstr ""
8205
8206 #. type: Plain text
8207 #: build/C/man7/rtld-audit.7:351
8208 msgid ""
8209 "The return value of B<la_symbind32>()  and B<la_symbind64>()  is the address "
8210 "to which control should be passed after the function returns.  If the "
8211 "auditing library is simply monitoring symbol bindings, then it should return "
8212 "I<sym-E<gt>st_value>.  A different value may be returned if the library "
8213 "wishes to direct control to an alternate location."
8214 msgstr ""
8215
8216 #. type: SS
8217 #: build/C/man7/rtld-audit.7:351
8218 #, no-wrap
8219 msgid "la_pltenter()"
8220 msgstr ""
8221
8222 #. type: Plain text
8223 #: build/C/man7/rtld-audit.7:357 build/C/man7/rtld-audit.7:417
8224 msgid ""
8225 "The precise name and argument types for this function depend on the hardware "
8226 "platform.  (The appropriate definition is supplied by I<E<lt>link.hE<gt>>.)  "
8227 "Here is the definition for x86-32:"
8228 msgstr ""
8229
8230 #. type: Plain text
8231 #: build/C/man7/rtld-audit.7:363
8232 #, no-wrap
8233 msgid ""
8234 "B<Elf32_Addr la_i86_gnu_pltenter(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
8235 "B<                 uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
8236 "B<                 La_i86_regs *>I<regs>B<, unsigned int *>I<flags>B<,>\n"
8237 "B<                 const char *>I<symname>B<, long int *>I<framesizep>B<);>\n"
8238 msgstr ""
8239
8240 #. type: Plain text
8241 #: build/C/man7/rtld-audit.7:367
8242 msgid ""
8243 "This function is invoked just before a PLT entry is called, between two "
8244 "shared objects that have been marked for binding notification."
8245 msgstr ""
8246
8247 #. type: Plain text
8248 #: build/C/man7/rtld-audit.7:377 build/C/man7/rtld-audit.7:440
8249 msgid ""
8250 "The I<sym>, I<ndx>, I<refcook>, I<defcook>, and I<symname> are as for "
8251 "B<la_symbind*>()."
8252 msgstr ""
8253
8254 #. type: Plain text
8255 #: build/C/man7/rtld-audit.7:384
8256 msgid ""
8257 "The I<regs> argument points to a structure (defined in I<E<lt>link.hE<gt>>)  "
8258 "containing the values of registers to be used for the call to this PLT entry."
8259 msgstr ""
8260
8261 #. type: Plain text
8262 #: build/C/man7/rtld-audit.7:390
8263 msgid ""
8264 "The I<flags> argument points to a bit mask that conveys information about, "
8265 "and can be used to modify subsequent auditing of, this PLT entry, as for "
8266 "B<la_symbind*>()."
8267 msgstr ""
8268
8269 #.  FIXME . Is the following correct?
8270 #. type: Plain text
8271 #: build/C/man7/rtld-audit.7:406
8272 msgid ""
8273 "The I<framesizep> argument points to a I<long\\ int> buffer that can be used "
8274 "to explicitly set the frame size used for the call to this PLT entry.  If "
8275 "different B<la_pltenter>()  invocations for this symbol return different "
8276 "values, then the maximum returned value is used.  The B<la_pltenter>()  "
8277 "function is called only if this buffer is explicitly set to a suitable value."
8278 msgstr ""
8279
8280 #. type: Plain text
8281 #: build/C/man7/rtld-audit.7:411
8282 msgid "The return value of B<la_pltenter>()  is as for B<la_symbind*>()."
8283 msgstr ""
8284
8285 #. type: SS
8286 #: build/C/man7/rtld-audit.7:411
8287 #, no-wrap
8288 msgid "la_pltexit()"
8289 msgstr ""
8290
8291 #. type: Plain text
8292 #: build/C/man7/rtld-audit.7:423
8293 #, no-wrap
8294 msgid ""
8295 "B<unsigned int la_i86_gnu_pltexit(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
8296 "B<                 uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
8297 "B<                 const La_i86_regs *>I<inregs>B<, La_i86_retval *>I<outregs>B<,>\n"
8298 "B<                 const char *>I<symname>B<);>\n"
8299 msgstr ""
8300
8301 #. type: Plain text
8302 #: build/C/man7/rtld-audit.7:430
8303 msgid ""
8304 "This function is called when a PLT entry, made between two shared objects "
8305 "that have been marked for binding notification, returns.  The function is "
8306 "called just before control returns to the caller of the PLT entry."
8307 msgstr ""
8308
8309 #. type: Plain text
8310 #: build/C/man7/rtld-audit.7:453
8311 msgid ""
8312 "The I<inregs> argument points to a structure (defined in I<E<lt>link."
8313 "hE<gt>>)  containing the values of registers used for the call to this PLT "
8314 "entry.  The I<outregs> argument points to a structure (defined in "
8315 "I<E<lt>link.hE<gt>>)  containing return values for the call to this PLT "
8316 "entry.  These values can be modified by the caller, and the changes will be "
8317 "visible to the caller of the PLT entry."
8318 msgstr ""
8319
8320 #.  This differs from Solaris, where an audit library that monitors
8321 #.  symbol binding should return the value of the 'retval' argument
8322 #.  (not provided by GNU, but equivalent to returning outregs->lrv_eax
8323 #.  on (say) x86-32).
8324 #. type: Plain text
8325 #: build/C/man7/rtld-audit.7:461
8326 msgid ""
8327 "In the current GNU implementation, the return value of B<la_pltexit>()  is "
8328 "ignored."
8329 msgstr ""
8330
8331 #. type: Plain text
8332 #: build/C/man7/rtld-audit.7:467
8333 msgid ""
8334 "This API is nonstandard, but very similar to the Solaris API, described in "
8335 "the Solaris I<Linker and Libraries Guide>, in the chapter I<Runtime Linker "
8336 "Auditing Interface>."
8337 msgstr ""
8338
8339 #. type: Plain text
8340 #: build/C/man7/rtld-audit.7:470
8341 msgid ""
8342 "Note the following differences from the Solaris dynamic linker auditing API:"
8343 msgstr ""
8344
8345 #. type: IP
8346 #: build/C/man7/rtld-audit.7:470 build/C/man7/rtld-audit.7:474
8347 #: build/C/man7/rtld-audit.7:482
8348 #, no-wrap
8349 msgid "*"
8350 msgstr ""
8351
8352 #. type: Plain text
8353 #: build/C/man7/rtld-audit.7:474
8354 msgid ""
8355 "The Solaris B<la_objfilter>()  interface is not supported by the GNU "
8356 "implementation."
8357 msgstr ""
8358
8359 #. type: Plain text
8360 #: build/C/man7/rtld-audit.7:482
8361 msgid ""
8362 "The Solaris B<la_symbind32>()  and B<la_pltexit>()  functions do not provide "
8363 "a I<symname> argument."
8364 msgstr ""
8365
8366 #. type: Plain text
8367 #: build/C/man7/rtld-audit.7:492
8368 msgid ""
8369 "The Solaris B<la_pltexit>()  function does not provide I<inregs> and "
8370 "I<outregs> arguments (but does provide a I<retval> argument with the "
8371 "function return value)."
8372 msgstr ""
8373
8374 #.  FIXME . Specifying multiple audit libraries doesn't work on GNU.
8375 #.  My simple tests on Solaris work okay, but not on Linux -- mtk, Jan 2009
8376 #.  glibc bug filed: http://sourceware.org/bugzilla/show_bug.cgi?id=9733
8377 #.  Reportedly, this is fixed on 16 Mar 2009 (i.e., for glibc 2.10)
8378 #. type: Plain text
8379 #: build/C/man7/rtld-audit.7:502
8380 msgid ""
8381 "In glibc versions up to and include 2.9, specifying more than one audit "
8382 "library in B<LD_AUDIT> results in a run-time crash.  This is reportedly "
8383 "fixed in glibc 2.10."
8384 msgstr ""
8385
8386 #. type: Plain text
8387 #: build/C/man7/rtld-audit.7:506
8388 #, no-wrap
8389 msgid ""
8390 "#include E<lt>link.hE<gt>\n"
8391 "#include E<lt>stdio.hE<gt>\n"
8392 msgstr ""
8393 "#include E<lt>link.hE<gt>\n"
8394 "#include E<lt>stdio.hE<gt>\n"
8395
8396 #. type: Plain text
8397 #: build/C/man7/rtld-audit.7:511
8398 #, no-wrap
8399 msgid ""
8400 "unsigned int\n"
8401 "la_version(unsigned int version)\n"
8402 "{\n"
8403 "    printf(\"la_version(): %d\\en\", version);\n"
8404 msgstr ""
8405 "unsigned int\n"
8406 "la_version(unsigned int version)\n"
8407 "{\n"
8408 "    printf(\"la_version(): %d\\en\", version);\n"
8409
8410 #. type: Plain text
8411 #: build/C/man7/rtld-audit.7:514
8412 #, no-wrap
8413 msgid ""
8414 "    return version;\n"
8415 "}\n"
8416 msgstr ""
8417 "    return version;\n"
8418 "}\n"
8419
8420 #. type: Plain text
8421 #: build/C/man7/rtld-audit.7:527
8422 #, no-wrap
8423 msgid ""
8424 "char *\n"
8425 "la_objsearch(const char *name, uintptr_t *cookie, unsigned int flag)\n"
8426 "{\n"
8427 "    printf(\"la_objsearch(): name = %s; cookie = %x\", name, cookie);\n"
8428 "    printf(\"; flag = %s\\en\",\n"
8429 "            (flag == LA_SER_ORIG) ?    \"LA_SER_ORIG\" :\n"
8430 "            (flag == LA_SER_LIBPATH) ? \"LA_SER_LIBPATH\" :\n"
8431 "            (flag == LA_SER_RUNPATH) ? \"LA_SER_RUNPATH\" :\n"
8432 "            (flag == LA_SER_DEFAULT) ? \"LA_SER_DEFAULT\" :\n"
8433 "            (flag == LA_SER_CONFIG) ?  \"LA_SER_CONFIG\" :\n"
8434 "            (flag == LA_SER_SECURE) ?  \"LA_SER_SECURE\" :\n"
8435 "            \"???\");\n"
8436 msgstr ""
8437 "char *\n"
8438 "la_objsearch(const char *name, uintptr_t *cookie, unsigned int flag)\n"
8439 "{\n"
8440 "    printf(\"la_objsearch(): name = %s; cookie = %x\", name, cookie);\n"
8441 "    printf(\"; flag = %s\\en\",\n"
8442 "            (flag == LA_SER_ORIG) ?    \"LA_SER_ORIG\" :\n"
8443 "            (flag == LA_SER_LIBPATH) ? \"LA_SER_LIBPATH\" :\n"
8444 "            (flag == LA_SER_RUNPATH) ? \"LA_SER_RUNPATH\" :\n"
8445 "            (flag == LA_SER_DEFAULT) ? \"LA_SER_DEFAULT\" :\n"
8446 "            (flag == LA_SER_CONFIG) ?  \"LA_SER_CONFIG\" :\n"
8447 "            (flag == LA_SER_SECURE) ?  \"LA_SER_SECURE\" :\n"
8448 "            \"???\");\n"
8449
8450 #. type: Plain text
8451 #: build/C/man7/rtld-audit.7:530
8452 #, no-wrap
8453 msgid ""
8454 "    return name;\n"
8455 "}\n"
8456 msgstr ""
8457 "    return name;\n"
8458 "}\n"
8459
8460 #. type: Plain text
8461 #: build/C/man7/rtld-audit.7:540
8462 #, no-wrap
8463 msgid ""
8464 "void\n"
8465 "la_activity (uintptr_t *cookie, unsigned int flag)\n"
8466 "{\n"
8467 "    printf(\"la_activity(): cookie = %x; flag = %s\\en\", cookie,\n"
8468 "            (flag == LA_ACT_CONSISTENT) ? \"LA_ACT_CONSISTENT\" :\n"
8469 "            (flag == LA_ACT_ADD) ?        \"LA_ACT_ADD\" :\n"
8470 "            (flag == LA_ACT_DELETE) ?     \"LA_ACT_DELETE\" :\n"
8471 "            \"???\");\n"
8472 "}\n"
8473 msgstr ""
8474 "void\n"
8475 "la_activity (uintptr_t *cookie, unsigned int flag)\n"
8476 "{\n"
8477 "    printf(\"la_activity(): cookie = %x; flag = %s\\en\", cookie,\n"
8478 "            (flag == LA_ACT_CONSISTENT) ? \"LA_ACT_CONSISTENT\" :\n"
8479 "            (flag == LA_ACT_ADD) ?        \"LA_ACT_ADD\" :\n"
8480 "            (flag == LA_ACT_DELETE) ?     \"LA_ACT_DELETE\" :\n"
8481 "            \"???\");\n"
8482 "}\n"
8483
8484 #. type: Plain text
8485 #: build/C/man7/rtld-audit.7:550
8486 #, no-wrap
8487 msgid ""
8488 "unsigned int\n"
8489 "la_objopen(struct link_map *map, Lmid_t lmid, uintptr_t *cookie)\n"
8490 "{\n"
8491 "    printf(\"la_objopen(): loading \\e\"%s\\e\"; lmid = %s; cookie=%x\\en\",\n"
8492 "            map-E<gt>l_name,\n"
8493 "            (lmid == LM_ID_BASE) ?  \"LM_ID_BASE\" :\n"
8494 "            (lmid == LM_ID_NEWLM) ? \"LM_ID_NEWLM\" :\n"
8495 "            \"???\",\n"
8496 "            cookie);\n"
8497 msgstr ""
8498 "unsigned int\n"
8499 "la_objopen(struct link_map *map, Lmid_t lmid, uintptr_t *cookie)\n"
8500 "{\n"
8501 "    printf(\"la_objopen(): loading \\e\"%s\\e\"; lmid = %s; cookie=%x\\en\",\n"
8502 "            map-E<gt>l_name,\n"
8503 "            (lmid == LM_ID_BASE) ?  \"LM_ID_BASE\" :\n"
8504 "            (lmid == LM_ID_NEWLM) ? \"LM_ID_NEWLM\" :\n"
8505 "            \"???\",\n"
8506 "            cookie);\n"
8507
8508 #. type: Plain text
8509 #: build/C/man7/rtld-audit.7:553
8510 #, no-wrap
8511 msgid ""
8512 "    return LA_FLG_BINDTO | LA_FLG_BINDFROM;\n"
8513 "}\n"
8514 msgstr ""
8515 "    return LA_FLG_BINDTO | LA_FLG_BINDFROM;\n"
8516 "}\n"
8517
8518 #. type: Plain text
8519 #: build/C/man7/rtld-audit.7:558
8520 #, no-wrap
8521 msgid ""
8522 "unsigned int\n"
8523 "la_objclose (uintptr_t *cookie)\n"
8524 "{\n"
8525 "    printf(\"la_objclose(): %x\\en\", cookie);\n"
8526 msgstr ""
8527 "unsigned int\n"
8528 "la_objclose (uintptr_t *cookie)\n"
8529 "{\n"
8530 "    printf(\"la_objclose(): %x\\en\", cookie);\n"
8531
8532 #. type: Plain text
8533 #: build/C/man7/rtld-audit.7:561
8534 #, no-wrap
8535 msgid ""
8536 "    return 0;\n"
8537 "}\n"
8538 msgstr ""
8539 "    return 0;\n"
8540 "}\n"
8541
8542 #. type: Plain text
8543 #: build/C/man7/rtld-audit.7:567
8544 #, no-wrap
8545 msgid ""
8546 "void\n"
8547 "la_preinit(uintptr_t *cookie)\n"
8548 "{\n"
8549 "    printf(\"la_preinit(): %x\\en\", cookie);\n"
8550 "}\n"
8551 msgstr ""
8552 "void\n"
8553 "la_preinit(uintptr_t *cookie)\n"
8554 "{\n"
8555 "    printf(\"la_preinit(): %x\\en\", cookie);\n"
8556 "}\n"
8557
8558 #. type: Plain text
8559 #: build/C/man7/rtld-audit.7:576
8560 #, no-wrap
8561 msgid ""
8562 "uintptr_t\n"
8563 "la_symbind32(Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
8564 "        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
8565 "{\n"
8566 "    printf(\"la_symbind32(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
8567 "            symname, sym-E<gt>st_value);\n"
8568 "    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
8569 "    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
8570 msgstr ""
8571 "uintptr_t\n"
8572 "la_symbind32(Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
8573 "        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
8574 "{\n"
8575 "    printf(\"la_symbind32(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
8576 "            symname, sym-E<gt>st_value);\n"
8577 "    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
8578 "    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
8579
8580 #. type: Plain text
8581 #: build/C/man7/rtld-audit.7:579 build/C/man7/rtld-audit.7:591
8582 #: build/C/man7/rtld-audit.7:601
8583 #, no-wrap
8584 msgid ""
8585 "    return sym-E<gt>st_value;\n"
8586 "}\n"
8587 msgstr ""
8588 "    return sym-E<gt>st_value;\n"
8589 "}\n"
8590
8591 #. type: Plain text
8592 #: build/C/man7/rtld-audit.7:588
8593 #, no-wrap
8594 msgid ""
8595 "uintptr_t\n"
8596 "la_symbind64(Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
8597 "        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
8598 "{\n"
8599 "    printf(\"la_symbind64(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
8600 "            symname, sym-E<gt>st_value);\n"
8601 "    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
8602 "    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
8603 msgstr ""
8604 "uintptr_t\n"
8605 "la_symbind64(Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
8606 "        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
8607 "{\n"
8608 "    printf(\"la_symbind64(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
8609 "            symname, sym-E<gt>st_value);\n"
8610 "    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
8611 "    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
8612
8613 #. type: Plain text
8614 #: build/C/man7/rtld-audit.7:598
8615 #, no-wrap
8616 msgid ""
8617 "Elf32_Addr\n"
8618 "la_i86_gnu_pltenter(Elf32_Sym *sym, unsigned int ndx,\n"
8619 "        uintptr_t *refcook, uintptr_t *defcook, La_i86_regs *regs,\n"
8620 "        unsigned int *flags, const char *symname, long int *framesizep)\n"
8621 "{\n"
8622 "    printf(\"la_i86_gnu_pltenter(): %s (%p)\\en\", symname, sym-E<gt>st_value);\n"
8623 msgstr ""
8624 "Elf32_Addr\n"
8625 "la_i86_gnu_pltenter(Elf32_Sym *sym, unsigned int ndx,\n"
8626 "        uintptr_t *refcook, uintptr_t *defcook, La_i86_regs *regs,\n"
8627 "        unsigned int *flags, const char *symname, long int *framesizep)\n"
8628 "{\n"
8629 "    printf(\"la_i86_gnu_pltenter(): %s (%p)\\en\", symname, sym-E<gt>st_value);\n"
8630
8631 #. type: Plain text
8632 #: build/C/man7/rtld-audit.7:607
8633 msgid "B<ldd>(1), B<dlopen>(3), B<ld.so>(8), B<ldconfig>(8)"
8634 msgstr "B<ldd>(1), B<dlopen>(3), B<ld.so>(8), B<ldconfig>(8)"
8635
8636 #. type: TH
8637 #: build/C/man8/sln.8:25
8638 #, no-wrap
8639 msgid "SLN"
8640 msgstr "SLN"
8641
8642 #. type: TH
8643 #: build/C/man8/sln.8:25
8644 #, no-wrap
8645 msgid "2013-02-10"
8646 msgstr "2013-02-10"
8647
8648 #. type: Plain text
8649 #: build/C/man8/sln.8:28
8650 msgid "sln - create symbolic links"
8651 msgstr "sln - シンボリックリンクを作成する"
8652
8653 #. type: Plain text
8654 #: build/C/man8/sln.8:30
8655 msgid "B<sln>I< source dest>"
8656 msgstr "B<sln>I< source dest>"
8657
8658 #. type: Plain text
8659 #: build/C/man8/sln.8:32
8660 msgid "B<sln>I< filelist>"
8661 msgstr "B<sln>I< filelist>"
8662
8663 #. type: Plain text
8664 #: build/C/man8/sln.8:42
8665 msgid ""
8666 "The B<sln> program creates symbolic links.  Unlike the B<ln>(1)  program, it "
8667 "is statically linked.  This means that if for some reason the dynamic linker "
8668 "is not working, B<sln> can be used to make symbolic links to dynamic "
8669 "libraries."
8670 msgstr ""
8671 "B<sln> プログラムはシンボリックリンクの作成を行う。 B<ln>(1) プログラムと異な"
8672 "り、 このプログラムは静的にリンクされている。 つまり、 何らかの理由で動的リン"
8673 "カが動作しない場合に、 B<sln> を使って、 動的ライブラリへのシンボリックリンク"
8674 "を作成することができる。"
8675
8676 #. type: Plain text
8677 #: build/C/man8/sln.8:48
8678 msgid ""
8679 "The command line has two forms.  In the first form, it creates I<dest> as a "
8680 "new symbolic link to I<source>."
8681 msgstr ""
8682 "コマンドラインには二つの形がある。 一つ目の形では、 I<source> へのシンボリッ"
8683 "クリンクとして I<dest> を作成する。"
8684
8685 #. type: Plain text
8686 #: build/C/man8/sln.8:56
8687 msgid ""
8688 "In the second form, I<filelist> is a list of space-separated pathname pairs, "
8689 "and the effect is as if B<sln> was executed once for each line of the file, "
8690 "with the two pathnames as the arguments."
8691 msgstr ""
8692 "二つ目の形式では、 I<filelist> はスペース区切りのパス名の組のリストで、 この"
8693 "ファイルの各行について、二つのパス名を引き数として 1 回ずつ B<sln> を実行した"
8694 "のと同じ結果となる。"
8695
8696 #. type: Plain text
8697 #: build/C/man8/sln.8:60
8698 msgid "The B<sln> program supports no command-line options."
8699 msgstr "B<sln> プログラムには、 コマンドラインオプションはない。"
8700
8701 #. type: Plain text
8702 #: build/C/man8/sln.8:64
8703 msgid "B<ln>(1), B<ldconfig>(8), B<ld.so>(8)"
8704 msgstr "B<ln>(1), B<ldconfig>(8), B<ld.so>(8)"
8705
8706 #. type: TH
8707 #: build/C/man1/sprof.1:25
8708 #, no-wrap
8709 msgid "SPROF"
8710 msgstr ""
8711
8712 #. type: TH
8713 #: build/C/man1/sprof.1:25
8714 #, no-wrap
8715 msgid "2014-06-24"
8716 msgstr "2014-06-24"
8717
8718 #. type: Plain text
8719 #: build/C/man1/sprof.1:28
8720 msgid "sprof - read and display shared object profiling data"
8721 msgstr ""
8722
8723 #. type: Plain text
8724 #: build/C/man1/sprof.1:32
8725 #, no-wrap
8726 msgid "B<sprof> [I<option>]... I<shared-object-path> [I<profile-data-path>]\n"
8727 msgstr ""
8728
8729 #. type: Plain text
8730 #: build/C/man1/sprof.1:46
8731 msgid ""
8732 "The B<sprof> command displays a profiling summary for the shared object "
8733 "specified as its first command-line argument.  The profiling summary is "
8734 "created using previously generated profiling data in the (optional) second "
8735 "command-line argument.  If the profiling data pathname is omitted, then "
8736 "B<sprof> will attempt to deduce it using the soname of the shared object, "
8737 "looking for a file with the name I<E<lt>sonameE<gt>.profile> in the current "
8738 "directory."
8739 msgstr ""
8740
8741 #. type: Plain text
8742 #: build/C/man1/sprof.1:49
8743 msgid ""
8744 "The following command-line options specify the profile output to be produced:"
8745 msgstr ""
8746
8747 #. type: TP
8748 #: build/C/man1/sprof.1:49
8749 #, no-wrap
8750 msgid "B<-c>, B<--call-pairs>"
8751 msgstr ""
8752
8753 #. type: Plain text
8754 #: build/C/man1/sprof.1:54
8755 msgid ""
8756 "Print a list of pairs of call paths for the interfaces exported by the "
8757 "shared object, along with the number of times each path is used."
8758 msgstr ""
8759
8760 #. type: TP
8761 #: build/C/man1/sprof.1:54
8762 #, no-wrap
8763 msgid "B<-p>, B<--flat-profile>"
8764 msgstr ""
8765
8766 #. type: Plain text
8767 #: build/C/man1/sprof.1:58
8768 msgid ""
8769 "Generate a flat profile of all of the functions in the monitored object, "
8770 "with counts and ticks."
8771 msgstr ""
8772
8773 #. type: TP
8774 #: build/C/man1/sprof.1:58
8775 #, no-wrap
8776 msgid "B<-q>, B<--graph>"
8777 msgstr ""
8778
8779 #. type: Plain text
8780 #: build/C/man1/sprof.1:61
8781 msgid "Generate a call graph."
8782 msgstr ""
8783
8784 #. type: Plain text
8785 #: build/C/man1/sprof.1:64
8786 msgid ""
8787 "If none of the above options is specified, then the default behavior is to "
8788 "display a flat profile and a call graph."
8789 msgstr ""
8790
8791 #. type: Plain text
8792 #: build/C/man1/sprof.1:66
8793 msgid "The following additional command-line options are available:"
8794 msgstr ""
8795
8796 #. type: Plain text
8797 #: build/C/man1/sprof.1:69
8798 msgid "Display a summary of command-line options and arguments and exit."
8799 msgstr ""
8800
8801 #. type: Plain text
8802 #: build/C/man1/sprof.1:72
8803 msgid "Display a short usage message and exit."
8804 msgstr ""
8805
8806 #. type: Plain text
8807 #: build/C/man1/sprof.1:75
8808 msgid "Display the program version and exit."
8809 msgstr ""
8810
8811 #. type: Plain text
8812 #: build/C/man1/sprof.1:79
8813 msgid "The B<sprof> command is a GNU extension, not present in POSIX.1."
8814 msgstr ""
8815
8816 #. type: Plain text
8817 #: build/C/man1/sprof.1:85
8818 msgid ""
8819 "The following example demonstrates the use of B<sprof>.  The example "
8820 "consists of a main program that calls two functions in a shared library.  "
8821 "First, the code of the main program:"
8822 msgstr ""
8823
8824 #. type: Plain text
8825 #: build/C/man1/sprof.1:90
8826 #, no-wrap
8827 msgid ""
8828 "$ B<cat prog.c>\n"
8829 "#include E<lt>stdlib.hE<gt>\n"
8830 msgstr ""
8831 "$ B<cat prog.c>\n"
8832 "#include E<lt>stdlib.hE<gt>\n"
8833
8834 #. type: Plain text
8835 #: build/C/man1/sprof.1:93
8836 #, no-wrap
8837 msgid ""
8838 "void x1(void);\n"
8839 "void x2(void);\n"
8840 msgstr ""
8841
8842 #. type: Plain text
8843 #: build/C/man1/sprof.1:101
8844 #, no-wrap
8845 msgid ""
8846 "int\n"
8847 "main(int argc, char *argv[])\n"
8848 "{\n"
8849 "    x1();\n"
8850 "    x2();\n"
8851 "    exit(EXIT_SUCCESS);\n"
8852 "}\n"
8853 msgstr ""
8854 "int\n"
8855 "main(int argc, char *argv[])\n"
8856 "{\n"
8857 "    x1();\n"
8858 "    x2();\n"
8859 "    exit(EXIT_SUCCESS);\n"
8860 "}\n"
8861
8862 #. type: Plain text
8863 #: build/C/man1/sprof.1:110
8864 msgid ""
8865 "The functions I<x1()> and I<x2()> are defined in the following source file "
8866 "that is used to construct the shared library:"
8867 msgstr ""
8868
8869 #. type: Plain text
8870 #: build/C/man1/sprof.1:115
8871 #, no-wrap
8872 msgid ""
8873 "$ B<cat libdemo.c>\n"
8874 "#include E<lt>unistd.hE<gt>\n"
8875 msgstr ""
8876 "$ B<cat libdemo.c>\n"
8877 "#include E<lt>unistd.hE<gt>\n"
8878
8879 #. type: Plain text
8880 #: build/C/man1/sprof.1:120
8881 #, no-wrap
8882 msgid ""
8883 "void\n"
8884 "consumeCpu1(int lim)\n"
8885 "{\n"
8886 "    int j;\n"
8887 msgstr ""
8888
8889 #. type: Plain text
8890 #: build/C/man1/sprof.1:124 build/C/man1/sprof.1:141
8891 #, no-wrap
8892 msgid ""
8893 "    for (j = 0; j E<lt> lim; j++)\n"
8894 "\tgetppid();\n"
8895 "}\n"
8896 msgstr ""
8897
8898 #. type: Plain text
8899 #: build/C/man1/sprof.1:128
8900 #, no-wrap
8901 msgid ""
8902 "void\n"
8903 "x1(void) {\n"
8904 "    int j;\n"
8905 msgstr ""
8906
8907 #. type: Plain text
8908 #: build/C/man1/sprof.1:132
8909 #, no-wrap
8910 msgid ""
8911 "    for (j = 0; j E<lt> 100; j++)\n"
8912 "\tconsumeCpu1(200000);\n"
8913 "}\n"
8914 msgstr ""
8915
8916 #. type: Plain text
8917 #: build/C/man1/sprof.1:137
8918 #, no-wrap
8919 msgid ""
8920 "void\n"
8921 "consumeCpu2(int lim)\n"
8922 "{\n"
8923 "    int j;\n"
8924 msgstr ""
8925
8926 #. type: Plain text
8927 #: build/C/man1/sprof.1:146
8928 #, no-wrap
8929 msgid ""
8930 "void\n"
8931 "x2(void)\n"
8932 "{\n"
8933 "    int j;\n"
8934 msgstr ""
8935
8936 #. type: Plain text
8937 #: build/C/man1/sprof.1:150
8938 #, no-wrap
8939 msgid ""
8940 "    for (j = 0; j E<lt> 1000; j++)\n"
8941 "\tconsumeCpu2(10000);\n"
8942 "}\n"
8943 msgstr ""
8944
8945 #. type: Plain text
8946 #: build/C/man1/sprof.1:157
8947 msgid ""
8948 "Now we construct the shared library with the real name I<libdemo.so.1.0.1>, "
8949 "and the soname I<libdemo.so.1>:"
8950 msgstr ""
8951
8952 #. type: Plain text
8953 #: build/C/man1/sprof.1:162
8954 #, no-wrap
8955 msgid ""
8956 "$ B<cc -g -fPIC -shared -Wl,-soname,libdemo.so.1 \\e>\n"
8957 "        B<-o libdemo.so.1.0.1 libdemo.c>\n"
8958 msgstr ""
8959
8960 #. type: Plain text
8961 #: build/C/man1/sprof.1:167
8962 msgid ""
8963 "Then we construct symbolic links for the library soname and the library "
8964 "linker name:"
8965 msgstr ""
8966
8967 #. type: Plain text
8968 #: build/C/man1/sprof.1:172
8969 #, no-wrap
8970 msgid ""
8971 "$ B<ln -sf libdemo.so.1.0.1 libdemo.so.1>\n"
8972 "$ B<ln -sf libdemo.so.1 libdemo.so>\n"
8973 msgstr ""
8974
8975 #. type: Plain text
8976 #: build/C/man1/sprof.1:177
8977 msgid ""
8978 "Next, we compile the main program, linking it against the shared library, "
8979 "and then list the dynamic dependencies of the program:"
8980 msgstr ""
8981
8982 #. type: Plain text
8983 #: build/C/man1/sprof.1:186
8984 #, no-wrap
8985 msgid ""
8986 "$ B<cc -g -o prog prog.c -L. -ldemo>\n"
8987 "$ B<ldd prog>\n"
8988 "\tlinux-vdso.so.1 =E<gt>  (0x00007fff86d66000)\n"
8989 "\tlibdemo.so.1 =E<gt> not found\n"
8990 "\tlibc.so.6 =E<gt> /lib64/libc.so.6 (0x00007fd4dc138000)\n"
8991 "\t/lib64/ld-linux-x86-64.so.2 (0x00007fd4dc51f000)\n"
8992 msgstr ""
8993
8994 #. type: Plain text
8995 #: build/C/man1/sprof.1:193
8996 msgid ""
8997 "In order to get profiling information for the shared library, we define the "
8998 "environment variable B<LD_PROFILE> with the soname of the library:"
8999 msgstr ""
9000
9001 #. type: Plain text
9002 #: build/C/man1/sprof.1:197
9003 #, no-wrap
9004 msgid "$ B<export LD_PROFILE=libdemo.so.1>\n"
9005 msgstr ""
9006
9007 #. type: Plain text
9008 #: build/C/man1/sprof.1:204
9009 msgid ""
9010 "We then define the environment variable B<LD_PROFILE_OUTPUT> with the "
9011 "pathname of the directory where profile output should be written, and create "
9012 "that directory if it does not exist already:"
9013 msgstr ""
9014
9015 #. type: Plain text
9016 #: build/C/man1/sprof.1:209
9017 #, no-wrap
9018 msgid ""
9019 "$ B<export LD_PROFILE_OUTPUT=$(pwd)/prof_data>\n"
9020 "$ B<mkdir -p $LD_PROFILE_OUTPUT>\n"
9021 msgstr ""
9022
9023 #. type: Plain text
9024 #: build/C/man1/sprof.1:217
9025 msgid ""
9026 "B<LD_PROFILE> causes profiling output to be I<appended> to the output file "
9027 "if it already exists, so we ensure that there is no preexisting profiling "
9028 "data:"
9029 msgstr ""
9030
9031 #. type: Plain text
9032 #: build/C/man1/sprof.1:221
9033 #, no-wrap
9034 msgid "$ B<rm -f $LD_PROFILE_OUTPUT/$LD_PROFILE.profile>\n"
9035 msgstr ""
9036
9037 #. type: Plain text
9038 #: build/C/man1/sprof.1:227
9039 msgid ""
9040 "We then run the program to produce the profiling output, which is written to "
9041 "a file in the directory specified in B<LD_PROFILE_OUTPUT>:"
9042 msgstr ""
9043
9044 #. type: Plain text
9045 #: build/C/man1/sprof.1:233
9046 #, no-wrap
9047 msgid ""
9048 "$ B<LD_LIBRARY_PATH=. ./prog>\n"
9049 "$ B<ls prof_data>\n"
9050 "libdemo.so.1.profile\n"
9051 msgstr ""
9052
9053 #. type: Plain text
9054 #: build/C/man1/sprof.1:239
9055 msgid ""
9056 "We then use the B<sprof -p> option to generate a flat profile with counts "
9057 "and ticks:"
9058 msgstr ""
9059
9060 #. type: Plain text
9061 #: build/C/man1/sprof.1:244
9062 #, no-wrap
9063 msgid ""
9064 "$ B<sprof -p libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile>\n"
9065 "Flat profile:\n"
9066 msgstr ""
9067
9068 #. type: Plain text
9069 #: build/C/man1/sprof.1:252
9070 #, no-wrap
9071 msgid ""
9072 "Each sample counts as 0.01 seconds.\n"
9073 "  %   cumulative   self              self     total\n"
9074 " time   seconds   seconds    calls  us/call  us/call  name\n"
9075 " 60.00      0.06     0.06      100   600.00           consumeCpu1\n"
9076 " 40.00      0.10     0.04     1000    40.00           consumeCpu2\n"
9077 "  0.00      0.10     0.00        1     0.00           x1\n"
9078 "  0.00      0.10     0.00        1     0.00           x2\n"
9079 msgstr ""
9080
9081 #. type: Plain text
9082 #: build/C/man1/sprof.1:258
9083 msgid "The B<sprof -q> option generates a call graph:"
9084 msgstr ""
9085
9086 #. type: Plain text
9087 #: build/C/man1/sprof.1:262
9088 #, no-wrap
9089 msgid "$ B<sprof -q libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile>\n"
9090 msgstr ""
9091
9092 #. type: Plain text
9093 #: build/C/man1/sprof.1:264
9094 #, no-wrap
9095 msgid "index % time    self  children    called     name\n"
9096 msgstr ""
9097
9098 #. type: Plain text
9099 #: build/C/man1/sprof.1:279
9100 #, no-wrap
9101 msgid ""
9102 "                0.00    0.00      100/100         x1 [1]\n"
9103 "[0]    100.0    0.00    0.00      100         consumeCpu1 [0]\n"
9104 "-----------------------------------------------\n"
9105 "                0.00    0.00        1/1           E<lt>UNKNOWNE<gt>\n"
9106 "[1]      0.0    0.00    0.00        1         x1 [1]\n"
9107 "                0.00    0.00      100/100         consumeCpu1 [0]\n"
9108 "-----------------------------------------------\n"
9109 "                0.00    0.00     1000/1000        x2 [3]\n"
9110 "[2]      0.0    0.00    0.00     1000         consumeCpu2 [2]\n"
9111 "-----------------------------------------------\n"
9112 "                0.00    0.00        1/1           E<lt>UNKNOWNE<gt>\n"
9113 "[3]      0.0    0.00    0.00        1         x2 [3]\n"
9114 "                0.00    0.00     1000/1000        consumeCpu2 [2]\n"
9115 "-----------------------------------------------\n"
9116 msgstr ""
9117
9118 #. type: Plain text
9119 #: build/C/man1/sprof.1:285
9120 msgid ""
9121 "Above and below, the \"E<lt>UNKNOWNE<gt>\" strings represent identifiers "
9122 "that are outside of the profiled object (in this example, these are "
9123 "instances of I<main()>)."
9124 msgstr ""
9125
9126 #. type: Plain text
9127 #: build/C/man1/sprof.1:289
9128 msgid ""
9129 "The B<sprof -c> option generates a list of call pairs and the number of "
9130 "their occurrences:"
9131 msgstr ""
9132
9133 #. type: Plain text
9134 #: build/C/man1/sprof.1:297
9135 #, no-wrap
9136 msgid ""
9137 "$ B<sprof -c libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile>\n"
9138 "E<lt>UNKNOWNE<gt>                  x1                                 1\n"
9139 "x1                         consumeCpu1                      100\n"
9140 "E<lt>UNKNOWNE<gt>                  x2                                 1\n"
9141 "x2                         consumeCpu2                     1000\n"
9142 msgstr ""
9143
9144 #. type: Plain text
9145 #: build/C/man1/sprof.1:303
9146 msgid "B<gprof>(1), B<ldd>(1), B<ld.so>(8)"
9147 msgstr "B<gprof>(1), B<ldd>(1), B<ld.so>(8)"
9148
9149 #~ msgid "2012-07-16"
9150 #~ msgstr "2012-07-16"
9151
9152 #~ msgid ""
9153 #~ "The standard version of B<ldd> comes with glibc2.  Libc5 came with an "
9154 #~ "older version, still present on some systems.  The long options are not "
9155 #~ "supported by the libc5 version.  On the other hand, the glibc2 version "
9156 #~ "does not support B<-V> and only has the equivalent B<--version>."
9157 #~ msgstr ""
9158 #~ "標準的なバージョンの B<ldd> は glibc2 に付属している。 libc5 には古いバー"
9159 #~ "ジョンのものが付属しており、 これが入っているシステムもまだ存在する。 "
9160 #~ "libc5 バージョンではロングオプションがサポートされていない。 一方、glibc2 "
9161 #~ "バージョンでは B<-V> をサポートしておらず、これと同じ意味の B<--version> "
9162 #~ "しかサポートしていない。"
9163
9164 #~ msgid ""
9165 #~ "The libc5 version of this program will use the name of a library given on "
9166 #~ "the command line as-is when it contains a \\(aq/\\(aq; otherwise it "
9167 #~ "searches for the library in the standard locations.  To run it on a "
9168 #~ "shared library in the current directory, prefix the name with \"./\"."
9169 #~ msgstr ""
9170 #~ "libc5 バージョンのプログラムでは、 コマンドラインで与えられたライブラリ名"
9171 #~ "に \\(aq/\\(aq が含まれている場合は、ライブラリ名をそのまま用いる。 \\(aq/"
9172 #~ "\\(aq が含まれていない場合は、標準的なパスからライブラリを検索する。 カレ"
9173 #~ "ントディレクトリにある共有ライブラリに対して実行するには、 名前にプレ"
9174 #~ "フィックス \"./\" を付けること。"
9175
9176 #~ msgid "B<ld.so>(8), B<ldconfig>(8)"
9177 #~ msgstr "B<ld.so>(8), B<ldconfig>(8)"