OSDN Git Service

(split) LDP: Replace NULL ポインタ to ヌルポインタ
[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: 2014-04-24 00:51+0900\n"
10 "PO-Revision-Date: 2014-04-27 06:35+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 build/C/man8/sln.8:25
33 #, no-wrap
34 msgid "GNU"
35 msgstr "GNU"
36
37 #. type: TH
38 #: build/C/man3/dl_iterate_phdr.3:25 build/C/man3/dlopen.3:35
39 #: build/C/man5/elf.5:35 build/C/man3/end.3:26 build/C/man8/ld.so.8:5
40 #: build/C/man8/ldconfig.8:22 build/C/man1/ldd.1:14
41 #: build/C/man7/rtld-audit.7:28 build/C/man8/sln.8:25
42 #, no-wrap
43 msgid "Linux Programmer's Manual"
44 msgstr "Linux Programmer's Manual"
45
46 #. type: SH
47 #: build/C/man3/dl_iterate_phdr.3:26 build/C/man3/dlopen.3:36
48 #: build/C/man5/elf.5:36 build/C/man3/end.3:27 build/C/man8/ld.so.8:6
49 #: build/C/man8/ldconfig.8:23 build/C/man1/ldd.1:15
50 #: build/C/man7/rtld-audit.7:29 build/C/man8/sln.8:26
51 #, no-wrap
52 msgid "NAME"
53 msgstr "名前"
54
55 #. type: Plain text
56 #: build/C/man3/dl_iterate_phdr.3:28
57 msgid "dl_iterate_phdr - walk through list of shared objects"
58 msgstr "dl_iterate_phdr - 共有オブジェクトのリストを辿る"
59
60 #. type: SH
61 #: build/C/man3/dl_iterate_phdr.3:28 build/C/man3/dlopen.3:39
62 #: build/C/man5/elf.5:38 build/C/man3/end.3:29 build/C/man8/ld.so.8:8
63 #: build/C/man8/ldconfig.8:25 build/C/man1/ldd.1:17
64 #: build/C/man7/rtld-audit.7:31 build/C/man8/sln.8:28
65 #, no-wrap
66 msgid "SYNOPSIS"
67 msgstr "書式"
68
69 #. type: Plain text
70 #: build/C/man3/dl_iterate_phdr.3:32
71 #, no-wrap
72 msgid ""
73 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
74 "B<#include E<lt>link.hE<gt>>\n"
75 msgstr ""
76 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
77 "B<#include E<lt>link.hE<gt>>\n"
78
79 #. type: Plain text
80 #: build/C/man3/dl_iterate_phdr.3:37
81 #, no-wrap
82 msgid ""
83 "B<int dl_iterate_phdr(>\n"
84 "B<          int (*>I<callback>B<) (struct dl_phdr_info *>I<info>B<,>\n"
85 "B<                           size_t >I<size>B<, void *>I<data>B<,>\n"
86 "B<          void *>I<data>B<;>\n"
87 msgstr ""
88 "B<int dl_iterate_phdr(>\n"
89 "B<          int (*>I<callback>B<) (struct dl_phdr_info *>I<info>B<,>\n"
90 "B<                           size_t >I<size>B<, void *>I<data>B<,>\n"
91 "B<          void *>I<data>B<;>\n"
92
93 #. type: SH
94 #: build/C/man3/dl_iterate_phdr.3:38 build/C/man3/dlopen.3:51
95 #: build/C/man5/elf.5:43 build/C/man3/end.3:35 build/C/man8/ld.so.8:18
96 #: build/C/man8/ldconfig.8:54 build/C/man1/ldd.1:19
97 #: build/C/man7/rtld-audit.7:35 build/C/man8/sln.8:32
98 #, no-wrap
99 msgid "DESCRIPTION"
100 msgstr "説明"
101
102 #. type: Plain text
103 #: build/C/man3/dl_iterate_phdr.3:43
104 msgid ""
105 "The B<dl_iterate_phdr>()  function allows an application to inquire at run "
106 "time to find out which shared objects it has loaded."
107 msgstr ""
108 "B<dl_iterate_phdr>()  関数を使うと、アプリケーションは実行時に どの共有オブ"
109 "ジェクトをロードしたかを見つけることができる。"
110
111 #. type: Plain text
112 #: build/C/man3/dl_iterate_phdr.3:53
113 msgid ""
114 "The B<dl_iterate_phdr>()  function walks through the list of an "
115 "application's shared objects and calls the function I<callback> once for "
116 "each object, until either all shared objects have been processed or "
117 "I<callback> returns a nonzero value."
118 msgstr ""
119 "B<dl_iterate_phdr>()  関数はアプリケーションの共有オブジェクトのリストを辿"
120 "り、 各オブジェクトに対して関数 I<callback> を 1 回ずつ呼び出す。 これは全て"
121 "の共有オブジェクトが処理されるか、 I<callback> が 0 以外の値を返すまで行われ"
122 "る。"
123
124 #. type: Plain text
125 #: build/C/man3/dl_iterate_phdr.3:70
126 msgid ""
127 "Each call to I<callback> receives three arguments: I<info>, which is a "
128 "pointer to a structure containing information about the shared object; "
129 "I<size>, which is the size of the structure pointed to by I<info>; and "
130 "I<data>, which is a copy of whatever value was passed by the calling program "
131 "as the second argument (also named I<data>)  in the call to "
132 "B<dl_iterate_phdr>()."
133 msgstr ""
134 "各々の I<callback> 呼び出しは 3 つの引き数を受け取る: I<info> は共有オブジェ"
135 "クトの情報を保持する構造体へのポインタである。 I<size> は I<info> で指される"
136 "構造体のサイズである。 I<data> は呼び出し元プログラムから B<dl_iterate_phdr>"
137 "()  の呼び出しの (同じく I<data> という名前の) 第 2 引き数として渡される値の"
138 "コピーである。"
139
140 #. type: Plain text
141 #: build/C/man3/dl_iterate_phdr.3:74
142 msgid "The I<info> argument is a structure of the following type:"
143 msgstr "I<info> 引き数は、以下のような型の構造体である。"
144
145 #. type: Plain text
146 #: build/C/man3/dl_iterate_phdr.3:86
147 #, no-wrap
148 msgid ""
149 "struct dl_phdr_info {\n"
150 "    ElfW(Addr)        dlpi_addr;  /* Base address of object */\n"
151 "    const char       *dlpi_name;  /* (Null-terminated) name of\n"
152 "                                     object */\n"
153 "    const ElfW(Phdr) *dlpi_phdr;  /* Pointer to array of\n"
154 "                                     ELF program headers\n"
155 "                                     for this object */\n"
156 "    ElfW(Half)        dlpi_phnum; /* # of items in I<dlpi_phdr> */\n"
157 "};\n"
158 msgstr ""
159 "struct dl_phdr_info {\n"
160 "    ElfW(Addr)        dlpi_addr;  /* オブジェクトのベースアドレス */\n"
161 "    const char       *dlpi_name;  /* (ヌル文字で終端された)\n"
162 "                                     オブジェクト名 */\n"
163 "    const ElfW(Phdr) *dlpi_phdr;  /* このオブジェクトの\n"
164 "                                     ELF プログラムヘッダの\n"
165 "                                     配列へのポインタ */\n"
166 "    ElfW(Half)        dlpi_phnum; /* I<dlpi_phdr> のアイテム数 */\n"
167 "};\n"
168
169 #. type: Plain text
170 #: build/C/man3/dl_iterate_phdr.3:98
171 msgid ""
172 "(The I<ElfW>()  macro definition turns its argument into the name of an ELF "
173 "data type suitable for the hardware architecture.  For example, on a 32-bit "
174 "platform, ElfW(Addr) yields the data type name Elf32_Addr.  Further "
175 "information on these types can be found in the I<E<lt>elf.hE<gt>> and "
176 "I<E<lt>link.hE<gt>> header files.)"
177 msgstr ""
178 "(I<ElfW>()  マクロ定義は引き数をハードウェアアーキテクチャに適した ELF データ"
179 "型の名前に変換する。 たとえば、32 ビットプラットフォームでは ElfW(Addr) は"
180 "データ型名 Elf32_Addr を生成する。 これらの型についての更に詳細な情報は、ヘッ"
181 "ダファイル I<E<lt>elf.hE<gt>> と I<E<lt>link.hE<gt>> にある。"
182
183 #. type: Plain text
184 #: build/C/man3/dl_iterate_phdr.3:109
185 msgid ""
186 "The I<dlpi_addr> field indicates the base address of the shared object (i."
187 "e., the difference between the virtual memory address of the shared object "
188 "and the offset of that object in the file from which it was loaded).  The "
189 "I<dlpi_name> field is a null-terminated string giving the pathname from "
190 "which the shared object was loaded."
191 msgstr ""
192 "I<dlpi_addr> フィールドは共有オブジェクトのベースアドレス (つまり、共有オブ"
193 "ジェクトの仮想メモリアドレスと、 ファイル (このファイルから共有オブジェクトが"
194 "ロードされる) における 共有オブジェクトのオフセットとの差分) を表す。 "
195 "I<dlpi_name> はヌル文字で終端された文字列であり、 このパス名のファイルから"
196 "共有オブジェクトがロードされる。"
197
198 #. type: Plain text
199 #: build/C/man3/dl_iterate_phdr.3:124
200 msgid ""
201 "To understand the meaning of the I<dlpi_phdr> and I<dlpi_phnum> fields, we "
202 "need to be aware that an ELF shared object consists of a number of segments, "
203 "each of which has a corresponding program header describing the segment.  "
204 "The I<dlpi_phdr> field is a pointer to an array of the program headers for "
205 "this shared object.  The I<dlpi_phnum> field indicates the size of this "
206 "array."
207 msgstr ""
208 "I<dlpi_phdr> と I<dlpi_phnum> フィールドの意味を理解するには、 ELF 共有オブ"
209 "ジェクトが幾つかのセグメントから構成されていることと、 各セグメントがそれに対"
210 "応するプログラムヘッダ (そのセグメントを説明する) を持っていることを知ってい"
211 "る必要がある。 I<dlpi_phdr> フィールドは、この共有オブジェクトのプログラム"
212 "ヘッダの配列へのポインタである。 I<dlpi_phnum> は、この配列のサイズを表す。"
213
214 #. type: Plain text
215 #: build/C/man3/dl_iterate_phdr.3:126
216 msgid "These program headers are structures of the following form:"
217 msgstr "これらのプログラムヘッダは以下のような形式の構造体である:"
218
219 #. type: Plain text
220 #: build/C/man3/dl_iterate_phdr.3:139
221 #, no-wrap
222 msgid ""
223 "typedef struct {\n"
224 "    Elf32_Word  p_type;    /* Segment type */\n"
225 "    Elf32_Off   p_offset;  /* Segment file offset */\n"
226 "    Elf32_Addr  p_vaddr;   /* Segment virtual address */\n"
227 "    Elf32_Addr  p_paddr;   /* Segment physical address */\n"
228 "    Elf32_Word  p_filesz;  /* Segment size in file */\n"
229 "    Elf32_Word  p_memsz;   /* Segment size in memory */\n"
230 "    Elf32_Word  p_flags;   /* Segment flags */\n"
231 "    Elf32_Word  p_align;   /* Segment alignment */\n"
232 "} Elf32_Phdr;\n"
233 msgstr ""
234 "typedef struct\n"
235 "{\n"
236 "    Elf32_Word  p_type;    /* セグメントの型 */\n"
237 "    Elf32_Off   p_offset;  /* セグメントのファイルオフセット */\n"
238 "    Elf32_Addr  p_vaddr;   /* セグメントの仮想アドレス */\n"
239 "    Elf32_Addr  p_paddr;   /* セグメントの物理アドレス */\n"
240 "    Elf32_Word  p_filesz;  /* ファイルにおけるセグメントサイズ */\n"
241 "    Elf32_Word  p_memsz;   /* メモリにおけるセグメントサイズ */\n"
242 "    Elf32_Word  p_flags;   /* セグメントフラグ */\n"
243 "    Elf32_Word  p_align;   /* セグメントの配置 (alignment) */\n"
244 "} Elf32_Phdr;\n"
245
246 #. type: Plain text
247 #: build/C/man3/dl_iterate_phdr.3:145
248 msgid ""
249 "Note that we can calculate the location of a particular program header, "
250 "I<x>, in virtual memory using the formula:"
251 msgstr ""
252 "特定のプログラムヘッダ I<x> の仮想メモリにおける位置は、以下の式で計算できる"
253 "点に注意すること:"
254
255 #. type: Plain text
256 #: build/C/man3/dl_iterate_phdr.3:148
257 #, no-wrap
258 msgid "  addr == info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[x].p_vaddr;\n"
259 msgstr "  addr == info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[x].p_vaddr;\n"
260
261 #. type: SH
262 #: build/C/man3/dl_iterate_phdr.3:149
263 #, no-wrap
264 msgid "RETURN VALUE"
265 msgstr "返り値"
266
267 #. type: Plain text
268 #: build/C/man3/dl_iterate_phdr.3:154
269 msgid ""
270 "The B<dl_iterate_phdr>()  function returns whatever value was returned by "
271 "the last call to I<callback>."
272 msgstr ""
273 "B<dl_iterate_phdr>()  関数は最後の I<callback> の呼び出しで返された値を返す。"
274
275 #. type: SH
276 #: build/C/man3/dl_iterate_phdr.3:154
277 #, no-wrap
278 msgid "VERSIONS"
279 msgstr "バージョン"
280
281 #. type: Plain text
282 #: build/C/man3/dl_iterate_phdr.3:157
283 msgid "B<dl_iterate_phdr>()  has been supported in glibc since version 2.2.4."
284 msgstr ""
285 "B<dl_iterate_phdr>()  は glibc のバージョン 2.2.4 以降でサポートされている。"
286
287 #. type: SH
288 #: build/C/man3/dl_iterate_phdr.3:157 build/C/man3/dlopen.3:381
289 #: build/C/man3/end.3:50 build/C/man7/rtld-audit.7:461
290 #, no-wrap
291 msgid "CONFORMING TO"
292 msgstr "準拠"
293
294 #. type: Plain text
295 #: build/C/man3/dl_iterate_phdr.3:161
296 msgid ""
297 "The B<dl_iterate_phdr>()  function is Linux-specific and should be avoided "
298 "in portable applications."
299 msgstr ""
300 "B<dl_iterate_phdr>()  関数は Linux 固有であり、移植を考えたアプリケーションで"
301 "は避けるべきである。"
302
303 #. type: SH
304 #: build/C/man3/dl_iterate_phdr.3:161 build/C/man3/dlopen.3:446
305 #: build/C/man3/end.3:76 build/C/man7/rtld-audit.7:502
306 #, no-wrap
307 msgid "EXAMPLE"
308 msgstr "例"
309
310 #. type: Plain text
311 #: build/C/man3/dl_iterate_phdr.3:166
312 msgid ""
313 "The following program displays a list of pathnames of the shared objects it "
314 "has loaded.  For each shared object, the program lists the virtual addresses "
315 "at which the object's ELF segments are loaded."
316 msgstr ""
317 "以下のプログラムは、共有オブジェクトがロードされた パス名の一覧を表示する。 "
318 "各共有オブジェクトについて、このプログラムは オブジェクトの ELF セグメントが"
319 "ロードされた 仮想アドレスの一覧を表示する。"
320
321 #. type: Plain text
322 #: build/C/man3/dl_iterate_phdr.3:172
323 #, no-wrap
324 msgid ""
325 "#define _GNU_SOURCE\n"
326 "#include E<lt>link.hE<gt>\n"
327 "#include E<lt>stdlib.hE<gt>\n"
328 "#include E<lt>stdio.hE<gt>\n"
329 msgstr ""
330 "#define _GNU_SOURCE\n"
331 "#include E<lt>link.hE<gt>\n"
332 "#include E<lt>stdlib.hE<gt>\n"
333 "#include E<lt>stdio.hE<gt>\n"
334
335 #. type: Plain text
336 #: build/C/man3/dl_iterate_phdr.3:177
337 #, no-wrap
338 msgid ""
339 "static int\n"
340 "callback(struct dl_phdr_info *info, size_t size, void *data)\n"
341 "{\n"
342 "    int j;\n"
343 msgstr ""
344 "static int\n"
345 "callback(struct dl_phdr_info *info, size_t size, void *data)\n"
346 "{\n"
347 "    int j;\n"
348
349 #. type: Plain text
350 #: build/C/man3/dl_iterate_phdr.3:180
351 #, no-wrap
352 msgid ""
353 "    printf(\"name=%s (%d segments)\\en\", info-E<gt>dlpi_name,\n"
354 "        info-E<gt>dlpi_phnum);\n"
355 msgstr ""
356 "    printf(\"name=%s (%d segments)\\en\", info-E<gt>dlpi_name,\n"
357 "        info-E<gt>dlpi_phnum);\n"
358
359 #. type: Plain text
360 #: build/C/man3/dl_iterate_phdr.3:186
361 #, no-wrap
362 msgid ""
363 "    for (j = 0; j E<lt> info-E<gt>dlpi_phnum; j++)\n"
364 "         printf(\"\\et\\et header %2d: address=%10p\\en\", j,\n"
365 "             (void *) (info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[j].p_vaddr));\n"
366 "    return 0;\n"
367 "}\n"
368 msgstr ""
369 "    for (j = 0; j E<lt> info-E<gt>dlpi_phnum; j++)\n"
370 "         printf(\"\\et\\et header %2d: address=%10p\\en\", j,\n"
371 "             (void *) (info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[j].p_vaddr));\n"
372 "    return 0;\n"
373 "}\n"
374
375 #. type: Plain text
376 #: build/C/man3/dl_iterate_phdr.3:191
377 #, no-wrap
378 msgid ""
379 "int\n"
380 "main(int argc, char *argv[])\n"
381 "{\n"
382 "    dl_iterate_phdr(callback, NULL);\n"
383 msgstr ""
384 "int\n"
385 "main(int argc, char *argv[])\n"
386 "{\n"
387 "    dl_iterate_phdr(callback, NULL);\n"
388
389 #. type: Plain text
390 #: build/C/man3/dl_iterate_phdr.3:194 build/C/man3/end.3:107
391 #, no-wrap
392 msgid ""
393 "    exit(EXIT_SUCCESS);\n"
394 "}\n"
395 msgstr ""
396 "    exit(EXIT_SUCCESS);\n"
397 "}\n"
398
399 #. type: SH
400 #: build/C/man3/dl_iterate_phdr.3:195 build/C/man3/dlopen.3:521
401 #: build/C/man5/elf.5:1939 build/C/man3/end.3:108 build/C/man8/ld.so.8:486
402 #: build/C/man8/ldconfig.8:175 build/C/man1/ldd.1:108
403 #: build/C/man7/rtld-audit.7:602 build/C/man8/sln.8:60
404 #, no-wrap
405 msgid "SEE ALSO"
406 msgstr "関連項目"
407
408 #. type: Plain text
409 #: build/C/man3/dl_iterate_phdr.3:202
410 msgid ""
411 "B<ldd>(1), B<objdump>(1), B<readelf>(1), B<dlopen>(3), B<elf>(5), B<ld.so>(8)"
412 msgstr ""
413 "B<ldd>(1), B<objdump>(1), B<readelf>(1), B<dlopen>(3), B<elf>(5), B<ld.so>(8)"
414
415 #. type: Plain text
416 #: build/C/man3/dl_iterate_phdr.3:205
417 msgid ""
418 "I<Executable and Linking Format Specification>, available at various "
419 "locations online."
420 msgstr ""
421 "オンラインのいろいろな場所で入手できる I<Executable and Linking Format "
422 "Specification>"
423
424 #. type: SH
425 #: build/C/man3/dl_iterate_phdr.3:205 build/C/man3/dlopen.3:530
426 #: build/C/man5/elf.5:1963 build/C/man3/end.3:113 build/C/man8/ld.so.8:498
427 #: build/C/man8/ldconfig.8:178 build/C/man1/ldd.1:111
428 #: build/C/man7/rtld-audit.7:607 build/C/man8/sln.8:64
429 #, no-wrap
430 msgid "COLOPHON"
431 msgstr "この文書について"
432
433 #. type: Plain text
434 #: build/C/man3/dl_iterate_phdr.3:212 build/C/man3/dlopen.3:537
435 #: build/C/man5/elf.5:1970 build/C/man3/end.3:120 build/C/man8/ld.so.8:505
436 #: build/C/man8/ldconfig.8:185 build/C/man1/ldd.1:118
437 #: build/C/man7/rtld-audit.7:614 build/C/man8/sln.8:71
438 msgid ""
439 "This page is part of release 3.65 of the Linux I<man-pages> project.  A "
440 "description of the project, and information about reporting bugs, can be "
441 "found at \\%http://www.kernel.org/doc/man-pages/."
442 msgstr ""
443 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.65 の一部\n"
444 "である。プロジェクトの説明とバグ報告に関する情報は\n"
445 "http://www.kernel.org/doc/man-pages/ に書かれている。"
446
447 #. type: TH
448 #: build/C/man3/dlopen.3:35
449 #, no-wrap
450 msgid "DLOPEN"
451 msgstr "DLOPEN"
452
453 #. type: TH
454 #: build/C/man3/dlopen.3:35 build/C/man8/ld.so.8:5
455 #, no-wrap
456 msgid "2014-01-08"
457 msgstr "2014-01-08"
458
459 #. type: TH
460 #: build/C/man3/dlopen.3:35 build/C/man5/elf.5:35 build/C/man7/rtld-audit.7:28
461 #, no-wrap
462 msgid "Linux"
463 msgstr "Linux"
464
465 #. type: Plain text
466 #: build/C/man3/dlopen.3:39
467 msgid ""
468 "dladdr, dlclose, dlerror, dlopen, dlsym, dlvsym - programming interface to "
469 "dynamic linking loader"
470 msgstr ""
471 "dlclose, dlerror, dlopen, dlsym - 動的リンクを行うローダへの プログラミングイ"
472 "ンターフェース"
473
474 #. type: Plain text
475 #: build/C/man3/dlopen.3:41
476 msgid "B<#include E<lt>dlfcn.hE<gt>>"
477 msgstr "B<#include E<lt>dlfcn.hE<gt>>"
478
479 #. type: Plain text
480 #: build/C/man3/dlopen.3:43
481 msgid "B<void *dlopen(const char *>I<filename>B<, int >I<flag>B<);>"
482 msgstr "B<void *dlopen(const char *>I<filename>B<, int >I<flag>B<);>"
483
484 #. type: Plain text
485 #: build/C/man3/dlopen.3:45
486 msgid "B<char *dlerror(void);>"
487 msgstr "B<char *dlerror(void);>"
488
489 #. type: Plain text
490 #: build/C/man3/dlopen.3:47
491 msgid "B<void *dlsym(void *>I<handle>B<, const char *>I<symbol>B<);>"
492 msgstr "B<void *dlsym(void *>I<handle>B<, const char *>I<symbol>B<);>"
493
494 #. type: Plain text
495 #: build/C/man3/dlopen.3:49
496 msgid "B<int dlclose(void *>I<handle>B<);>"
497 msgstr "B<int dlclose(void *>I<handle>B<);>"
498
499 #. type: Plain text
500 #: build/C/man3/dlopen.3:51
501 msgid "Link with I<-ldl>."
502 msgstr "I<-ldl> でリンクする。"
503
504 #. type: Plain text
505 #: build/C/man3/dlopen.3:58
506 msgid ""
507 "The four functions B<dlopen>(), B<dlsym>(), B<dlclose>(), B<dlerror>()  "
508 "implement the interface to the dynamic linking loader."
509 msgstr ""
510 "B<dlopen>(), B<dlsym>(), B<dlclose>(), B<dlerror>()  の 4つの関数は、動的リン"
511 "ク (dynamic linking) を行うローダへの インタフェースを実装したものである。"
512
513 #. type: SS
514 #: build/C/man3/dlopen.3:58
515 #, no-wrap
516 msgid "dlerror()"
517 msgstr "dlerror()"
518
519 #. type: Plain text
520 #: build/C/man3/dlopen.3:71
521 msgid ""
522 "The function B<dlerror>()  returns a human-readable string describing the "
523 "most recent error that occurred from B<dlopen>(), B<dlsym>()  or B<dlclose>"
524 "()  since the last call to B<dlerror>().  It returns NULL if no errors have "
525 "occurred since initialization or since it was last called."
526 msgstr ""
527 "関数 B<dlerror>()  は、前回 B<dlerror>()  が呼び出された後に、 B<dlopen>(), "
528 "B<dlsym>(), B<dlclose>()  のいずれかで最後に発生したエラーについての説明メッ"
529 "セージを返す。 初期化後または前回呼び出された後で、エラーが発生していなけれ"
530 "ば NULL を返す。"
531
532 #. type: SS
533 #: build/C/man3/dlopen.3:71
534 #, no-wrap
535 msgid "dlopen()"
536 msgstr "dlopen()"
537
538 #. type: Plain text
539 #: build/C/man3/dlopen.3:89
540 msgid ""
541 "The function B<dlopen>()  loads the dynamic library file named by the null-"
542 "terminated string I<filename> and returns an opaque \"handle\" for the "
543 "dynamic library.  If I<filename> is NULL, then the returned handle is for "
544 "the main program.  If I<filename> contains a slash (\"/\"), then it is "
545 "interpreted as a (relative or absolute) pathname.  Otherwise, the dynamic "
546 "linker searches for the library as follows (see B<ld.so>(8)  for further "
547 "details):"
548 msgstr ""
549 "関数 B<dlopen>()  は、ヌル終端された文字列 I<filename> で指定されたファイル"
550 "名の動的ライブラリ (dynamic library) をロードし、 その動的ライブラリへの内部"
551 "「ハンドル」を返す。 I<filename> が NULL の場合、メイン・プログラムへのハンド"
552 "ルが返される。 I<filename> がスラッシュ (\"/\") を含む場合、(相対か絶対かの)"
553 "パス名として解釈される。 それ以外の場合、動的リンカは以下の手順でライブラリを"
554 "検索する (詳細は B<ld.so>(8)  を参照):"
555
556 #. type: IP
557 #: build/C/man3/dlopen.3:89 build/C/man3/dlopen.3:93 build/C/man3/dlopen.3:100
558 #: build/C/man3/dlopen.3:104 build/C/man3/dlopen.3:111 build/C/man8/ld.so.8:56
559 #: build/C/man8/ld.so.8:61 build/C/man8/ld.so.8:66 build/C/man8/ld.so.8:70
560 #: build/C/man8/ld.so.8:80
561 #, no-wrap
562 msgid "o"
563 msgstr "o"
564
565 #. type: Plain text
566 #: build/C/man3/dlopen.3:93
567 msgid ""
568 "(ELF only) If the executable file for the calling program contains a "
569 "DT_RPATH tag, and does not contain a DT_RUNPATH tag, then the directories "
570 "listed in the DT_RPATH tag are searched."
571 msgstr ""
572 "(ELF のみ) 呼び出し元プログラムの実行ファイルに DT_RPATH タグが含まれてお"
573 "り、 DT_RUNPATH タグが含まれていない場合、DT_RPATH タグに書かれている ディレ"
574 "クトリ・リストを検索する。"
575
576 #. type: Plain text
577 #: build/C/man3/dlopen.3:100
578 msgid ""
579 "If, at the time that the program was started, the environment variable "
580 "B<LD_LIBRARY_PATH> was defined to contain a colon-separated list of "
581 "directories, then these are searched.  (As a security measure this variable "
582 "is ignored for set-user-ID and set-group-ID programs.)"
583 msgstr ""
584 "プログラムの開始時に環境変数 B<LD_LIBRARY_PATH> にコロン区切りのディレクトリ"
585 "のリストが定義されていれば、 この環境変数に定義されたディレクトリが検索され"
586 "る (セキュリティ上の理由で、この変数は set-UID や set-GID された プログラムの"
587 "場合は無視される)。"
588
589 #. type: Plain text
590 #: build/C/man3/dlopen.3:104
591 msgid ""
592 "(ELF only) If the executable file for the calling program contains a "
593 "DT_RUNPATH tag, then the directories listed in that tag are searched."
594 msgstr ""
595 "(ELF のみ) 呼び出し元プログラムの実行ファイルに DT_RUNPATH タグが含まれて い"
596 "る場合、そのタグに書かれているディレクトリ・リストを検索する。"
597
598 #. type: Plain text
599 #: build/C/man3/dlopen.3:111
600 msgid ""
601 "The cache file I</etc/ld.so.cache> (maintained by B<ldconfig>(8))  is "
602 "checked to see whether it contains an entry for I<filename>."
603 msgstr ""
604 "キャッシュファイル I</etc/ld.so.cache> の中に I<filename> のエントリが入って"
605 "いるかをチェックする (B</etc/ld.so.cache> は B<ldconfig>(8)  によって管理され"
606 "ている)。"
607
608 #. type: Plain text
609 #: build/C/man3/dlopen.3:117
610 msgid "The directories I</lib> and I</usr/lib> are searched (in that order)."
611 msgstr "ディレクトリ I</lib> と I</usr/lib> をこの順番で検索する。"
612
613 #. type: Plain text
614 #: build/C/man3/dlopen.3:123
615 msgid ""
616 "If the library has dependencies on other shared libraries, then these are "
617 "also automatically loaded by the dynamic linker using the same rules.  (This "
618 "process may occur recursively, if those libraries in turn have dependencies, "
619 "and so on.)"
620 msgstr ""
621 "そのライブラリが他の共有ライブラリに依存している場合は、 依存しているライブラ"
622 "リも動的リンカが同じ検索ルールに基づいて 自動的にロードする (それらのライブラ"
623 "リにさらに依存関係がある場合などは この処理は再帰的に行われる)。"
624
625 #. type: Plain text
626 #: build/C/man3/dlopen.3:126
627 msgid "One of the following two values must be included in I<flag>:"
628 msgstr "I<flag> には以下の 2 つの値のいずれかを含めなければならない:"
629
630 #. type: TP
631 #: build/C/man3/dlopen.3:126
632 #, no-wrap
633 msgid "B<RTLD_LAZY>"
634 msgstr "B<RTLD_LAZY>"
635
636 #. type: Plain text
637 #: build/C/man3/dlopen.3:134
638 msgid ""
639 "Perform lazy binding.  Only resolve symbols as the code that references them "
640 "is executed.  If the symbol is never referenced, then it is never resolved.  "
641 "(Lazy binding is performed only for function references; references to "
642 "variables are always immediately bound when the library is loaded.)"
643 msgstr ""
644 "lazy binding (手抜きなシンボルの結び付け) が行う。 シンボルの解決はそのシンボ"
645 "ルを参照するコードが実行されるときにのみ 行われる。シンボルが一度も参照されな"
646 "かった場合には、そのシンボルは 解決されないままとなる。 (lazy binding は関数"
647 "参照についてのみ実施される; 変数への参照は常に ライブラリがロードされた時点で"
648 "直ちに解決される。)"
649
650 #. type: TP
651 #: build/C/man3/dlopen.3:134
652 #, no-wrap
653 msgid "B<RTLD_NOW>"
654 msgstr "B<RTLD_NOW>"
655
656 #. type: Plain text
657 #: build/C/man3/dlopen.3:143
658 msgid ""
659 "If this value is specified, or the environment variable B<LD_BIND_NOW> is "
660 "set to a nonempty string, all undefined symbols in the library are resolved "
661 "before B<dlopen>()  returns.  If this cannot be done, an error is returned."
662 msgstr ""
663 "この値が指定されるか、環境変数 B<LD_BIND_NOW> に空でない文字列が設定された場"
664 "合、 ライブラリ中の未定義のシンボルを全て解決してから B<dlopen>()  は復帰す"
665 "る。解決できなかったときにはエラーが返される。"
666
667 #. type: Plain text
668 #: build/C/man3/dlopen.3:146
669 msgid "Zero or more of the following values may also be ORed in I<flag>:"
670 msgstr ""
671 "以下の値のうち 0 個以上を論理和 (OR) の形で I<flag> に追加することもできる:"
672
673 #. type: TP
674 #: build/C/man3/dlopen.3:146
675 #, no-wrap
676 msgid "B<RTLD_GLOBAL>"
677 msgstr "B<RTLD_GLOBAL>"
678
679 #. type: Plain text
680 #: build/C/man3/dlopen.3:150
681 msgid ""
682 "The symbols defined by this library will be made available for symbol "
683 "resolution of subsequently loaded libraries."
684 msgstr ""
685 "このライブラリで定義されているシンボルが、これより後でロードされる ライブラリ"
686 "のシンボル解決で利用できるようになる。"
687
688 #. type: TP
689 #: build/C/man3/dlopen.3:150
690 #, no-wrap
691 msgid "B<RTLD_LOCAL>"
692 msgstr "B<RTLD_LOCAL>"
693
694 #. type: Plain text
695 #: build/C/man3/dlopen.3:157
696 msgid ""
697 "This is the converse of B<RTLD_GLOBAL>, and the default if neither flag is "
698 "specified.  Symbols defined in this library are not made available to "
699 "resolve references in subsequently loaded libraries."
700 msgstr ""
701 "このフラグは B<RTLD_GLOBAL> の反対の意味であり、どちらのフラグも指定されな"
702 "かった場合は こちらがデフォルトとなる。 このライブラリで定義されているシンボ"
703 "ルは、これより後でロードされる ライブラリでのシンボル参照で利用できない。"
704
705 #. type: TP
706 #: build/C/man3/dlopen.3:157
707 #, no-wrap
708 msgid "B<RTLD_NODELETE> (since glibc 2.2)"
709 msgstr "B<RTLD_NODELETE> (glibc 2.2 以降)"
710
711 #.  (But it is present on Solaris.)
712 #. type: Plain text
713 #: build/C/man3/dlopen.3:167
714 msgid ""
715 "Do not unload the library during B<dlclose>().  Consequently, the library's "
716 "static variables are not reinitialized if the library is reloaded with "
717 "B<dlopen>()  at a later time.  This flag is not specified in POSIX.1-2001."
718 msgstr ""
719 "B<dlclose>()  中にそのライブラリをアンロードしない。 そのため、同じライブラリ"
720 "をこれ以降に B<dlopen>()  で再度ロードした場合に、ライブラリ内の静的変数は再"
721 "初期化されない。 このフラグは POSIX.1-2001 では規定されていない。"
722
723 #. type: TP
724 #: build/C/man3/dlopen.3:167
725 #, no-wrap
726 msgid "B<RTLD_NOLOAD> (since glibc 2.2)"
727 msgstr "B<RTLD_NOLOAD> (glibc 2.2 以降)"
728
729 #.  (But it is present on Solaris.)
730 #. type: Plain text
731 #: build/C/man3/dlopen.3:182
732 msgid ""
733 "Don't load the library.  This can be used to test if the library is already "
734 "resident (B<dlopen>()  returns NULL if it is not, or the library's handle if "
735 "it is resident).  This flag can also be used to promote the flags on a "
736 "library that is already loaded.  For example, a library that was previously "
737 "loaded with B<RTLD_LOCAL> can be reopened with B<RTLD_NOLOAD\\ |\\ "
738 "RTLD_GLOBAL>.  This flag is not specified in POSIX.1-2001."
739 msgstr ""
740 "そのライブラリをロードしない。 このフラグはそのライブラリがすでに組み込まれて"
741 "いるかを検査するのに 利用できる (B<dlopen>()  は、ライブラリが組み込まれてい"
742 "なければ NULL を返し、 すでに組み込まれていればそのライブラリのハンドルを返"
743 "す)。 また、すでにロードされているライブラリのフラグを昇格させるのにも 利用で"
744 "きる。例えば、過去に B<RTLD_LOCAL> でロードしたライブラリを B<RTLD_NOLOAD\\ |"
745 "\\ RTLD_GLOBAL> で再オープンすることができる。 このフラグは POSIX.1-2001 では"
746 "規定されていない。"
747
748 #. type: TP
749 #: build/C/man3/dlopen.3:182
750 #, no-wrap
751 msgid "B<RTLD_DEEPBIND> (since glibc 2.3.4)"
752 msgstr "B<RTLD_DEEPBIND> (glibc 2.3.4 以降)"
753
754 #.  Inimitably described by UD in
755 #.  http://sources.redhat.com/ml/libc-hacker/2004-09/msg00083.html.
756 #. type: Plain text
757 #: build/C/man3/dlopen.3:192
758 msgid ""
759 "Place the lookup scope of the symbols in this library ahead of the global "
760 "scope.  This means that a self-contained library will use its own symbols in "
761 "preference to global symbols with the same name contained in libraries that "
762 "have already been loaded.  This flag is not specified in POSIX.1-2001."
763 msgstr ""
764 "このライブラリ内のシンボルの参照領域をグローバル領域よりも前に配置する。 つま"
765 "り、内蔵型のライブラリでは、すでにロードされたライブラリに含まれる 同じ名前の"
766 "グローバルなシンボルよりも自ライブラリ内のシンボルが優先して 使われる。 この"
767 "フラグは POSIX.1-2001 では規定されていない。"
768
769 #. type: Plain text
770 #: build/C/man3/dlopen.3:204
771 msgid ""
772 "If I<filename> is NULL, then the returned handle is for the main program.  "
773 "When given to B<dlsym>(), this handle causes a search for a symbol in the "
774 "main program, followed by all shared libraries loaded at program startup, "
775 "and then all shared libraries loaded by B<dlopen>()  with the flag "
776 "B<RTLD_GLOBAL>."
777 msgstr ""
778 "I<filename> が NULL である場合は、 返されるハンドルはメイン・プログラムのもの"
779 "になる。 このハンドルが B<dlsym>()  に渡されると、シンボルの検索は、メイン・"
780 "プログラム内、 プログラムの起動時にロードされる全ての共有ライブラリ、 "
781 "B<dlopen>()  によって B<RTLD_GLOBAL> フラグ付きでロードされた全ての共有ライブ"
782 "ラリ、の順序で行われる。"
783
784 #. type: Plain text
785 #: build/C/man3/dlopen.3:214
786 msgid ""
787 "External references in the library are resolved using the libraries in that "
788 "library's dependency list and any other libraries previously opened with the "
789 "B<RTLD_GLOBAL> flag.  If the executable was linked with the flag \"-rdynamic"
790 "\" (or, synonymously, \"--export-dynamic\"), then the global symbols in the "
791 "executable will also be used to resolve references in a dynamically loaded "
792 "library."
793 msgstr ""
794 "オープンされたライブラリ中での外部参照は、 そのライブラリの依存リストにあるラ"
795 "イブラリか、 B<RTLD_GLOBAL> フラグ付きで既にオープンされているライブラリを"
796 "使って解決される。 実行ファイルが \"-rdynamic\" フラグ (\"--export-dynamic\" "
797 "も同義)  付きでリンクされている場合は、実行ファイル中のグローバルシンボル"
798 "も、 動的にロードされるライブラリ内の参照解決に用いられる。"
799
800 #. type: Plain text
801 #: build/C/man3/dlopen.3:232
802 msgid ""
803 "If the same library is loaded again with B<dlopen>(), the same file handle "
804 "is returned.  The dl library maintains reference counts for library handles, "
805 "so a dynamic library is not deallocated until B<dlclose>()  has been called "
806 "on it as many times as B<dlopen>()  has succeeded on it.  The B<_init>()  "
807 "routine, if present, is called only once.  But a subsequent call with "
808 "B<RTLD_NOW> may force symbol resolution for a library earlier loaded with "
809 "B<RTLD_LAZY>."
810 msgstr ""
811 "同じライブラリが B<dlopen>()  によって再度ロードされた場合には、同じファイル"
812 "ハンドルが返される。 dl ライブラリはライブラリハンドルのリンク数を管理してい"
813 "る。 したがって動的ライブラリは B<dlclose>()  が B<dlopen>()  と同じ回数だけ"
814 "呼び出されない限りアンロードされない。 B<_init>()  ルーチンは一度だけ呼び出さ"
815 "れる (B<_init>()  が存在する場合のみ)。 B<RTLD_NOW> が指定されて B<dlopen>"
816 "()  が呼び出された場合、 B<RTLD_LAZY> で以前にロードされたライブラリのシンボ"
817 "ル解決が実行されることがある。"
818
819 #. type: Plain text
820 #: build/C/man3/dlopen.3:236
821 msgid "If B<dlopen>()  fails for any reason, it returns NULL."
822 msgstr "B<dlopen>()  は、何らかの理由で失敗すると NULL を返す。"
823
824 #. type: SS
825 #: build/C/man3/dlopen.3:236
826 #, no-wrap
827 msgid "dlsym()"
828 msgstr "dlsym()"
829
830 #. type: Plain text
831 #: build/C/man3/dlopen.3:265
832 msgid ""
833 "The function B<dlsym>()  takes a \"handle\" of a dynamic library returned by "
834 "B<dlopen>()  and the null-terminated symbol name, returning the address "
835 "where that symbol is loaded into memory.  If the symbol is not found, in the "
836 "specified library or any of the libraries that were automatically loaded by "
837 "B<dlopen>()  when that library was loaded, B<dlsym>()  returns NULL.  (The "
838 "search performed by B<dlsym>()  is breadth first through the dependency tree "
839 "of these libraries.)  Since the value of the symbol could actually be NULL "
840 "(so that a NULL return from B<dlsym>()  need not indicate an error), the "
841 "correct way to test for an error is to call B<dlerror>()  to clear any old "
842 "error conditions, then call B<dlsym>(), and then call B<dlerror>()  again, "
843 "saving its return value into a variable, and check whether this saved value "
844 "is not NULL."
845 msgstr ""
846 "関数 B<dlsym>()  は、 B<dlopen>()  が返した動的ライブラリの「ハンドル」と、 "
847 "NULL 終端されたシンボル名の文字列を引き数に取り、 そのシンボルがロードされた"
848 "メモリのアドレスを返す。 シンボルが、指定されたライブラリと、指定されたライブ"
849 "ラリがロードされる際に B<dlopen>()  が自動的にロードしてライブラリのいずれに"
850 "も見つからない場合には、 B<dlsym>()  は NULL を返す (B<dlsym>()  による検索"
851 "は、これらのライブラリの依存関係のツリーを先頭から 辿って行われる)。 実際には"
852 "シンボルの値自体が NULL になることもある (そのため、 B<dlsym>()  の返り値が "
853 "NULL であったとしても必ずしもエラーという訳ではない)。 エラーかどうかを確認す"
854 "る正しい方法は以下の通りである: B<dlerror>()  を呼び出して以前のエラー状態を"
855 "クリアしてから、 B<dlsym>()  を呼び出す。その後でもう一度 B<dlerror>()  を呼"
856 "び出して、 B<dlerror>()  の返り値を変数に保存し、保存した値が NULL であるか判"
857 "定する。"
858
859 #. type: Plain text
860 #: build/C/man3/dlopen.3:277
861 msgid ""
862 "There are two special pseudo-handles, B<RTLD_DEFAULT> and B<RTLD_NEXT>.  The "
863 "former will find the first occurrence of the desired symbol using the "
864 "default library search order.  The latter will find the next occurrence of a "
865 "function in the search order after the current library.  This allows one to "
866 "provide a wrapper around a function in another shared library."
867 msgstr ""
868 "B<RTLD_DEFAULT> と B<RTLD_NEXT> という二つの特別な擬似ハンドルがある。 "
869 "B<RTLD_DEFAULT> は、デフォルトのライブラリ検索順序にしたがって、 検索対象のシ"
870 "ンボルが最初に現れるところを探す。 B<RTLD_NEXT> は、ライブラリ検索順序の中で"
871 "現在のライブラリ以降で最初に 関数が現れるところを探す。この機能を使うことで、"
872 "別の共有ライブラリの 関数へのラッパーを提供することができる。"
873
874 #. type: SS
875 #: build/C/man3/dlopen.3:277
876 #, no-wrap
877 msgid "dlclose()"
878 msgstr "dlclose()"
879
880 #. type: Plain text
881 #: build/C/man3/dlopen.3:284
882 msgid ""
883 "The function B<dlclose>()  decrements the reference count on the dynamic "
884 "library handle I<handle>.  If the reference count drops to zero and no other "
885 "loaded libraries use symbols in it, then the dynamic library is unloaded."
886 msgstr ""
887 "関数 B<dlclose>()  は動的ライブラリのハンドル I<handle> の参照カウントを 1 減"
888 "らす。参照カウントが 0 になり、ロードされている 他のライブラリからそのライブ"
889 "ラリ内のシンボルが使われていなければ、 その動的ライブラリをアンロードする。"
890
891 #. type: Plain text
892 #: build/C/man3/dlopen.3:288
893 msgid "The function B<dlclose>()  returns 0 on success, and nonzero on error."
894 msgstr ""
895 "関数 B<dlclose>()  は、成功した場合は 0 を返し、エラーの場合 0 以外を返す。"
896
897 #. type: SS
898 #: build/C/man3/dlopen.3:288
899 #, no-wrap
900 msgid "The obsolete symbols _init() and _fini()"
901 msgstr "廃止されたシンボル _init() と _fini()"
902
903 #. type: Plain text
904 #: build/C/man3/dlopen.3:306
905 msgid ""
906 "The linker recognizes special symbols B<_init> and B<_fini>.  If a dynamic "
907 "library exports a routine named B<_init>(), then that code is executed after "
908 "the loading, before B<dlopen>()  returns.  If the dynamic library exports a "
909 "routine named B<_fini>(), then that routine is called just before the "
910 "library is unloaded.  In case you need to avoid linking against the system "
911 "startup files, this can be done by using the B<gcc>(1)  I<-nostartfiles> "
912 "command-line option."
913 msgstr ""
914 "リンカは B<_init> と B<_fini> を特別なシンボルと解釈する。 ある動的ライブラリ"
915 "で B<_init>()  という名前のルーチンがエクスポートされていれば、 そのコード"
916 "は、ライブラリのロード後、かつ B<dlopen>()  が復帰する前に実行される。 その動"
917 "的ライブラリで B<_fini>()  という名前のルーチンがエクスポートされていれば、 "
918 "ライブラリがアンロードされる直前にそのルーチンが呼び出される。 システムの起動"
919 "ファイルに対するリンクを避ける必要がある場合、 B<gcc>(1)  のコマンドラインに "
920 "I<-nostartfiles> オプションを指定すればよい。"
921
922 #.  void _init(void) __attribute__((constructor));
923 #.  void _fini(void) __attribute__((destructor));
924 #. type: Plain text
925 #: build/C/man3/dlopen.3:317
926 msgid ""
927 "Using these routines, or the gcc B<-nostartfiles> or B<-nostdlib> options, "
928 "is not recommended.  Their use may result in undesired behavior, since the "
929 "constructor/destructor routines will not be executed (unless special "
930 "measures are taken)."
931 msgstr ""
932 "このルーチンや、gcc のオプション B<-nostartfiles> や B<-nostdlib> は使用しな"
933 "いことを推奨する。 これらを使うと、望ましくない動作をすることがある。 なぜな"
934 "ら、(特別な措置が行われない限り) これらの constructor/destructor ルーチンは実"
935 "行されないからである。"
936
937 #. type: Plain text
938 #: build/C/man3/dlopen.3:329
939 msgid ""
940 "Instead, libraries should export routines using the B<__attribute__"
941 "((constructor))> and B<__attribute__((destructor))> function attributes.  "
942 "See the gcc info pages for information on these.  Constructor routines are "
943 "executed before B<dlopen>()  returns, and destructor routines are executed "
944 "before B<dlclose>()  returns."
945 msgstr ""
946 "代わりに、ライブラリは B<__attribute__((constructor))> や B<__attribute__"
947 "((destructor))> の関数属性を使って必要なルーチンをエクスポートするのがよい。 "
948 "これらについては gcc の info ページを参照のこと。 constructor ルーチンは "
949 "B<dlopen>()  が復帰する前に実行され、 destructor ルーチンは B<dlclose>()  が"
950 "復帰する前に実行される。"
951
952 #. type: SS
953 #: build/C/man3/dlopen.3:329
954 #, no-wrap
955 msgid "Glibc extensions: dladdr() and dlvsym()"
956 msgstr "GNU での拡張: dladdr() と dlvsym()"
957
958 #. type: Plain text
959 #: build/C/man3/dlopen.3:331
960 msgid "Glibc adds two functions not described by POSIX, with prototypes"
961 msgstr ""
962 "glibc では POSIX には記載されていない関数が 2つ追加されている。 プロトタイプ"
963 "は以下の通りである。"
964
965 #. type: Plain text
966 #: build/C/man3/dlopen.3:335
967 #, no-wrap
968 msgid ""
969 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
970 "B<#include E<lt>dlfcn.hE<gt>>\n"
971 msgstr ""
972 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
973 "B<#include E<lt>dlfcn.hE<gt>>\n"
974
975 #. type: Plain text
976 #: build/C/man3/dlopen.3:337
977 #, no-wrap
978 msgid "B<int dladdr(void *>I<addr>B<, Dl_info *>I<info>B<);>\n"
979 msgstr "B<int dladdr(void *>I<addr>B<, Dl_info *>I<info>B<);>\n"
980
981 #. type: Plain text
982 #: build/C/man3/dlopen.3:339
983 #, no-wrap
984 msgid "B<void *dlvsym(void *>I<handle>B<, char *>I<symbol>B<, char *>I<version>B<);>\n"
985 msgstr "B<void *dlvsym(void *>I<handle>B<, char *>I<symbol>B<, char *>I<version>B<);>\n"
986
987 #. type: Plain text
988 #: build/C/man3/dlopen.3:348
989 msgid ""
990 "The function B<dladdr>()  takes a function pointer and tries to resolve name "
991 "and file where it is located.  Information is stored in the I<Dl_info> "
992 "structure:"
993 msgstr ""
994 "関数 B<dladdr>()  は、関数のポインタを引き数にとり、関数の名前と関数が定義さ"
995 "れている ファイルの解決を試みる。情報は I<Dl_info> 構造体に格納される。"
996
997 #. type: Plain text
998 #: build/C/man3/dlopen.3:361
999 #, no-wrap
1000 msgid ""
1001 "typedef struct {\n"
1002 "    const char *dli_fname;  /* Pathname of shared object that\n"
1003 "                               contains address */\n"
1004 "    void       *dli_fbase;  /* Address at which shared object\n"
1005 "                               is loaded */\n"
1006 "    const char *dli_sname;  /* Name of symbol whose definition\n"
1007 "                               overlaps I<addr> */\n"
1008 "    void       *dli_saddr;  /* Exact address of symbol named\n"
1009 "                               in I<dli_sname> */\n"
1010 "} Dl_info;\n"
1011 msgstr ""
1012 "typedef struct {\n"
1013 "    const char *dli_fname;  /* Pathname of shared object that\n"
1014 "                               contains address */\n"
1015 "    void       *dli_fbase;  /* Address at which shared object\n"
1016 "                               is loaded */\n"
1017 "    const char *dli_sname;  /* Name of symbol whose definition\n"
1018 "                               overlaps I<addr> */\n"
1019 "    void       *dli_saddr;  /* Exact address of symbol named\n"
1020 "                               in I<dli_sname> */\n"
1021 "} Dl_info;\n"
1022
1023 #. type: Plain text
1024 #: build/C/man3/dlopen.3:371
1025 msgid ""
1026 "If no symbol matching I<addr> could be found, then I<dli_sname> and "
1027 "I<dli_saddr> are set to NULL."
1028 msgstr ""
1029 "I<addr> にマッチするシンボルが見つからなかった場合、 I<dli_sname> と "
1030 "I<dli_saddr> は NULL にセットされる。"
1031
1032 #. type: Plain text
1033 #: build/C/man3/dlopen.3:374
1034 msgid "B<dladdr>()  returns 0 on error, and nonzero on success."
1035 msgstr "B<dladdr>()  は、エラー時には 0 を返し、成功した場合は 0 以外を返す。"
1036
1037 #. type: Plain text
1038 #: build/C/man3/dlopen.3:381
1039 msgid ""
1040 "The function B<dlvsym>(), provided by glibc since version 2.1, does the same "
1041 "as B<dlsym>()  but takes a version string as an additional argument."
1042 msgstr ""
1043 "関数 B<dlvsym>()  は B<dlsym>()  と同じ動作をするが、バージョンの文字列を渡す"
1044 "引き数が 追加されている点が異なる (B<dlvsym>()  はバージョン 2.1 以降の "
1045 "glibc で提供されている)。"
1046
1047 #. type: Plain text
1048 #: build/C/man3/dlopen.3:388
1049 msgid ""
1050 "POSIX.1-2001 describes B<dlclose>(), B<dlerror>(), B<dlopen>(), and B<dlsym>"
1051 "()."
1052 msgstr ""
1053 "POSIX.1-2003 には B<dlclose>(), B<dlerror>(), B<dlopen>(), B<dlsym>().  の記"
1054 "載がある。"
1055
1056 #. type: SH
1057 #: build/C/man3/dlopen.3:388 build/C/man5/elf.5:1912 build/C/man3/end.3:53
1058 #: build/C/man8/ld.so.8:480 build/C/man1/ldd.1:74
1059 #: build/C/man7/rtld-audit.7:467
1060 #, no-wrap
1061 msgid "NOTES"
1062 msgstr "注意"
1063
1064 #.  .LP
1065 #.  The string returned by
1066 #.  .BR dlerror ()
1067 #.  should not be modified.
1068 #.  Some systems give the prototype as
1069 #.  .sp
1070 #.  .in +5
1071 #.  .B "const char *dlerror(void);"
1072 #.  .in
1073 #. type: Plain text
1074 #: build/C/man3/dlopen.3:407
1075 msgid ""
1076 "The symbols B<RTLD_DEFAULT> and B<RTLD_NEXT> are defined by I<E<lt>dlfcn."
1077 "hE<gt>> only when B<_GNU_SOURCE> was defined before including it."
1078 msgstr ""
1079 "シンボル B<RTLD_DEFAULT> と B<RTLD_NEXT> は I<E<lt>dlfcn.hE<gt>> で定義されて"
1080 "おり、 I<E<lt>dlfcn.hE<gt>> のインクルード前に B<_GNU_SOURCE> が定義されてい"
1081 "る場合のみ有効となる。"
1082
1083 #. type: Plain text
1084 #: build/C/man3/dlopen.3:412
1085 msgid ""
1086 "Since glibc 2.2.3, B<atexit>(3)  can be used to register an exit handler "
1087 "that is automatically called when a library is unloaded."
1088 msgstr ""
1089 "glibc 2.2.3 以降では、 B<atexit>(3)  を使って、ライブラリがアンロードされる際"
1090 "に自動的に呼び出される 終了ハンドラ (exit handler) を登録することができる。"
1091
1092 #. type: SS
1093 #: build/C/man3/dlopen.3:412
1094 #, no-wrap
1095 msgid "History"
1096 msgstr "歴史"
1097
1098 #. type: Plain text
1099 #: build/C/man3/dlopen.3:418
1100 msgid ""
1101 "The dlopen interface standard comes from SunOS.  That system also has "
1102 "B<dladdr>(), but not B<dlvsym>()."
1103 msgstr ""
1104 "dlopen インターフェースの標準は SunOS をもとにしている。 SunOS には B<dladdr>"
1105 "()  もあったが、 B<dlvsym>()  はなかった。"
1106
1107 #. type: SH
1108 #: build/C/man3/dlopen.3:418 build/C/man1/ldd.1:91
1109 #: build/C/man7/rtld-audit.7:492
1110 #, no-wrap
1111 msgid "BUGS"
1112 msgstr "バグ"
1113
1114 #. type: Plain text
1115 #: build/C/man3/dlopen.3:430
1116 msgid ""
1117 "Sometimes, the function pointers you pass to B<dladdr>()  may surprise you.  "
1118 "On some architectures (notably i386 and x86_64), I<dli_fname> and "
1119 "I<dli_fbase> may end up pointing back at the object from which you called "
1120 "B<dladdr>(), even if the function used as an argument should come from a "
1121 "dynamically linked library."
1122 msgstr ""
1123 "時として、 B<dladdr>()  に渡した関数ポインタは驚くような値になることがある。 "
1124 "いくつかのアーキテクチャ (特に i386 と x86_64) では、 引き数として使用した関"
1125 "数が動的リンクライブラリで定義されるもので あったとしても、 I<dli_fname> と "
1126 "I<dli_fbase> が B<dladdr>()  を呼び出したオブジェクトを参照した状態で終わって"
1127 "いることがある。"
1128
1129 #. type: Plain text
1130 #: build/C/man3/dlopen.3:446
1131 msgid ""
1132 "The problem is that the function pointer will still be resolved at compile "
1133 "time, but merely point to the I<plt> (Procedure Linkage Table)  section of "
1134 "the original object (which dispatches the call after asking the dynamic "
1135 "linker to resolve the symbol).  To work around this, you can try to compile "
1136 "the code to be position-independent: then, the compiler cannot prepare the "
1137 "pointer at compile time anymore and today's B<gcc>(1)  will generate code "
1138 "that just loads the final symbol address from the I<got> (Global Offset "
1139 "Table) at run time before passing it to B<dladdr>()."
1140 msgstr ""
1141 "問題は、関数ポインタの解決は今なおコンパイル時に行われるが、 そのポインタは元"
1142 "のオブジェクトの I<plt> (Procedure Linkage Table) セクションを指しているだけ"
1143 "だという点にある (オブジェクト自体は、ダイナミックリンカによってシンボルの解"
1144 "決が行われた後に、 関数の呼び出しを行う)。 これに対処する方法としては、 コー"
1145 "ドを position-independent でコンパイルするという方法がある。 そうすると、コン"
1146 "パイラはコンパイル時にポインタを用意することができず、 今日の B<gcc>(1)  で"
1147 "は、実行時に B<dladdr>()  に関数ポインタを渡す前に、 I<got> (Global Offset "
1148 "Table) から最終的なシンボルのアドレスをロードするだけの コードが生成される。"
1149
1150 #. type: Plain text
1151 #: build/C/man3/dlopen.3:448
1152 msgid "Load the math library, and print the cosine of 2.0:"
1153 msgstr "math ライブラリをロードし、2.0 の余弦を表示する"
1154
1155 #. type: Plain text
1156 #: build/C/man3/dlopen.3:453
1157 #, no-wrap
1158 msgid ""
1159 "#include E<lt>stdio.hE<gt>\n"
1160 "#include E<lt>stdlib.hE<gt>\n"
1161 "#include E<lt>dlfcn.hE<gt>\n"
1162 msgstr ""
1163 "#include E<lt>stdio.hE<gt>\n"
1164 "#include E<lt>stdlib.hE<gt>\n"
1165 "#include E<lt>dlfcn.hE<gt>\n"
1166
1167 #. type: Plain text
1168 #: build/C/man3/dlopen.3:460
1169 #, no-wrap
1170 msgid ""
1171 "int\n"
1172 "main(int argc, char **argv)\n"
1173 "{\n"
1174 "    void *handle;\n"
1175 "    double (*cosine)(double);\n"
1176 "    char *error;\n"
1177 msgstr ""
1178 "int\n"
1179 "main(int argc, char **argv)\n"
1180 "{\n"
1181 "    void *handle;\n"
1182 "    double (*cosine)(double);\n"
1183 "    char *error;\n"
1184
1185 #. type: Plain text
1186 #: build/C/man3/dlopen.3:466
1187 #, no-wrap
1188 msgid ""
1189 "    handle = dlopen(\"libm.so\", RTLD_LAZY);\n"
1190 "    if (!handle) {\n"
1191 "        fprintf(stderr, \"%s\\en\", dlerror());\n"
1192 "        exit(EXIT_FAILURE);\n"
1193 "    }\n"
1194 msgstr ""
1195 "    handle = dlopen(\"libm.so\", RTLD_LAZY);\n"
1196 "    if (!handle) {\n"
1197 "        fprintf(stderr, \"%s\\en\", dlerror());\n"
1198 "        exit(EXIT_FAILURE);\n"
1199 "    }\n"
1200
1201 #. type: Plain text
1202 #: build/C/man3/dlopen.3:468
1203 #, no-wrap
1204 msgid "    dlerror();    /* Clear any existing error */\n"
1205 msgstr "    dlerror();    /* Clear any existing error */\n"
1206
1207 #. type: Plain text
1208 #: build/C/man3/dlopen.3:470
1209 #, no-wrap
1210 msgid "    cosine = (double (*)(double)) dlsym(handle, \"cos\");\n"
1211 msgstr "    cosine = (double (*)(double)) dlsym(handle, \"cos\");\n"
1212
1213 #. type: Plain text
1214 #: build/C/man3/dlopen.3:475
1215 #, no-wrap
1216 msgid ""
1217 "    /* According to the ISO C standard, casting between function\n"
1218 "       pointers and 'void *', as done above, produces undefined results.\n"
1219 "       POSIX.1-2003 and POSIX.1-2008 accepted this state of affairs and\n"
1220 "       proposed the following workaround:\n"
1221 msgstr ""
1222 "    /* ISO の C 標準によれば、上のような、関数ポインタと 'void *' 間の\n"
1223 "       キャストを行った場合に得られる結果は不定である。\n"
1224 "       POSIX.1-2003 と POSIX.1-2008 では、この状況は認められており、\n"
1225 "       以下のようなワークアラウンドが提案されている。\n"
1226
1227 #. type: Plain text
1228 #: build/C/man3/dlopen.3:477
1229 #, no-wrap
1230 msgid "           *(void **) (&cosine) = dlsym(handle, \"cos\");\n"
1231 msgstr "           *(void **) (&cosine) = dlsym(handle, \"cos\");\n"
1232
1233 #. type: Plain text
1234 #: build/C/man3/dlopen.3:480
1235 #, no-wrap
1236 msgid ""
1237 "       This (clumsy) cast conforms with the ISO C standard and will\n"
1238 "       avoid any compiler warnings.\n"
1239 msgstr ""
1240 "       この (ぶかっこうな) キャストは ISO の C 標準に従っており、\n"
1241 "       コンパイラの警告を避けることができる。\n"
1242
1243 #.  http://pubs.opengroup.org/onlinepubs/009695399/functions/dlsym.html#tag_03_112_08
1244 #.  http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlsym.html#tag_16_96_07
1245 #.  http://austingroupbugs.net/view.php?id=74
1246 #. type: Plain text
1247 #: build/C/man3/dlopen.3:489
1248 #, no-wrap
1249 msgid ""
1250 "       The 2013 Technical Corrigendum to POSIX.1-2008 (a.k.a.\n"
1251 "       POSIX.1-2013) improved matters by requiring that conforming\n"
1252 "       implementations support casting 'void *' to a function pointer.\n"
1253 "       Nevertheless, some compilers (e.g., gcc with the '-pedantic'\n"
1254 "       option) may complain about the cast used in this program. */\n"
1255 msgstr ""
1256 "       POSIX.1-2008 の 2013 Technical Corrigendum (別名 POSIX.1-2013)\n"
1257 "       では、 POSIX に準拠する実装では 'void *' から関数ポインタへの\n"
1258 "       キャストをサポートすることが要求されるようになり、状況が改善\n"
1259 "       された。にもかかわらず、('-pedantic' オプションを指定した gcc\n"
1260 "       などの) いくつかのコンパイラは、このプログラムで使用されている\n"
1261 "       キャストについて文句を言うのだ。\n"
1262
1263 #. type: Plain text
1264 #: build/C/man3/dlopen.3:495
1265 #, no-wrap
1266 msgid ""
1267 "    error = dlerror();\n"
1268 "    if (error != NULL) {\n"
1269 "        fprintf(stderr, \"%s\\en\", error);\n"
1270 "        exit(EXIT_FAILURE);\n"
1271 "    }\n"
1272 msgstr ""
1273 "    error = dlerror();\n"
1274 "    if (error != NULL) {\n"
1275 "        fprintf(stderr, \"%s\\en\", error);\n"
1276 "        exit(EXIT_FAILURE);\n"
1277 "    }\n"
1278
1279 #. type: Plain text
1280 #: build/C/man3/dlopen.3:500
1281 #, no-wrap
1282 msgid ""
1283 "    printf(\"%f\\en\", (*cosine)(2.0));\n"
1284 "    dlclose(handle);\n"
1285 "    exit(EXIT_SUCCESS);\n"
1286 "}\n"
1287 msgstr ""
1288 "    printf(\"%f\\en\", (*cosine)(2.0));\n"
1289 "    dlclose(handle);\n"
1290 "    exit(EXIT_SUCCESS);\n"
1291 "}\n"
1292
1293 #. type: Plain text
1294 #: build/C/man3/dlopen.3:504
1295 msgid ""
1296 "If this program were in a file named \"foo.c\", you would build the program "
1297 "with the following command:"
1298 msgstr ""
1299 "このプログラムを \"foo.c\" に書いたとすると、以下のコマンドでプログラムを ビ"
1300 "ルドできる。"
1301
1302 #. type: Plain text
1303 #: build/C/man3/dlopen.3:507
1304 #, no-wrap
1305 msgid "    gcc -rdynamic -o foo foo.c -ldl\n"
1306 msgstr "    gcc -rdynamic -o foo foo.c -ldl\n"
1307
1308 #. type: Plain text
1309 #: build/C/man3/dlopen.3:517
1310 msgid ""
1311 "Libraries exporting B<_init>()  and B<_fini>()  will want to be compiled as "
1312 "follows, using I<bar.c> as the example name:"
1313 msgstr ""
1314 "B<_init>()  と B<_fini>()  をエクスポートするライブラリの場合は 以下のように"
1315 "してコンパイルする必要がある。 例として I<bar.c> をコンパイルする場合:"
1316
1317 #. type: Plain text
1318 #: build/C/man3/dlopen.3:520
1319 #, no-wrap
1320 msgid "    gcc -shared -nostartfiles -o bar bar.c\n"
1321 msgstr "    gcc -shared -nostartfiles -o bar bar.c\n"
1322
1323 #. type: Plain text
1324 #: build/C/man3/dlopen.3:528
1325 msgid ""
1326 "B<ld>(1), B<ldd>(1), B<dl_iterate_phdr>(3), B<rtld-audit>(7), B<ld.so>(8), "
1327 "B<ldconfig>(8)"
1328 msgstr ""
1329 "B<ld>(1), B<ldd>(1), B<dl_iterate_phdr>(3), B<rtld-audit>(7), B<ld.so>(8), "
1330 "B<ldconfig>(8)"
1331
1332 #. type: Plain text
1333 #: build/C/man3/dlopen.3:530
1334 msgid "ld.so info pages, gcc info pages, ld info pages"
1335 msgstr "ld.so info pages, gcc info pages, ld info pages"
1336
1337 #. type: TH
1338 #: build/C/man5/elf.5:35
1339 #, no-wrap
1340 msgid "ELF"
1341 msgstr "ELF"
1342
1343 #. type: TH
1344 #: build/C/man5/elf.5:35
1345 #, no-wrap
1346 msgid "2013-04-17"
1347 msgstr "2013-04-17"
1348
1349 #. type: Plain text
1350 #: build/C/man5/elf.5:38
1351 msgid "elf - format of Executable and Linking Format (ELF) files"
1352 msgstr "elf - 実行可能リンクフォーマット (ELF) ファイルのフォーマット"
1353
1354 #.  .B #include <elf_abi.h>
1355 #. type: Plain text
1356 #: build/C/man5/elf.5:42
1357 #, no-wrap
1358 msgid "B<#include E<lt>elf.hE<gt>>\n"
1359 msgstr "B<#include E<lt>elf.hE<gt>>\n"
1360
1361 #. type: Plain text
1362 #: build/C/man5/elf.5:50
1363 msgid ""
1364 "The header file I<E<lt>elf.hE<gt>> defines the format of ELF executable "
1365 "binary files.  Amongst these files are normal executable files, relocatable "
1366 "object files, core files and shared libraries."
1367 msgstr ""
1368 "ヘッダファイル I<E<lt>elf.hE<gt>> は ELF 実行可能バイナリファイルのフォーマッ"
1369 "トを定義する。 これらのファイルとしては、通常の実行可能ファイル・ 再配置可能"
1370 "オブジェクトファイル・コアファイル・共有ライブラリがある。"
1371
1372 #. type: Plain text
1373 #: build/C/man5/elf.5:59
1374 msgid ""
1375 "An executable file using the ELF file format consists of an ELF header, "
1376 "followed by a program header table or a section header table, or both.  The "
1377 "ELF header is always at offset zero of the file.  The program header table "
1378 "and the section header table's offset in the file are defined in the ELF "
1379 "header.  The two tables describe the rest of the particularities of the file."
1380 msgstr ""
1381 "ELF ファイルフォーマットを使う実行可能ファイルは、 ELF ヘッダの後にプログラム"
1382 "ヘッダテーブルまたは セクションヘッダテーブル (またはその両方) が続く構成であ"
1383 "る。 ELF ヘッダは常にファイルのオフセット 0 にある。 プログラムヘッダテーブル"
1384 "とセクションヘッダテーブルの ファイル内でのオフセットは、ELF ヘッダに定義され"
1385 "ている。 この 2 つのテーブルはファイルの残りの部分の詳細を記述する。"
1386
1387 #.  Applications which wish to process ELF binary files for their native
1388 #.  architecture only should include
1389 #.  .I <elf_abi.h>
1390 #.  in their source code.
1391 #.  These applications should need to refer to
1392 #.  all the types and structures by their generic names
1393 #.  "Elf_xxx"
1394 #.  and to the macros by
1395 #.  ELF_xxx".
1396 #.  Applications written this way can be compiled on any architecture,
1397 #.  regardless of whether the host is 32-bit or 64-bit.
1398 #.  .PP
1399 #.  Should an application need to process ELF files of an unknown
1400 #.  architecture, then the application needs to explicitly use either
1401 #.  "Elf32_xxx"
1402 #.  or
1403 #.  "Elf64_xxx"
1404 #.  type and structure names.
1405 #.  Likewise, the macros need to be identified by
1406 #.  "ELF32_xxx"
1407 #.  or
1408 #.  "ELF64_xxx".
1409 #.  .PP
1410 #. type: Plain text
1411 #: build/C/man5/elf.5:86
1412 msgid ""
1413 "This header file describes the above mentioned headers as C structures and "
1414 "also includes structures for dynamic sections, relocation sections and "
1415 "symbol tables."
1416 msgstr ""
1417 "このヘッダファイルは上記のヘッダを C 言語の構造体で記述し、 また動的セクショ"
1418 "ン・再配置可能セクション・シンボルテーブルの構造体も 含んでいる。"
1419
1420 #. type: Plain text
1421 #: build/C/man5/elf.5:98
1422 msgid ""
1423 "The following types are used for N-bit architectures (N=32,64, I<ElfN> "
1424 "stands for I<Elf32> or I<Elf64>, I<uintN_t> stands for I<uint32_t> or "
1425 "I<uint64_t>):"
1426 msgstr ""
1427 "以下の型は N ビットアーキテクチャで使われる (N=32,64 であり I<ElfN> は "
1428 "I<Elf32> または I<Elf64> を表し、 I<uintN_t> は I<uint32_t> または "
1429 "I<uint64_t> を表す):"
1430
1431 #.  Elf32_Size  Unsigned object size
1432 #. type: Plain text
1433 #: build/C/man5/elf.5:112
1434 #, no-wrap
1435 msgid ""
1436 "ElfN_Addr       Unsigned program address, uintN_t\n"
1437 "ElfN_Off        Unsigned file offset, uintN_t\n"
1438 "ElfN_Section    Unsigned section index, uint16_t\n"
1439 "ElfN_Versym     Unsigned version symbol information, uint16_t\n"
1440 "Elf_Byte        unsigned char\n"
1441 "ElfN_Half       uint16_t\n"
1442 "ElfN_Sword      int32_t\n"
1443 "ElfN_Word       uint32_t\n"
1444 "ElfN_Sxword     int64_t\n"
1445 "ElfN_Xword      uint64_t\n"
1446 msgstr ""
1447 "ElfN_Addr       符号なしのプログラムアドレス, uintN_t\n"
1448 "ElfN_Off        符号なしのファイルオフセット, uintN_t\n"
1449 "ElfN_Section    符号なしのセクションインデックス, uint16_t\n"
1450 "ElfN_Versym     符号なしのバージョンシンボル情報, uint16_t\n"
1451 "Elf_Byte        unsigned char\n"
1452 "ElfN_Half       uint16_t\n"
1453 "ElfN_Sword      int32_t\n"
1454 "ElfN_Word       uint32_t\n"
1455 "ElfN_Sxword     int64_t\n"
1456 "ElfN_Xword      uint64_t\n"
1457
1458 #. type: Plain text
1459 #: build/C/man5/elf.5:127
1460 msgid ""
1461 "(Note: The *BSD terminology is a bit different.  There I<Elf64_Half> is "
1462 "twice as large as I<Elf32_Half>, and I<Elf64Quarter> is used for "
1463 "I<uint16_t>.  In order to avoid confusion these types are replaced by "
1464 "explicit ones in the below.)"
1465 msgstr ""
1466 "(注意: *BSD での用語は少し異なる。 I<Elf64_Half> は I<Elf32_Half> の 2 倍であ"
1467 "り、 I<Elf64Quarter> が I<uint16_t> に用いられる。 混乱を避けるため、以下で"
1468 "は、これらの型はサイズが自明な型に置き換えてある。)"
1469
1470 #. type: Plain text
1471 #: build/C/man5/elf.5:134
1472 msgid ""
1473 "All data structures that the file format defines follow the \"natural\" size "
1474 "and alignment guidelines for the relevant class.  If necessary, data "
1475 "structures contain explicit padding to ensure 4-byte alignment for 4-byte "
1476 "objects, to force structure sizes to a multiple of 4, and so on."
1477 msgstr ""
1478 "このファイルフォーマットが定義する全てのデータ構造体は、 関連するクラスの "
1479 "\"自然な\" サイズと配置の指針に従う。 必要な場合、データ構造体では明示的なパ"
1480 "ディング (padding, 詰め込み)  が行なわれる。これは 4 バイトオブジェクトに対す"
1481 "る 4 バイト配置を保証するためや、 構造体のサイズを 4 の倍数にするためなどであ"
1482 "る。"
1483
1484 #. type: Plain text
1485 #: build/C/man5/elf.5:139
1486 msgid "The ELF header is described by the type I<Elf32_Ehdr> or I<Elf64_Ehdr>:"
1487 msgstr "ELF ヘッダは型 I<Elf32_Ehdr> または I<Elf64_Ehdr> で記述される:"
1488
1489 #. type: Plain text
1490 #: build/C/man5/elf.5:143
1491 #, no-wrap
1492 msgid "#define EI_NIDENT 16\n"
1493 msgstr "#define EI_NIDENT 16\n"
1494
1495 #. type: Plain text
1496 #: build/C/man5/elf.5:160
1497 #, no-wrap
1498 msgid ""
1499 "typedef struct {\n"
1500 "    unsigned char e_ident[EI_NIDENT];\n"
1501 "    uint16_t      e_type;\n"
1502 "    uint16_t      e_machine;\n"
1503 "    uint32_t      e_version;\n"
1504 "    ElfN_Addr     e_entry;\n"
1505 "    ElfN_Off      e_phoff;\n"
1506 "    ElfN_Off      e_shoff;\n"
1507 "    uint32_t      e_flags;\n"
1508 "    uint16_t      e_ehsize;\n"
1509 "    uint16_t      e_phentsize;\n"
1510 "    uint16_t      e_phnum;\n"
1511 "    uint16_t      e_shentsize;\n"
1512 "    uint16_t      e_shnum;\n"
1513 "    uint16_t      e_shstrndx;\n"
1514 "} ElfN_Ehdr;\n"
1515 msgstr ""
1516 "typedef struct {\n"
1517 "    unsigned char e_ident[EI_NIDENT];\n"
1518 "    uint16_t      e_type;\n"
1519 "    uint16_t      e_machine;\n"
1520 "    uint32_t      e_version;\n"
1521 "    ElfN_Addr     e_entry;\n"
1522 "    ElfN_Off      e_phoff;\n"
1523 "    ElfN_Off      e_shoff;\n"
1524 "    uint32_t      e_flags;\n"
1525 "    uint16_t      e_ehsize;\n"
1526 "    uint16_t      e_phentsize;\n"
1527 "    uint16_t      e_phnum;\n"
1528 "    uint16_t      e_shentsize;\n"
1529 "    uint16_t      e_shnum;\n"
1530 "    uint16_t      e_shstrndx;\n"
1531 "} ElfN_Ehdr;\n"
1532
1533 #.  .Bl -tag -width "e_phentsize"
1534 #. type: Plain text
1535 #: build/C/man5/elf.5:165
1536 msgid "The fields have the following meanings:"
1537 msgstr "フィールドは以下の意味を持つ:"
1538
1539 #. type: TP
1540 #: build/C/man5/elf.5:165
1541 #, no-wrap
1542 msgid "I<e_ident>"
1543 msgstr "I<e_ident>"
1544
1545 #. type: Plain text
1546 #: build/C/man5/elf.5:175
1547 msgid ""
1548 "This array of bytes specifies to interpret the file, independent of the "
1549 "processor or the file's remaining contents.  Within this array everything is "
1550 "named by macros, which start with the prefix B<EI_> and may contain values "
1551 "which start with the prefix B<ELF>.  The following macros are defined:"
1552 msgstr ""
1553 "このバイト配列は、プロセッサやファイルの他の部分には依存せずに、 ファイルを解"
1554 "釈 (interpret) するために指定される。 この配列内のすべてのものは、接頭辞 "
1555 "B<EI_> で始まるマクロの名前が付き、接頭辞 B<ELF> で始まる値を持つ。 以下のマ"
1556 "クロが定義されている:"
1557
1558 #. type: TP
1559 #: build/C/man5/elf.5:177
1560 #, no-wrap
1561 msgid "B<EI_MAG0>"
1562 msgstr "B<EI_MAG0>"
1563
1564 #. type: Plain text
1565 #: build/C/man5/elf.5:183
1566 msgid ""
1567 "The first byte of the magic number.  It must be filled with B<ELFMAG0>.  (0: "
1568 "0x7f)"
1569 msgstr ""
1570 "マジックナンバーの第 1 バイト。 B<ELFMAG0> で埋めなければならない。 (0: 0x7f)"
1571
1572 #. type: TP
1573 #: build/C/man5/elf.5:183
1574 #, no-wrap
1575 msgid "B<EI_MAG1>"
1576 msgstr "B<EI_MAG1>"
1577
1578 #. type: Plain text
1579 #: build/C/man5/elf.5:189
1580 msgid ""
1581 "The second byte of the magic number.  It must be filled with B<ELFMAG1>.  "
1582 "(1: \\(aqE\\(aq)"
1583 msgstr ""
1584 "マジックナンバーの第 2 バイト。 B<ELFMAG1> で埋めなければならない。 (1: "
1585 "\\(aqE\\(aq)"
1586
1587 #. type: TP
1588 #: build/C/man5/elf.5:189
1589 #, no-wrap
1590 msgid "B<EI_MAG2>"
1591 msgstr "B<EI_MAG2>"
1592
1593 #. type: Plain text
1594 #: build/C/man5/elf.5:195
1595 msgid ""
1596 "The third byte of the magic number.  It must be filled with B<ELFMAG2>.  (2: "
1597 "\\(aqL\\(aq)"
1598 msgstr ""
1599 "マジックナンバーの第 3 バイト。 B<ELFMAG2> で埋めなければならない。 (2: "
1600 "\\(aqL\\(aq)"
1601
1602 #. type: TP
1603 #: build/C/man5/elf.5:195
1604 #, no-wrap
1605 msgid "B<EI_MAG3>"
1606 msgstr "B<EI_MAG3>"
1607
1608 #. type: Plain text
1609 #: build/C/man5/elf.5:201
1610 msgid ""
1611 "The fourth byte of the magic number.  It must be filled with B<ELFMAG3>.  "
1612 "(3: \\(aqF\\(aq)"
1613 msgstr ""
1614 "マジックナンバーの第 4 バイト。 B<ELFMAG3> で埋めなければならない。 (3: "
1615 "\\(aqF\\(aq)"
1616
1617 #. type: TP
1618 #: build/C/man5/elf.5:201
1619 #, no-wrap
1620 msgid "B<EI_CLASS>"
1621 msgstr "B<EI_CLASS>"
1622
1623 #. type: Plain text
1624 #: build/C/man5/elf.5:204
1625 msgid "The fifth byte identifies the architecture for this binary:"
1626 msgstr "第 5 バイトは、このバイナリのアーキテクチャを示す:"
1627
1628 #. type: TP
1629 #: build/C/man5/elf.5:206
1630 #, no-wrap
1631 msgid "B<ELFCLASSNONE>"
1632 msgstr "B<ELFCLASSNONE>"
1633
1634 #. type: Plain text
1635 #: build/C/man5/elf.5:210
1636 msgid "This class is invalid."
1637 msgstr "このクラスは不正である。"
1638
1639 #. type: TP
1640 #: build/C/man5/elf.5:210
1641 #, no-wrap
1642 msgid "B<ELFCLASS32>"
1643 msgstr "B<ELFCLASS32>"
1644
1645 #. type: Plain text
1646 #: build/C/man5/elf.5:215
1647 msgid ""
1648 "This defines the 32-bit architecture.  It supports machines with files and "
1649 "virtual address spaces up to 4 Gigabytes."
1650 msgstr ""
1651 "32 ビットアーキテクチャを定義する。 ファイルと仮想アドレス空間が 4 ギガバイト"
1652 "までのマシンをサポートする。"
1653
1654 #. type: TP
1655 #: build/C/man5/elf.5:215
1656 #, no-wrap
1657 msgid "B<ELFCLASS64>"
1658 msgstr "B<ELFCLASS64>"
1659
1660 #. type: Plain text
1661 #: build/C/man5/elf.5:218
1662 msgid "This defines the 64-bit architecture."
1663 msgstr "64 ビットアーキテクチャを定義する。"
1664
1665 #. type: TP
1666 #: build/C/man5/elf.5:221
1667 #, no-wrap
1668 msgid "B<EI_DATA>"
1669 msgstr "B<EI_DATA>"
1670
1671 #.  .Bl -tag -width "ELFDATA2LSB" -compact
1672 #. type: Plain text
1673 #: build/C/man5/elf.5:227
1674 msgid ""
1675 "The sixth byte specifies the data encoding of the processor-specific data in "
1676 "the file.  Currently these encodings are supported:"
1677 msgstr ""
1678 "第 6 バイトはファイル内のプロセッサ固有データの データエンコーディングを指定"
1679 "する。 現在のところ以下のエンコーディングがサポートされている:"
1680
1681 #. type: TP
1682 #: build/C/man5/elf.5:228
1683 #, no-wrap
1684 msgid "B<ELFDATANONE>"
1685 msgstr "B<ELFDATANONE>"
1686
1687 #. type: Plain text
1688 #: build/C/man5/elf.5:232
1689 msgid "Unknown data format."
1690 msgstr "不明なデータフォーマット。"
1691
1692 #. type: TP
1693 #: build/C/man5/elf.5:232
1694 #, no-wrap
1695 msgid "B<ELFDATA2LSB>"
1696 msgstr "B<ELFDATA2LSB>"
1697
1698 #. type: Plain text
1699 #: build/C/man5/elf.5:235
1700 msgid "Two's complement, little-endian."
1701 msgstr "2 の補数、リトルエンディアン。"
1702
1703 #. type: TP
1704 #: build/C/man5/elf.5:235
1705 #, no-wrap
1706 msgid "B<ELFDATA2MSB>"
1707 msgstr "B<ELFDATA2MSB>"
1708
1709 #. type: Plain text
1710 #: build/C/man5/elf.5:238
1711 msgid "Two's complement, big-endian."
1712 msgstr "2 の補数、ビッグエンディアン。"
1713
1714 #. type: TP
1715 #: build/C/man5/elf.5:241
1716 #, no-wrap
1717 msgid "B<EI_VERSION>"
1718 msgstr "B<EI_VERSION>"
1719
1720 #.  .Bl -tag -width "EV_CURRENT" -compact
1721 #. type: Plain text
1722 #: build/C/man5/elf.5:246
1723 msgid "The seventh byte is the version number of the ELF specification:"
1724 msgstr "第 7 バイトは ELF 仕様のバージョン番号である:"
1725
1726 #. type: TP
1727 #: build/C/man5/elf.5:247 build/C/man5/elf.5:501
1728 #, no-wrap
1729 msgid "B<EV_NONE>"
1730 msgstr "B<EV_NONE>"
1731
1732 #. type: Plain text
1733 #: build/C/man5/elf.5:250 build/C/man5/elf.5:505
1734 msgid "Invalid version."
1735 msgstr "不正なバージョン。"
1736
1737 #. type: TP
1738 #: build/C/man5/elf.5:250 build/C/man5/elf.5:505
1739 #, no-wrap
1740 msgid "B<EV_CURRENT>"
1741 msgstr "B<EV_CURRENT>"
1742
1743 #.  .El
1744 #. type: Plain text
1745 #: build/C/man5/elf.5:253 build/C/man5/elf.5:509
1746 msgid "Current version."
1747 msgstr "現在のバージョン。"
1748
1749 #. type: TP
1750 #: build/C/man5/elf.5:256
1751 #, no-wrap
1752 msgid "B<EI_OSABI>"
1753 msgstr "B<EI_OSABI>"
1754
1755 #.  .Bl -tag -width "ELFOSABI_STANDALONE" -compact
1756 #. type: Plain text
1757 #: build/C/man5/elf.5:265
1758 msgid ""
1759 "The eighth byte identifies the operating system and ABI to which the object "
1760 "is targeted.  Some fields in other ELF structures have flags and values that "
1761 "have platform-specific meanings; the interpretation of those fields is "
1762 "determined by the value of this byte.  E.g.:"
1763 msgstr ""
1764 "第 8 バイトはオブジェクトのターゲットとなるオペレーティングシステムと ABI を"
1765 "示す。他の ELF 構造体のフィールドには、プラットフォーム固有の意味を持つフラグ"
1766 "や値を持つものもある。これらのフィールドの解釈は、このバイトの値によって決定"
1767 "される。以下に例を挙げる。"
1768
1769 #. type: TP
1770 #: build/C/man5/elf.5:266
1771 #, no-wrap
1772 msgid "B<ELFOSABI_NONE>"
1773 msgstr "B<ELFOSABI_NONE>"
1774
1775 #.  0
1776 #. type: Plain text
1777 #: build/C/man5/elf.5:271
1778 msgid "Same as ELFOSABI_SYSV"
1779 msgstr "ELFOSABI_SYSV と同じ。"
1780
1781 #. type: TP
1782 #: build/C/man5/elf.5:271
1783 #, no-wrap
1784 msgid "B<ELFOSABI_SYSV>"
1785 msgstr "B<ELFOSABI_SYSV>"
1786
1787 #.  0
1788 #.  synonym: ELFOSABI_NONE
1789 #. type: Plain text
1790 #: build/C/man5/elf.5:276
1791 msgid "UNIX System V ABI."
1792 msgstr "UNIX System V ABI."
1793
1794 #. type: TP
1795 #: build/C/man5/elf.5:276
1796 #, no-wrap
1797 msgid "B<ELFOSABI_HPUX>"
1798 msgstr "B<ELFOSABI_HPUX>"
1799
1800 #.  1
1801 #. type: Plain text
1802 #: build/C/man5/elf.5:280
1803 msgid "HP-UX ABI."
1804 msgstr "HP-UX ABI."
1805
1806 #. type: TP
1807 #: build/C/man5/elf.5:280
1808 #, no-wrap
1809 msgid "B<ELFOSABI_NETBSD>"
1810 msgstr "B<ELFOSABI_NETBSD>"
1811
1812 #.  2
1813 #. type: Plain text
1814 #: build/C/man5/elf.5:284
1815 msgid "NetBSD ABI."
1816 msgstr "NetBSD ABI."
1817
1818 #. type: TP
1819 #: build/C/man5/elf.5:284
1820 #, no-wrap
1821 msgid "B<ELFOSABI_LINUX>"
1822 msgstr "B<ELFOSABI_LINUX>"
1823
1824 #.  3
1825 #.  .TP
1826 #.  .BR ELFOSABI_HURD
1827 #.  Hurd ABI.
1828 #.  4
1829 #.  .TP
1830 #.  .BR ELFOSABI_86OPEN
1831 #.  86Open Common IA32 ABI.
1832 #.  5
1833 #. type: Plain text
1834 #: build/C/man5/elf.5:296
1835 msgid "Linux ABI."
1836 msgstr "Linux ABI."
1837
1838 #. type: TP
1839 #: build/C/man5/elf.5:296
1840 #, no-wrap
1841 msgid "B<ELFOSABI_SOLARIS>"
1842 msgstr "B<ELFOSABI_SOLARIS>"
1843
1844 #.  6
1845 #.  .TP
1846 #.  .BR ELFOSABI_MONTEREY
1847 #.  Monterey project ABI.
1848 #.  Now replaced by
1849 #.  ELFOSABI_AIX
1850 #.  7
1851 #. type: Plain text
1852 #: build/C/man5/elf.5:306
1853 msgid "Solaris ABI."
1854 msgstr "Solaris ABI."
1855
1856 #. type: TP
1857 #: build/C/man5/elf.5:306
1858 #, no-wrap
1859 msgid "B<ELFOSABI_IRIX>"
1860 msgstr "B<ELFOSABI_IRIX>"
1861
1862 #.  8
1863 #. type: Plain text
1864 #: build/C/man5/elf.5:310
1865 msgid "IRIX ABI."
1866 msgstr "IRIX ABI."
1867
1868 #. type: TP
1869 #: build/C/man5/elf.5:310
1870 #, no-wrap
1871 msgid "B<ELFOSABI_FREEBSD>"
1872 msgstr "B<ELFOSABI_FREEBSD>"
1873
1874 #.  9
1875 #. type: Plain text
1876 #: build/C/man5/elf.5:314
1877 msgid "FreeBSD ABI."
1878 msgstr "FreeBSD ABI."
1879
1880 #. type: TP
1881 #: build/C/man5/elf.5:314
1882 #, no-wrap
1883 msgid "B<ELFOSABI_TRU64>"
1884 msgstr "B<ELFOSABI_TRU64>"
1885
1886 #.  10
1887 #.  ELFOSABI_MODESTO
1888 #.  11
1889 #.  ELFOSABI_OPENBSD
1890 #.  12
1891 #. type: Plain text
1892 #: build/C/man5/elf.5:322
1893 msgid "TRU64 UNIX ABI."
1894 msgstr "TRU64 UNIX ABI."
1895
1896 #. type: TP
1897 #: build/C/man5/elf.5:322
1898 #, no-wrap
1899 msgid "B<ELFOSABI_ARM>"
1900 msgstr "B<ELFOSABI_ARM>"
1901
1902 #.  97
1903 #. type: Plain text
1904 #: build/C/man5/elf.5:326
1905 msgid "ARM architecture ABI."
1906 msgstr "ARM アーキテクチャ ABI."
1907
1908 #. type: TP
1909 #: build/C/man5/elf.5:326
1910 #, no-wrap
1911 msgid "B<ELFOSABI_STANDALONE>"
1912 msgstr "B<ELFOSABI_STANDALONE>"
1913
1914 #.  255
1915 #.  .El
1916 #. type: Plain text
1917 #: build/C/man5/elf.5:331
1918 msgid "Stand-alone (embedded) ABI."
1919 msgstr "スタンドアロン (組み込み) ABI."
1920
1921 #. type: TP
1922 #: build/C/man5/elf.5:333
1923 #, no-wrap
1924 msgid "B<EI_ABIVERSION>"
1925 msgstr "B<EI_ABIVERSION>"
1926
1927 #. type: Plain text
1928 #: build/C/man5/elf.5:343
1929 msgid ""
1930 "The ninth byte identifies the version of the ABI to which the object is "
1931 "targeted.  This field is used to distinguish among incompatible versions of "
1932 "an ABI.  The interpretation of this version number is dependent on the ABI "
1933 "identified by the B<EI_OSABI> field.  Applications conforming to this "
1934 "specification use the value 0."
1935 msgstr ""
1936 "第 9 バイトはオブジェクトがターゲットとしている ABI のバージョンを示す。 この"
1937 "フィールドは互換性のない ABI のバージョンを区別するために使われる。 このバー"
1938 "ジョン番号の解釈は、 B<EI_OSABI> フィールドで識別される ABI に依存する。 この"
1939 "仕様に準拠するアプリケーションでは、値 0 を使う。"
1940
1941 #. type: TP
1942 #: build/C/man5/elf.5:343
1943 #, no-wrap
1944 msgid "B<EI_PAD>"
1945 msgstr "B<EI_PAD>"
1946
1947 #.  As reported by Yuri Kozlov and confirmed by Mike Frysinger, EI_BRAND is
1948 #.  not in GABI (http://www.sco.com/developers/gabi/latest/ch4.eheader.html)
1949 #.  It looks to be a BSDism
1950 #.  .TP
1951 #.  .BR EI_BRAND
1952 #.  Start of architecture identification.
1953 #. type: Plain text
1954 #: build/C/man5/elf.5:359
1955 msgid ""
1956 "Start of padding.  These bytes are reserved and set to zero.  Programs which "
1957 "read them should ignore them.  The value for B<EI_PAD> will change in the "
1958 "future if currently unused bytes are given meanings."
1959 msgstr ""
1960 "パディングの開始。 これらのバイトは予約されており、0 に設定されている。 これ"
1961 "らを読み込むプログラムは、これらのバイトを無視すべきである。 現在使われていな"
1962 "いバイトに意味が与えられる場合、 B<EI_PAD> の値は将来変更されるかもしれない。"
1963
1964 #. type: TP
1965 #: build/C/man5/elf.5:359
1966 #, no-wrap
1967 msgid "B<EI_NIDENT>"
1968 msgstr "B<EI_NIDENT>"
1969
1970 #.  .El
1971 #. type: Plain text
1972 #: build/C/man5/elf.5:365
1973 msgid "The size of the I<e_ident> array."
1974 msgstr "I<e_ident> 配列のサイズ。"
1975
1976 #. type: TP
1977 #: build/C/man5/elf.5:366
1978 #, no-wrap
1979 msgid "I<e_type>"
1980 msgstr "I<e_type>"
1981
1982 #. type: Plain text
1983 #: build/C/man5/elf.5:369
1984 msgid "This member of the structure identifies the object file type:"
1985 msgstr "この構造体のメンバはオブジェクトファイルタイプを示す:"
1986
1987 #. type: TP
1988 #: build/C/man5/elf.5:371
1989 #, no-wrap
1990 msgid "B<ET_NONE>"
1991 msgstr "B<ET_NONE>"
1992
1993 #. type: Plain text
1994 #: build/C/man5/elf.5:375
1995 msgid "An unknown type."
1996 msgstr "不明なタイプ。"
1997
1998 #. type: TP
1999 #: build/C/man5/elf.5:375
2000 #, no-wrap
2001 msgid "B<ET_REL>"
2002 msgstr "B<ET_REL>"
2003
2004 #. type: Plain text
2005 #: build/C/man5/elf.5:378
2006 msgid "A relocatable file."
2007 msgstr "再配置可能ファイル。"
2008
2009 #. type: TP
2010 #: build/C/man5/elf.5:378
2011 #, no-wrap
2012 msgid "B<ET_EXEC>"
2013 msgstr "B<ET_EXEC>"
2014
2015 #. type: Plain text
2016 #: build/C/man5/elf.5:381
2017 msgid "An executable file."
2018 msgstr "実行可能ファイル。"
2019
2020 #. type: TP
2021 #: build/C/man5/elf.5:381
2022 #, no-wrap
2023 msgid "B<ET_DYN>"
2024 msgstr "B<ET_DYN>"
2025
2026 #. type: Plain text
2027 #: build/C/man5/elf.5:384
2028 msgid "A shared object."
2029 msgstr "共有オブジェクト。"
2030
2031 #. type: TP
2032 #: build/C/man5/elf.5:384
2033 #, no-wrap
2034 msgid "B<ET_CORE>"
2035 msgstr "B<ET_CORE>"
2036
2037 #. type: Plain text
2038 #: build/C/man5/elf.5:387
2039 msgid "A core file."
2040 msgstr "コアファイル。"
2041
2042 #. type: TP
2043 #: build/C/man5/elf.5:390
2044 #, no-wrap
2045 msgid "I<e_machine>"
2046 msgstr "I<e_machine>"
2047
2048 #. type: Plain text
2049 #: build/C/man5/elf.5:394
2050 msgid ""
2051 "This member specifies the required architecture for an individual file.  E."
2052 "g.:"
2053 msgstr "このメンバは個々のファイルに必要とされるアーキテクチャを指定する。 例:"
2054
2055 #. type: TP
2056 #: build/C/man5/elf.5:396
2057 #, no-wrap
2058 msgid "B<EM_NONE>"
2059 msgstr "B<EM_NONE>"
2060
2061 #.  0
2062 #. type: Plain text
2063 #: build/C/man5/elf.5:401
2064 msgid "An unknown machine."
2065 msgstr "不明なマシン。"
2066
2067 #. type: TP
2068 #: build/C/man5/elf.5:401
2069 #, no-wrap
2070 msgid "B<EM_M32>"
2071 msgstr "B<EM_M32>"
2072
2073 #.  1
2074 #. type: Plain text
2075 #: build/C/man5/elf.5:405
2076 msgid "AT&T WE 32100."
2077 msgstr "AT&T WE 32100."
2078
2079 #. type: TP
2080 #: build/C/man5/elf.5:405
2081 #, no-wrap
2082 msgid "B<EM_SPARC>"
2083 msgstr "B<EM_SPARC>"
2084
2085 #.  2
2086 #. type: Plain text
2087 #: build/C/man5/elf.5:409
2088 msgid "Sun Microsystems SPARC."
2089 msgstr "Sun Microsystems SPARC."
2090
2091 #. type: TP
2092 #: build/C/man5/elf.5:409
2093 #, no-wrap
2094 msgid "B<EM_386>"
2095 msgstr "B<EM_386>"
2096
2097 #.  3
2098 #. type: Plain text
2099 #: build/C/man5/elf.5:413
2100 msgid "Intel 80386."
2101 msgstr "Intel 80386."
2102
2103 #. type: TP
2104 #: build/C/man5/elf.5:413
2105 #, no-wrap
2106 msgid "B<EM_68K>"
2107 msgstr "B<EM_68K>"
2108
2109 #.  4
2110 #. type: Plain text
2111 #: build/C/man5/elf.5:417
2112 msgid "Motorola 68000."
2113 msgstr "Motorola 68000."
2114
2115 #. type: TP
2116 #: build/C/man5/elf.5:417
2117 #, no-wrap
2118 msgid "B<EM_88K>"
2119 msgstr "B<EM_88K>"
2120
2121 #.  5
2122 #.  .TP
2123 #.  .BR EM_486
2124 #.  Intel 80486.
2125 #.  6
2126 #. type: Plain text
2127 #: build/C/man5/elf.5:425
2128 msgid "Motorola 88000."
2129 msgstr "Motorola 88000."
2130
2131 #. type: TP
2132 #: build/C/man5/elf.5:425
2133 #, no-wrap
2134 msgid "B<EM_860>"
2135 msgstr "B<EM_860>"
2136
2137 #.  7
2138 #. type: Plain text
2139 #: build/C/man5/elf.5:429
2140 msgid "Intel 80860."
2141 msgstr "Intel 80860."
2142
2143 #. type: TP
2144 #: build/C/man5/elf.5:429
2145 #, no-wrap
2146 msgid "B<EM_MIPS>"
2147 msgstr "B<EM_MIPS>"
2148
2149 #.  8
2150 #.  EM_S370
2151 #.  9
2152 #.  .TP
2153 #.  .BR EM_MIPS_RS4_BE
2154 #.  MIPS RS4000 (big-endian only). Deprecated.
2155 #.  10
2156 #.  EM_MIPS_RS3_LE (MIPS R3000 little-endian)
2157 #.  10
2158 #. type: Plain text
2159 #: build/C/man5/elf.5:441
2160 msgid "MIPS RS3000 (big-endian only)."
2161 msgstr "MIPS RS3000 (ビッグエンディアンのみ)。"
2162
2163 #. type: TP
2164 #: build/C/man5/elf.5:441
2165 #, no-wrap
2166 msgid "B<EM_PARISC>"
2167 msgstr "B<EM_PARISC>"
2168
2169 #.  15
2170 #. type: Plain text
2171 #: build/C/man5/elf.5:445
2172 msgid "HP/PA."
2173 msgstr "HP/PA."
2174
2175 #. type: TP
2176 #: build/C/man5/elf.5:445
2177 #, no-wrap
2178 msgid "B<EM_SPARC32PLUS>"
2179 msgstr "B<EM_SPARC32PLUS>"
2180
2181 #.  18
2182 #. type: Plain text
2183 #: build/C/man5/elf.5:449
2184 msgid "SPARC with enhanced instruction set."
2185 msgstr "拡張命令セット付き SPARC。"
2186
2187 #. type: TP
2188 #: build/C/man5/elf.5:449
2189 #, no-wrap
2190 msgid "B<EM_PPC>"
2191 msgstr "B<EM_PPC>"
2192
2193 #.  20
2194 #. type: Plain text
2195 #: build/C/man5/elf.5:453
2196 msgid "PowerPC."
2197 msgstr "PowerPC."
2198
2199 #. type: TP
2200 #: build/C/man5/elf.5:453
2201 #, no-wrap
2202 msgid "B<EM_PPC64>"
2203 msgstr "B<EM_PPC64>"
2204
2205 #.  21
2206 #. type: Plain text
2207 #: build/C/man5/elf.5:457
2208 msgid "PowerPC 64-bit."
2209 msgstr "PowerPC 64-bit."
2210
2211 #. type: TP
2212 #: build/C/man5/elf.5:457
2213 #, no-wrap
2214 msgid "B<EM_S390>"
2215 msgstr "B<EM_S390>"
2216
2217 #.  22
2218 #. type: Plain text
2219 #: build/C/man5/elf.5:461
2220 msgid "IBM S/390"
2221 msgstr "IBM S/390"
2222
2223 #. type: TP
2224 #: build/C/man5/elf.5:461
2225 #, no-wrap
2226 msgid "B<EM_ARM>"
2227 msgstr "B<EM_ARM>"
2228
2229 #.  40
2230 #. type: Plain text
2231 #: build/C/man5/elf.5:465
2232 msgid "Advanced RISC Machines"
2233 msgstr "Advanced RISC Machines"
2234
2235 #. type: TP
2236 #: build/C/man5/elf.5:465
2237 #, no-wrap
2238 msgid "B<EM_SH>"
2239 msgstr "B<EM_SH>"
2240
2241 #.  42
2242 #. type: Plain text
2243 #: build/C/man5/elf.5:469
2244 msgid "Renesas SuperH"
2245 msgstr "Renesas SuperH"
2246
2247 #. type: TP
2248 #: build/C/man5/elf.5:469
2249 #, no-wrap
2250 msgid "B<EM_SPARCV9>"
2251 msgstr "B<EM_SPARCV9>"
2252
2253 #.  43
2254 #. type: Plain text
2255 #: build/C/man5/elf.5:473
2256 msgid "SPARC v9 64-bit."
2257 msgstr "SPARC v9 64-bit."
2258
2259 #. type: TP
2260 #: build/C/man5/elf.5:473
2261 #, no-wrap
2262 msgid "B<EM_IA_64>"
2263 msgstr "B<EM_IA_64>"
2264
2265 #.  50
2266 #. type: Plain text
2267 #: build/C/man5/elf.5:477
2268 msgid "Intel Itanium"
2269 msgstr "Intel Itanium"
2270
2271 #. type: TP
2272 #: build/C/man5/elf.5:477
2273 #, no-wrap
2274 msgid "B<EM_X86_64>"
2275 msgstr "B<EM_X86_64>"
2276
2277 #.  62
2278 #. type: Plain text
2279 #: build/C/man5/elf.5:481
2280 msgid "AMD x86-64"
2281 msgstr "AMD x86-64"
2282
2283 #. type: TP
2284 #: build/C/man5/elf.5:481
2285 #, no-wrap
2286 msgid "B<EM_VAX>"
2287 msgstr "B<EM_VAX>"
2288
2289 #.  75
2290 #.  EM_CRIS
2291 #.  76
2292 #.  .TP
2293 #.  .BR EM_ALPHA
2294 #.  Compaq [DEC] Alpha.
2295 #.  .TP
2296 #.  .BR EM_ALPHA_EXP
2297 #.  Compaq [DEC] Alpha with enhanced instruction set.
2298 #. type: Plain text
2299 #: build/C/man5/elf.5:493
2300 msgid "DEC Vax."
2301 msgstr "DEC Vax."
2302
2303 #. type: TP
2304 #: build/C/man5/elf.5:496
2305 #, no-wrap
2306 msgid "I<e_version>"
2307 msgstr "I<e_version>"
2308
2309 #.  .Bl -tag -width "EV_CURRENT" -compact
2310 #. type: Plain text
2311 #: build/C/man5/elf.5:500
2312 msgid "This member identifies the file version:"
2313 msgstr "このメンバはファイルバージョンを示す:"
2314
2315 #. type: TP
2316 #: build/C/man5/elf.5:511
2317 #, no-wrap
2318 msgid "I<e_entry>"
2319 msgstr "I<e_entry>"
2320
2321 #. type: Plain text
2322 #: build/C/man5/elf.5:517
2323 msgid ""
2324 "This member gives the virtual address to which the system first transfers "
2325 "control, thus starting the process.  If the file has no associated entry "
2326 "point, this member holds zero."
2327 msgstr ""
2328 "このメンバは、システムが最初に制御を渡す、 つまりプロセスを開始する仮想アドレ"
2329 "スを指定する。 ファイルにエントリポイントが関連付けられていない場合、 このメ"
2330 "ンバには 0 が入る。"
2331
2332 #. type: TP
2333 #: build/C/man5/elf.5:517
2334 #, no-wrap
2335 msgid "I<e_phoff>"
2336 msgstr "I<e_phoff>"
2337
2338 #. type: Plain text
2339 #: build/C/man5/elf.5:522
2340 msgid ""
2341 "This member holds the program header table's file offset in bytes.  If the "
2342 "file has no program header table, this member holds zero."
2343 msgstr ""
2344 "このメンバはプログラムヘッダテーブルの ファイルオフセット (バイト単位) を保持"
2345 "する。 ファイルにプログラムヘッダテーブルがない場合、 このメンバには 0 が入"
2346 "る。"
2347
2348 #. type: TP
2349 #: build/C/man5/elf.5:522
2350 #, no-wrap
2351 msgid "I<e_shoff>"
2352 msgstr "I<e_shoff>"
2353
2354 #. type: Plain text
2355 #: build/C/man5/elf.5:527
2356 msgid ""
2357 "This member holds the section header table's file offset in bytes.  If the "
2358 "file has no section header table, this member holds zero."
2359 msgstr ""
2360 "このメンバはセクションヘッダテーブルの ファイルオフセット (バイト単位) を保持"
2361 "する。 ファイルにセクションヘッダテーブルがない場合、 このメンバには 0 が入"
2362 "る。"
2363
2364 #. type: TP
2365 #: build/C/man5/elf.5:527
2366 #, no-wrap
2367 msgid "I<e_flags>"
2368 msgstr "I<e_flags>"
2369
2370 #. type: Plain text
2371 #: build/C/man5/elf.5:532
2372 msgid ""
2373 "This member holds processor-specific flags associated with the file.  Flag "
2374 "names take the form EF_`machine_flag'.  Currently no flags have been defined."
2375 msgstr ""
2376 "このメンバはファイルに関連付けられたプロセッサ固有のフラグを保持する。 フラグ"
2377 "の名前は EF_`machine_flag' という形式である。 現在のところフラグは定義されて"
2378 "いない。"
2379
2380 #. type: TP
2381 #: build/C/man5/elf.5:532
2382 #, no-wrap
2383 msgid "I<e_ehsize>"
2384 msgstr "I<e_ehsize>"
2385
2386 #. type: Plain text
2387 #: build/C/man5/elf.5:535
2388 msgid "This member holds the ELF header's size in bytes."
2389 msgstr "このメンバは ELF ヘッダサイズ (バイト単位) を保持する。"
2390
2391 #. type: TP
2392 #: build/C/man5/elf.5:535
2393 #, no-wrap
2394 msgid "I<e_phentsize>"
2395 msgstr "I<e_phentsize>"
2396
2397 #. type: Plain text
2398 #: build/C/man5/elf.5:539
2399 msgid ""
2400 "This member holds the size in bytes of one entry in the file's program "
2401 "header table; all entries are the same size."
2402 msgstr ""
2403 "このメンバはこのファイルのプログラムヘッダテーブルの 1 エントリあたりのサイ"
2404 "ズ (バイト単位) を保持する; 全てのエントリは同じサイズである。"
2405
2406 #. type: TP
2407 #: build/C/man5/elf.5:539
2408 #, no-wrap
2409 msgid "I<e_phnum>"
2410 msgstr "I<e_phnum>"
2411
2412 #. type: Plain text
2413 #: build/C/man5/elf.5:552
2414 msgid ""
2415 "This member holds the number of entries in the program header table.  Thus "
2416 "the product of I<e_phentsize> and I<e_phnum> gives the table's size in "
2417 "bytes.  If a file has no program header, I<e_phnum> holds the value zero."
2418 msgstr ""
2419 "このメンバはプログラムヘッダテーブルにあるエントリの数を保持する。 よって "
2420 "I<e_phentsize> と I<e_phnum> の積がテーブルサイズ (バイト単位) になる。 ファ"
2421 "イルにプログラムヘッダがない場合、 I<e_phnum> は値 0 を保持する。"
2422
2423 #.  This is a Linux extension, added in Linux 2.6.34.
2424 #.  .Bl -tag -width "PN_XNUM"
2425 #. type: Plain text
2426 #: build/C/man5/elf.5:566
2427 msgid ""
2428 "If the number of entries in the program header table is larger than or equal "
2429 "to B<PN_XNUM> (0xffff), this member holds B<PN_XNUM> (0xffff) and the real "
2430 "number of entries in the program header table is held in the I<sh_info> "
2431 "member of the initial entry in section header table.  Otherwise, the "
2432 "I<sh_info> member of the initial entry contains the value zero."
2433 msgstr ""
2434 "プログラムヘッダテーブルのエントリー数が B<PN_XNUM> (0xffff) 以上の場合、\n"
2435 "このメンバは B<PN_XNUM> (0xffff) になり、プログラムヘッダテーブルの\n"
2436 "エントリーの実際の数は、セクションヘッダテーブルの最初のエントリーの \n"
2437 "I<sh_info> メンバに格納される。それ以外の場合、セクションヘッダテーブルの\n"
2438 "最初のエントリーの I<sh_info> メンバには値 0 が格納される。"
2439
2440 #. type: TP
2441 #: build/C/man5/elf.5:567
2442 #, no-wrap
2443 msgid "B<PN_XNUM>"
2444 msgstr "B<PN_XNUM>"
2445
2446 #. type: Plain text
2447 #: build/C/man5/elf.5:572
2448 msgid ""
2449 "This is defined as 0xffff, the largest number I<e_phnum> can have, "
2450 "specifying where the actual number of program headers is assigned."
2451 msgstr ""
2452 "I<e_phnum> が保持できる最大値を表し、 0xffff に定義されている。 I<e_phnum> \n"
2453 "はプログラムヘッダの実際の数がどこに割り当てられているかを示す。"
2454
2455 #. type: TP
2456 #: build/C/man5/elf.5:576
2457 #, no-wrap
2458 msgid "I<e_shentsize>"
2459 msgstr "I<e_shentsize>"
2460
2461 #. type: Plain text
2462 #: build/C/man5/elf.5:581
2463 msgid ""
2464 "This member holds a sections header's size in bytes.  A section header is "
2465 "one entry in the section header table; all entries are the same size."
2466 msgstr ""
2467 "このメンバはセクションヘッダのサイズ (バイト単位) を保持する。 セクションヘッ"
2468 "ダはセクションヘッダテーブルの 1 つのエントリである; 全てのエントリは同じサイ"
2469 "ズである。"
2470
2471 #. type: TP
2472 #: build/C/man5/elf.5:581
2473 #, no-wrap
2474 msgid "I<e_shnum>"
2475 msgstr "I<e_shnum>"
2476
2477 #. type: Plain text
2478 #: build/C/man5/elf.5:594
2479 msgid ""
2480 "This member holds the number of entries in the section header table.  Thus "
2481 "the product of I<e_shentsize> and I<e_shnum> gives the section header "
2482 "table's size in bytes.  If a file has no section header table, I<e_shnum> "
2483 "holds the value of zero."
2484 msgstr ""
2485 "このメンバはセクションヘッダテーブルにあるエントリの数を保持する。 よって "
2486 "I<e_shentsize> と I<e_shnum> の積はセクションヘッダテーブルのサイズ (バイト単"
2487 "位) になる。 ファイルにセクションヘッダテーブルがない場合、 I<e_shnum> は値 "
2488 "0 を保持する。"
2489
2490 #. type: Plain text
2491 #: build/C/man5/elf.5:606
2492 msgid ""
2493 "If the number of entries in the section header table is larger than or equal "
2494 "to B<SHN_LORESERVE> (0xff00), I<e_shnum> holds the value zero and the real "
2495 "number of entries in the section header table is held in the I<sh_size> "
2496 "member of the initial entry in section header table.  Otherwise, the "
2497 "I<sh_size> member of the initial entry in the section header table holds the "
2498 "value zero."
2499 msgstr ""
2500 "セクションヘッダテーブルのエントリー数が B<SHN_LORESERVE> (0xff00) 以上の場"
2501 "合、\n"
2502 "I<e_shnum> には値 0 が入り、セクションヘッダテーブルのエントリーの実際の数"
2503 "は\n"
2504 "セクションヘッダテーブルの最初のエントリーの I<sh_size> メンバに格納され"
2505 "る。\n"
2506 "それ以外の場合、セクションヘッダテーブルの最初のエントリーの I<sh_info> メン"
2507 "バ\n"
2508 "には値 0 が格納される。"
2509
2510 #. type: TP
2511 #: build/C/man5/elf.5:606
2512 #, no-wrap
2513 msgid "I<e_shstrndx>"
2514 msgstr "I<e_shstrndx>"
2515
2516 #. type: Plain text
2517 #: build/C/man5/elf.5:613
2518 msgid ""
2519 "This member holds the section header table index of the entry associated "
2520 "with the section name string table.  If the file has no section name string "
2521 "table, this member holds the value B<SHN_UNDEF>."
2522 msgstr ""
2523 "このメンバはセクション名文字列テーブルに関連付けられたエントリの セクション"
2524 "ヘッダテーブルインデックスを保持する。 ファイルにセクション名文字列テーブルが"
2525 "ない場合、 このメンバは値 B<SHN_UNDEF> を保持する。 B<SHN_UNDEF>."
2526
2527 #. type: Plain text
2528 #: build/C/man5/elf.5:625
2529 msgid ""
2530 "If the index of section name string table section is larger than or equal to "
2531 "B<SHN_LORESERVE> (0xff00), this member holds B<SHN_XINDEX> (0xffff) and the "
2532 "real index of the section name string table section is held in the "
2533 "I<sh_link> member of the initial entry in section header table.  Otherwise, "
2534 "the I<sh_link> member of the initial entry in section header table contains "
2535 "the value zero."
2536 msgstr ""
2537 "セクション名前文字列テーブルのインデックスが B<SHN_LORESERVE> (0xff00) 以上"
2538 "の\n"
2539 "場合、このメンバには B<SHN_XINDEX> (0xffff) が入り、セクション名前文字列\n"
2540 "テーブルの実際のインデックスはセクションヘッダテーブルの最初のエントリーの\n"
2541 "I<sh_link> メンバに格納される。それ以外の場合、セクションヘッダテーブルの\n"
2542 "最初のエントリーの I<sh_link> メンバには値 0 が格納される。"
2543
2544 #. type: TP
2545 #: build/C/man5/elf.5:627 build/C/man5/elf.5:914
2546 #, no-wrap
2547 msgid "B<SHN_UNDEF>"
2548 msgstr "B<SHN_UNDEF>"
2549
2550 #. type: Plain text
2551 #: build/C/man5/elf.5:636
2552 msgid ""
2553 "This value marks an undefined, missing, irrelevant, or otherwise meaningless "
2554 "section reference.  For example, a symbol \"defined\" relative to section "
2555 "number B<SHN_UNDEF> is an undefined symbol."
2556 msgstr ""
2557 "この値は未定義・存在しない・無関係その他、 意味のないセクションの参照であるこ"
2558 "とを表す。 例えば、セクション番号 B<SHN_UNDEF> に関連づけて「定義」されたシン"
2559 "ボルは、「未定義」なシンボルである。"
2560
2561 #. type: TP
2562 #: build/C/man5/elf.5:636 build/C/man5/elf.5:918
2563 #, no-wrap
2564 msgid "B<SHN_LORESERVE>"
2565 msgstr "B<SHN_LORESERVE>"
2566
2567 #. type: Plain text
2568 #: build/C/man5/elf.5:639 build/C/man5/elf.5:921
2569 msgid "This value specifies the lower bound of the range of reserved indices."
2570 msgstr "この値は予約済みのインデックス領域の下限を指定する。"
2571
2572 #. type: TP
2573 #: build/C/man5/elf.5:639 build/C/man5/elf.5:921
2574 #, no-wrap
2575 msgid "B<SHN_LOPROC>"
2576 msgstr "B<SHN_LOPROC>"
2577
2578 #. type: Plain text
2579 #: build/C/man5/elf.5:644 build/C/man5/elf.5:926
2580 msgid ""
2581 "Values greater than or equal to B<SHN_HIPROC> are reserved for processor-"
2582 "specific semantics."
2583 msgstr ""
2584 "この値以上で B<SHN_HIPROC> 以下の値はプロセッサ固有の意味に予約されている。"
2585
2586 #. type: TP
2587 #: build/C/man5/elf.5:644 build/C/man5/elf.5:926
2588 #, no-wrap
2589 msgid "B<SHN_HIPROC>"
2590 msgstr "B<SHN_HIPROC>"
2591
2592 #. type: Plain text
2593 #: build/C/man5/elf.5:649 build/C/man5/elf.5:931
2594 msgid ""
2595 "Values less than or equal to B<SHN_LOPROC> are reserved for processor-"
2596 "specific semantics."
2597 msgstr ""
2598 "この値以下で B<SHN_HIPROC> 以上の値はプロセッサ固有の意味に予約されている。"
2599
2600 #. type: TP
2601 #: build/C/man5/elf.5:649 build/C/man5/elf.5:931
2602 #, no-wrap
2603 msgid "B<SHN_ABS>"
2604 msgstr "B<SHN_ABS>"
2605
2606 #. type: Plain text
2607 #: build/C/man5/elf.5:656
2608 msgid ""
2609 "This value specifies absolute values for the corresponding reference.  For "
2610 "example, symbols defined relative to section number B<SHN_ABS> have absolute "
2611 "values and are not affected by relocation."
2612 msgstr ""
2613 "この値は対応する参照の絶対値を指定する。 例えば、セクション番号 B<SHN_ABS> に"
2614 "関連づけられたシンボルは絶対値を保持し、再配置に影響されない。"
2615
2616 #. type: TP
2617 #: build/C/man5/elf.5:656 build/C/man5/elf.5:938
2618 #, no-wrap
2619 msgid "B<SHN_COMMON>"
2620 msgstr "B<SHN_COMMON>"
2621
2622 #. type: Plain text
2623 #: build/C/man5/elf.5:660
2624 msgid ""
2625 "Symbols defined relative to this section are common symbols, such as Fortran "
2626 "COMMON or unallocated C external variables."
2627 msgstr ""
2628 "このセクションに関連して定義されたシンボルは、 Fortran の COMMON や C の未割"
2629 "り当て external 変数のような、 共通シンボルである。"
2630
2631 #. type: TP
2632 #: build/C/man5/elf.5:660 build/C/man5/elf.5:942
2633 #, no-wrap
2634 msgid "B<SHN_HIRESERVE>"
2635 msgstr "B<SHN_HIRESERVE>"
2636
2637 #. type: Plain text
2638 #: build/C/man5/elf.5:673
2639 msgid ""
2640 "This value specifies the upper bound of the range of reserved indices "
2641 "between B<SHN_LORESERVE> and B<SHN_HIRESERVE>, inclusive; the values do not "
2642 "reference the section header table.  That is, the section header table does "
2643 "I<not> contain entries for the reserved indices."
2644 msgstr ""
2645 "この値は予約されたインデックスの範囲の上限を指定する。 B<SHN_LORESERVE> と "
2646 "B<SHN_HIRESERVE> は含まれる。 この値はセクションヘッダテーブルを参照しない。 "
2647 "つまり、セクションヘッダテーブルは 予約されたインデックスのエントリを I<含ま"
2648 "ない 。>"
2649
2650 #. type: Plain text
2651 #: build/C/man5/elf.5:695
2652 msgid ""
2653 "An executable or shared object file's program header table is an array of "
2654 "structures, each describing a segment or other information the system needs "
2655 "to prepare the program for execution.  An object file I<segment> contains "
2656 "one or more I<sections>.  Program headers are meaningful only for executable "
2657 "and shared object files.  A file specifies its own program header size with "
2658 "the ELF header's I<e_phentsize> and I<e_phnum> members.  The ELF program "
2659 "header is described by the type I<Elf32_Phdr> or I<Elf64_Phdr> depending on "
2660 "the architecture:"
2661 msgstr ""
2662 "実行可能ファイルまたは共有オブジェクトファイルのプログラムヘッダテーブルは、 "
2663 "システムによるプログラム実行準備に必要な、 セグメント等の情報を記述する構造体"
2664 "の配列である。 オブジェクトファイルの I<セグメント> には 1 つ以上の I<セク"
2665 "ション> が含まれる。 プログラムヘッダは実行可能ファイルと共有オブジェクトファ"
2666 "イルでのみ意味を持つ。 ファイルは自身のプログラムヘッダサイズを ELF ヘッダの "
2667 "I<e_phentsize> メンバと I<e_phnum> メンバで指定する。 ELF プログラムヘッダは "
2668 "I<Elf32_Phdr> 型または I<Elf64_Phdr> 型で記述される (どちらになるかはアーキテ"
2669 "クチャ依存):"
2670
2671 #. type: Plain text
2672 #: build/C/man5/elf.5:708
2673 #, no-wrap
2674 msgid ""
2675 "typedef struct {\n"
2676 "    uint32_t   p_type;\n"
2677 "    Elf32_Off  p_offset;\n"
2678 "    Elf32_Addr p_vaddr;\n"
2679 "    Elf32_Addr p_paddr;\n"
2680 "    uint32_t   p_filesz;\n"
2681 "    uint32_t   p_memsz;\n"
2682 "    uint32_t   p_flags;\n"
2683 "    uint32_t   p_align;\n"
2684 "} Elf32_Phdr;\n"
2685 msgstr ""
2686 "typedef struct {\n"
2687 "    uint32_t   p_type;\n"
2688 "    Elf32_Off  p_offset;\n"
2689 "    Elf32_Addr p_vaddr;\n"
2690 "    Elf32_Addr p_paddr;\n"
2691 "    uint32_t   p_filesz;\n"
2692 "    uint32_t   p_memsz;\n"
2693 "    uint32_t   p_flags;\n"
2694 "    uint32_t   p_align;\n"
2695 "} Elf32_Phdr;\n"
2696
2697 #. type: Plain text
2698 #: build/C/man5/elf.5:723
2699 #, no-wrap
2700 msgid ""
2701 "typedef struct {\n"
2702 "    uint32_t   p_type;\n"
2703 "    uint32_t   p_flags;\n"
2704 "    Elf64_Off  p_offset;\n"
2705 "    Elf64_Addr p_vaddr;\n"
2706 "    Elf64_Addr p_paddr;\n"
2707 "    uint64_t   p_filesz;\n"
2708 "    uint64_t   p_memsz;\n"
2709 "    uint64_t   p_align;\n"
2710 "} Elf64_Phdr;\n"
2711 msgstr ""
2712 "typedef struct {\n"
2713 "    uint32_t   p_type;\n"
2714 "    uint32_t   p_flags;\n"
2715 "    Elf64_Off  p_offset;\n"
2716 "    Elf64_Addr p_vaddr;\n"
2717 "    Elf64_Addr p_paddr;\n"
2718 "    uint64_t   p_filesz;\n"
2719 "    uint64_t   p_memsz;\n"
2720 "    uint64_t   p_align;\n"
2721 "} Elf64_Phdr;\n"
2722
2723 #.  .Bl -tag -width "p_offset"
2724 #. type: Plain text
2725 #: build/C/man5/elf.5:731
2726 msgid ""
2727 "The main difference between the 32-bit and the 64-bit program header lies in "
2728 "the location of the I<p_flags> member in the total struct."
2729 msgstr ""
2730 "32 ビットと 64 ビットのプログラムヘッダの主な違いは、構造体における "
2731 "I<p_flags> メンバの位置にある。"
2732
2733 #. type: TP
2734 #: build/C/man5/elf.5:731
2735 #, no-wrap
2736 msgid "I<p_type>"
2737 msgstr "I<p_type>"
2738
2739 #.  .Bl -tag -width "PT_DYNAMIC"
2740 #. type: Plain text
2741 #: build/C/man5/elf.5:736
2742 msgid ""
2743 "This member of the Phdr struct tells what kind of segment this array element "
2744 "describes or how to interpret the array element's information."
2745 msgstr ""
2746 "Phdr 構造体のこのメンバは、 この配列要素がどのような種類のセグメントを記述し"
2747 "ているか、 またはこの配列要素の情報をどのように解釈するか、を表す。"
2748
2749 #. type: TP
2750 #: build/C/man5/elf.5:737
2751 #, no-wrap
2752 msgid "B<PT_NULL>"
2753 msgstr "B<PT_NULL>"
2754
2755 #. type: Plain text
2756 #: build/C/man5/elf.5:741
2757 msgid ""
2758 "The array element is unused and the other members' values are undefined.  "
2759 "This lets the program header have ignored entries."
2760 msgstr ""
2761 "この配列要素は使用されておらず、その他のメンバの値は未定義である。 これによ"
2762 "り、このプログラムヘッダのエントリは無視される。"
2763
2764 #. type: TP
2765 #: build/C/man5/elf.5:741
2766 #, no-wrap
2767 msgid "B<PT_LOAD>"
2768 msgstr "B<PT_LOAD>"
2769
2770 #. type: Plain text
2771 #: build/C/man5/elf.5:762
2772 msgid ""
2773 "The array element specifies a loadable segment, described by I<p_filesz> and "
2774 "I<p_memsz>.  The bytes from the file are mapped to the beginning of the "
2775 "memory segment.  If the segment's memory size I<p_memsz> is larger than the "
2776 "file size I<p_filesz>, the \"extra\" bytes are defined to hold the value 0 "
2777 "and to follow the segment's initialized area.  The file size may not be "
2778 "larger than the memory size.  Loadable segment entries in the program header "
2779 "table appear in ascending order, sorted on the I<p_vaddr> member."
2780 msgstr ""
2781 "この配列要素は I<p_filesz> と I<p_memsz> で記述されるロード可能セグメントを指"
2782 "定する。 このファイルからのバイトデータが、このメモリセグメントの先頭からマッ"
2783 "プされる。 セグメントのメモリサイズ I<Sy>p_memsz がファイルサイズ "
2784 "I<Sy>p_filesz より大きい場合、 「余った」バイトは値 0 となり、 そのセグメント"
2785 "初期化データの後ろに置かれると定められている。 ファイルサイズはメモリサイズよ"
2786 "り大きくてはいけない。 プログラムヘッダテーブルのロード可能セグメントエントリ"
2787 "は、 I<p_vaddr> メンバの昇順にソートされて出現する。"
2788
2789 #. type: TP
2790 #: build/C/man5/elf.5:762
2791 #, no-wrap
2792 msgid "B<PT_DYNAMIC>"
2793 msgstr "B<PT_DYNAMIC>"
2794
2795 #. type: Plain text
2796 #: build/C/man5/elf.5:765
2797 msgid "The array element specifies dynamic linking information."
2798 msgstr "この配列要素は動的リンク情報を指定する。"
2799
2800 #. type: TP
2801 #: build/C/man5/elf.5:765
2802 #, no-wrap
2803 msgid "B<PT_INTERP>"
2804 msgstr "B<PT_INTERP>"
2805
2806 #. type: Plain text
2807 #: build/C/man5/elf.5:773
2808 msgid ""
2809 "The array element specifies the location and size of a null-terminated "
2810 "pathname to invoke as an interpreter.  This segment type is meaningful only "
2811 "for executable files (though it may occur for shared objects).  However it "
2812 "may not occur more than once in a file.  If it is present, it must precede "
2813 "any loadable segment entry."
2814 msgstr ""
2815 "この配列要素は、インタプリタとして起動されるパス名 (ヌル文字終端)  の位置と"
2816 "サイズを指定する。 このセグメント型は (共有オブジェクトにもあるかも知れない"
2817 "が)  実行可能ファイルでのみ意味を持つ。 ただし、このセグメント型は 1 つのファ"
2818 "イルに 2 回以上出現してはならない。 もし存在する場合、このセグメント型は 全て"
2819 "のロード可能セグメントエントリより前になければならない。"
2820
2821 #. type: TP
2822 #: build/C/man5/elf.5:773
2823 #, no-wrap
2824 msgid "B<PT_NOTE>"
2825 msgstr "B<PT_NOTE>"
2826
2827 #. type: Plain text
2828 #: build/C/man5/elf.5:776
2829 msgid ""
2830 "The array element specifies the location and size for auxiliary information."
2831 msgstr ""
2832 "この配列要素は補足情報 (auxiliary information) の位置とサイズを指定する。"
2833
2834 #. type: TP
2835 #: build/C/man5/elf.5:776
2836 #, no-wrap
2837 msgid "B<PT_SHLIB>"
2838 msgstr "B<PT_SHLIB>"
2839
2840 #. type: Plain text
2841 #: build/C/man5/elf.5:781
2842 msgid ""
2843 "This segment type is reserved but has unspecified semantics.  Programs that "
2844 "contain an array element of this type do not conform to the ABI."
2845 msgstr ""
2846 "このセグメント型は予約されているが、意味は指定されていない。 この型の配列要素"
2847 "を保持するプログラムは ABI に準拠しない。"
2848
2849 #. type: TP
2850 #: build/C/man5/elf.5:781
2851 #, no-wrap
2852 msgid "B<PT_PHDR>"
2853 msgstr "B<PT_PHDR>"
2854
2855 #. type: Plain text
2856 #: build/C/man5/elf.5:790
2857 msgid ""
2858 "The array element, if present, specifies the location and size of the "
2859 "program header table itself, both in the file and in the memory image of the "
2860 "program.  This segment type may not occur more than once in a file.  "
2861 "Moreover, it may occur only if the program header table is part of the "
2862 "memory image of the program.  If it is present, it must precede any loadable "
2863 "segment entry."
2864 msgstr ""
2865 "この配列要素は、もし存在しているならば、 ファイルおよびプログラムのメモリイ"
2866 "メージ双方における プログラムヘッダテーブル自身の位置とサイズを指定する。 こ"
2867 "のセグメント型は 1 つのファイルに 2 回以上出現してはならない。 さらに、このセ"
2868 "グメント型が存在してもよいのは、プログラムヘッダテーブルが プログラムのメモリ"
2869 "イメージの一部である場合のみである。 もし存在する場合、これは全てのロード可能"
2870 "セグメントエントリより 前になければならない。"
2871
2872 #. type: TP
2873 #: build/C/man5/elf.5:790
2874 #, no-wrap
2875 msgid "B<PT_LOPROC>"
2876 msgstr "B<PT_LOPROC>"
2877
2878 #. type: Plain text
2879 #: build/C/man5/elf.5:795
2880 msgid ""
2881 "Values greater than or equal to B<PT_HIPROC> are reserved for processor-"
2882 "specific semantics."
2883 msgstr ""
2884 "この値以上で B<PT_HIPROC> 以下の値はプロセッサ固有の意味に予約されている。"
2885
2886 #. type: TP
2887 #: build/C/man5/elf.5:795
2888 #, no-wrap
2889 msgid "B<PT_HIPROC>"
2890 msgstr "B<PT_HIPROC>"
2891
2892 #. type: Plain text
2893 #: build/C/man5/elf.5:800
2894 msgid ""
2895 "Values less than or equal to B<PT_LOPROC> are reserved for processor-"
2896 "specific semantics."
2897 msgstr ""
2898 "この値以下で B<PT_LOPROC> 以上の値はプロセッサ固有の意味に予約されている。"
2899
2900 #. type: TP
2901 #: build/C/man5/elf.5:800
2902 #, no-wrap
2903 msgid "B<PT_GNU_STACK>"
2904 msgstr "B<PT_GNU_STACK>"
2905
2906 #.  .El
2907 #. type: Plain text
2908 #: build/C/man5/elf.5:807
2909 msgid ""
2910 "GNU extension which is used by the Linux kernel to control the state of the "
2911 "stack via the flags set in the I<p_flags> member."
2912 msgstr ""
2913 "GNU 拡張であり、Linux カーネルが I<p_flags> のメンバーにセットされたフラグ経"
2914 "由でスタックの状態を制御するために使用する。"
2915
2916 #. type: TP
2917 #: build/C/man5/elf.5:808
2918 #, no-wrap
2919 msgid "I<p_offset>"
2920 msgstr "I<p_offset>"
2921
2922 #. type: Plain text
2923 #: build/C/man5/elf.5:812
2924 msgid ""
2925 "This member holds the offset from the beginning of the file at which the "
2926 "first byte of the segment resides."
2927 msgstr ""
2928 "このメンバは、セグメントの先頭バイトがある (ファイル先頭からの) オフセットを"
2929 "保持する。"
2930
2931 #. type: TP
2932 #: build/C/man5/elf.5:812
2933 #, no-wrap
2934 msgid "I<p_vaddr>"
2935 msgstr "I<p_vaddr>"
2936
2937 #. type: Plain text
2938 #: build/C/man5/elf.5:816
2939 msgid ""
2940 "This member holds the virtual address at which the first byte of the segment "
2941 "resides in memory."
2942 msgstr ""
2943 "このメンバは、セグメントの先頭バイトがある メモリの仮想アドレスを保持する。"
2944
2945 #. type: TP
2946 #: build/C/man5/elf.5:816
2947 #, no-wrap
2948 msgid "I<p_paddr>"
2949 msgstr "I<p_paddr>"
2950
2951 #. type: Plain text
2952 #: build/C/man5/elf.5:824
2953 msgid ""
2954 "On systems for which physical addressing is relevant, this member is "
2955 "reserved for the segment's physical address.  Under BSD this member is not "
2956 "used and must be zero."
2957 msgstr ""
2958 "物理アドレスが意味をもつシステムでは、 このメンバはセグメントの物理アドレスと"
2959 "して予約されている。 BSD ではこのメンバは使用されない。0 でなければならない。"
2960
2961 #. type: TP
2962 #: build/C/man5/elf.5:824
2963 #, no-wrap
2964 msgid "I<p_filesz>"
2965 msgstr "I<p_filesz>"
2966
2967 #. type: Plain text
2968 #: build/C/man5/elf.5:828
2969 msgid ""
2970 "This member holds the number of bytes in the file image of the segment.  It "
2971 "may be zero."
2972 msgstr ""
2973 "このメンバはセグメントのファイルイメージのバイト数を保持する。 これは 0 でも"
2974 "よい。"
2975
2976 #. type: TP
2977 #: build/C/man5/elf.5:828
2978 #, no-wrap
2979 msgid "I<p_memsz>"
2980 msgstr "I<p_memsz>"
2981
2982 #. type: Plain text
2983 #: build/C/man5/elf.5:832
2984 msgid ""
2985 "This member holds the number of bytes in the memory image of the segment.  "
2986 "It may be zero."
2987 msgstr ""
2988 "このメンバはセグメントのメモリイメージのバイト数を保持する。 これは 0 でもよ"
2989 "い。"
2990
2991 #. type: TP
2992 #: build/C/man5/elf.5:832
2993 #, no-wrap
2994 msgid "I<p_flags>"
2995 msgstr "I<p_flags>"
2996
2997 #.  .Bl -tag -width "PF_X" -compact
2998 #. type: Plain text
2999 #: build/C/man5/elf.5:836
3000 msgid "This member holds a bit mask of flags relevant to the segment:"
3001 msgstr "このメンバはセグメントに関連するフラグのビットマスクを保持する:"
3002
3003 #. type: TP
3004 #: build/C/man5/elf.5:837
3005 #, no-wrap
3006 msgid "B<PF_X>"
3007 msgstr "B<PF_X>"
3008
3009 #. type: Plain text
3010 #: build/C/man5/elf.5:841
3011 msgid "An executable segment."
3012 msgstr "実行可能セグメント。"
3013
3014 #. type: TP
3015 #: build/C/man5/elf.5:841
3016 #, no-wrap
3017 msgid "B<PF_W>"
3018 msgstr "B<PF_W>"
3019
3020 #. type: Plain text
3021 #: build/C/man5/elf.5:844
3022 msgid "A writable segment."
3023 msgstr "書き込み可能セグメント."
3024
3025 #. type: TP
3026 #: build/C/man5/elf.5:844
3027 #, no-wrap
3028 msgid "B<PF_R>"
3029 msgstr "B<PF_R>"
3030
3031 #. type: Plain text
3032 #: build/C/man5/elf.5:847
3033 msgid "A readable segment."
3034 msgstr "読み込み可能セグメント。"
3035
3036 #. type: Plain text
3037 #: build/C/man5/elf.5:860
3038 msgid ""
3039 "A text segment commonly has the flags B<PF_X> and B<PF_R>.  A data segment "
3040 "commonly has B<PF_X>, B<PF_W> and B<PF_R>."
3041 msgstr ""
3042 "テキストセグメントは一般にフラグ B<PF_X> と B<PF_R> を持つ。 データセグメント"
3043 "は一般に B<PF_X>, B<PF_W>, B<PF_R> を持つ。"
3044
3045 #. type: TP
3046 #: build/C/man5/elf.5:860
3047 #, no-wrap
3048 msgid "I<p_align>"
3049 msgstr "I<p_align>"
3050
3051 #.  .El
3052 #. type: Plain text
3053 #: build/C/man5/elf.5:879
3054 msgid ""
3055 "This member holds the value to which the segments are aligned in memory and "
3056 "in the file.  Loadable process segments must have congruent values for "
3057 "I<p_vaddr> and I<p_offset>, modulo the page size.  Values of zero and one "
3058 "mean no alignment is required.  Otherwise, I<p_align> should be a positive, "
3059 "integral power of two, and I<p_vaddr> should equal I<p_offset>, modulo "
3060 "I<p_align>."
3061 msgstr ""
3062 "このメンバは、セグメントがメモリおよびファイルにおいて配置 (align)  される値"
3063 "を保持する。 ロード可能プロセスセグメントは、ページサイズを法として "
3064 "I<p_vaddr> と I<p_offset> と合同でなければならない (訳注:「p_vaddr mod ページ"
3065 "サイズ = p_offset mod ページサイズ」 でなければならない)。。 0 と 1 という値"
3066 "は配置が必要ないことを意味する。 それ以外の場合、 I<p_align> は正で 2 の整数"
3067 "乗でなければならず、 I<p_vaddr> は I<p_align> を法として I<p_offset> と合同で"
3068 "なければならない (訳注:「p_vaddr mod p_align = p_offset mod p_align」でなけれ"
3069 "ばならない)。"
3070
3071 #. type: Plain text
3072 #: build/C/man5/elf.5:896
3073 msgid ""
3074 "A file's section header table lets one locate all the file's sections.  The "
3075 "section header table is an array of I<Elf32_Shdr> or I<Elf64_Shdr> "
3076 "structures.  The ELF header's I<e_shoff> member gives the byte offset from "
3077 "the beginning of the file to the section header table.  I<e_shnum> holds the "
3078 "number of entries the section header table contains.  I<e_shentsize> holds "
3079 "the size in bytes of each entry."
3080 msgstr ""
3081 "ファイルのセクションヘッダテーブルには、 全てのファイルセクションの場所が記述"
3082 "されている。 セクションヘッダテーブルは I<Elf32_Shdr> 構造体または "
3083 "I<Elf64_Shdr> 構造体の配列である。 ELF ヘッダの I<e_shoff> メンバはファイルの"
3084 "先頭から セクションヘッダテーブルへのバイトオフセットである。 I<e_shnum> はセ"
3085 "クションヘッダテーブルに含まれるエントリの数を保持する。 I<e_shentsize> は各"
3086 "エントリのサイズ (バイト単位) を保持する。"
3087
3088 #.  .Bl -tag -width "SHN_LORESERVE"
3089 #. type: Plain text
3090 #: build/C/man5/elf.5:913
3091 msgid ""
3092 "A section header table index is a subscript into this array.  Some section "
3093 "header table indices are reserved: the initial entry and the indices between "
3094 "B<SHN_LORESERVE> and B<SHN_HIRESERVE>.  The initial entry is used in ELF "
3095 "extensions for I<e_phnum>, I<e_shnum> and I<e_strndx>; in other cases, each "
3096 "field in the initial entry is set to zero.  An object file does not have "
3097 "sections for these special indices:"
3098 msgstr ""
3099 "セクションヘッダテーブルインデックスは、この配列の添字である。\n"
3100 "いくつかのセクションヘッダテーブルインデックスは予約されている。予約されて\n"
3101 "いるのは、最初のエントリーと、B<SHN_LORESERVE> と B<SHN_HIRESERVE> の間の\n"
3102 "インデックスである。\n"
3103 "最初のエントリーは、ELF 拡張で I<e_phnum>, I<e_shnum>, I<e_strndx> に使用\n"
3104 "される。それ以外の場合、最初のエントリーの各フィールドには 0 が設定される。\n"
3105 "オブジェクトファイルにはこれらの特別なインデックスに対応するセクションはな"
3106 "い。"
3107
3108 #. type: Plain text
3109 #: build/C/man5/elf.5:918
3110 msgid ""
3111 "This value marks an undefined, missing, irrelevant, or otherwise meaningless "
3112 "section reference."
3113 msgstr ""
3114 "この値は、未定義 (undefined)、不足 (missing)、無関係 (irrelevant)、その他無意"
3115 "味なセクション参照を示す。"
3116
3117 #. type: Plain text
3118 #: build/C/man5/elf.5:938
3119 msgid ""
3120 "This value specifies the absolute value for the corresponding reference.  "
3121 "For example, a symbol defined relative to section number B<SHN_ABS> has an "
3122 "absolute value and is not affected by relocation."
3123 msgstr ""
3124 "この値は対応する参照の絶対値を指定する。 例えば、セクション番号 B<SHN_ABS> に"
3125 "関連して定義されているシンボルは、 絶対値を保持しているので、再配置に影響され"
3126 "ない。"
3127
3128 #. type: Plain text
3129 #: build/C/man5/elf.5:942
3130 msgid ""
3131 "Symbols defined relative to this section are common symbols, such as FORTRAN "
3132 "COMMON or unallocated C external variables."
3133 msgstr ""
3134 "このセクションに関連して定義されているシンボルは、 FORTRAN の COMMON や C の"
3135 "未割り当て外部変数のような共通シンボルである。"
3136
3137 #. type: Plain text
3138 #: build/C/man5/elf.5:953
3139 msgid ""
3140 "This value specifies the upper bound of the range of reserved indices.  The "
3141 "system reserves indices between B<SHN_LORESERVE> and B<SHN_HIRESERVE>, "
3142 "inclusive.  The section header table does not contain entries for the "
3143 "reserved indices."
3144 msgstr ""
3145 "この値は予約済みのインデックス領域の上限を指定する。 システムは "
3146 "B<SHN_LORESERVE> と B<SHN_HIRESERVE> を含む範囲を予約する。 セクションヘッダ"
3147 "テーブルは予約されたインデックスに対応するエントリを持たない。"
3148
3149 #. type: Plain text
3150 #: build/C/man5/elf.5:957
3151 msgid "The section header has the following structure:"
3152 msgstr "セクションヘッダは以下の構造体を持つ:"
3153
3154 #. type: Plain text
3155 #: build/C/man5/elf.5:972
3156 #, no-wrap
3157 msgid ""
3158 "typedef struct {\n"
3159 "    uint32_t   sh_name;\n"
3160 "    uint32_t   sh_type;\n"
3161 "    uint32_t   sh_flags;\n"
3162 "    Elf32_Addr sh_addr;\n"
3163 "    Elf32_Off  sh_offset;\n"
3164 "    uint32_t   sh_size;\n"
3165 "    uint32_t   sh_link;\n"
3166 "    uint32_t   sh_info;\n"
3167 "    uint32_t   sh_addralign;\n"
3168 "    uint32_t   sh_entsize;\n"
3169 "} Elf32_Shdr;\n"
3170 msgstr ""
3171 "typedef struct {\n"
3172 "    uint32_t   sh_name;\n"
3173 "    uint32_t   sh_type;\n"
3174 "    uint32_t   sh_flags;\n"
3175 "    Elf32_Addr sh_addr;\n"
3176 "    Elf32_Off  sh_offset;\n"
3177 "    uint32_t   sh_size;\n"
3178 "    uint32_t   sh_link;\n"
3179 "    uint32_t   sh_info;\n"
3180 "    uint32_t   sh_addralign;\n"
3181 "    uint32_t   sh_entsize;\n"
3182 "} Elf32_Shdr;\n"
3183
3184 #. type: Plain text
3185 #: build/C/man5/elf.5:989
3186 #, no-wrap
3187 msgid ""
3188 "typedef struct {\n"
3189 "    uint32_t   sh_name;\n"
3190 "    uint32_t   sh_type;\n"
3191 "    uint64_t   sh_flags;\n"
3192 "    Elf64_Addr sh_addr;\n"
3193 "    Elf64_Off  sh_offset;\n"
3194 "    uint64_t   sh_size;\n"
3195 "    uint32_t   sh_link;\n"
3196 "    uint32_t   sh_info;\n"
3197 "    uint64_t   sh_addralign;\n"
3198 "    uint64_t   sh_entsize;\n"
3199 "} Elf64_Shdr;\n"
3200 msgstr ""
3201 "typedef struct {\n"
3202 "    uint32_t   sh_name;\n"
3203 "    uint32_t   sh_type;\n"
3204 "    uint64_t   sh_flags;\n"
3205 "    Elf64_Addr sh_addr;\n"
3206 "    Elf64_Off  sh_offset;\n"
3207 "    uint64_t   sh_size;\n"
3208 "    uint32_t   sh_link;\n"
3209 "    uint32_t   sh_info;\n"
3210 "    uint64_t   sh_addralign;\n"
3211 "    uint64_t   sh_entsize;\n"
3212 "} Elf64_Shdr;\n"
3213
3214 #.  .Bl -tag -width "sh_addralign"
3215 #. type: Plain text
3216 #: build/C/man5/elf.5:994
3217 msgid ""
3218 "No real differences exist between the 32-bit and 64-bit section headers."
3219 msgstr "32 ビットと 64 ビットのセクションヘッダには実際の違いはない。"
3220
3221 #. type: TP
3222 #: build/C/man5/elf.5:994
3223 #, no-wrap
3224 msgid "I<sh_name>"
3225 msgstr "I<sh_name>"
3226
3227 #. type: Plain text
3228 #: build/C/man5/elf.5:1000
3229 msgid ""
3230 "This member specifies the name of the section.  Its value is an index into "
3231 "the section header string table section, giving the location of a null-"
3232 "terminated string."
3233 msgstr ""
3234 "このメンバはセクション名を定める。 この値はセクションヘッダ文字列テーブルセク"
3235 "ションのインデックスであり、 ヌル文字で終端された文字列の場所を示す。"
3236
3237 #. type: TP
3238 #: build/C/man5/elf.5:1000
3239 #, no-wrap
3240 msgid "I<sh_type>"
3241 msgstr "I<sh_type>"
3242
3243 #.  .Bl -tag -width "SHT_PROGBITS"
3244 #. type: Plain text
3245 #: build/C/man5/elf.5:1004
3246 msgid "This member categorizes the section's contents and semantics."
3247 msgstr "このメンバはセクションの内容と意味が含まれるカテゴリを示す。"
3248
3249 #. type: TP
3250 #: build/C/man5/elf.5:1005
3251 #, no-wrap
3252 msgid "B<SHT_NULL>"
3253 msgstr "B<SHT_NULL>"
3254
3255 #. type: Plain text
3256 #: build/C/man5/elf.5:1012
3257 msgid ""
3258 "This value marks the section header as inactive.  It does not have an "
3259 "associated section.  Other members of the section header have undefined "
3260 "values."
3261 msgstr ""
3262 "この値はセクションヘッダが不活性であることを示す。 これは関連するセクションを"
3263 "持たない。 このセクションヘッダの他のメンバは、未定義の値を持つ。"
3264
3265 #. type: TP
3266 #: build/C/man5/elf.5:1012
3267 #, no-wrap
3268 msgid "B<SHT_PROGBITS>"
3269 msgstr "B<SHT_PROGBITS>"
3270
3271 #. type: Plain text
3272 #: build/C/man5/elf.5:1016
3273 msgid ""
3274 "This section holds information defined by the program, whose format and "
3275 "meaning are determined solely by the program."
3276 msgstr ""
3277 "このセクションはプログラムにより定義される情報を保持する。 この情報の形式と意"
3278 "味は、ひとえにプログラムによって決定される。"
3279
3280 #. type: TP
3281 #: build/C/man5/elf.5:1016
3282 #, no-wrap
3283 msgid "B<SHT_SYMTAB>"
3284 msgstr "B<SHT_SYMTAB>"
3285
3286 #. type: Plain text
3287 #: build/C/man5/elf.5:1029
3288 msgid ""
3289 "This section holds a symbol table.  Typically, B<SHT_SYMTAB> provides "
3290 "symbols for link editing, though it may also be used for dynamic linking.  "
3291 "As a complete symbol table, it may contain many symbols unnecessary for "
3292 "dynamic linking.  An object file can also contain a B<SHT_DYNSYM> section."
3293 msgstr ""
3294 "このセクションはシンボルテーブルを保持する。 一般には B<SHT_SYMTAB> はリンク"
3295 "編集のためのシンボルを提供するが、 動的リンクにも使われる。 完全なシンボル"
3296 "テーブルとして、動的リンクには不要な 多くのシンボルを保持できる。 オブジェク"
3297 "トファイルも B<SHT_DYNSYM> セクションを持つことができる。"
3298
3299 #. type: TP
3300 #: build/C/man5/elf.5:1029
3301 #, no-wrap
3302 msgid "B<SHT_STRTAB>"
3303 msgstr "B<SHT_STRTAB>"
3304
3305 #. type: Plain text
3306 #: build/C/man5/elf.5:1034
3307 msgid ""
3308 "This section holds a string table.  An object file may have multiple string "
3309 "table sections."
3310 msgstr ""
3311 "このセクションは文字列テーブルを保持する。 オブジェクトファイルは複数の文字列"
3312 "テーブルセクションを持つことができる。"
3313
3314 #. type: TP
3315 #: build/C/man5/elf.5:1034
3316 #, no-wrap
3317 msgid "B<SHT_RELA>"
3318 msgstr "B<SHT_RELA>"
3319
3320 #. type: Plain text
3321 #: build/C/man5/elf.5:1042
3322 msgid ""
3323 "This section holds relocation entries with explicit addends, such as type "
3324 "I<Elf32_Rela> for the 32-bit class of object files.  An object may have "
3325 "multiple relocation sections."
3326 msgstr ""
3327 "このセクションは明示的な加数 (addend) を持つ再配置エントリを保持する。 再配置"
3328 "エントリの型は、オブジェクトファイルの 32 ビットクラスでは I<Elf32_Rela> であ"
3329 "る。 オブジェクトファイルは複数の再配置セクションを持つことができる。"
3330
3331 #. type: TP
3332 #: build/C/man5/elf.5:1042
3333 #, no-wrap
3334 msgid "B<SHT_HASH>"
3335 msgstr "B<SHT_HASH>"
3336
3337 #. type: Plain text
3338 #: build/C/man5/elf.5:1049
3339 msgid ""
3340 "This section holds a symbol hash table.  An object participating in dynamic "
3341 "linking must contain a symbol hash table.  An object file may have only one "
3342 "hash table."
3343 msgstr ""
3344 "このセクションはシンボルハッシュテーブルを保持する。 動的リンクされるオブジェ"
3345 "クトは、 シンボルハッシュテーブルを含んでいなければならない。 オブジェクト"
3346 "ファイルは 1 つのハッシュテーブルのみを持つことができる。"
3347
3348 #. type: TP
3349 #: build/C/man5/elf.5:1049
3350 #, no-wrap
3351 msgid "B<SHT_DYNAMIC>"
3352 msgstr "B<SHT_DYNAMIC>"
3353
3354 #. type: Plain text
3355 #: build/C/man5/elf.5:1054
3356 msgid ""
3357 "This section holds information for dynamic linking.  An object file may have "
3358 "only one dynamic section."
3359 msgstr ""
3360 "このセクションは動的リンクの情報を保持する。 オブジェクトファイルは 1 つの動"
3361 "的セクションのみを持つことができる。"
3362
3363 #. type: TP
3364 #: build/C/man5/elf.5:1054
3365 #, no-wrap
3366 msgid "B<SHT_NOTE>"
3367 msgstr "B<SHT_NOTE>"
3368
3369 #. type: Plain text
3370 #: build/C/man5/elf.5:1057
3371 msgid "This section holds information that marks the file in some way."
3372 msgstr "このセクションはファイルに何らかの印を付ける情報を保持する。"
3373
3374 #. type: TP
3375 #: build/C/man5/elf.5:1057
3376 #, no-wrap
3377 msgid "B<SHT_NOBITS>"
3378 msgstr "B<SHT_NOBITS>"
3379
3380 #. type: Plain text
3381 #: build/C/man5/elf.5:1065
3382 msgid ""
3383 "A section of this type occupies no space in the file but otherwise resembles "
3384 "B<SHT_PROGBITS>.  Although this section contains no bytes, the I<sh_offset> "
3385 "member contains the conceptual file offset."
3386 msgstr ""
3387 "このタイプのセクションはファイルの領域を使わないという以外は、 "
3388 "B<SHT_PROGBITS> と似ている。 このセクションは 1 バイトも含まないが、 "
3389 "I<sh_offset> メンバは概念的なファイルオフセットを持つ。"
3390
3391 #. type: TP
3392 #: build/C/man5/elf.5:1065
3393 #, no-wrap
3394 msgid "B<SHT_REL>"
3395 msgstr "B<SHT_REL>"
3396
3397 #. type: Plain text
3398 #: build/C/man5/elf.5:1073
3399 msgid ""
3400 "This section holds relocation offsets without explicit addends, such as type "
3401 "I<Elf32_Rel> for the 32-bit class of object files.  An object file may have "
3402 "multiple relocation sections."
3403 msgstr ""
3404 "このセクションは明示的な加数を持たない再配置オフセットを保持する。 再配置オフ"
3405 "セットの型は、オブジェクトファイルの 32 ビットクラスでは I<Elf32_Rel> であ"
3406 "る。 オブジェクトファイルは複数の再配置セクションを持つことができる。"
3407
3408 #. type: TP
3409 #: build/C/man5/elf.5:1073
3410 #, no-wrap
3411 msgid "B<SHT_SHLIB>"
3412 msgstr "B<SHT_SHLIB>"
3413
3414 #. type: Plain text
3415 #: build/C/man5/elf.5:1076
3416 msgid "This section is reserved but has unspecified semantics."
3417 msgstr "このセクションは予約されているが、意味は指定されていない。"
3418
3419 #. type: TP
3420 #: build/C/man5/elf.5:1076
3421 #, no-wrap
3422 msgid "B<SHT_DYNSYM>"
3423 msgstr "B<SHT_DYNSYM>"
3424
3425 #. type: Plain text
3426 #: build/C/man5/elf.5:1083
3427 msgid ""
3428 "This section holds a minimal set of dynamic linking symbols.  An object file "
3429 "can also contain a B<SHT_SYMTAB> section."
3430 msgstr ""
3431 "このセクションは動的リンクシンボルの最小セットを保持する。 オブジェクトファイ"
3432 "ルは B<SHT_SYMTAB> セクションも含むことができる。"
3433
3434 #. type: TP
3435 #: build/C/man5/elf.5:1083
3436 #, no-wrap
3437 msgid "B<SHT_LOPROC>"
3438 msgstr "B<SHT_LOPROC>"
3439
3440 #. type: Plain text
3441 #: build/C/man5/elf.5:1088
3442 msgid ""
3443 "This value up to and including B<SHT_HIPROC> is reserved for processor-"
3444 "specific semantics."
3445 msgstr ""
3446 "この値以上で B<SHT_HIPROC> 以下の範囲はプロセッサ固有の意味に予約されている。"
3447
3448 #. type: TP
3449 #: build/C/man5/elf.5:1088
3450 #, no-wrap
3451 msgid "B<SHT_HIPROC>"
3452 msgstr "B<SHT_HIPROC>"
3453
3454 #. type: Plain text
3455 #: build/C/man5/elf.5:1093
3456 msgid ""
3457 "This value down to and including B<SHT_LOPROC> is reserved for processor-"
3458 "specific semantics."
3459 msgstr ""
3460 "この値以下で B<SHT_LOPROC> 以上の範囲はプロセッサ固有の意味に予約されている。"
3461
3462 #. type: TP
3463 #: build/C/man5/elf.5:1093
3464 #, no-wrap
3465 msgid "B<SHT_LOUSER>"
3466 msgstr "B<SHT_LOUSER>"
3467
3468 #. type: Plain text
3469 #: build/C/man5/elf.5:1097
3470 msgid ""
3471 "This value specifies the lower bound of the range of indices reserved for "
3472 "application programs."
3473 msgstr ""
3474 "この値はアプリケーションプログラムのために予約される インデックス範囲の下限を"
3475 "指定する。"
3476
3477 #. type: TP
3478 #: build/C/man5/elf.5:1097
3479 #, no-wrap
3480 msgid "B<SHT_HIUSER>"
3481 msgstr "B<SHT_HIUSER>"
3482
3483 #.  .El
3484 #. type: Plain text
3485 #: build/C/man5/elf.5:1108
3486 msgid ""
3487 "This value specifies the upper bound of the range of indices reserved for "
3488 "application programs.  Section types between B<SHT_LOUSER> and B<SHT_HIUSER> "
3489 "may be used by the application, without conflicting with current or future "
3490 "system-defined section types."
3491 msgstr ""
3492 "この値はアプリケーションプログラムのために予約される インデックス範囲の上限を"
3493 "指定する。 B<SHT_LOUSER> から B<SHT_HIUSER> の間のセクションタイプは、 現在ま"
3494 "たは将来のシステム定義セクションタイプと衝突することなく、 アプリケーションで"
3495 "使用することができる。"
3496
3497 #. type: TP
3498 #: build/C/man5/elf.5:1109
3499 #, no-wrap
3500 msgid "I<sh_flags>"
3501 msgstr "I<sh_flags>"
3502
3503 #.  .Bl -tag -width "SHF_EXECINSTR" -compact
3504 #. type: Plain text
3505 #: build/C/man5/elf.5:1122
3506 msgid ""
3507 "Sections support one-bit flags that describe miscellaneous attributes.  If a "
3508 "flag bit is set in I<sh_flags>, the attribute is \"on\" for the section.  "
3509 "Otherwise, the attribute is \"off\" or does not apply.  Undefined attributes "
3510 "are set to zero."
3511 msgstr ""
3512 "様々な属性を記述するための 1 ビットのフラグをサポートするセクション。 フラグ"
3513 "ビットが I<sh_flags> に設定された場合、そのセクションについての属性は \"オン"
3514 "\" になる。 それ以外の場合、属性が \"オフ\" であるか属性が適用されない。 未定"
3515 "義の属性は 0 に設定される。"
3516
3517 #. type: TP
3518 #: build/C/man5/elf.5:1123
3519 #, no-wrap
3520 msgid "B<SHF_WRITE>"
3521 msgstr "B<SHF_WRITE>"
3522
3523 #. type: Plain text
3524 #: build/C/man5/elf.5:1127
3525 msgid ""
3526 "This section contains data that should be writable during process execution."
3527 msgstr "このセクションはプロセス実行中に書き込み可能なデータを含む。"
3528
3529 #. type: TP
3530 #: build/C/man5/elf.5:1127
3531 #, no-wrap
3532 msgid "B<SHF_ALLOC>"
3533 msgstr "B<SHF_ALLOC>"
3534
3535 #. type: Plain text
3536 #: build/C/man5/elf.5:1134
3537 msgid ""
3538 "This section occupies memory during process execution.  Some control "
3539 "sections do not reside in the memory image of an object file.  This "
3540 "attribute is off for those sections."
3541 msgstr ""
3542 "このセクションはプロセス実行中にメモリを使用する。 制御セクションの中には、オ"
3543 "ブジェクトファイルのメモリイメージには 存在しないものもある。 そうしたセク"
3544 "ションの場合、この属性はオフである。"
3545
3546 #. type: TP
3547 #: build/C/man5/elf.5:1134
3548 #, no-wrap
3549 msgid "B<SHF_EXECINSTR>"
3550 msgstr "B<SHF_EXECINSTR>"
3551
3552 #. type: Plain text
3553 #: build/C/man5/elf.5:1137
3554 msgid "This section contains executable machine instructions."
3555 msgstr "このセクションは実行可能なマシン命令を含む。"
3556
3557 #. type: TP
3558 #: build/C/man5/elf.5:1137
3559 #, no-wrap
3560 msgid "B<SHF_MASKPROC>"
3561 msgstr "B<SHF_MASKPROC>"
3562
3563 #. type: Plain text
3564 #: build/C/man5/elf.5:1141
3565 msgid ""
3566 "All bits included in this mask are reserved for processor-specific semantics."
3567 msgstr ""
3568 "このマスクに含まれる全てのビットはプロセッサ固有の意味に予約されている。"
3569
3570 #. type: TP
3571 #: build/C/man5/elf.5:1143
3572 #, no-wrap
3573 msgid "I<sh_addr>"
3574 msgstr "I<sh_addr>"
3575
3576 #. type: Plain text
3577 #: build/C/man5/elf.5:1148
3578 msgid ""
3579 "If this section appears in the memory image of a process, this member holds "
3580 "the address at which the section's first byte should reside.  Otherwise, the "
3581 "member contains zero."
3582 msgstr ""
3583 "このセクションがプロセスのメモリイメージにある場合、 このメンバはセクションの"
3584 "最初のバイトが存在するアドレスを保持する。 それ以外の場合、このメンバは 0 で"
3585 "ある。"
3586
3587 #. type: TP
3588 #: build/C/man5/elf.5:1148
3589 #, no-wrap
3590 msgid "I<sh_offset>"
3591 msgstr "I<sh_offset>"
3592
3593 #. type: Plain text
3594 #: build/C/man5/elf.5:1157
3595 msgid ""
3596 "This member's value holds the byte offset from the beginning of the file to "
3597 "the first byte in the section.  One section type, B<SHT_NOBITS>, occupies no "
3598 "space in the file, and its I<sh_offset> member locates the conceptual "
3599 "placement in the file."
3600 msgstr ""
3601 "このメンバの値は、ファイルの先頭からセクションの最初のバイトへの バイトオフ"
3602 "セットを保持する。 セクションタイプ B<SHT_NOBITS> はファイルの領域を全く使用"
3603 "せず、このタイプの I<sh_offset> メンバはファイルの概念的な位置を示す。"
3604
3605 #. type: TP
3606 #: build/C/man5/elf.5:1157
3607 #, no-wrap
3608 msgid "I<sh_size>"
3609 msgstr "I<sh_size>"
3610
3611 #. type: Plain text
3612 #: build/C/man5/elf.5:1169
3613 msgid ""
3614 "This member holds the section's size in bytes.  Unless the section type is "
3615 "B<SHT_NOBITS>, the section occupies I<sh_size> bytes in the file.  A section "
3616 "of type B<SHT_NOBITS> may have a nonzero size, but it occupies no space in "
3617 "the file."
3618 msgstr ""
3619 "このメンバはセクションのサイズ (バイト単位) を保持する。 セクションタイプが "
3620 "B<SHT_NOBITS> でない限り、そのセクションはファイル中の I<sh_size> バイトを使"
3621 "用する。 タイプが B<SHT_NOBITS> のセクションはサイズが 0 でないが、ファイルの"
3622 "領域を使用しない。"
3623
3624 #. type: TP
3625 #: build/C/man5/elf.5:1169
3626 #, no-wrap
3627 msgid "I<sh_link>"
3628 msgstr "I<sh_link>"
3629
3630 #. type: Plain text
3631 #: build/C/man5/elf.5:1173
3632 msgid ""
3633 "This member holds a section header table index link, whose interpretation "
3634 "depends on the section type."
3635 msgstr ""
3636 "このメンバは、セクションヘッダテーブルインデックスリンクを保持する。 この解釈"
3637 "はセクションタイプに依存する。"
3638
3639 #. type: TP
3640 #: build/C/man5/elf.5:1173
3641 #, no-wrap
3642 msgid "I<sh_info>"
3643 msgstr "I<sh_info>"
3644
3645 #. type: Plain text
3646 #: build/C/man5/elf.5:1177
3647 msgid ""
3648 "This member holds extra information, whose interpretation depends on the "
3649 "section type."
3650 msgstr ""
3651 "このメンバは追加情報を保持する。 この解釈はセクションタイプに依存する。"
3652
3653 #. type: TP
3654 #: build/C/man5/elf.5:1177
3655 #, no-wrap
3656 msgid "I<sh_addralign>"
3657 msgstr "I<sh_addralign>"
3658
3659 #. type: Plain text
3660 #: build/C/man5/elf.5:1190
3661 msgid ""
3662 "Some sections have address alignment constraints.  If a section holds a "
3663 "doubleword, the system must ensure doubleword alignment for the entire "
3664 "section.  That is, the value of I<sh_addr> must be congruent to zero, modulo "
3665 "the value of I<sh_addralign>.  Only zero and positive integral powers of two "
3666 "are allowed.  Values of zero or one mean the section has no alignment "
3667 "constraints."
3668 msgstr ""
3669 "アドレス配置に制約があるセクションもある。 セクションが倍長語 (doubleword) を"
3670 "保持する場合、 システムは全てのセクションについて倍長語の配置を保証しなければ"
3671 "ならない。 つまり、 I<sh_addr> の値は I<sh_addralign> の値を法として 0 と合同"
3672 "でなければならない (訳注:「sh_addr mod sh_addralign = 0 でなければならな"
3673 "い)。 2 の 0 乗と正の整数乗のみが許可される。 0 または 1 はセクションの配置に"
3674 "制約がないことを意味する。"
3675
3676 #. type: TP
3677 #: build/C/man5/elf.5:1190
3678 #, no-wrap
3679 msgid "I<sh_entsize>"
3680 msgstr "I<sh_entsize>"
3681
3682 #.  .El
3683 #. type: Plain text
3684 #: build/C/man5/elf.5:1197
3685 msgid ""
3686 "Some sections hold a table of fixed-sized entries, such as a symbol table.  "
3687 "For such a section, this member gives the size in bytes for each entry.  "
3688 "This member contains zero if the section does not hold a table of fixed-size "
3689 "entries."
3690 msgstr ""
3691 "シンボルテーブルのような固定サイズエントリのテーブルを保持する セクションもあ"
3692 "る。 このようなセクションでは、 このメンバは各エントリのサイズ (バイト単位) "
3693 "を表す。 このメンバが 0 の場合、 そのセクションは固定サイズエントリのテーブル"
3694 "を保持しない。"
3695
3696 #.  .Bl -tag -width ".shstrtab"
3697 #. type: Plain text
3698 #: build/C/man5/elf.5:1200
3699 msgid "Various sections hold program and control information:"
3700 msgstr "さまざまなセクションにプログラム情報・制御情報が保持される:"
3701
3702 #. type: TP
3703 #: build/C/man5/elf.5:1200
3704 #, no-wrap
3705 msgid "I<.bss>"
3706 msgstr "I<.bss>"
3707
3708 #. type: Plain text
3709 #: build/C/man5/elf.5:1212
3710 msgid ""
3711 "This section holds uninitialized data that contributes to the program's "
3712 "memory image.  By definition, the system initializes the data with zeros "
3713 "when the program begins to run.  This section is of type B<SHT_NOBITS>.  The "
3714 "attribute types are B<SHF_ALLOC> and B<SHF_WRITE>."
3715 msgstr ""
3716 "このセクションはプログラムのメモリイメージに配置される 非初期化データを保持す"
3717 "る。 定義上、システムはプログラムの実行開始時に、データを 0 で初期化する。 こ"
3718 "のセクションのタイプは B<SHT_NOBITS> である。 属性タイプは B<SHF_ALLOC> と "
3719 "B<SHF_WRITE> である。"
3720
3721 #. type: TP
3722 #: build/C/man5/elf.5:1212
3723 #, no-wrap
3724 msgid "I<.comment>"
3725 msgstr "I<.comment>"
3726
3727 #. type: Plain text
3728 #: build/C/man5/elf.5:1218
3729 msgid ""
3730 "This section holds version control information.  This section is of type "
3731 "B<SHT_PROGBITS>.  No attribute types are used."
3732 msgstr ""
3733 "このセクションはバージョン制御情報を保持する。 このセクションのタイプは "
3734 "B<SHT_PROGBITS> である。 属性タイプは使用されない。"
3735
3736 #. type: TP
3737 #: build/C/man5/elf.5:1218
3738 #, no-wrap
3739 msgid "I<.ctors>"
3740 msgstr "I<.ctors>"
3741
3742 #. type: Plain text
3743 #: build/C/man5/elf.5:1227
3744 msgid ""
3745 "This section holds initialized pointers to the C++ constructor functions.  "
3746 "This section is of type B<SHT_PROGBITS>.  The attribute types are "
3747 "B<SHF_ALLOC> and B<SHF_WRITE>."
3748 msgstr ""
3749 "このセクションは C++ コンストラクタ関数への初期化されたポインタを保持する。 "
3750 "このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは B<SHF_ALLOC> "
3751 "と B<SHF_WRITE> である。"
3752
3753 #. type: TP
3754 #: build/C/man5/elf.5:1227
3755 #, no-wrap
3756 msgid "I<.data>"
3757 msgstr "I<.data>"
3758
3759 #. type: Plain text
3760 #: build/C/man5/elf.5:1237 build/C/man5/elf.5:1247
3761 msgid ""
3762 "This section holds initialized data that contribute to the program's memory "
3763 "image.  This section is of type B<SHT_PROGBITS>.  The attribute types are "
3764 "B<SHF_ALLOC> and B<SHF_WRITE>."
3765 msgstr ""
3766 "このセクションはプログラムのメモリイメージに配置される 初期化済みデータを保持"
3767 "する。 このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは "
3768 "B<SHF_ALLOC> と B<SHF_WRITE> である。"
3769
3770 #. type: TP
3771 #: build/C/man5/elf.5:1237
3772 #, no-wrap
3773 msgid "I<.data1>"
3774 msgstr "I<.data1>"
3775
3776 #. type: TP
3777 #: build/C/man5/elf.5:1247
3778 #, no-wrap
3779 msgid "I<.debug>"
3780 msgstr "I<.debug>"
3781
3782 #. type: Plain text
3783 #: build/C/man5/elf.5:1255
3784 msgid ""
3785 "This section holds information for symbolic debugging.  The contents are "
3786 "unspecified.  This section is of type B<SHT_PROGBITS>.  No attribute types "
3787 "are used."
3788 msgstr ""
3789 "このセクションはシンボリックデバッグ用の情報を保持する。 その内容は指定されて"
3790 "いない。 このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは使用さ"
3791 "れない。"
3792
3793 #. type: TP
3794 #: build/C/man5/elf.5:1255
3795 #, no-wrap
3796 msgid "I<.dtors>"
3797 msgstr "I<.dtors>"
3798
3799 #. type: Plain text
3800 #: build/C/man5/elf.5:1264
3801 msgid ""
3802 "This section holds initialized pointers to the C++ destructor functions.  "
3803 "This section is of type B<SHT_PROGBITS>.  The attribute types are "
3804 "B<SHF_ALLOC> and B<SHF_WRITE>."
3805 msgstr ""
3806 "このセクションは C++ デストラクタ関数への初期化されたポインタを保持する。 こ"
3807 "のセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは B<SHF_ALLOC> と "
3808 "B<SHF_WRITE> である。"
3809
3810 #. type: TP
3811 #: build/C/man5/elf.5:1264
3812 #, no-wrap
3813 msgid "I<.dynamic>"
3814 msgstr "I<.dynamic>"
3815
3816 #. type: Plain text
3817 #: build/C/man5/elf.5:1277
3818 msgid ""
3819 "This section holds dynamic linking information.  The section's attributes "
3820 "will include the B<SHF_ALLOC> bit.  Whether the B<SHF_WRITE> bit is set is "
3821 "processor-specific.  This section is of type B<SHT_DYNAMIC>.  See the "
3822 "attributes above."
3823 msgstr ""
3824 "このセクションは動的リンク情報を保持する。 このセクションの属性は "
3825 "B<SHF_ALLOC> ビットを含む。 B<SHF_WRITE> ビットが設定されるか否かはプロセッサ"
3826 "による。 このセクションのタイプは B<SHT_DYNAMIC> である。 上記の属性を参照す"
3827 "ること。"
3828
3829 #. type: TP
3830 #: build/C/man5/elf.5:1277
3831 #, no-wrap
3832 msgid "I<.dynstr>"
3833 msgstr "I<.dynstr>"
3834
3835 #. type: Plain text
3836 #: build/C/man5/elf.5:1285
3837 msgid ""
3838 "This section holds strings needed for dynamic linking, most commonly the "
3839 "strings that represent the names associated with symbol table entries.  This "
3840 "section is of type B<SHT_STRTAB>.  The attribute type used is B<SHF_ALLOC>."
3841 msgstr ""
3842 "このセクションは動的リンクに必要な文字列を保持する。 最も一般的には、この文字"
3843 "列はシンボルテーブルエントリと 関連づけられた名前を表す。 このセクションのタ"
3844 "イプは B<SHT_STRTAB> である。 使用される属性タイプは B<SHF_ALLOC> である。"
3845
3846 #. type: TP
3847 #: build/C/man5/elf.5:1285
3848 #, no-wrap
3849 msgid "I<.dynsym>"
3850 msgstr "I<.dynsym>"
3851
3852 #. type: Plain text
3853 #: build/C/man5/elf.5:1292
3854 msgid ""
3855 "This section holds the dynamic linking symbol table.  This section is of "
3856 "type B<SHT_DYNSYM>.  The attribute used is B<SHF_ALLOC>."
3857 msgstr ""
3858 "このセクションは動的リンクシンボルテーブルを保持する。 このセクションのタイプ"
3859 "は B<SHT_DYNSYM> である。 使用される属性タイプは B<SHF_ALLOC> である。"
3860
3861 #. type: TP
3862 #: build/C/man5/elf.5:1292
3863 #, no-wrap
3864 msgid "I<.fini>"
3865 msgstr "I<.fini>"
3866
3867 #. type: Plain text
3868 #: build/C/man5/elf.5:1304
3869 msgid ""
3870 "This section holds executable instructions that contribute to the process "
3871 "termination code.  When a program exits normally the system arranges to "
3872 "execute the code in this section.  This section is of type B<SHT_PROGBITS>.  "
3873 "The attributes used are B<SHF_ALLOC> and B<SHF_EXECINSTR>."
3874 msgstr ""
3875 "このセクションはプロセス終了コードに置かれる実行可能命令を保持する。 プロセス"
3876 "が正常に終了した場合、システムはこのセクションにある コードを配置して実行す"
3877 "る。 このセクションのタイプは B<SHT_PROGBITS> である。 使用される属性タイプ"
3878 "は B<SHF_ALLOC> と B<SHF_EXECINSTR> である。"
3879
3880 #. type: TP
3881 #: build/C/man5/elf.5:1304
3882 #, no-wrap
3883 msgid "I<.gnu.version>"
3884 msgstr "I<.gnu.version>"
3885
3886 #. type: Plain text
3887 #: build/C/man5/elf.5:1313
3888 msgid ""
3889 "This section holds the version symbol table, an array of I<ElfN_Half> "
3890 "elements.  This section is of type B<SHT_GNU_versym>.  The attribute type "
3891 "used is B<SHF_ALLOC>."
3892 msgstr ""
3893 "このセクションはバージョン・シンボル・テーブルを保持する。 その内容は "
3894 "I<ElfN_Half> 要素の配列である。 このセクションのタイプは B<SHT_GNU_versym> で"
3895 "ある。 使用される属性タイプは B<SHF_ALLOC> である。"
3896
3897 #. type: TP
3898 #: build/C/man5/elf.5:1313
3899 #, no-wrap
3900 msgid "I<.gnu.version_d>"
3901 msgstr "I<.gnu.version_d>"
3902
3903 #. type: Plain text
3904 #: build/C/man5/elf.5:1322
3905 msgid ""
3906 "This section holds the version symbol definitions, a table of I<ElfN_Verdef> "
3907 "structures.  This section is of type B<SHT_GNU_verdef>.  The attribute type "
3908 "used is B<SHF_ALLOC>."
3909 msgstr ""
3910 "このセクションはバージョンシンボルの定義を保持する。 その内容は "
3911 "I<ElfN_Verdef> 構造体のテーブルである。 このセクションのタイプは "
3912 "B<SHT_GNU_verdef> である。 使用される属性タイプは B<SHF_ALLOC> である。"
3913
3914 #. type: TP
3915 #: build/C/man5/elf.5:1322
3916 #, no-wrap
3917 msgid "I<.gnu.version_r>"
3918 msgstr "I<.gnu.version_r>"
3919
3920 #. type: Plain text
3921 #: build/C/man5/elf.5:1332
3922 msgid ""
3923 "This section holds the version symbol needed elements, a table of "
3924 "I<ElfN_Verneed> structures.  This section is of type B<SHT_GNU_versym>.  The "
3925 "attribute type used is B<SHF_ALLOC>."
3926 msgstr ""
3927 "このセクションはバージョンシンボルが必要とする要素を保持する。 その内容は "
3928 "I<ElfN_Verneed> 構造体のテーブルである。 このセクションのタイプは "
3929 "B<SHT_GNU_versym> である。 使用される属性タイプは B<shf_alloc> である。"
3930
3931 #. type: TP
3932 #: build/C/man5/elf.5:1332
3933 #, no-wrap
3934 msgid "I<.got>"
3935 msgstr "I<.got>"
3936
3937 #. type: Plain text
3938 #: build/C/man5/elf.5:1338
3939 msgid ""
3940 "This section holds the global offset table.  This section is of type "
3941 "B<SHT_PROGBITS>.  The attributes are processor-specific."
3942 msgstr ""
3943 "このセクションはグローバルオフセットテーブルを保持する。 このセクションのタイ"
3944 "プは B<SHT_PROGBITS> である。 属性はプロセッサ毎に異なる。"
3945
3946 #. type: TP
3947 #: build/C/man5/elf.5:1338
3948 #, no-wrap
3949 msgid "I<.hash>"
3950 msgstr "I<.hash>"
3951
3952 #. type: Plain text
3953 #: build/C/man5/elf.5:1345
3954 msgid ""
3955 "This section holds a symbol hash table.  This section is of type "
3956 "B<SHT_HASH>.  The attribute used is B<SHF_ALLOC>."
3957 msgstr ""
3958 "このセクションはシンボルハッシュテーブルを保持する。 セクションのタイプは "
3959 "B<SHT_HASH> である。 使用される属性は B<SHF_ALLOC> である。"
3960
3961 #. type: TP
3962 #: build/C/man5/elf.5:1345
3963 #, no-wrap
3964 msgid "I<.init>"
3965 msgstr "I<.init>"
3966
3967 #. type: Plain text
3968 #: build/C/man5/elf.5:1357
3969 msgid ""
3970 "This section holds executable instructions that contribute to the process "
3971 "initialization code.  When a program starts to run the system arranges to "
3972 "execute the code in this section before calling the main program entry "
3973 "point.  This section is of type B<SHT_PROGBITS>.  The attributes used are "
3974 "B<SHF_ALLOC> and B<SHF_EXECINSTR>."
3975 msgstr ""
3976 "このセクションはプロセス初期化コードに配置される実行可能命令を保持する。 プロ"
3977 "グラムが実行を開始すると、 システムはメインプログラムエントリポイントを呼び出"
3978 "す前に、 このセクションにあるコードを配置して実行する。 このセクションはのタ"
3979 "イプは B<SHT_PROGBITS> である。 使用される属性は B<SHF_ALLOC> と "
3980 "B<SHF_EXECINSTR> である。"
3981
3982 #. type: TP
3983 #: build/C/man5/elf.5:1357
3984 #, no-wrap
3985 msgid "I<.interp>"
3986 msgstr "I<.interp>"
3987
3988 #. type: Plain text
3989 #: build/C/man5/elf.5:1368
3990 msgid ""
3991 "This section holds the pathname of a program interpreter.  If the file has a "
3992 "loadable segment that includes the section, the section's attributes will "
3993 "include the B<SHF_ALLOC> bit.  Otherwise, that bit will be off.  This "
3994 "section is of type B<SHT_PROGBITS>."
3995 msgstr ""
3996 "このセクションはプログラムインタプリタのパス名を保持する。 ファイルにこのセク"
3997 "ションを含むロード可能セグメントがある場合、 そのセクションの属性には "
3998 "B<SHF_ALLOC> ビットが含まれる。 それ以外の場合このビットはオフになる。 このセ"
3999 "クションのタイプは B<SHT_PROGBITS> である。"
4000
4001 #. type: TP
4002 #: build/C/man5/elf.5:1368
4003 #, no-wrap
4004 msgid "I<.line>"
4005 msgstr "I<.line>"
4006
4007 #. type: Plain text
4008 #: build/C/man5/elf.5:1376
4009 msgid ""
4010 "This section holds line number information for symbolic debugging, which "
4011 "describes the correspondence between the program source and the machine "
4012 "code.  The contents are unspecified.  This section is of type "
4013 "B<SHT_PROGBITS>.  No attribute types are used."
4014 msgstr ""
4015 "このセクションはシンボリックデバッグのための行番号情報を保持する。 ここにはプ"
4016 "ログラムソースコードとマシンコードの対応関係が記述される。 内容は指定されてい"
4017 "ない。 このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは使用され"
4018 "ない。"
4019
4020 #. type: TP
4021 #: build/C/man5/elf.5:1376
4022 #, no-wrap
4023 msgid "I<.note>"
4024 msgstr "I<.note>"
4025
4026 #. type: Plain text
4027 #: build/C/man5/elf.5:1389
4028 msgid ""
4029 "This section holds information in the \"Note Section\" format.  This section "
4030 "is of type B<SHT_NOTE>.  No attribute types are used.  OpenBSD native "
4031 "executables usually contain a I<.note.openbsd.ident> section to identify "
4032 "themselves, for the kernel to bypass any compatibility ELF binary emulation "
4033 "tests when loading the file."
4034 msgstr ""
4035 "このセクションは \"Note Section\" 形式で情報を保持する。このセクションのタイ"
4036 "プ\n"
4037 "は B<SHT_NOTE> である。属性タイプは使用されない。通常 OpenBSD ネイティブ実"
4038 "行\n"
4039 "可能ファイルは自身を識別するために I<.note.openbsd.ident> セクションを持"
4040 "つ。\n"
4041 "これによりカーネルは、ファイルをロードする際に 互換 ELF バイナリエミュレー"
4042 "ショ\n"
4043 "ンテストを回避できる。"
4044
4045 #. type: TP
4046 #: build/C/man5/elf.5:1389
4047 #, no-wrap
4048 msgid "I<.note.GNU-stack>"
4049 msgstr "I<.note.GNU-stack>"
4050
4051 #. type: Plain text
4052 #: build/C/man5/elf.5:1398
4053 msgid ""
4054 "This section is used in Linux object files for declaring stack attributes.  "
4055 "This section is of type B<SHT_PROGBITS>.  The only attribute used is "
4056 "B<SHF_EXECINSTR>.  This indicates to the GNU linker that the object file "
4057 "requires an executable stack."
4058 msgstr ""
4059 "このセクションは Linux のオブジェクトファイルで スタック属性を宣言するのに使"
4060 "用される。 セクションのタイプは B<SHT_PROGBITS> である。使用される属性は "
4061 "B<SHF_EXECINSTR> だけである。この属性は GNU リンカに対して オブジェクトファイ"
4062 "ルが実行可能なスタック (executable stack) を必要とする 示すものである。"
4063
4064 #. type: TP
4065 #: build/C/man5/elf.5:1398
4066 #, no-wrap
4067 msgid "I<.plt>"
4068 msgstr "I<.plt>"
4069
4070 #. type: Plain text
4071 #: build/C/man5/elf.5:1404
4072 msgid ""
4073 "This section holds the procedure linkage table.  This section is of type "
4074 "B<SHT_PROGBITS>.  The attributes are processor-specific."
4075 msgstr ""
4076 "このセクションは手続き (procedure) リンクテーブルを保持する。 このセクション"
4077 "のタイプは B<SHT_PROGBITS> である。 属性はプロセッサ毎に異なる。"
4078
4079 #. type: TP
4080 #: build/C/man5/elf.5:1404
4081 #, no-wrap
4082 msgid "I<.relNAME>"
4083 msgstr "I<.relNAME>"
4084
4085 #. type: Plain text
4086 #: build/C/man5/elf.5:1423
4087 msgid ""
4088 "This section holds relocation information as described below.  If the file "
4089 "has a loadable segment that includes relocation, the section's attributes "
4090 "will include the B<SHF_ALLOC> bit.  Otherwise the bit will be off.  By "
4091 "convention, \"NAME\" is supplied by the section to which the relocations "
4092 "apply.  Thus a relocation section for B<.text> normally would have the name "
4093 "B<.rel.text>.  This section is of type B<SHT_REL>."
4094 msgstr ""
4095 "このセクションは以下に記述される再配置情報を保持する。 ファイルが再配置を含む"
4096 "ロード可能セグメントを持っている場合、 このセクションの属性は B<SHF_ALLOC> "
4097 "ビットを含む。 それ以外の場合、そのビットはオフである。 慣例として、 \"NAME"
4098 "\" は再配置が適用されるセクションが指定される。 よって B<.text> についての再"
4099 "配置セクションは、通常は B<.rel.text> という名前を持つ。 このセクションのタイ"
4100 "プは B<SHT_REL> である。"
4101
4102 #. type: TP
4103 #: build/C/man5/elf.5:1423
4104 #, no-wrap
4105 msgid "I<.relaNAME>"
4106 msgstr "I<.relaNAME>"
4107
4108 #. type: Plain text
4109 #: build/C/man5/elf.5:1442
4110 msgid ""
4111 "This section holds relocation information as described below.  If the file "
4112 "has a loadable segment that includes relocation, the section's attributes "
4113 "will include the B<SHF_ALLOC> bit.  Otherwise the bit will be off.  By "
4114 "convention, \"NAME\" is supplied by the section to which the relocations "
4115 "apply.  Thus a relocation section for B<.text> normally would have the name "
4116 "B<.rela.text>.  This section is of type B<SHT_RELA>."
4117 msgstr ""
4118 "このセクションは以下に記述される再配置情報を保持する。 ファイルが再配置を含む"
4119 "ロード可能セグメントを持っている場合、 このセクションの属性は B<SHF_ALLOC> "
4120 "ビットを含む。 それ以外の場合、そのビットはオフである。 慣例として、 \"NAME"
4121 "\" は再配置が適用されるセクションが指定される。 よって B<.text> についての再"
4122 "配置セクションは、通常は B<.rela.text> という名前を持つ。 このセクションのタ"
4123 "イプは B<SHT_RELA> である。"
4124
4125 #. type: TP
4126 #: build/C/man5/elf.5:1442
4127 #, no-wrap
4128 msgid "I<.rodata>"
4129 msgstr "I<.rodata>"
4130
4131 #. type: Plain text
4132 #: build/C/man5/elf.5:1450 build/C/man5/elf.5:1458
4133 msgid ""
4134 "This section holds read-only data that typically contributes to a "
4135 "nonwritable segment in the process image.  This section is of type "
4136 "B<SHT_PROGBITS>.  The attribute used is B<SHF_ALLOC>."
4137 msgstr ""
4138 "このセクションはリードオンリーのデータを保持する。 このデータはプロセスイメー"
4139 "ジにおける書き込み不可能なセグメントに置かれる。 このセクションのタイプは "
4140 "B<SHT_PROGBITS> である。 使用される属性は B<SHF_ALLOC> である。"
4141
4142 #. type: TP
4143 #: build/C/man5/elf.5:1450
4144 #, no-wrap
4145 msgid "I<.rodata1>"
4146 msgstr "I<.rodata1>"
4147
4148 #. type: TP
4149 #: build/C/man5/elf.5:1458
4150 #, no-wrap
4151 msgid "I<.shstrtab>"
4152 msgstr "I<.shstrtab>"
4153
4154 #. type: Plain text
4155 #: build/C/man5/elf.5:1464
4156 msgid ""
4157 "This section holds section names.  This section is of type B<SHT_STRTAB>.  "
4158 "No attribute types are used."
4159 msgstr ""
4160 "このセクションはセクション名を保持する。 このセクションのタイプは "
4161 "B<SHT_STRTAB> である。 属性タイプは使用されない。"
4162
4163 #. type: TP
4164 #: build/C/man5/elf.5:1464
4165 #, no-wrap
4166 msgid "I<.strtab>"
4167 msgstr "I<.strtab>"
4168
4169 #. type: Plain text
4170 #: build/C/man5/elf.5:1476
4171 msgid ""
4172 "This section holds strings, most commonly the strings that represent the "
4173 "names associated with symbol table entries.  If the file has a loadable "
4174 "segment that includes the symbol string table, the section's attributes will "
4175 "include the B<SHF_ALLOC> bit.  Otherwise the bit will be off.  This section "
4176 "is of type B<SHT_STRTAB>."
4177 msgstr ""
4178 "このセクションは文字列を保持する。 最も一般的なのは、シンボルテーブルエントリ"
4179 "に関連づけられた 名前を表す文字列である。 ファイルがシンボル文字列テーブルを"
4180 "含むロード可能セグメントを持つ場合、 セクションの属性は B<SHF_ALLOC> ビットを"
4181 "含む。 それ以外の場合、そのビットはオフである。 このセクションのタイプは "
4182 "B<SHT_STRTAB> である。"
4183
4184 #. type: TP
4185 #: build/C/man5/elf.5:1476
4186 #, no-wrap
4187 msgid "I<.symtab>"
4188 msgstr "I<.symtab>"
4189
4190 #. type: Plain text
4191 #: build/C/man5/elf.5:1487
4192 msgid ""
4193 "This section holds a symbol table.  If the file has a loadable segment that "
4194 "includes the symbol table, the section's attributes will include the "
4195 "B<SHF_ALLOC> bit.  Otherwise the bit will be off.  This section is of type "
4196 "B<SHT_SYMTAB>."
4197 msgstr ""
4198 "このセクションはシンボルテーブルを保持する。 ファイルがシンボルテーブルを含む"
4199 "ロード可能セグメントを持つ場合、 セクションの属性は B<SHF_ALLOC> ビットを含"
4200 "む。 それ以外の場合、ビットはオフである。 このセクションのタイプは "
4201 "B<SHT_SYMTAB> である。"
4202
4203 #. type: TP
4204 #: build/C/man5/elf.5:1487
4205 #, no-wrap
4206 msgid "I<.text>"
4207 msgstr "I<.text>"
4208
4209 #.  .El
4210 #. type: Plain text
4211 #: build/C/man5/elf.5:1499
4212 msgid ""
4213 "This section holds the \"text\", or executable instructions, of a program.  "
4214 "This section is of type B<SHT_PROGBITS>.  The attributes used are "
4215 "B<SHF_ALLOC> and B<SHF_EXECINSTR>."
4216 msgstr ""
4217 "このセクションはプログラムの \"テキスト\" または実行可能命令を保持する。 セク"
4218 "ションのタイプは B<SHT_PROGBITS> である。 使用される属性は B<SHF_ALLOC> と "
4219 "B<SHF_EXECINSTR> である。"
4220
4221 #. type: Plain text
4222 #: build/C/man5/elf.5:1510
4223 msgid ""
4224 "String table sections hold null-terminated character sequences, commonly "
4225 "called strings.  The object file uses these strings to represent symbol and "
4226 "section names.  One references a string as an index into the string table "
4227 "section.  The first byte, which is index zero, is defined to hold a null "
4228 "byte (\\(aq\\e0\\(aq).  Similarly, a string table's last byte is defined to "
4229 "hold a null byte, ensuring null termination for all strings."
4230 msgstr ""
4231 "文字列テーブルセクションはヌル文字で終端されたキャラクタ配列 (通常文字列と"
4232 "呼ばれるもの) を保持する。 オブジェクトファイルはこれらの文字列を シンボル名"
4233 "とセクション名を表すために使う。 文字列は、文字列テーブルセクションへのイン"
4234 "デックスとして参照される。 インデックス 0 の最初のバイトは、ヌルバイト "
4235 "(\\(aq\\e0\\(aq) を 保持すると定義されている。 同様に文字列テーブルの最後のバ"
4236 "イトもヌル文字を保持すると定義されている。 これは全ての文字列がヌルバイト"
4237 "で終端されていることを保証するためである。"
4238
4239 #. type: Plain text
4240 #: build/C/man5/elf.5:1515
4241 msgid ""
4242 "An object file's symbol table holds information needed to locate and "
4243 "relocate a program's symbolic definitions and references.  A symbol table "
4244 "index is a subscript into this array."
4245 msgstr ""
4246 "オブジェクトファイルのシンボルテーブルは、 プログラムのシンボル定義と参照を配"
4247 "置または再配置するのに 必要な情報を保持する。"
4248
4249 #. type: Plain text
4250 #: build/C/man5/elf.5:1526
4251 #, no-wrap
4252 msgid ""
4253 "typedef struct {\n"
4254 "    uint32_t      st_name;\n"
4255 "    Elf32_Addr    st_value;\n"
4256 "    uint32_t      st_size;\n"
4257 "    unsigned char st_info;\n"
4258 "    unsigned char st_other;\n"
4259 "    uint16_t      st_shndx;\n"
4260 "} Elf32_Sym;\n"
4261 msgstr ""
4262 "typedef struct {\n"
4263 "    uint32_t      st_name;\n"
4264 "    Elf32_Addr    st_value;\n"
4265 "    uint32_t      st_size;\n"
4266 "    unsigned char st_info;\n"
4267 "    unsigned char st_other;\n"
4268 "    uint16_t      st_shndx;\n"
4269 "} Elf32_Sym;\n"
4270
4271 #. type: Plain text
4272 #: build/C/man5/elf.5:1539
4273 #, no-wrap
4274 msgid ""
4275 "typedef struct {\n"
4276 "    uint32_t      st_name;\n"
4277 "    unsigned char st_info;\n"
4278 "    unsigned char st_other;\n"
4279 "    uint16_t      st_shndx;\n"
4280 "    Elf64_Addr    st_value;\n"
4281 "    uint64_t      st_size;\n"
4282 "} Elf64_Sym;\n"
4283 msgstr ""
4284 "typedef struct {\n"
4285 "    uint32_t      st_name;\n"
4286 "    unsigned char st_info;\n"
4287 "    unsigned char st_other;\n"
4288 "    uint16_t      st_shndx;\n"
4289 "    Elf64_Addr    st_value;\n"
4290 "    uint64_t      st_size;\n"
4291 "} Elf64_Sym;\n"
4292
4293 #.  .Bl -tag -width "st_value"
4294 #. type: Plain text
4295 #: build/C/man5/elf.5:1545
4296 msgid ""
4297 "The 32-bit and 64-bit versions have the same members, just in a different "
4298 "order."
4299 msgstr ""
4300 "32 ビット版と 64 ビット版は同じメンバを持ち、単に順番が異なるだけである。"
4301
4302 #. type: TP
4303 #: build/C/man5/elf.5:1545
4304 #, no-wrap
4305 msgid "I<st_name>"
4306 msgstr "I<st_name>"
4307
4308 #. type: Plain text
4309 #: build/C/man5/elf.5:1553
4310 msgid ""
4311 "This member holds an index into the object file's symbol string table, which "
4312 "holds character representations of the symbol names.  If the value is "
4313 "nonzero, it represents a string table index that gives the symbol name.  "
4314 "Otherwise, the symbol table has no name."
4315 msgstr ""
4316 "このメンバはオブジェクトファイルのシンボル文字列テーブルの インデックスを保持"
4317 "する。 シンボル文字列テーブルはシンボル名の文字表現を保持する。 この値が 0 で"
4318 "ない場合、シンボル名を得るための文字テーブルインデックスを表す。 それ以外の場"
4319 "合、シンボルテーブルは名前を持たない。"
4320
4321 #. type: TP
4322 #: build/C/man5/elf.5:1553
4323 #, no-wrap
4324 msgid "I<st_value>"
4325 msgstr "I<st_value>"
4326
4327 #. type: Plain text
4328 #: build/C/man5/elf.5:1556
4329 msgid "This member gives the value of the associated symbol."
4330 msgstr "このメンバは関連づけられたシンボルの値を表す。"
4331
4332 #. type: TP
4333 #: build/C/man5/elf.5:1556
4334 #, no-wrap
4335 msgid "I<st_size>"
4336 msgstr "I<st_size>"
4337
4338 #. type: Plain text
4339 #: build/C/man5/elf.5:1561
4340 msgid ""
4341 "Many symbols have associated sizes.  This member holds zero if the symbol "
4342 "has no size or an unknown size."
4343 msgstr ""
4344 "多くのシンボルにはそれに関連づけられたサイズがある。 シンボルがサイズを持たな"
4345 "い場合、またはサイズが不明な場合、 このメンバは 0 である。"
4346
4347 #. type: TP
4348 #: build/C/man5/elf.5:1561
4349 #, no-wrap
4350 msgid "I<st_info>"
4351 msgstr "I<st_info>"
4352
4353 #.  .Bl -tag -width "STT_SECTION"
4354 #. type: Plain text
4355 #: build/C/man5/elf.5:1565
4356 msgid "This member specifies the symbol's type and binding attributes:"
4357 msgstr "このメンバはシンボルのタイプとバインディング (binding) 属性を指定する:"
4358
4359 #. type: TP
4360 #: build/C/man5/elf.5:1566
4361 #, no-wrap
4362 msgid "B<STT_NOTYPE>"
4363 msgstr "B<STT_NOTYPE>"
4364
4365 #. type: Plain text
4366 #: build/C/man5/elf.5:1569
4367 msgid "The symbol's type is not defined."
4368 msgstr "シンボルのタイプが定義されていない。"
4369
4370 #. type: TP
4371 #: build/C/man5/elf.5:1569
4372 #, no-wrap
4373 msgid "B<STT_OBJECT>"
4374 msgstr "B<STT_OBJECT>"
4375
4376 #. type: Plain text
4377 #: build/C/man5/elf.5:1572
4378 msgid "The symbol is associated with a data object."
4379 msgstr "シンボルはデータオブジェクトに関連づけられている。"
4380
4381 #. type: TP
4382 #: build/C/man5/elf.5:1572
4383 #, no-wrap
4384 msgid "B<STT_FUNC>"
4385 msgstr "B<STT_FUNC>"
4386
4387 #. type: Plain text
4388 #: build/C/man5/elf.5:1575
4389 msgid "The symbol is associated with a function or other executable code."
4390 msgstr "シンボルは関数またはその他の実行コードに関連づけられている。"
4391
4392 #. type: TP
4393 #: build/C/man5/elf.5:1575
4394 #, no-wrap
4395 msgid "B<STT_SECTION>"
4396 msgstr "B<STT_SECTION>"
4397
4398 #. type: Plain text
4399 #: build/C/man5/elf.5:1582
4400 msgid ""
4401 "The symbol is associated with a section.  Symbol table entries of this type "
4402 "exist primarily for relocation and normally have B<STB_LOCAL> bindings."
4403 msgstr ""
4404 "シンボルはセクションに関連づけられている。 このタイプのシンボルテーブルエント"
4405 "リは、 主として再配置のために存在し、通常は B<STB_LOCAL> バインディングを持"
4406 "つ。"
4407
4408 #. type: TP
4409 #: build/C/man5/elf.5:1582
4410 #, no-wrap
4411 msgid "B<STT_FILE>"
4412 msgstr "B<STT_FILE>"
4413
4414 #. type: Plain text
4415 #: build/C/man5/elf.5:1593
4416 msgid ""
4417 "By convention, the symbol's name gives the name of the source file "
4418 "associated with the object file.  A file symbol has B<STB_LOCAL> bindings, "
4419 "its section index is B<SHN_ABS>, and it precedes the other B<STB_LOCAL> "
4420 "symbols of the file, if it is present."
4421 msgstr ""
4422 "慣例として、シンボルの名前は オブジェクトファイルに関連づけられたソースファイ"
4423 "ルの名前を指定する。 ファイルシンボルは B<STB_LOCAL> バインディングを持ち、そ"
4424 "のセクションインデックスは B<SHN_ABS> である。 ファイルシンボルは、ファイルに"
4425 "他の B<STB_LOCAL> シンボルがある場合は、それよりも先に来る。"
4426
4427 #. type: TP
4428 #: build/C/man5/elf.5:1593
4429 #, no-wrap
4430 msgid "B<STT_LOPROC>"
4431 msgstr "B<STT_LOPROC>"
4432
4433 #. type: Plain text
4434 #: build/C/man5/elf.5:1598
4435 msgid ""
4436 "This value up to and including B<STT_HIPROC> is reserved for processor-"
4437 "specific semantics."
4438 msgstr ""
4439 "この値以上で B<STT_HIPROC> 以下の範囲はプロセッサ固有の意味に予約されている。"
4440
4441 #. type: TP
4442 #: build/C/man5/elf.5:1598
4443 #, no-wrap
4444 msgid "B<STT_HIPROC>"
4445 msgstr "B<STT_HIPROC>"
4446
4447 #.  .El
4448 #.  .Bl -tag -width "STB_GLOBAL"
4449 #. type: Plain text
4450 #: build/C/man5/elf.5:1605
4451 msgid ""
4452 "This value down to and including B<STT_LOPROC> is reserved for processor-"
4453 "specific semantics."
4454 msgstr ""
4455 "この値以下で B<STT_LOPROC> 以上の範囲はプロセッサ固有の意味に予約されている。"
4456
4457 #. type: TP
4458 #: build/C/man5/elf.5:1605
4459 #, no-wrap
4460 msgid "B<STB_LOCAL>"
4461 msgstr "B<STB_LOCAL>"
4462
4463 #. type: Plain text
4464 #: build/C/man5/elf.5:1611
4465 msgid ""
4466 "Local symbols are not visible outside the object file containing their "
4467 "definition.  Local symbols of the same name may exist in multiple files "
4468 "without interfering with each other."
4469 msgstr ""
4470 "局所的シンボルはその定義を含むオブジェクトファイルの外からは見えない。 同じ名"
4471 "前の局所的シンボルは、お互いに影響を受けることなく、 複数のファイルに存在でき"
4472 "る。"
4473
4474 #. type: TP
4475 #: build/C/man5/elf.5:1611
4476 #, no-wrap
4477 msgid "B<STB_GLOBAL>"
4478 msgstr "B<STB_GLOBAL>"
4479
4480 #. type: Plain text
4481 #: build/C/man5/elf.5:1617
4482 msgid ""
4483 "Global symbols are visible to all object files being combined.  One file's "
4484 "definition of a global symbol will satisfy another file's undefined "
4485 "reference to the same symbol."
4486 msgstr ""
4487 "大域的シンボルは結びつけられている全てのオブジェクトファイルから見える。 1 つ"
4488 "のファイルで大域的シンボルが定義されていたら、 他のファイルでは同じシンボルへ"
4489 "の参照は未定義でなければならない。"
4490
4491 #. type: TP
4492 #: build/C/man5/elf.5:1617
4493 #, no-wrap
4494 msgid "B<STB_WEAK>"
4495 msgstr "B<STB_WEAK>"
4496
4497 #. type: Plain text
4498 #: build/C/man5/elf.5:1621
4499 msgid ""
4500 "Weak symbols resemble global symbols, but their definitions have lower "
4501 "precedence."
4502 msgstr "弱シンボルは大域的シンボルに似ているが、その定義は優先度が低い。"
4503
4504 #. type: TP
4505 #: build/C/man5/elf.5:1621
4506 #, no-wrap
4507 msgid "B<STB_LOPROC>"
4508 msgstr "B<STB_LOPROC>"
4509
4510 #. type: Plain text
4511 #: build/C/man5/elf.5:1626
4512 msgid ""
4513 "This value up to and including B<STB_HIPROC> is reserved for processor-"
4514 "specific semantics."
4515 msgstr ""
4516 "この値以上で B<STB_HIPROC> 以下の範囲はプロセッサ固有の意味に予約されている。"
4517
4518 #. type: TP
4519 #: build/C/man5/elf.5:1626
4520 #, no-wrap
4521 msgid "B<STB_HIPROC>"
4522 msgstr "B<STB_HIPROC>"
4523
4524 #. type: Plain text
4525 #: build/C/man5/elf.5:1631
4526 msgid ""
4527 "This value down to and including B<STB_LOPROC> is reserved for processor-"
4528 "specific semantics."
4529 msgstr ""
4530 "この値以下で B<STB_LOPROC> 以上の範囲はプロセッサ固有の意味に予約されている。"
4531
4532 #. type: Plain text
4533 #: build/C/man5/elf.5:1633
4534 msgid "There are macros for packing and unpacking the binding and type fields:"
4535 msgstr ""
4536 "バインディングとタイプフィールドを パックしたりアンパックしたりするマクロがあ"
4537 "る:"
4538
4539 #. type: Plain text
4540 #: build/C/man5/elf.5:1640
4541 msgid ""
4542 "B<ELF32_ST_BIND>(info)  or B<ELF64_ST_BIND>(info)  extract a binding from an "
4543 "I<st_info> value."
4544 msgstr ""
4545 "B<ELF32_ST_BIND>(info)  または B<ELF64_ST_BIND>(info)  I<st_info> の値からバ"
4546 "インディングを取り出す。"
4547
4548 #. type: Plain text
4549 #: build/C/man5/elf.5:1644
4550 msgid "B<ELF32_ST_TYPE>(info)  or B<ELF64_ST_TYPE>(info)"
4551 msgstr "B<ELF32_ST_TYPE>(info)  または B<ELF64_ST_TYPE>(info)"
4552
4553 #. type: Plain text
4554 #: build/C/man5/elf.5:1648
4555 msgid "extract a type from an I<st_info> value."
4556 msgstr "I<st_info> の値からタイプを取り出す。"
4557
4558 #. type: Plain text
4559 #: build/C/man5/elf.5:1652
4560 msgid "B<ELF32_ST_INFO>(bind, type)  or B<ELF64_ST_INFO>(bind, type)"
4561 msgstr "B<ELF32_ST_INFO>(bind, type)  または B<ELF64_ST_INFO>(bind, type)"
4562
4563 #. type: Plain text
4564 #: build/C/man5/elf.5:1656
4565 msgid "convert a binding and a type into an I<st_info> value."
4566 msgstr "バインディングとタイプを I<st_info> の値に変換する。"
4567
4568 #. type: TP
4569 #: build/C/man5/elf.5:1658
4570 #, no-wrap
4571 msgid "I<st_other>"
4572 msgstr "I<st_other>"
4573
4574 #.  .Bl -tag -width "STV_PROTECTED"
4575 #. type: Plain text
4576 #: build/C/man5/elf.5:1662
4577 msgid "This member defines the symbol visibility."
4578 msgstr "このメンバはシンボルの visibility (見える範囲) を規定する。"
4579
4580 #. type: TP
4581 #: build/C/man5/elf.5:1663
4582 #, no-wrap
4583 msgid "B<STV_DEFAULT>"
4584 msgstr "B<STV_DEFAULT>"
4585
4586 #. type: Plain text
4587 #: build/C/man5/elf.5:1667
4588 msgid "Default symbol visibility rules."
4589 msgstr "デフォルトのシンボル visibility ルール。"
4590
4591 #. type: TP
4592 #: build/C/man5/elf.5:1667
4593 #, no-wrap
4594 msgid "B<STV_INTERNAL>"
4595 msgstr "B<STV_INTERNAL>"
4596
4597 #. type: Plain text
4598 #: build/C/man5/elf.5:1670
4599 msgid "Processor-specific hidden class."
4600 msgstr "プロセッサ固有の隠しクラス。"
4601
4602 #. type: TP
4603 #: build/C/man5/elf.5:1670
4604 #, no-wrap
4605 msgid "B<STV_HIDDEN>"
4606 msgstr "B<STV_HIDDEN>"
4607
4608 #. type: Plain text
4609 #: build/C/man5/elf.5:1673
4610 msgid "Symbol is unavailable in other modules."
4611 msgstr "シンボルは他のモジュールからは利用できない。"
4612
4613 #. type: TP
4614 #: build/C/man5/elf.5:1673
4615 #, no-wrap
4616 msgid "B<STV_PROTECTED>"
4617 msgstr "B<STV_PROTECTED>"
4618
4619 #. type: Plain text
4620 #: build/C/man5/elf.5:1676
4621 msgid "Not preemptible, not exported."
4622 msgstr "横取りできず (not preemptible)、公開されない。"
4623
4624 #. type: Plain text
4625 #: build/C/man5/elf.5:1679
4626 msgid "There are macros for extracting the visibility type:"
4627 msgstr "visibility 種別を抽出するためのマクロがある。"
4628
4629 #. type: Plain text
4630 #: build/C/man5/elf.5:1683
4631 msgid "B<ELF32_ST_VISIBILITY>(other)  or B<ELF64_ST_VISIBILITY>(other)"
4632 msgstr "B<ELF32_ST_VISIBILITY>(other)  または B<ELF64_ST_VISIBILITY>(other)"
4633
4634 #. type: TP
4635 #: build/C/man5/elf.5:1685
4636 #, no-wrap
4637 msgid "I<st_shndx>"
4638 msgstr "I<st_shndx>"
4639
4640 #.  .El
4641 #. type: Plain text
4642 #: build/C/man5/elf.5:1693
4643 msgid ""
4644 "Every symbol table entry is \"defined\" in relation to some section.  This "
4645 "member holds the relevant section header table index."
4646 msgstr ""
4647 "各シンボルテーブルエントリは、いくつかのセクションに関連して \"定義されている"
4648 "\"。 このメンバは関連するセクションヘッダテーブルインデックスを保持する。"
4649
4650 #. type: Plain text
4651 #: build/C/man5/elf.5:1701
4652 msgid ""
4653 "Relocation is the process of connecting symbolic references with symbolic "
4654 "definitions.  Relocatable files must have information that describes how to "
4655 "modify their section contents, thus allowing executable and shared object "
4656 "files to hold the right information for a process's program image.  "
4657 "Relocation entries are these data."
4658 msgstr ""
4659 "再配置はシンボル参照とシンボル定義を結合するプロセスである。 再配置可能ファイ"
4660 "ルはセクションの内容をどのように修正するかに関する 情報を持たなければならな"
4661 "い。 これにより、実行可能ファイルと共有オブジェクトファイルは プロセスのプロ"
4662 "グラムイメージについての正しい情報を持つことができる。 再配置エントリは以下の"
4663 "ようなデータである。"
4664
4665 #. type: Plain text
4666 #: build/C/man5/elf.5:1703
4667 msgid "Relocation structures that do not need an addend:"
4668 msgstr "加数を必要としない再配置構造体。"
4669
4670 #. type: Plain text
4671 #: build/C/man5/elf.5:1710
4672 #, no-wrap
4673 msgid ""
4674 "typedef struct {\n"
4675 "    Elf32_Addr r_offset;\n"
4676 "    uint32_t   r_info;\n"
4677 "} Elf32_Rel;\n"
4678 msgstr ""
4679 "typedef struct {\n"
4680 "    Elf32_Addr r_offset;\n"
4681 "    uint32_t   r_info;\n"
4682 "} Elf32_Rel;\n"
4683
4684 #. type: Plain text
4685 #: build/C/man5/elf.5:1719
4686 #, no-wrap
4687 msgid ""
4688 "typedef struct {\n"
4689 "    Elf64_Addr r_offset;\n"
4690 "    uint64_t   r_info;\n"
4691 "} Elf64_Rel;\n"
4692 msgstr ""
4693 "typedef struct {\n"
4694 "    Elf64_Addr r_offset;\n"
4695 "    uint64_t   r_info;\n"
4696 "} Elf64_Rel;\n"
4697
4698 #. type: Plain text
4699 #: build/C/man5/elf.5:1723
4700 msgid "Relocation structures that need an addend:"
4701 msgstr "加数を必要とする再配置構造体。"
4702
4703 #. type: Plain text
4704 #: build/C/man5/elf.5:1731
4705 #, no-wrap
4706 msgid ""
4707 "typedef struct {\n"
4708 "    Elf32_Addr r_offset;\n"
4709 "    uint32_t   r_info;\n"
4710 "    int32_t    r_addend;\n"
4711 "} Elf32_Rela;\n"
4712 msgstr ""
4713 "typedef struct {\n"
4714 "    Elf32_Addr r_offset;\n"
4715 "    uint32_t   r_info;\n"
4716 "    int32_t    r_addend;\n"
4717 "} Elf32_Rela;\n"
4718
4719 #. type: Plain text
4720 #: build/C/man5/elf.5:1741
4721 #, no-wrap
4722 msgid ""
4723 "typedef struct {\n"
4724 "    Elf64_Addr r_offset;\n"
4725 "    uint64_t   r_info;\n"
4726 "    int64_t    r_addend;\n"
4727 "} Elf64_Rela;\n"
4728 msgstr ""
4729 "typedef struct {\n"
4730 "    Elf64_Addr r_offset;\n"
4731 "    uint64_t   r_info;\n"
4732 "    int64_t    r_addend;\n"
4733 "} Elf64_Rela;\n"
4734
4735 #. type: TP
4736 #: build/C/man5/elf.5:1744
4737 #, no-wrap
4738 msgid "I<r_offset>"
4739 msgstr "I<r_offset>"
4740
4741 #. type: Plain text
4742 #: build/C/man5/elf.5:1752
4743 msgid ""
4744 "This member gives the location at which to apply the relocation action.  For "
4745 "a relocatable file, the value is the byte offset from the beginning of the "
4746 "section to the storage unit affected by the relocation.  For an executable "
4747 "file or shared object, the value is the virtual address of the storage unit "
4748 "affected by the relocation."
4749 msgstr ""
4750 "このメンバは再配置動作が適用される位置を与える。 再配置可能ファイルの場合、こ"
4751 "の値はセクションの先頭から 再配置で影響を受ける格納単位 (storage unit) までの"
4752 "バイトオフセットである。 実行可能ファイルまたは共有オブジェクトの場合、 この"
4753 "値は再配置で影響を受ける格納単位の仮想アドレスである。"
4754
4755 #. type: TP
4756 #: build/C/man5/elf.5:1752
4757 #, no-wrap
4758 msgid "I<r_info>"
4759 msgstr "I<r_info>"
4760
4761 #. type: Plain text
4762 #: build/C/man5/elf.5:1767
4763 msgid ""
4764 "This member gives both the symbol table index with respect to which the "
4765 "relocation must be made and the type of relocation to apply.  Relocation "
4766 "types are processor-specific.  When the text refers to a relocation entry's "
4767 "relocation type or symbol table index, it means the result of applying B<ELF"
4768 "[32|64]_R_TYPE> or B<ELF[32|64]_R_SYM>, respectively, to the entry's "
4769 "I<r_info> member."
4770 msgstr ""
4771 "このメンバは、再配置が行われなければならないシンボルテーブルインデックスと、 "
4772 "適用される再配置のタイプの両方を与える。 再配置タイプはプロセッサ毎に異な"
4773 "る。 テキストが再配置エントリの再配置タイプ またはシンボルテーブルインデック"
4774 "スを参照している場合、 それぞれエントリの I<r_info> メンバに対して、それぞれ "
4775 "B<ELF[32|64]_R_TYPE> と B<ELF[32|64]_R_SYM> を適用した結果を意味する。"
4776
4777 #. type: TP
4778 #: build/C/man5/elf.5:1767
4779 #, no-wrap
4780 msgid "I<r_addend>"
4781 msgstr "I<r_addend>"
4782
4783 #.  .El
4784 #. type: Plain text
4785 #: build/C/man5/elf.5:1772
4786 msgid ""
4787 "This member specifies a constant addend used to compute the value to be "
4788 "stored into the relocatable field."
4789 msgstr ""
4790 "このメンバは定数の加数を指定する。 この加数は再配置可能フィールドに格納される"
4791 "値を計算するために使われる。"
4792
4793 #. type: Plain text
4794 #: build/C/man5/elf.5:1777
4795 msgid ""
4796 "The .dynamic section contains a series of structures that hold relevant "
4797 "dynamic linking information.  The d_tag member controls the interpretation "
4798 "of d_un."
4799 msgstr ""
4800 "\\&.dynamic セクションは、関連する動的リンク情報を保持している 一連の構造体を"
4801 "保持する。 d_tag メンバは d_un の解釈を制御する。"
4802
4803 #. type: Plain text
4804 #: build/C/man5/elf.5:1788
4805 #, no-wrap
4806 msgid ""
4807 "typedef struct {\n"
4808 "    Elf32_Sword    d_tag;\n"
4809 "    union {\n"
4810 "        Elf32_Word d_val;\n"
4811 "        Elf32_Addr d_ptr;\n"
4812 "    } d_un;\n"
4813 "} Elf32_Dyn;\n"
4814 "extern Elf32_Dyn _DYNAMIC[];\n"
4815 msgstr ""
4816 "typedef struct {\n"
4817 "    Elf32_Sword    d_tag;\n"
4818 "    union {\n"
4819 "        Elf32_Word d_val;\n"
4820 "        Elf32_Addr d_ptr;\n"
4821 "    } d_un;\n"
4822 "} Elf32_Dyn;\n"
4823 "extern Elf32_Dyn _DYNAMIC[];\n"
4824
4825 #. type: Plain text
4826 #: build/C/man5/elf.5:1801
4827 #, no-wrap
4828 msgid ""
4829 "typedef struct {\n"
4830 "    Elf64_Sxword    d_tag;\n"
4831 "    union {\n"
4832 "        Elf64_Xword d_val;\n"
4833 "        Elf64_Addr  d_ptr;\n"
4834 "    } d_un;\n"
4835 "} Elf64_Dyn;\n"
4836 "extern Elf64_Dyn _DYNAMIC[];\n"
4837 msgstr ""
4838 "typedef struct {\n"
4839 "    Elf64_Sxword    d_tag;\n"
4840 "    union {\n"
4841 "        Elf64_Xword d_val;\n"
4842 "        Elf64_Addr  d_ptr;\n"
4843 "    } d_un;\n"
4844 "} Elf64_Dyn;\n"
4845 "extern Elf64_Dyn _DYNAMIC[];\n"
4846
4847 #. type: TP
4848 #: build/C/man5/elf.5:1804
4849 #, no-wrap
4850 msgid "I<d_tag>"
4851 msgstr "I<d_tag>"
4852
4853 #.  .Bl -tag -width "DT_SYMBOLIC"
4854 #. type: Plain text
4855 #: build/C/man5/elf.5:1808
4856 msgid "This member may have any of the following values:"
4857 msgstr "このメンバは以下の値を持つことができる:"
4858
4859 #. type: TP
4860 #: build/C/man5/elf.5:1809
4861 #, no-wrap
4862 msgid "B<DT_NULL>"
4863 msgstr "B<DT_NULL>"
4864
4865 #. type: Plain text
4866 #: build/C/man5/elf.5:1812
4867 msgid "Marks end of dynamic section"
4868 msgstr "動的セクションの終りのマーク"
4869
4870 #. type: TP
4871 #: build/C/man5/elf.5:1812
4872 #, no-wrap
4873 msgid "B<DT_NEEDED>"
4874 msgstr "B<DT_NEEDED>"
4875
4876 #. type: Plain text
4877 #: build/C/man5/elf.5:1815
4878 msgid "String table offset to name of a needed library"
4879 msgstr "必要なライブラリの名前への文字列テーブルオフセット"
4880
4881 #. type: TP
4882 #: build/C/man5/elf.5:1815
4883 #, no-wrap
4884 msgid "B<DT_PLTRELSZ>"
4885 msgstr "B<DT_PLTRELSZ>"
4886
4887 #. type: Plain text
4888 #: build/C/man5/elf.5:1818
4889 msgid "Size in bytes of PLT relocs"
4890 msgstr "PLT 再配置 (reloc) テーブルのサイズ (バイト単位)"
4891
4892 #. type: TP
4893 #: build/C/man5/elf.5:1818
4894 #, no-wrap
4895 msgid "B<DT_PLTGOT>"
4896 msgstr "B<DT_PLTGOT>"
4897
4898 #. type: Plain text
4899 #: build/C/man5/elf.5:1821
4900 msgid "Address of PLT and/or GOT"
4901 msgstr "PLT と GOT (または何れか一方) のアドレス"
4902
4903 #. type: TP
4904 #: build/C/man5/elf.5:1821
4905 #, no-wrap
4906 msgid "B<DT_HASH>"
4907 msgstr "B<DT_HASH>"
4908
4909 #. type: Plain text
4910 #: build/C/man5/elf.5:1824
4911 msgid "Address of symbol hash table"
4912 msgstr "シンボルハッシュテーブルのアドレス"
4913
4914 #. type: TP
4915 #: build/C/man5/elf.5:1824
4916 #, no-wrap
4917 msgid "B<DT_STRTAB>"
4918 msgstr "B<DT_STRTAB>"
4919
4920 #. type: Plain text
4921 #: build/C/man5/elf.5:1827
4922 msgid "Address of string table"
4923 msgstr "文字列テーブルのアドレス"
4924
4925 #. type: TP
4926 #: build/C/man5/elf.5:1827
4927 #, no-wrap
4928 msgid "B<DT_SYMTAB>"
4929 msgstr "B<DT_SYMTAB>"
4930
4931 #. type: Plain text
4932 #: build/C/man5/elf.5:1830
4933 msgid "Address of symbol table"
4934 msgstr "シンボルテーブルのアドレス"
4935
4936 #. type: TP
4937 #: build/C/man5/elf.5:1830
4938 #, no-wrap
4939 msgid "B<DT_RELA>"
4940 msgstr "B<DT_RELA>"
4941
4942 #. type: Plain text
4943 #: build/C/man5/elf.5:1833
4944 msgid "Address of Rela relocs table"
4945 msgstr "Rela 再配置テーブルのアドレス"
4946
4947 #. type: TP
4948 #: build/C/man5/elf.5:1833
4949 #, no-wrap
4950 msgid "B<DT_RELASZ>"
4951 msgstr "B<DT_RELASZ>"
4952
4953 #. type: Plain text
4954 #: build/C/man5/elf.5:1836
4955 msgid "Size in bytes of Rela table"
4956 msgstr "Rela テーブルのサイズ (バイト単位)"
4957
4958 #. type: TP
4959 #: build/C/man5/elf.5:1836
4960 #, no-wrap
4961 msgid "B<DT_RELAENT>"
4962 msgstr "B<DT_RELAENT>"
4963
4964 #. type: Plain text
4965 #: build/C/man5/elf.5:1839
4966 msgid "Size in bytes of a Rela table entry"
4967 msgstr "Rela テーブルエントリのサイズ (バイト単位)"
4968
4969 #. type: TP
4970 #: build/C/man5/elf.5:1839
4971 #, no-wrap
4972 msgid "B<DT_STRSZ>"
4973 msgstr "B<DT_STRSZ>"
4974
4975 #. type: Plain text
4976 #: build/C/man5/elf.5:1842
4977 msgid "Size in bytes of string table"
4978 msgstr "文字列テーブルのサイズ (バイト単位)"
4979
4980 #. type: TP
4981 #: build/C/man5/elf.5:1842
4982 #, no-wrap
4983 msgid "B<DT_SYMENT>"
4984 msgstr "B<DT_SYMENT>"
4985
4986 #. type: Plain text
4987 #: build/C/man5/elf.5:1845
4988 msgid "Size in bytes of a symbol table entry"
4989 msgstr "シンボルテーブルエントリのサイズ (バイト単位)"
4990
4991 #. type: TP
4992 #: build/C/man5/elf.5:1845
4993 #, no-wrap
4994 msgid "B<DT_INIT>"
4995 msgstr "B<DT_INIT>"
4996
4997 #. type: Plain text
4998 #: build/C/man5/elf.5:1848
4999 msgid "Address of the initialization function"
5000 msgstr "初期化関数のアドレス"
5001
5002 #. type: TP
5003 #: build/C/man5/elf.5:1848
5004 #, no-wrap
5005 msgid "B<DT_FINI>"
5006 msgstr "B<DT_FINI>"
5007
5008 #. type: Plain text
5009 #: build/C/man5/elf.5:1851
5010 msgid "Address of the termination function"
5011 msgstr "終了関数のアドレス"
5012
5013 #. type: TP
5014 #: build/C/man5/elf.5:1851
5015 #, no-wrap
5016 msgid "B<DT_SONAME>"
5017 msgstr "B<DT_SONAME>"
5018
5019 #. type: Plain text
5020 #: build/C/man5/elf.5:1854
5021 msgid "String table offset to name of shared object"
5022 msgstr "共有オブジェクトの名前への文字列テーブルオフセット"
5023
5024 #. type: TP
5025 #: build/C/man5/elf.5:1854
5026 #, no-wrap
5027 msgid "B<DT_RPATH>"
5028 msgstr "B<DT_RPATH>"
5029
5030 #. type: Plain text
5031 #: build/C/man5/elf.5:1857
5032 msgid "String table offset to library search path (deprecated)"
5033 msgstr "ライブラリ検索パスへの文字列テーブルオフセット (推奨されない)"
5034
5035 #. type: TP
5036 #: build/C/man5/elf.5:1857
5037 #, no-wrap
5038 msgid "B<DT_SYMBOLIC>"
5039 msgstr "B<DT_SYMBOLIC>"
5040
5041 #. type: Plain text
5042 #: build/C/man5/elf.5:1860
5043 msgid ""
5044 "Alert linker to search this shared object before the executable for symbols"
5045 msgstr ""
5046 "リンカがシンボルの実行可能ファイルより前に この共有オブジェクトを検索した場合"
5047 "は、警告を出す。"
5048
5049 #. type: TP
5050 #: build/C/man5/elf.5:1860
5051 #, no-wrap
5052 msgid "B<DT_REL>"
5053 msgstr "B<DT_REL>"
5054
5055 #. type: Plain text
5056 #: build/C/man5/elf.5:1863
5057 msgid "Address of Rel relocs table"
5058 msgstr "Rel 再配置テーブルのアドレス"
5059
5060 #. type: TP
5061 #: build/C/man5/elf.5:1863
5062 #, no-wrap
5063 msgid "B<DT_RELSZ>"
5064 msgstr "B<DT_RELSZ>"
5065
5066 #. type: Plain text
5067 #: build/C/man5/elf.5:1866
5068 msgid "Size in bytes of Rel table"
5069 msgstr "Rel テーブルのサイズ (バイト単位)"
5070
5071 #. type: TP
5072 #: build/C/man5/elf.5:1866
5073 #, no-wrap
5074 msgid "B<DT_RELENT>"
5075 msgstr "B<DT_RELENT>"
5076
5077 #. type: Plain text
5078 #: build/C/man5/elf.5:1869
5079 msgid "Size in bytes of a Rel table entry"
5080 msgstr "Rel テーブルエントリのサイズ (バイト単位)"
5081
5082 #. type: TP
5083 #: build/C/man5/elf.5:1869
5084 #, no-wrap
5085 msgid "B<DT_PLTREL>"
5086 msgstr "B<DT_PLTREL>"
5087
5088 #. type: Plain text
5089 #: build/C/man5/elf.5:1872
5090 msgid "Type of reloc the PLT refers (Rela or Rel)"
5091 msgstr "PLT が参照する再配置テーブルのタイプ (Rela または Rel)"
5092
5093 #. type: TP
5094 #: build/C/man5/elf.5:1872
5095 #, no-wrap
5096 msgid "B<DT_DEBUG>"
5097 msgstr "B<DT_DEBUG>"
5098
5099 #. type: Plain text
5100 #: build/C/man5/elf.5:1875
5101 msgid "Undefined use for debugging"
5102 msgstr "デバッグのために使用されている。内容は定義されていない。"
5103
5104 #. type: TP
5105 #: build/C/man5/elf.5:1875
5106 #, no-wrap
5107 msgid "B<DT_TEXTREL>"
5108 msgstr "B<DT_TEXTREL>"
5109
5110 #. type: Plain text
5111 #: build/C/man5/elf.5:1878
5112 msgid ""
5113 "Absence of this indicates no relocs should apply to a nonwritable segment"
5114 msgstr ""
5115 "これが指定されていない場合、 書き込み不可のセグメントには再配置は適用されな"
5116 "い。"
5117
5118 #. type: TP
5119 #: build/C/man5/elf.5:1878
5120 #, no-wrap
5121 msgid "B<DT_JMPREL>"
5122 msgstr "B<DT_JMPREL>"
5123
5124 #. type: Plain text
5125 #: build/C/man5/elf.5:1881
5126 msgid "Address of reloc entries solely for the PLT"
5127 msgstr "PLT 専用の再配置エントリのアドレス"
5128
5129 #. type: TP
5130 #: build/C/man5/elf.5:1881
5131 #, no-wrap
5132 msgid "B<DT_BIND_NOW>"
5133 msgstr "B<DT_BIND_NOW>"
5134
5135 #. type: Plain text
5136 #: build/C/man5/elf.5:1885
5137 msgid ""
5138 "Instruct dynamic linker to process all relocs before transferring control to "
5139 "the executable"
5140 msgstr ""
5141 "実行可能ファイルに制御を譲る前に、 全ての再配置を処理するように動的リンカに指"
5142 "示する。"
5143
5144 #. type: TP
5145 #: build/C/man5/elf.5:1885
5146 #, no-wrap
5147 msgid "B<DT_RUNPATH>"
5148 msgstr "B<DT_RUNPATH>"
5149
5150 #. type: Plain text
5151 #: build/C/man5/elf.5:1888
5152 msgid "String table offset to library search path"
5153 msgstr "ライブラリ検索パスへの文字列テーブルオフセット"
5154
5155 #. type: TP
5156 #: build/C/man5/elf.5:1888
5157 #, no-wrap
5158 msgid "B<DT_LOPROC>"
5159 msgstr "B<DT_LOPROC>"
5160
5161 #. type: Plain text
5162 #: build/C/man5/elf.5:1891
5163 msgid "Start of processor-specific semantics"
5164 msgstr "プロセッサ固有の意味の開始"
5165
5166 #. type: TP
5167 #: build/C/man5/elf.5:1891
5168 #, no-wrap
5169 msgid "B<DT_HIPROC>"
5170 msgstr "B<DT_HIPROC>"
5171
5172 #. type: Plain text
5173 #: build/C/man5/elf.5:1894
5174 msgid "End of processor-specific semantics"
5175 msgstr "プロセッサ固有の意味の終了"
5176
5177 #. type: TP
5178 #: build/C/man5/elf.5:1896
5179 #, no-wrap
5180 msgid "I<d_val>"
5181 msgstr "I<d_val>"
5182
5183 #. type: Plain text
5184 #: build/C/man5/elf.5:1899
5185 msgid "This member represents integer values with various interpretations."
5186 msgstr "このメンバは様々な意味に解釈される整数値である。"
5187
5188 #. type: TP
5189 #: build/C/man5/elf.5:1899
5190 #, no-wrap
5191 msgid "I<d_ptr>"
5192 msgstr "I<d_ptr>"
5193
5194 #. type: Plain text
5195 #: build/C/man5/elf.5:1907
5196 msgid ""
5197 "This member represents program virtual addresses.  When interpreting these "
5198 "addresses, the actual address should be computed based on the original file "
5199 "value and memory base address.  Files do not contain relocation entries to "
5200 "fixup these addresses."
5201 msgstr ""
5202 "このメンバはプログラムの仮想アドレスを表す。 これらのアドレスを解釈する際"
5203 "に、 実際のアドレスは元々のファイルの値と メモリの基底アドレスから計算され"
5204 "る。 ファイルにはこれらのアドレスを修正するための 再配置エントリを含めてはな"
5205 "らない。"
5206
5207 #. type: TP
5208 #: build/C/man5/elf.5:1907
5209 #, no-wrap
5210 msgid "I<_DYNAMIC>"
5211 msgstr "I<_DYNAMIC>"
5212
5213 #.  .El
5214 #. type: Plain text
5215 #: build/C/man5/elf.5:1912
5216 msgid ""
5217 "Array containing all the dynamic structures in the .dynamic section.  This "
5218 "is automatically populated by the linker."
5219 msgstr ""
5220 "\\&.dynamic セクションにある全ての動的構造体を含む配列。 これは自動的にリンカ"
5221 "に渡される。"
5222
5223 #.  OpenBSD
5224 #.  ELF support first appeared in
5225 #.  OpenBSD 1.2,
5226 #.  although not all supported platforms use it as the native
5227 #.  binary file format.
5228 #. type: Plain text
5229 #: build/C/man5/elf.5:1921
5230 msgid "ELF first appeared in System V.  The ELF format is an adopted standard."
5231 msgstr ""
5232 "ELF は System V で初めて登場した。 ELF 自体は System V で初めて登場した。 "
5233 "ELF フォーマットは採択された標準である。"
5234
5235 #.  .SH AUTHORS
5236 #.  The original version of this manual page was written by
5237 #.  .An Jeroen Ruigrok van der Werven
5238 #.  .Aq asmodai@FreeBSD.org
5239 #.  with inspiration from BSDi's
5240 #.  .Bsx
5241 #.  .Nm elf
5242 #.  man page.
5243 #. type: Plain text
5244 #: build/C/man5/elf.5:1939
5245 msgid ""
5246 "The extensions for I<e_phnum>, I<e_shnum> and I<e_strndx> respectively are "
5247 "Linux extensions.  Sun, BSD and AMD64 also support them; for further "
5248 "information, look under SEE ALSO."
5249 msgstr ""
5250 "I<e_phnum>, I<e_shnum>, I<e_strndx> に対する拡張は、いずれも Linux での拡張"
5251 "で\n"
5252 "ある。Sun, BSD, AMD64 もこれに対応している。詳しい情報は、関連項目を参照。"
5253
5254 #. type: Plain text
5255 #: build/C/man5/elf.5:1946
5256 msgid "B<as>(1), B<gdb>(1), B<ld>(1), B<objdump>(1), B<execve>(2), B<core>(5)"
5257 msgstr "B<as>(1), B<gdb>(1), B<ld>(1), B<objdump>(1), B<execve>(2), B<core>(5)"
5258
5259 #. type: Plain text
5260 #: build/C/man5/elf.5:1949
5261 msgid "Hewlett-Packard, I<Elf-64 Object File Format>."
5262 msgstr "Hewlett-Packard, I<Elf-64 Object File Format>."
5263
5264 #. type: Plain text
5265 #: build/C/man5/elf.5:1952
5266 msgid "Santa Cruz Operation, I<System V Application Binary Interface>."
5267 msgstr "Santa Cruz Operation, I<System V Application Binary Interface>."
5268
5269 #. type: Plain text
5270 #: build/C/man5/elf.5:1956
5271 msgid ""
5272 "UNIX System Laboratories, \"Object Files\", I<Executable and Linking Format "
5273 "(ELF)>."
5274 msgstr ""
5275 "UNIX System Laboratories, \"Object Files\", I<Executable and Linking Format "
5276 "(ELF)>."
5277
5278 #. type: Plain text
5279 #: build/C/man5/elf.5:1959
5280 msgid "Sun Microsystems, I<Linker and Libraries Guide>."
5281 msgstr "Sun Microsystems, I<Linker and Libraries Guide>."
5282
5283 #. type: Plain text
5284 #: build/C/man5/elf.5:1962
5285 msgid ""
5286 "AMD64 ABI Draft, I<System V Application Binary Interface AMD64 Architecture "
5287 "Processor Supplement>."
5288 msgstr ""
5289 "AMD64 ABI Draft, I<System V Application Binary Interface AMD64 Architecture\n"
5290 "Processor Supplement>."
5291
5292 #. type: TH
5293 #: build/C/man3/end.3:26
5294 #, no-wrap
5295 msgid "END"
5296 msgstr "END"
5297
5298 #. type: TH
5299 #: build/C/man3/end.3:26
5300 #, no-wrap
5301 msgid "2008-07-17"
5302 msgstr "2008-07-17"
5303
5304 #. type: Plain text
5305 #: build/C/man3/end.3:29
5306 msgid "etext, edata, end - end of program segments"
5307 msgstr "etext, edata, end - プログラムセグメントの終わり"
5308
5309 #. type: Plain text
5310 #: build/C/man3/end.3:34
5311 #, no-wrap
5312 msgid ""
5313 "B<extern>I< etext>B<;>\n"
5314 "B<extern>I< edata>B<;>\n"
5315 "B<extern>I< end>B<;>\n"
5316 msgstr ""
5317 "B<extern>I< etext>B<;>\n"
5318 "B<extern>I< edata>B<;>\n"
5319 "B<extern>I< end>B<;>\n"
5320
5321 #. type: Plain text
5322 #: build/C/man3/end.3:38
5323 msgid ""
5324 "The addresses of these symbols indicate the end of various program segments:"
5325 msgstr "これらのシンボルのアドレスは各種のプログラムセグメントの終わりを示す。"
5326
5327 #. type: TP
5328 #: build/C/man3/end.3:38
5329 #, no-wrap
5330 msgid "I<etext>"
5331 msgstr "I<etext>"
5332
5333 #. type: Plain text
5334 #: build/C/man3/end.3:42
5335 msgid ""
5336 "This is the first address past the end of the text segment (the program "
5337 "code)."
5338 msgstr "テキストセグメント (プログラムのコード) の末尾の次のアドレス。"
5339
5340 #. type: TP
5341 #: build/C/man3/end.3:42
5342 #, no-wrap
5343 msgid "I<edata>"
5344 msgstr "I<edata>"
5345
5346 #. type: Plain text
5347 #: build/C/man3/end.3:46
5348 msgid "This is the first address past the end of the initialized data segment."
5349 msgstr "初期化されたデータのセグメントの末尾の次のアドレス。"
5350
5351 #. type: TP
5352 #: build/C/man3/end.3:46
5353 #, no-wrap
5354 msgid "I<end>"
5355 msgstr "I<end>"
5356
5357 #. type: Plain text
5358 #: build/C/man3/end.3:50
5359 msgid ""
5360 "This is the first address past the end of the uninitialized data segment "
5361 "(also known as the BSS segment)."
5362 msgstr ""
5363 "初期化されていないデータのセグメント (BSS セグメントとも言われる)  の末尾の次"
5364 "のアドレス。"
5365
5366 #. type: Plain text
5367 #: build/C/man3/end.3:53
5368 msgid ""
5369 "Although these symbols have long been provided on most UNIX systems, they "
5370 "are not standardized; use with caution."
5371 msgstr ""
5372 "これらのシンボルは長年ほとんどの UNIX システムで提供されているが、 標準化され"
5373 "てはいない。注意して使うこと。"
5374
5375 #. type: Plain text
5376 #: build/C/man3/end.3:56
5377 msgid ""
5378 "The program must explicitly declare these symbols; they are not defined in "
5379 "any header file."
5380 msgstr ""
5381 "プログラムではこれらのシンボルは明示的に宣言しなければならない。 これらはどの"
5382 "ヘッダファイルでも定義されていない。"
5383
5384 #. type: Plain text
5385 #: build/C/man3/end.3:64
5386 msgid ""
5387 "On some systems the names of these symbols are preceded by underscores, "
5388 "thus: I<_etext>, I<_edata>, and I<_end>.  These symbols are also defined for "
5389 "programs compiled on Linux."
5390 msgstr ""
5391 "いくつかのシステムでは、これらのシンボルの名前は前にアンダースコアが 付いてい"
5392 "て、 I<_etext>, I<_edata>, I<_end> となっている。 Linux でコンパイルされたプ"
5393 "ログラムでは、 これらのシンボルでも定義される。"
5394
5395 #. type: Plain text
5396 #: build/C/man3/end.3:76
5397 msgid ""
5398 "At the start of program execution, the program break will be somewhere near "
5399 "I<&end> (perhaps at the start of the following page).  However, the break "
5400 "will change as memory is allocated via B<brk>(2)  or B<malloc>(3).  Use "
5401 "B<sbrk>(2)  with an argument of zero to find the current value of the "
5402 "program break."
5403 msgstr ""
5404 "プログラムの実行開始時に、プログラム・ブレークは I<&end> の近くのどこか (おそ"
5405 "らく次のページの先頭) になる。 しかしながら、 B<brk>(2)  や B<malloc>(3)  で"
5406 "メモリが割り当てられるに連れて、プログラム・ブレークは変化していく。 引き数"
5407 "に 0 を指定して B<sbrk>(2)  を呼び出すことで、プログラム・ブレークの現在値を"
5408 "知ることができる。"
5409
5410 #. type: Plain text
5411 #: build/C/man3/end.3:78
5412 msgid "When run, the program below produces output such as the following:"
5413 msgstr "下記のプログラムを実行すると、次のような出力が得られる。"
5414
5415 #. type: Plain text
5416 #: build/C/man3/end.3:86
5417 #, no-wrap
5418 msgid ""
5419 "$B< ./a.out>\n"
5420 "First address past:\n"
5421 "    program text (etext)       0x8048568\n"
5422 "    initialized data (edata)   0x804a01c\n"
5423 "    uninitialized data (end)   0x804a024\n"
5424 msgstr ""
5425 "$B< ./a.out>\n"
5426 "First address past:\n"
5427 "    program text (etext)       0x8048568\n"
5428 "    initialized data (edata)   0x804a01c\n"
5429 "    uninitialized data (end)   0x804a024\n"
5430
5431 #. type: SS
5432 #: build/C/man3/end.3:88
5433 #, no-wrap
5434 msgid "Program source"
5435 msgstr "プログラムのソース"
5436
5437 #. type: Plain text
5438 #: build/C/man3/end.3:93
5439 #, no-wrap
5440 msgid ""
5441 "#include E<lt>stdio.hE<gt>\n"
5442 "#include E<lt>stdlib.hE<gt>\n"
5443 msgstr ""
5444 "#include E<lt>stdio.hE<gt>\n"
5445 "#include E<lt>stdlib.hE<gt>\n"
5446
5447 #. type: Plain text
5448 #: build/C/man3/end.3:96
5449 #, no-wrap
5450 msgid ""
5451 "extern char etext, edata, end; /* The symbols must have some type,\n"
5452 "                                   or \"gcc -Wall\" complains */\n"
5453 msgstr ""
5454 "extern char etext, edata, end; /* The symbols must have some type,\n"
5455 "                                   or \"gcc -Wall\" complains */\n"
5456
5457 #. type: Plain text
5458 #: build/C/man3/end.3:104
5459 #, no-wrap
5460 msgid ""
5461 "int\n"
5462 "main(int argc, char *argv[])\n"
5463 "{\n"
5464 "    printf(\"First address past:\\en\");\n"
5465 "    printf(\"    program text (etext)      %10p\\en\", &etext);\n"
5466 "    printf(\"    initialized data (edata)  %10p\\en\", &edata);\n"
5467 "    printf(\"    uninitialized data (end)  %10p\\en\", &end);\n"
5468 msgstr ""
5469 "int\n"
5470 "main(int argc, char *argv[])\n"
5471 "{\n"
5472 "    printf(\"First address past:\\en\");\n"
5473 "    printf(\"    program text (etext)      %10p\\en\", &etext);\n"
5474 "    printf(\"    initialized data (edata)  %10p\\en\", &edata);\n"
5475 "    printf(\"    uninitialized data (end)  %10p\\en\", &end);\n"
5476
5477 #. type: Plain text
5478 #: build/C/man3/end.3:113
5479 msgid "B<objdump>(1), B<readelf>(1), B<sbrk>(2), B<elf>(5)"
5480 msgstr "B<objdump>(1), B<readelf>(1), B<sbrk>(2), B<elf>(5)"
5481
5482 #. type: TH
5483 #: build/C/man8/ld.so.8:5
5484 #, no-wrap
5485 msgid "LD.SO"
5486 msgstr "LD.SO"
5487
5488 #. type: Plain text
5489 #: build/C/man8/ld.so.8:8
5490 msgid "ld.so, ld-linux.so* - dynamic linker/loader"
5491 msgstr "ld.so, ld-linux.so* - 動的なリンカ/ローダ"
5492
5493 #. type: Plain text
5494 #: build/C/man8/ld.so.8:15
5495 msgid ""
5496 "The dynamic linker can be run either indirectly by running some dynamically "
5497 "linked program or library (in which case no command-line options to the "
5498 "dynamic linker can be passed and, in the ELF case, the dynamic linker which "
5499 "is stored in the B<.interp> section of the program is executed) or directly "
5500 "by running:"
5501 msgstr ""
5502 "動的リンカは、動的にリンクされたプログラムやライブラリの実行によって 間接的に"
5503 "実行することができる (ELF の場合、動的リンカにコマンドラインオプションを渡す"
5504 "ことはできず、 プログラムの B<.interp> セクションに入っている動的リンカが実行"
5505 "される)。 また以下のように直接実行することもできる"
5506
5507 #. type: Plain text
5508 #: build/C/man8/ld.so.8:18
5509 msgid "I</lib/ld-linux.so.*> [OPTIONS] [PROGRAM [ARGUMENTS]]"
5510 msgstr "I</lib/ld-linux.so.*> [OPTIONS] [PROGRAM [ARGUMENTS]]"
5511
5512 #. type: Plain text
5513 #: build/C/man8/ld.so.8:25
5514 msgid ""
5515 "The programs B<ld.so> and B<ld-linux.so*> find and load the shared libraries "
5516 "needed by a program, prepare the program to run, and then run it."
5517 msgstr ""
5518 "プログラム B<ld.so> と B<ld-linux.so*> はプログラムに必要な共有ライブラリを見"
5519 "つけてロードし、 プログラムの実行を準備してから起動させる。"
5520
5521 #. type: Plain text
5522 #: build/C/man8/ld.so.8:32
5523 msgid ""
5524 "Linux binaries require dynamic linking (linking at run time)  unless the B<-"
5525 "static> option was given to B<ld>(1)  during compilation."
5526 msgstr ""
5527 "Linux のバイナリは、コンパイルの時に B<ld>(1)  に対して B<-static> オプション"
5528 "が指定されていない限り、動的リンク (実行時リンク) が必要となる。"
5529
5530 #. type: Plain text
5531 #: build/C/man8/ld.so.8:45
5532 msgid ""
5533 "The program B<ld.so> handles a.out binaries, a format used long ago; B<ld-"
5534 "linux.so*> handles ELF (I</lib/ld-linux.so.1> for libc5, I</lib/ld-linux."
5535 "so.2> for glibc2), which everybody has been using for years now.  Otherwise "
5536 "both have the same behavior, and use the same support files and programs "
5537 "B<ldd>(1), B<ldconfig>(8)  and I</etc/ld.so.conf>."
5538 msgstr ""
5539 "プログラム B<ld.so> は a.out バイナリを扱う。 これはずっと昔に使われていた"
5540 "フォーマットである。 B<ld-linux.so*> (libc5 では I</lib/ld-linux.so.1>, "
5541 "glibc2 では I</lib/ld-linux.so.2>)  は ELF バイナリを扱う。 このフォーマット"
5542 "は多くの人が最近何年も使っている。 それ以外の点では両方とも同じように動作"
5543 "し、 同じサポートファイルとプログラム B<ldd>(1), B<ldconfig>(8), I</etc/ld."
5544 "so.conf> を使用する。"
5545
5546 #. type: Plain text
5547 #: build/C/man8/ld.so.8:53
5548 msgid ""
5549 "When resolving library dependencies, the dynamic linker first inspects each "
5550 "dependency string to see if it contains a slash (this can occur if a library "
5551 "pathname containing slashes was specified at link time).  If a slash is "
5552 "found, then the dependency string is interpreted as a (relative or absolute) "
5553 "pathname, and the library is loaded using that pathname."
5554 msgstr ""
5555 "ライブラリの依存関係を解決する際、動的リンカは、最初に、依存関係の各文字列が"
5556 "スラッシュを含んでいるかをチェックする (この状況になるのは、リンク時にスラッ"
5557 "シュを含むライブラリのパス名が指定された場合である)。スラッシュが見つかった場"
5558 "合、その依存関係の文字列はパス名 (相対パス、絶対パスのどちらも可) として解釈"
5559 "され、そのパス名を使ってそのライブラリはロードされる。"
5560
5561 #. type: Plain text
5562 #: build/C/man8/ld.so.8:56
5563 msgid ""
5564 "If a library dependency does not contain a slash, then it is searched for in "
5565 "the following order:"
5566 msgstr ""
5567 "ライブラリの依存関係にスラッシュが含まれない場合、以下の順序で検索される。"
5568
5569 #. type: Plain text
5570 #: build/C/man8/ld.so.8:61
5571 msgid ""
5572 "(ELF only) Using the directories specified in the DT_RPATH dynamic section "
5573 "attribute of the binary if present and DT_RUNPATH attribute does not exist.  "
5574 "Use of DT_RPATH is deprecated."
5575 msgstr ""
5576 "(ELF のみ)  バイナリの動的セクション属性 DT_RPATH が存在し、 DT_RUNPATH 属性"
5577 "が存在しない場合は、 DT_RPATH で指定されたディレクトリを使用する。 DT_RPATH "
5578 "の使用は推奨されない。"
5579
5580 #. type: Plain text
5581 #: build/C/man8/ld.so.8:66
5582 msgid ""
5583 "Using the environment variable B<LD_LIBRARY_PATH>.  Except if the executable "
5584 "is a set-user-ID/set-group-ID binary, in which case it is ignored."
5585 msgstr ""
5586 "環境変数 B<LD_LIBRARY_PATH> を用いる。 ただし実行ファイルが set-user-ID/set-"
5587 "group-ID バイナリの場合、 これは無視される。"
5588
5589 #. type: Plain text
5590 #: build/C/man8/ld.so.8:70
5591 msgid ""
5592 "(ELF only) Using the directories specified in the DT_RUNPATH dynamic section "
5593 "attribute of the binary if present."
5594 msgstr ""
5595 "(ELF のみ)  バイナリの動的セクション属性 DT_RUNPATH が存在すれば、 "
5596 "DT_RUNPATH で指定されたディレクトリを使用する。"
5597
5598 #. type: Plain text
5599 #: build/C/man8/ld.so.8:80
5600 msgid ""
5601 "From the cache file I</etc/ld.so.cache>, which contains a compiled list of "
5602 "candidate libraries previously found in the augmented library path.  If, "
5603 "however, the binary was linked with the B<-z nodeflib> linker option, "
5604 "libraries in the default library paths are skipped.  Libraries installed in "
5605 "hardware capability directories (see below)  are preferred to other "
5606 "libraries."
5607 msgstr ""
5608 "キャッシュファイル I</etc/ld.so.cache> を探す。このファイルは、 (ld.so.conf "
5609 "で追加指定されたものも含めた) ライブラリ検索パスから見つかったライブラリファ"
5610 "イルの情報を集めたものである。ただし、バイナリがリンカオプション B<-z "
5611 "nodeflib> でリンクされている場合は、デフォルトのライブラリパスにある ライブラ"
5612 "リはスキップされる。ハードウェア機能ディレクトリ (下記参照) にインストールさ"
5613 "れたライブラリは、他のライブラリよりも優先される。"
5614
5615 #. type: Plain text
5616 #: build/C/man8/ld.so.8:88
5617 msgid ""
5618 "In the default path I</lib>, and then I</usr/lib>.  If the binary was linked "
5619 "with the B<-z nodeflib> linker option, this step is skipped."
5620 msgstr ""
5621 "デフォルトパスである I</lib>、 次いで I</usr/lib> を用いる。 バイナリがリンカ"
5622 "オプション B<-z nodeflib> でリンクされている場合、このステップはスキップされ"
5623 "る。"
5624
5625 #. type: SS
5626 #: build/C/man8/ld.so.8:88
5627 #, no-wrap
5628 msgid "Rpath token expansion"
5629 msgstr "rpath トークンの展開"
5630
5631 #. type: Plain text
5632 #: build/C/man8/ld.so.8:92
5633 msgid ""
5634 "B<ld.so> understands certain strings in an rpath specification (DT_RPATH or "
5635 "DT_RUNPATH); those strings are substituted as follows"
5636 msgstr ""
5637 "B<ld.so> では rpath 指定 (DT_RPATH や DT_RUNPATH) 中にいくつかの特定の文字列"
5638 "を使うことができる。 それらの文字列は以下のように置き換えられる。"
5639
5640 #. type: TP
5641 #: build/C/man8/ld.so.8:92
5642 #, no-wrap
5643 msgid "I<$ORIGIN> (or equivalently I<${ORIGIN}>)"
5644 msgstr "I<$ORIGIN> (I<${ORIGIN}> も同じ)"
5645
5646 #. type: Plain text
5647 #: build/C/man8/ld.so.8:99
5648 msgid ""
5649 "This expands to the directory containing the application executable.  Thus, "
5650 "an application located in I<somedir/app> could be compiled with"
5651 msgstr ""
5652 "アプリケーションの実行ファイルが入っているディレクトリに展開される。 したがっ"
5653 "て、 I<somedir/app> に置かれたアプリケーションを"
5654
5655 #. type: Plain text
5656 #: build/C/man8/ld.so.8:101
5657 #, no-wrap
5658 msgid "    gcc -Wl,-rpath,\\(aq$ORIGIN/../lib\\(aq\n"
5659 msgstr "    gcc -Wl,-rpath,\\(aq$ORIGIN/../lib\\(aq\n"
5660
5661 #. type: Plain text
5662 #: build/C/man8/ld.so.8:111
5663 msgid ""
5664 "so that it finds an associated shared library in I<somedir/lib> no matter "
5665 "where I<somedir> is located in the directory hierarchy.  This facilitates "
5666 "the creation of \"turn-key\" applications that do not need to be installed "
5667 "into special directories, but can instead be unpacked into any directory and "
5668 "still find their own shared libraries."
5669 msgstr ""
5670 "でコンパイルすることで、 I<somedir> がディレクトリ階層のどこにあっても、 "
5671 "B<ld.so> は I<somedir/lib> にある対応する共有ライブラリを見つけることができ"
5672 "る。 この機能を使うと、 特別なディレクトリではなく任意のディレクトリにインス"
5673 "トールしても「ややこしい設定なしで」独自の共有ライブラリを使えるアプリケー"
5674 "ションを作成することができる。"
5675
5676 #. type: TP
5677 #: build/C/man8/ld.so.8:111
5678 #, no-wrap
5679 msgid "I<$LIB> (or equivalently I<${LIB}>)"
5680 msgstr "I<$LIB> (I<${LIB}> も同じ)"
5681
5682 #. type: Plain text
5683 #: build/C/man8/ld.so.8:123
5684 msgid ""
5685 "This expands to I<lib> or I<lib64> depending on the architecture (e.g., on "
5686 "x86-64, it expands to I<lib64> and on x86-32, it expands to I<lib>)."
5687 msgstr ""
5688 "アーキテクチャに応じて I<lib> か I<lib64> に展開される (例えば、 x86-64 では "
5689 "I<lib64> に、 x86-32 では I<lib> に展開される)。"
5690
5691 #. type: TP
5692 #: build/C/man8/ld.so.8:123
5693 #, no-wrap
5694 msgid "I<$PLATFORM> (or equivalently I<${PLATFORM}>)"
5695 msgstr "I<$PLATFORM> (I<${PLATFORM}> も同じ)"
5696
5697 #
5698 #
5699 #.  To get an idea of the places that $PLATFORM would match,
5700 #.  look at the output of the following:
5701 #.      mkdir /tmp/d
5702 #.      LD_LIBRARY_PATH=/tmp/d strace -e open /bin/date 2>&1 | grep /tmp/d
5703 #.  ld.so lets names be abbreviated, so $O will work for $ORIGIN;
5704 #.  Don't do this!!
5705 #. type: Plain text
5706 #: build/C/man8/ld.so.8:141
5707 msgid ""
5708 "This expands to a string corresponding to the processor type of the host "
5709 "system (e.g., \"x86_64\").  On some architectures, the Linux kernel doesn't "
5710 "provide a platform string to the dynamic linker.  The value of this string "
5711 "is taken from the B<AT_PLATFORM> value in the auxiliary vector (see "
5712 "B<getauxval>(3))."
5713 msgstr ""
5714 "ホストシステムのプロセッサ種別に対応する文字列に展開される (例えば "
5715 "\"x86_64\")。\n"
5716 "いくつかのアーキテクチャでは、 Linux カーネルから動的リンカにプラットフォーム"
5717 "を表す文字列が提供されない。 この文字列の値は補助ベクトルの B<AT_PLATFORM> 値"
5718 "から取得される (B<getauxval>(3) 参照)。"
5719
5720 #. type: SH
5721 #: build/C/man8/ld.so.8:141 build/C/man8/ldconfig.8:100 build/C/man1/ldd.1:51
5722 #, no-wrap
5723 msgid "OPTIONS"
5724 msgstr "オプション"
5725
5726 #. type: TP
5727 #: build/C/man8/ld.so.8:142
5728 #, no-wrap
5729 msgid "B<--list>"
5730 msgstr "B<--list>"
5731
5732 #. type: Plain text
5733 #: build/C/man8/ld.so.8:145
5734 msgid "List all dependencies and how they are resolved."
5735 msgstr "全ての依存関係とその解決法をリストする。"
5736
5737 #. type: TP
5738 #: build/C/man8/ld.so.8:145
5739 #, no-wrap
5740 msgid "B<--verify>"
5741 msgstr "B<--verify>"
5742
5743 #. type: Plain text
5744 #: build/C/man8/ld.so.8:149
5745 msgid ""
5746 "Verify that program is dynamically linked and this dynamic linker can handle "
5747 "it."
5748 msgstr ""
5749 "プログラムが動的にリンクされているかと、 動的リンカがそのプログラムを扱えるか"
5750 "を検証する。"
5751
5752 #. type: TP
5753 #: build/C/man8/ld.so.8:149
5754 #, no-wrap
5755 msgid "B<--library-path PATH>"
5756 msgstr "B<--library-path PATH>"
5757
5758 #. type: Plain text
5759 #: build/C/man8/ld.so.8:154
5760 msgid ""
5761 "Use PATH instead of B<LD_LIBRARY_PATH> environment variable setting (see "
5762 "below)."
5763 msgstr ""
5764 "B<LD_LIBRARY_PATH> 環境変数の設定ではなく、\n"
5765 "指定した PATH を使用する (下記参照)。"
5766
5767 #. type: TP
5768 #: build/C/man8/ld.so.8:154
5769 #, no-wrap
5770 msgid "B<--inhibit-rpath LIST>"
5771 msgstr "B<--inhibit-rpath LIST>"
5772
5773 #. type: Plain text
5774 #: build/C/man8/ld.so.8:160
5775 msgid ""
5776 "Ignore RPATH and RUNPATH information in object names in LIST.  This option "
5777 "is ignored if B<ld.so> is set-user-ID or set-group-ID."
5778 msgstr ""
5779 "LIST にあるオブジェクト名の RPATH と RUNPATH の情報を無視する。 B<ld.so> が "
5780 "set-user-ID か set-group-ID されている場合、 このオプションは無視される。"
5781
5782 #. type: TP
5783 #: build/C/man8/ld.so.8:160
5784 #, no-wrap
5785 msgid "B<--audit LIST>"
5786 msgstr "B<--audit LIST>"
5787
5788 #. type: Plain text
5789 #: build/C/man8/ld.so.8:163
5790 msgid "Use objects named in LIST as auditors."
5791 msgstr "LIST で指定された名前のオブジェクトを監査者として使用する。"
5792
5793 #. type: SH
5794 #: build/C/man8/ld.so.8:163
5795 #, no-wrap
5796 msgid "HARDWARE CAPABILITIES"
5797 msgstr "ハードウェア機能"
5798
5799 #. type: Plain text
5800 #: build/C/man8/ld.so.8:174
5801 msgid ""
5802 "Some libraries are compiled using hardware-specific instructions which do "
5803 "not exist on every CPU.  Such libraries should be installed in directories "
5804 "whose names define the required hardware capabilities, such as I</usr/lib/"
5805 "sse2/>.  The dynamic linker checks these directories against the hardware of "
5806 "the machine and selects the most suitable version of a given library.  "
5807 "Hardware capability directories can be cascaded to combine CPU features.  "
5808 "The list of supported hardware capability names depends on the CPU.  The "
5809 "following names are currently recognized:"
5810 msgstr ""
5811 "いくつかのライブラリは、(すべての CPU に存在するわけではない)ハードウェア固"
5812 "有\n"
5813 "の命令を使ってコンパイルされている。そのようなライブラリは、\n"
5814 "I</usr/lib/sse2/> のような、必要なハードウェア機能 (hardware capability) を"
5815 "規\n"
5816 "定する名前のディレクトリにインストールすべきである。\n"
5817 "動的リンカは、マシンのハードウェアに基づいてこれらのディレクトリを確認し、\n"
5818 "指定されたライブラリに最も適したバージョンを選択する。\n"
5819 "ハードウェア機能ディレクトリはつなげることができ、\n"
5820 "複数の CPU 機能を組み合わることができる。\n"
5821 "対応しているハードウェア機能名のリストは CPU に依存する。\n"
5822 "現在のところ、以下の名前が認識される。"
5823
5824 #. type: TP
5825 #: build/C/man8/ld.so.8:174
5826 #, no-wrap
5827 msgid "B<Alpha>"
5828 msgstr "B<Alpha>"
5829
5830 #. type: Plain text
5831 #: build/C/man8/ld.so.8:177
5832 msgid "ev4, ev5, ev56, ev6, ev67"
5833 msgstr "ev4, ev5, ev56, ev6, ev67"
5834
5835 #. type: TP
5836 #: build/C/man8/ld.so.8:177
5837 #, no-wrap
5838 msgid "B<MIPS>"
5839 msgstr "B<MIPS>"
5840
5841 #. type: Plain text
5842 #: build/C/man8/ld.so.8:180
5843 msgid "loongson2e, loongson2f, octeon, octeon2"
5844 msgstr "loongson2e, loongson2f, octeon, octeon2"
5845
5846 #. type: TP
5847 #: build/C/man8/ld.so.8:180
5848 #, no-wrap
5849 msgid "B<PowerPC>"
5850 msgstr "B<PowerPC>"
5851
5852 #. type: Plain text
5853 #: build/C/man8/ld.so.8:185
5854 msgid ""
5855 "4xxmac, altivec, arch_2_05, arch_2_06, booke, cellbe, dfp, efpdouble, "
5856 "efpsingle, fpu, ic_snoop, mmu, notb, pa6t, power4, power5, power5+, power6x, "
5857 "ppc32, ppc601, ppc64, smt, spe, ucache, vsx"
5858 msgstr ""
5859 "4xxmac, altivec, arch_2_05, arch_2_06, booke, cellbe, dfp, efpdouble, "
5860 "efpsingle, fpu, ic_snoop, mmu, notb, pa6t, power4, power5, power5+, power6x, "
5861 "ppc32, ppc601, ppc64, smt, spe, ucache, vsx"
5862
5863 #. type: TP
5864 #: build/C/man8/ld.so.8:185
5865 #, no-wrap
5866 msgid "B<SPARC>"
5867 msgstr "B<SPARC>"
5868
5869 #. type: Plain text
5870 #: build/C/man8/ld.so.8:188
5871 msgid "flush, muldiv, stbar, swap, ultra3, v9, v9v, v9v2"
5872 msgstr "flush, muldiv, stbar, swap, ultra3, v9, v9v, v9v2"
5873
5874 #. type: TP
5875 #: build/C/man8/ld.so.8:188
5876 #, no-wrap
5877 msgid "B<s390>"
5878 msgstr "B<s390>"
5879
5880 #. type: Plain text
5881 #: build/C/man8/ld.so.8:192
5882 msgid ""
5883 "dfp, eimm, esan3, etf3enh, g5, highgprs, hpage, ldisp, msa, stfle, z900, "
5884 "z990, z9-109, z10, zarch"
5885 msgstr ""
5886 "dfp, eimm, esan3, etf3enh, g5, highgprs, hpage, ldisp, msa, stfle, z900, "
5887 "z990, z9-109, z10, zarch"
5888
5889 #. type: TP
5890 #: build/C/man8/ld.so.8:192
5891 #, no-wrap
5892 msgid "B<x86 (32-bit only)>"
5893 msgstr "B<x86 (32-bit のみ)>"
5894
5895 #. type: Plain text
5896 #: build/C/man8/ld.so.8:196
5897 msgid ""
5898 "acpi, apic, clflush, cmov, cx8, dts, fxsr, ht, i386, i486, i586, i686, mca, "
5899 "mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm"
5900 msgstr ""
5901 "acpi, apic, clflush, cmov, cx8, dts, fxsr, ht, i386, i486, i586, i686, mca, "
5902 "mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm"
5903
5904 #. type: SH
5905 #: build/C/man8/ld.so.8:196
5906 #, no-wrap
5907 msgid "ENVIRONMENT"
5908 msgstr "環境変数"
5909
5910 #. type: Plain text
5911 #: build/C/man8/ld.so.8:198
5912 msgid "Among the more important environment variables are the following:"
5913 msgstr "重要な環境変数には以下のものがある。"
5914
5915 #. type: TP
5916 #: build/C/man8/ld.so.8:198
5917 #, no-wrap
5918 msgid "B<LD_ASSUME_KERNEL>"
5919 msgstr "B<LD_ASSUME_KERNEL>"
5920
5921 #. type: Plain text
5922 #: build/C/man8/ld.so.8:211
5923 msgid ""
5924 "(glibc since 2.2.3)  Each shared library can inform the dynamic linker of "
5925 "the minimum kernel ABI version that it requires.  (This requirement is "
5926 "encoded in an ELF note section that is viewable via I<readelf\\ -n> as a "
5927 "section labeled B<NT_GNU_ABI_TAG>.)  At run time, the dynamic linker "
5928 "determines the ABI version of the running kernel and will reject loading "
5929 "shared libraries that specify minimum ABI versions that exceed that ABI "
5930 "version."
5931 msgstr ""
5932 "(glibc 2.2.3 以降)  各共有ライブラリは動的リンカに必要なカーネル ABI の最小"
5933 "バージョンを通知することができる (必要なバージョンは ELF の note section に格"
5934 "納され、 I<readelf\\ -n> で B<NT_GNU_ABI_TAG> のラベルが付いたセクションとし"
5935 "て見ることができる)。 実行時に、 動的リンカは実行中のカーネルの ABI バージョ"
5936 "ンを判定し、 カーネルの ABI バージョンよりも大きな ABI の最小バージョンが指定"
5937 "された共有ライブラリのロードを行わない。"
5938
5939 #. type: Plain text
5940 #: build/C/man8/ld.so.8:220
5941 msgid ""
5942 "B<LD_ASSUME_KERNEL> can be used to cause the dynamic linker to assume that "
5943 "it is running on a system with a different kernel ABI version.  For example, "
5944 "the following command line causes the dynamic linker to assume it is running "
5945 "on Linux 2.2.5 when loading the shared libraries required by I<myprog>:"
5946 msgstr ""
5947 "B<LD_ASSUME_KERNEL> を使うことで、 動的リンカに、 異なるカーネル ABI バージョ"
5948 "ンのシステムで実行されているかのように見せることができる。 例えば、 以下のコ"
5949 "マンドラインを実行すると、 動的リンカは I<myprog> が必要とする共有ライブラリ"
5950 "をロードする際に Linux 2.2.5 上で動作していると仮定する。"
5951
5952 #. type: Plain text
5953 #: build/C/man8/ld.so.8:224
5954 #, no-wrap
5955 msgid "$ B<LD_ASSUME_KERNEL=2.2.5 ./myprog>\n"
5956 msgstr "$ B<LD_ASSUME_KERNEL=2.2.5 ./myprog>\n"
5957
5958 #. type: Plain text
5959 #: build/C/man8/ld.so.8:241
5960 msgid ""
5961 "On systems that provide multiple versions of a shared library (in different "
5962 "directories in the search path) that have different minimum kernel ABI "
5963 "version requirements, B<LD_ASSUME_KERNEL> can be used to select the version "
5964 "of the library that is used (dependent on the directory search order).  "
5965 "Historically, the most common use of the B<LD_ASSUME_KERNEL> feature was to "
5966 "manually select the older LinuxThreads POSIX threads implementation on "
5967 "systems that provided both LinuxThreads and NPTL (which latter was typically "
5968 "the default on such systems); see B<pthreads>(7)."
5969 msgstr ""
5970 "必要なカーネル ABI の最低バージョンが異なる複数の共有ライブラリが (検索パス中"
5971 "の異なるディレクトリに) あるシステムでは、 B<LD_ASSUME_KERNEL> を使って (ディ"
5972 "レクトリ検索順序に基づき) 使用するライブラリのバージョンを選択することができ"
5973 "る。 歴史的に見ると、 B<LD_ASSUME_KERNEL> の最も一般的な使い道は、 "
5974 "LinuxThreads と NPTL の両方を提供しているシステムで、 古い LinuxThreads の "
5975 "POSIX スレッド実装を手動で選択するためであった (そのようなシステムでは、通常"
5976 "は NPTL がデフォルトであった)。 B<pthreads>(7) を参照。"
5977
5978 #. type: TP
5979 #: build/C/man8/ld.so.8:241 build/C/man8/ld.so.8:322
5980 #, no-wrap
5981 msgid "B<LD_BIND_NOT>"
5982 msgstr "B<LD_BIND_NOT>"
5983
5984 #. type: Plain text
5985 #: build/C/man8/ld.so.8:246
5986 msgid ""
5987 "(glibc since 2.2)  Don't update the Global Offset Table (GOT) and Procedure "
5988 "Linkage Table (PLT)  when resolving a symbol."
5989 msgstr ""
5990 "(glibc 2.2 以降) シンボルを解決した際、Global Offset Table (GOT) と "
5991 "Procedure Linkage Table (PLT) を更新しない。"
5992
5993 #. type: TP
5994 #: build/C/man8/ld.so.8:246
5995 #, no-wrap
5996 msgid "B<LD_BIND_NOW>"
5997 msgstr "B<LD_BIND_NOW>"
5998
5999 #. type: Plain text
6000 #: build/C/man8/ld.so.8:254
6001 msgid ""
6002 "(libc5; glibc since 2.1.1)  If set to a nonempty string, causes the dynamic "
6003 "linker to resolve all symbols at program startup instead of deferring "
6004 "function call resolution to the point when they are first referenced.  This "
6005 "is useful when using a debugger."
6006 msgstr ""
6007 "(libc5; glibc 2.1.1 以降)  空文字列でない場合、 動的リンカはプログラムの開始"
6008 "時に全てのシンボルを解決する。 空文字列の場合、解決しなければならない関数呼び"
6009 "出しが 最初に参照された時点で解決する。 デバッガを使っているときに役立つ。"
6010
6011 #. type: TP
6012 #: build/C/man8/ld.so.8:254
6013 #, no-wrap
6014 msgid "B<LD_LIBRARY_PATH>"
6015 msgstr "B<LD_LIBRARY_PATH>"
6016
6017 #. type: Plain text
6018 #: build/C/man8/ld.so.8:262
6019 msgid ""
6020 "A colon-separated list of directories in which to search for ELF libraries "
6021 "at execution-time.  Similar to the B<PATH> environment variable.  Ignored in "
6022 "set-user-ID and set-group-ID programs."
6023 msgstr ""
6024 "コロン区切りのディレクトリのリスト。実行時に ELF ライブラリを検索するディレク"
6025 "トリを指定する。 B<PATH> 環境変数と同じように指定する。 set-user-ID/set-"
6026 "group-ID されたプログラムでは無視される。"
6027
6028 #. type: TP
6029 #: build/C/man8/ld.so.8:262
6030 #, no-wrap
6031 msgid "B<LD_PRELOAD>"
6032 msgstr "B<LD_PRELOAD>"
6033
6034 #. type: Plain text
6035 #: build/C/man8/ld.so.8:273
6036 msgid ""
6037 "A list of additional, user-specified, ELF shared libraries to be loaded "
6038 "before all others.  The items of the list can be separated by spaces or "
6039 "colons.  This can be used to selectively override functions in other shared "
6040 "libraries.  The libraries are searched for using the rules given under "
6041 "DESCRIPTION.  For set-user-ID/set-group-ID ELF binaries, preload pathnames "
6042 "containing slashes are ignored, and libraries in the standard search "
6043 "directories are loaded only if the set-user-ID permission bit is enabled on "
6044 "the library file."
6045 msgstr ""
6046 "追加でユーザが指定する ELF 共有ライブラリのリスト。指定されたライブラリは、す"
6047 "べてのライブラリより前にロードされる。リストの区切りはスペースとコロンであ"
6048 "る。他の共有ライブラリにある関数を選択的に置き換えるために用いることができ"
6049 "る。指定されたライブラリは「説明」の節で述べたルールを基いて検索される。 set-"
6050 "user-ID/set-group-ID された ELF バイナリでは、スラッシュを含んだパス名のライ"
6051 "ブラリは無視され、標準の検索ディレクトリのライブラリはそのライブラリファイル"
6052 "の set-user-ID 許可ビットが有効になっている場合のみロードされる。"
6053
6054 #. type: TP
6055 #: build/C/man8/ld.so.8:273
6056 #, no-wrap
6057 msgid "B<LD_TRACE_LOADED_OBJECTS>"
6058 msgstr "B<LD_TRACE_LOADED_OBJECTS>"
6059
6060 #. type: Plain text
6061 #: build/C/man8/ld.so.8:280
6062 msgid ""
6063 "(ELF only)  If set to a nonempty string, causes the program to list its "
6064 "dynamic library dependencies, as if run by B<ldd>(1), instead of running "
6065 "normally."
6066 msgstr ""
6067 "(ELF のみ)  空文字列でない場合、 プログラムを普通に実行するのではなく、 "
6068 "B<ldd>(1)  を実行したときのように動的ライブラリの依存関係をリスト表示させる。"
6069
6070 #. type: Plain text
6071 #: build/C/man8/ld.so.8:283
6072 msgid ""
6073 "Then there are lots of more or less obscure variables, many obsolete or only "
6074 "for internal use."
6075 msgstr ""
6076 "そして、それほど知られていない環境変数もある。 多くは廃れてしまったものか内部"
6077 "でのみ使用される環境変数である。"
6078
6079 #. type: TP
6080 #: build/C/man8/ld.so.8:283
6081 #, no-wrap
6082 msgid "B<LD_AOUT_LIBRARY_PATH>"
6083 msgstr "B<LD_AOUT_LIBRARY_PATH>"
6084
6085 #. type: Plain text
6086 #: build/C/man8/ld.so.8:291
6087 msgid ""
6088 "(libc5)  Version of B<LD_LIBRARY_PATH> for a.out binaries only.  Old "
6089 "versions of ld-linux.so.1 also supported B<LD_ELF_LIBRARY_PATH>."
6090 msgstr ""
6091 "(libc5)  a.out バイナリにのみ使われる環境変数で、 B<LD_LIBRARY_PATH> と同じ役"
6092 "割をする。 ld-linux.so.1 の古いバージョンでは B<LD_ELF_LIBRARY_PATH> もサポー"
6093 "トしていた。"
6094
6095 #. type: TP
6096 #: build/C/man8/ld.so.8:291
6097 #, no-wrap
6098 msgid "B<LD_AOUT_PRELOAD>"
6099 msgstr "B<LD_AOUT_PRELOAD>"
6100
6101 #. type: Plain text
6102 #: build/C/man8/ld.so.8:299
6103 msgid ""
6104 "(libc5)  Version of B<LD_PRELOAD> for a.out binaries only.  Old versions of "
6105 "ld-linux.so.1 also supported B<LD_ELF_PRELOAD>."
6106 msgstr ""
6107 "(libc5)  a.out バイナリにのみ使われる環境変数で、 B<LD_PRELOAD> と同じ役割を"
6108 "する。 ld-linux.so.1 の古いバージョンでは B<LD_ELF_PRELOAD> もサポートしてい"
6109 "た。"
6110
6111 #. type: TP
6112 #: build/C/man8/ld.so.8:299
6113 #, no-wrap
6114 msgid "B<LD_AUDIT>"
6115 msgstr "B<LD_AUDIT>"
6116
6117 #. type: Plain text
6118 #: build/C/man8/ld.so.8:309
6119 msgid ""
6120 "(glibc since 2.4)  A colon-separated list of user-specified, ELF shared "
6121 "objects to be loaded before all others in a separate linker namespace (i.e., "
6122 "one that does not intrude upon the normal symbol bindings that would occur "
6123 "in the process).  These libraries can be used to audit the operation of the "
6124 "dynamic linker.  B<LD_AUDIT> is ignored for set-user-ID/set-group-ID "
6125 "binaries."
6126 msgstr ""
6127 "(glibc 2.4 以降)  他のオブジェクトよりも前に、別のリンカ名前空間 (そのプロセ"
6128 "スで行われる 通常のシンボル結合 (symbol bindigns) には関与しない名前空間) で "
6129 "ロードされる、ユーザ指定の ELF 共有オブジェクトのコロン区切りのリスト。 これ"
6130 "らのライブラリを使って、動的リンカの動作を監査することができる。 set-user-ID/"
6131 "set-group-ID されたバイナリでは、 B<LD_AUDIT> は無視される。"
6132
6133 #. type: Plain text
6134 #: build/C/man8/ld.so.8:322
6135 msgid ""
6136 "The dynamic linker will notify the audit libraries at so-called auditing "
6137 "checkpoints\\(emfor example, loading a new library, resolving a symbol, or "
6138 "calling a symbol from another shared object\\(emby calling an appropriate "
6139 "function within the audit library.  For details, see B<rtld-audit>(7).  The "
6140 "auditing interface is largely compatible with that provided on Solaris, as "
6141 "described in its I<Linker and Libraries Guide>, in the chapter I<Runtime "
6142 "Linker Auditing Interface>."
6143 msgstr ""
6144 "動的リンカは、いわゆる監査チェックポイント (auditing checkpoints)  において、"
6145 "監査 (audit) ライブラリの適切な関数を呼び出すことで、 監査ライブラリへの通知"
6146 "を行う。監査チェックポイントの例としては、 新たなライブラリのロード、シンボル"
6147 "の解決、別の共有オブジェクト からのシンボルの呼び出し、などがある。 詳細は "
6148 "B<rtld-audit>(7)  を参照してほしい。 audit インタフェースは、Solaris で提供さ"
6149 "れているものと 大部分は互換性がある。Solaris の audit インタフェースについて"
6150 "は、 I<Linker and Libraries Guide> の I<Runtime Linker Auditing Interface> の"
6151 "章に説明がある。"
6152
6153 #. type: Plain text
6154 #: build/C/man8/ld.so.8:327
6155 msgid ""
6156 "(glibc since 2.1.95)  Do not update the GOT (global offset table) and PLT "
6157 "(procedure linkage table)  after resolving a symbol."
6158 msgstr ""
6159 "(glibc 2.1.95 以降)  シンボルを解決した後、GOT (global offset table) と PLT "
6160 "(procedure linkage table) を更新しない。"
6161
6162 #. type: TP
6163 #: build/C/man8/ld.so.8:327
6164 #, no-wrap
6165 msgid "B<LD_DEBUG>"
6166 msgstr "B<LD_DEBUG>"
6167
6168 #. type: Plain text
6169 #: build/C/man8/ld.so.8:340
6170 msgid ""
6171 "(glibc since 2.1)  Output verbose debugging information about the dynamic "
6172 "linker.  If set to B<all> prints all debugging information it has, if set to "
6173 "B<help> prints a help message about which categories can be specified in "
6174 "this environment variable.  Since glibc 2.3.4, B<LD_DEBUG> is ignored for "
6175 "set-user-ID/set-group-ID binaries."
6176 msgstr ""
6177 "(glibc 2.1 以降)  動的リンカの詳細なデバッグ情報を出力する。 B<all> に設定し"
6178 "た場合、全ての動的リンカが持つデバッグ情報を表示する。 B<help> に設定した場"
6179 "合、この環境変数で指定されるカテゴリのヘルプ情報を表示する。 glibc 2.3.4 以"
6180 "降、 set-user-ID/set-group-ID されたバイナリでは B<LD_DEBUG> は無視される。"
6181
6182 #. type: TP
6183 #: build/C/man8/ld.so.8:340
6184 #, no-wrap
6185 msgid "B<LD_DEBUG_OUTPUT>"
6186 msgstr "B<LD_DEBUG_OUTPUT>"
6187
6188 #. type: Plain text
6189 #: build/C/man8/ld.so.8:349
6190 msgid ""
6191 "(glibc since 2.1)  File in which B<LD_DEBUG> output should be written.  The "
6192 "default is standard error.  B<LD_DEBUG_OUTPUT> is ignored for set-user-ID/"
6193 "set-group-ID binaries."
6194 msgstr ""
6195 "(glibc 2.1 以降)  B<LD_DEBUG> の出力を書き込むファイル。 デフォルトは標準エ"
6196 "ラーである。 set-user-ID/set-group-ID されたバイナリでは、 "
6197 "B<LD_DEBUG_OUTPUT> は無視される。"
6198
6199 #. type: TP
6200 #: build/C/man8/ld.so.8:349
6201 #, no-wrap
6202 msgid "B<LD_DYNAMIC_WEAK>"
6203 msgstr "B<LD_DYNAMIC_WEAK>"
6204
6205 #. type: Plain text
6206 #: build/C/man8/ld.so.8:356
6207 msgid ""
6208 "(glibc since 2.1.91)  Allow weak symbols to be overridden (reverting to old "
6209 "glibc behavior).  For security reasons, since glibc 2.3.4, "
6210 "B<LD_DYNAMIC_WEAK> is ignored for set-user-ID/set-group-ID binaries."
6211 msgstr ""
6212 "(glibc 2.1.19 以降)  上書きされる弱いシンボル (昔の glibc の挙動を逆にす"
6213 "る)。 セキュリティ上の理由から、glibc 2.3.4 以降、 set-user-ID/set-group-ID "
6214 "されたバイナリでは B<LD_DYNAMIC_WEAK> は無視される。"
6215
6216 #. type: TP
6217 #: build/C/man8/ld.so.8:356
6218 #, no-wrap
6219 msgid "B<LD_HWCAP_MASK>"
6220 msgstr "B<LD_HWCAP_MASK>"
6221
6222 #. type: Plain text
6223 #: build/C/man8/ld.so.8:360
6224 msgid "(glibc since 2.1)  Mask for hardware capabilities."
6225 msgstr "(glibc 2.1 以降)  ハードウェア機能のマスク。"
6226
6227 #. type: TP
6228 #: build/C/man8/ld.so.8:360
6229 #, no-wrap
6230 msgid "B<LD_KEEPDIR>"
6231 msgstr "B<LD_KEEPDIR>"
6232
6233 #. type: Plain text
6234 #: build/C/man8/ld.so.8:365
6235 msgid ""
6236 "(a.out only)(libc5)  Don't ignore the directory in the names of a.out "
6237 "libraries to be loaded.  Use of this option is strongly discouraged."
6238 msgstr ""
6239 "(a.out のみ)(libc5)  ロードする a.out ライブラリの名前において、ディレクトリ"
6240 "を無視しない。 このオプションは用いるべきではない。"
6241
6242 #. type: TP
6243 #: build/C/man8/ld.so.8:365
6244 #, no-wrap
6245 msgid "B<LD_NOWARN>"
6246 msgstr "B<LD_NOWARN>"
6247
6248 #. type: Plain text
6249 #: build/C/man8/ld.so.8:370
6250 msgid ""
6251 "(a.out only)(libc5)  Suppress warnings about a.out libraries with "
6252 "incompatible minor version numbers."
6253 msgstr ""
6254 "(a.out のみ)(libc5)  a.out ライブラリにおけるマイナーバージョン番号の非互換"
6255 "に 対する警告メッセージを抑制する。"
6256
6257 #. type: TP
6258 #: build/C/man8/ld.so.8:370
6259 #, no-wrap
6260 msgid "B<LD_ORIGIN_PATH>"
6261 msgstr "B<LD_ORIGIN_PATH>"
6262
6263 #.  Only used if $ORIGIN can't be determined by normal means
6264 #.  (from the origin path saved at load time, or from /proc/self/exe)?
6265 #. type: Plain text
6266 #: build/C/man8/ld.so.8:379
6267 msgid ""
6268 "(glibc since 2.1)  Path where the binary is found (for non-set-user-ID "
6269 "programs).  For security reasons, since glibc 2.4, B<LD_ORIGIN_PATH> is "
6270 "ignored for set-user-ID/set-group-ID binaries."
6271 msgstr ""
6272 "(glibc 2.1 以降)  バイナリへのパス (set-user-ID されていないプログラムについ"
6273 "て)。 セキュリティ上の理由から、glibc 2.3.4 以降、 set-user-ID/set-group-ID "
6274 "されたバイナリでは B<LD_ORIGIN_PATH> は無視される。"
6275
6276 #. type: TP
6277 #: build/C/man8/ld.so.8:379
6278 #, no-wrap
6279 msgid "B<LD_POINTER_GUARD>"
6280 msgstr "B<LD_POINTER_GUARD>"
6281
6282 #. type: Plain text
6283 #: build/C/man8/ld.so.8:391
6284 msgid ""
6285 "(glibc since 2.4)  Set to 0 to disable pointer guarding.  Any other value "
6286 "enables pointer guarding, which is also the default.  Pointer guarding is a "
6287 "security mechanism whereby some pointers to code stored in writable program "
6288 "memory (return addresses saved by B<setjmp>(3)  or function pointers used by "
6289 "various glibc internals) are mangled semi-randomly to make it more difficult "
6290 "for an attacker to hijack the pointers for use in the event of a buffer "
6291 "overrun or stack-smashing attack."
6292 msgstr ""
6293 "(glibc 2.4 以降)  0 に設定すると、ポインタ保護 (pointer guarding) が無効にな"
6294 "る。 それ以外の値の場合はポインタ保護が有効になる。 デフォルトはポインタ保護"
6295 "有効である。 ポインタ保護はセキュリティ機構の一つで、書き込み可能なプログラム"
6296 "メモリ に格納されたコードへのポインタをほぼランダム化することで、 攻撃者が"
6297 "バッファオーバーランやスタック破壊 (stack-smashing) 攻撃の際に ポインタを乗っ"
6298 "取ることを困難にするものである。"
6299
6300 #. type: TP
6301 #: build/C/man8/ld.so.8:391
6302 #, no-wrap
6303 msgid "B<LD_PROFILE>"
6304 msgstr "B<LD_PROFILE>"
6305
6306 #. type: Plain text
6307 #: build/C/man8/ld.so.8:398
6308 msgid ""
6309 "(glibc since 2.1)  Shared object to be profiled, specified either as a "
6310 "pathname or a soname.  Profiling output is written to the file whose name "
6311 "is: \"I<$LD_PROFILE_OUTPUT>/I<$LD_PROFILE>.profile\"."
6312 msgstr ""
6313 "(glibc 2.1 以降)  プロファイルを行う共有オブジェクト。 パス名か共有オブジェク"
6314 "ト名 (soname) で指定される。 プロフィールの出力は \"I<$LD_PROFILE_OUTPUT>/I<"
6315 "$LD_PROFILE>.profile\" という名前の ファイルに書き込まれる。"
6316
6317 #. type: TP
6318 #: build/C/man8/ld.so.8:398
6319 #, no-wrap
6320 msgid "B<LD_PROFILE_OUTPUT>"
6321 msgstr "B<LD_PROFILE_OUTPUT>"
6322
6323 #. type: Plain text
6324 #: build/C/man8/ld.so.8:411
6325 msgid ""
6326 "(glibc since 2.1)  Directory where B<LD_PROFILE> output should be written.  "
6327 "If this variable is not defined, or is defined as an empty string, then the "
6328 "default is I</var/tmp>.  B<LD_PROFILE_OUTPUT> is ignored for set-user-ID and "
6329 "set-group-ID programs, which always use I</var/profile>."
6330 msgstr ""
6331 "(glibc 2.1 以降)  B<LD_PROFILE> の出力が書き込まれるディレクトリ。 この変数が"
6332 "定義されていないか、空の文字列が定義されている場合、 デフォルト値は I</var/"
6333 "tmp> となる。 set-user-ID/set-group-ID されたプログラムでは、 "
6334 "LD_PROFILE_OUTPUT は無視される。 出力ファイルは常に I</var/profile> が使用さ"
6335 "れる。"
6336
6337 #. type: TP
6338 #: build/C/man8/ld.so.8:411
6339 #, no-wrap
6340 msgid "B<LD_SHOW_AUXV>"
6341 msgstr "B<LD_SHOW_AUXV>"
6342
6343 #.  FIXME
6344 #.  Document LD_TRACE_PRELINKING (e.g.: LD_TRACE_PRELINKING=libx1.so ./prog)
6345 #.  Since glibc 2.3
6346 #.  Also enables DL_DEBUG_PRELINK
6347 #. type: Plain text
6348 #: build/C/man8/ld.so.8:422
6349 msgid ""
6350 "(glibc since 2.1)  Show auxiliary array passed up from the kernel.  For "
6351 "security reasons, since glibc 2.3.5, B<LD_SHOW_AUXV> is ignored for set-user-"
6352 "ID/set-group-ID binaries."
6353 msgstr ""
6354 "(glibc 2.1 以降)  カーネルから渡される補助的な (パラメータの) 配列を表示す"
6355 "る。 セキュリティ上の理由から、glibc 2.3.4 以降、 set-user-ID/set-group-ID さ"
6356 "れたバイナリでは B<LD_SHOW_AUXV> は無視される。"
6357
6358 #. type: TP
6359 #: build/C/man8/ld.so.8:422
6360 #, no-wrap
6361 msgid "B<LD_USE_LOAD_BIAS>"
6362 msgstr "B<LD_USE_LOAD_BIAS>"
6363
6364 #.  http://sources.redhat.com/ml/libc-hacker/2003-11/msg00127.html
6365 #.  Subject: [PATCH] Support LD_USE_LOAD_BIAS
6366 #.  Jakub Jelinek
6367 #. type: Plain text
6368 #: build/C/man8/ld.so.8:441
6369 msgid ""
6370 "By default (i.e., if this variable is not defined)  executables and "
6371 "prelinked shared objects will honor base addresses of their dependent "
6372 "libraries and (nonprelinked) position-independent executables (PIEs)  and "
6373 "other shared objects will not honor them.  If B<LD_USE_LOAD_BIAS> is defined "
6374 "wit the value, both executables and PIEs will honor the base addresses.  If "
6375 "B<LD_USE_LOAD_BIAS> is defined with the value 0, neither executables nor "
6376 "PIEs will honor the base addresses.  This variable is ignored by set-user-ID "
6377 "and set-group-ID programs."
6378 msgstr ""
6379 "デフォルトでは (つまり、この変数が定義されていない場合)、 実行ファイルと "
6380 "prelink された共有オブジェクトでは、それらが依存する ライブラリのベースアドレ"
6381 "スが尊重される一方、 (prelink されていない) position-independent executables "
6382 "(PIEs) と 他の共有オブジェクトでは依存するライブラリのベースアドレスは 尊重さ"
6383 "れない。 B<LD_USE_LOAD_BIAS> に値が定義された場合、実行ファイルと PIE のどち"
6384 "らでも ベースアドレスが尊重される。 B<LD_USE_LOAD_BIAS> が値 0 で定義された場"
6385 "合、実行ファイルと PIE のどちらでも ベースアドレスは尊重されない。 set-user-"
6386 "ID や set-group-ID されたプログラムでは、 この変数は無視される。"
6387
6388 #. type: TP
6389 #: build/C/man8/ld.so.8:441
6390 #, no-wrap
6391 msgid "B<LD_VERBOSE>"
6392 msgstr "B<LD_VERBOSE>"
6393
6394 #. type: Plain text
6395 #: build/C/man8/ld.so.8:449
6396 msgid ""
6397 "(glibc since 2.1)  If set to a nonempty string, output symbol versioning "
6398 "information about the program if the B<LD_TRACE_LOADED_OBJECTS> environment "
6399 "variable has been set."
6400 msgstr ""
6401 "(glibc 2.1 以降) 空文字列でない場合に、B<LD_TRACE_LOADED_OBJECTS> 環境変数が"
6402 "設定されていれば、プログラムのシンボルバージョン情報を出力する。"
6403
6404 #. type: TP
6405 #: build/C/man8/ld.so.8:449
6406 #, no-wrap
6407 msgid "B<LD_WARN>"
6408 msgstr "B<LD_WARN>"
6409
6410 #. type: Plain text
6411 #: build/C/man8/ld.so.8:453
6412 msgid ""
6413 "(ELF only)(glibc since 2.1.3)  If set to a nonempty string, warn about "
6414 "unresolved symbols."
6415 msgstr ""
6416 "(ELF のみ)(glibc 2.1.3 以降)  空文字列でない場合、解決されていないシンボルが"
6417 "あれば警告を出す。"
6418
6419 #. type: TP
6420 #: build/C/man8/ld.so.8:453
6421 #, no-wrap
6422 msgid "B<LDD_ARGV0>"
6423 msgstr "B<LDD_ARGV0>"
6424
6425 #. type: Plain text
6426 #: build/C/man8/ld.so.8:460
6427 msgid "(libc5)  I<argv>[0] to be used by B<ldd>(1)  when none is present."
6428 msgstr ""
6429 "(libc5)  B<ldd>(1)  の引き数がない場合に、 I<argv>[0] として使われる値。"
6430
6431 #. type: SH
6432 #: build/C/man8/ld.so.8:460 build/C/man8/ldconfig.8:156
6433 #, no-wrap
6434 msgid "FILES"
6435 msgstr "ファイル"
6436
6437 #. type: TP
6438 #: build/C/man8/ld.so.8:462 build/C/man8/ldconfig.8:158
6439 #, no-wrap
6440 msgid "I</lib/ld.so>"
6441 msgstr "I</lib/ld.so>"
6442
6443 #. type: Plain text
6444 #: build/C/man8/ld.so.8:465
6445 msgid "a.out dynamic linker/loader"
6446 msgstr "a.out の動的リンカ/ローダ"
6447
6448 #. type: TP
6449 #: build/C/man8/ld.so.8:465
6450 #, no-wrap
6451 msgid "I</lib/ld-linux.so.>{I<1>,I<2>}"
6452 msgstr "I</lib/ld-linux.so.>{I<1>,I<2>}"
6453
6454 #. type: Plain text
6455 #: build/C/man8/ld.so.8:468
6456 msgid "ELF dynamic linker/loader"
6457 msgstr "ELF の動的リンカ/ローダ"
6458
6459 #. type: TP
6460 #: build/C/man8/ld.so.8:468 build/C/man8/ldconfig.8:165
6461 #, no-wrap
6462 msgid "I</etc/ld.so.cache>"
6463 msgstr "I</etc/ld.so.cache>"
6464
6465 #. type: Plain text
6466 #: build/C/man8/ld.so.8:472
6467 msgid ""
6468 "File containing a compiled list of directories in which to search for "
6469 "libraries and an ordered list of candidate libraries."
6470 msgstr ""
6471 "ライブラリを検索するディレクトリを集めたリストと、 共有ライブラリの候補の整列"
6472 "リストを含むファイル。"
6473
6474 #. type: TP
6475 #: build/C/man8/ld.so.8:472
6476 #, no-wrap
6477 msgid "I</etc/ld.so.preload>"
6478 msgstr "I</etc/ld.so.preload>"
6479
6480 #. type: Plain text
6481 #: build/C/man8/ld.so.8:476
6482 msgid ""
6483 "File containing a whitespace-separated list of ELF shared libraries to be "
6484 "loaded before the program."
6485 msgstr ""
6486 "プログラムの前にロードすべき ELF 共有ライブラリを スペースで区切ったリストが"
6487 "書かれているファイル。"
6488
6489 #. type: TP
6490 #: build/C/man8/ld.so.8:476
6491 #, no-wrap
6492 msgid "B<lib*.so*>"
6493 msgstr "B<lib*.so*>"
6494
6495 #. type: Plain text
6496 #: build/C/man8/ld.so.8:479
6497 msgid "shared libraries"
6498 msgstr "共有ライブラリ"
6499
6500 #. type: Plain text
6501 #: build/C/man8/ld.so.8:486
6502 msgid ""
6503 "The B<ld.so> functionality is available for executables compiled using libc "
6504 "version 4.4.3 or greater.  ELF functionality is available since Linux 1.1.52 "
6505 "and libc5."
6506 msgstr ""
6507 "B<ld.so> の機能は libc のバージョン 4.4.3 以上を用いてコンパイルされた 実行"
6508 "ファイルで使用可能である。 ELF の機能は Linux 1.1.52 以降と libc5 以降で使用"
6509 "可能である。"
6510
6511 #.  .SH AUTHORS
6512 #.  ld.so: David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu, Linus
6513 #.   Torvalds, Lars Wirzenius and Mitch D'Souza
6514 #.  ld-linux.so: Roland McGrath, Ulrich Drepper and others.
6515 #.  In the above, (libc5) stands for David Engel's ld.so/ld-linux.so.
6516 #. type: Plain text
6517 #: build/C/man8/ld.so.8:498
6518 msgid "B<ldd>(1), B<getauxval>(3), B<rtld-audit>(7), B<ldconfig>(8), B<sln>(8)"
6519 msgstr ""
6520 "B<ldd>(1), B<getauxval>(3), B<rtld-audit>(7), B<ldconfig>(8), B<sln>(8)"
6521
6522 #. type: TH
6523 #: build/C/man8/ldconfig.8:22
6524 #, no-wrap
6525 msgid "LDCONFIG"
6526 msgstr "LDCONFIG"
6527
6528 #. type: TH
6529 #: build/C/man8/ldconfig.8:22
6530 #, no-wrap
6531 msgid "2012-05-10"
6532 msgstr "2012-05-10"
6533
6534 #. type: Plain text
6535 #: build/C/man8/ldconfig.8:25
6536 msgid "ldconfig - configure dynamic linker run-time bindings"
6537 msgstr "ldconfig - 動的リンカによる実行時の結合関係を設定する"
6538
6539 #. type: Plain text
6540 #: build/C/man8/ldconfig.8:40
6541 msgid ""
6542 "B</sbin/ldconfig> [ B<-nNvXV> ] [ B<-f\\ conf> ] [ B<-C\\ cache> ] [ B<-r\\ "
6543 "root> ] I<directory>\\ ..."
6544 msgstr ""
6545 "B</sbin/ldconfig> [ B<-nNvXV> ] [ B<-f\\ conf> ] [ B<-C\\ cache> ] [ B<-r\\ "
6546 "root> ] I<directory>\\ ..."
6547
6548 #. type: Plain text
6549 #: build/C/man8/ldconfig.8:49
6550 msgid "B</sbin/ldconfig> B<-l> [ B<-v> ] I<library>\\ ..."
6551 msgstr "B</sbin/ldconfig> B<-l> [ B<-v> ] I<library>\\ ..."
6552
6553 #. type: Plain text
6554 #: build/C/man8/ldconfig.8:54
6555 msgid "B</sbin/ldconfig> B<-p>"
6556 msgstr "B</sbin/ldconfig> B<-p>"
6557
6558 #. type: Plain text
6559 #: build/C/man8/ldconfig.8:71
6560 msgid ""
6561 "B<ldconfig> creates the necessary links and cache to the most recent shared "
6562 "libraries found in the directories specified on the command line, in the "
6563 "file I</etc/ld.so.conf>, and in the trusted directories (I</lib> and I</usr/"
6564 "lib>).  The cache is used by the run-time linker, I<ld.so> or I<ld-linux."
6565 "so>.  B<ldconfig> checks the header and filenames of the libraries it "
6566 "encounters when determining which versions should have their links updated."
6567 msgstr ""
6568 "B<ldcofig> は最新の共有ライブラリに対して必要なリンクを作成したり、 ライブラ"
6569 "リをキャッシュしたりする。 ライブラリは、コマンドラインや I</etc/ld.so.conf> "
6570 "ファイルで指定されたディレクトリや、共有ライブラリが 通常置かれるディレクト"
6571 "リ (I</lib> と I</usr/lib>)  から検索される。 キャッシュは実行時リンカ I<ld."
6572 "so> または I<ld-linux.so> によって使われる。 B<ldconfig> は処理するライブラリ"
6573 "のヘッダ部分とファイル名をチェックし、 どのバージョンに対してリンクを更新すべ"
6574 "きかを判断する。"
6575
6576 #.  The following sentence looks suspect
6577 #.  (perhaps historical cruft) -- MTK, Jul 2005
6578 #.  Therefore, when making dynamic libraries,
6579 #.  it is wise to explicitly link against libc (use \-lc).
6580 #. type: Plain text
6581 #: build/C/man8/ldconfig.8:79
6582 msgid ""
6583 "B<ldconfig> will attempt to deduce the type of ELF libs (i.e., libc5 or "
6584 "libc6/glibc)  based on what C libs, if any, the library was linked against."
6585 msgstr ""
6586 "B<ldconfig> は ELF ライブラリの種類 (libc5 か libc6/glibc か) を判断すると"
6587 "き、 そのライブラリがリンクしている C ライブラリを参考にする。"
6588
6589 #. type: Plain text
6590 #: build/C/man8/ldconfig.8:100
6591 msgid ""
6592 "Some existing libs do not contain enough information to allow the deduction "
6593 "of their type.  Therefore, the I</etc/ld.so.conf> file format allows the "
6594 "specification of an expected type.  This is used I<only> for those ELF libs "
6595 "which we can not work out.  The format is \"dirname=TYPE\", where TYPE can "
6596 "be libc4, libc5, or libc6.  (This syntax also works on the command line.)  "
6597 "Spaces are I<not> allowed.  Also see the B<-p> option.  B<ldconfig> should "
6598 "normally be run by the superuser as it may require write permission on some "
6599 "root owned directories and files."
6600 msgstr ""
6601 "すでに存在しているライブラリの中には、種類を区別するために充分な 情報が含まれ"
6602 "ていないものもある。 このため I</etc/ld.so.conf> ファイルでライブラリの形式を"
6603 "指定することができるようになっている。 これは区別不能な ELF ライブラリ「だ"
6604 "け」に用いるものである。 フォーマットは \"dirname=TYPE\" とする。 ここで "
6605 "TYPE は libc4, libc5, libc6 のいずれかである (この書式はコマンドラインでも使"
6606 "える)。 「スペースを入れてはならない」。 B<-p> オプションも見ておくこと。 "
6607 "B<ldconfig> は通常スーパーユーザー権限で実行しなければならない。 root が所有"
6608 "しているディレクトリやファイルへの書き込み権限が 必要になるからである。"
6609
6610 #. type: TP
6611 #: build/C/man8/ldconfig.8:101
6612 #, no-wrap
6613 msgid "B<-v>"
6614 msgstr "B<-v>"
6615
6616 #. type: Plain text
6617 #: build/C/man8/ldconfig.8:107
6618 msgid ""
6619 "Verbose mode.  Print current version number, the name of each directory as "
6620 "it is scanned, and any links that are created.  Overrides quiet mode."
6621 msgstr ""
6622 "詳細表示モード。 現在のバージョン番号を表示する。 またそれぞれのディレクトリ"
6623 "をスキャンし、 新しいリンクを生成するたびに、その内容を表示する。 メッセージ"
6624 "抑制モードを上書きする。"
6625
6626 #. type: TP
6627 #: build/C/man8/ldconfig.8:107
6628 #, no-wrap
6629 msgid "B<-n>"
6630 msgstr "B<-n>"
6631
6632 #. type: Plain text
6633 #: build/C/man8/ldconfig.8:118
6634 msgid ""
6635 "Only process directories specified on the command line.  Don't process the "
6636 "trusted directories (I</lib> and I</usr/lib>)  nor those specified in I</etc/"
6637 "ld.so.conf>.  Implies B<-N>."
6638 msgstr ""
6639 "コマンドラインで指定されたディレクトリのみを処理する。 通常共有ライブラリが置"
6640 "かれるディレクトリ (I</lib> と I</usr/lib>)  や I</etc/ld.so.conf> で指定され"
6641 "たディレクトリは処理しない。 暗黙のうちに B<-N> が指定される。"
6642
6643 #. type: TP
6644 #: build/C/man8/ldconfig.8:118
6645 #, no-wrap
6646 msgid "B<-N>"
6647 msgstr "B<-N>"
6648
6649 #. type: Plain text
6650 #: build/C/man8/ldconfig.8:124
6651 msgid ""
6652 "Don't rebuild the cache.  Unless B<-X> is also specified, links are still "
6653 "updated."
6654 msgstr ""
6655 "キャッシュを再構成しない。 同時に B<-X> が同時に指定されなければ、リンクのほ"
6656 "うは更新される。"
6657
6658 #. type: TP
6659 #: build/C/man8/ldconfig.8:124
6660 #, no-wrap
6661 msgid "B<-X>"
6662 msgstr "B<-X>"
6663
6664 #. type: Plain text
6665 #: build/C/man8/ldconfig.8:130
6666 msgid ""
6667 "Don't update links.  Unless B<-N> is also specified, the cache is still "
6668 "rebuilt."
6669 msgstr ""
6670 "リンクを更新しない。 B<-N> が同時に指定されなければ、キャッシュのほうは再構成"
6671 "される。"
6672
6673 #. type: TP
6674 #: build/C/man8/ldconfig.8:130
6675 #, no-wrap
6676 msgid "B<-f conf>"
6677 msgstr "B<-f conf>"
6678
6679 #. type: Plain text
6680 #: build/C/man8/ldconfig.8:136
6681 msgid "Use B<conf> instead of I</etc/ld.so.conf>."
6682 msgstr "B<conf> を I</etc/ld.so.conf> の代わりに用いる。"
6683
6684 #. type: TP
6685 #: build/C/man8/ldconfig.8:136
6686 #, no-wrap
6687 msgid "B<-C cache>"
6688 msgstr "B<-C cache>"
6689
6690 #. type: Plain text
6691 #: build/C/man8/ldconfig.8:142
6692 msgid "Use B<cache> instead of I</etc/ld.so.cache>."
6693 msgstr "B<cache> を I</etc/ld.so.cache> の代わりに用いる。"
6694
6695 #. type: TP
6696 #: build/C/man8/ldconfig.8:142
6697 #, no-wrap
6698 msgid "B<-r root>"
6699 msgstr "B<-r root>"
6700
6701 #. type: Plain text
6702 #: build/C/man8/ldconfig.8:147
6703 msgid "Change to and use I<root> as the root directory."
6704 msgstr ""
6705 "I<root> にカレントディレクトリを変更し、ここをルートディレクトリとして用い"
6706 "る。"
6707
6708 #. type: TP
6709 #: build/C/man8/ldconfig.8:147
6710 #, no-wrap
6711 msgid "B<-l>"
6712 msgstr "B<-l>"
6713
6714 #. type: Plain text
6715 #: build/C/man8/ldconfig.8:152
6716 msgid ""
6717 "Library mode.  Manually link individual libraries.  Intended for use by "
6718 "experts only."
6719 msgstr ""
6720 "ライブラリモード。それぞれのライブラリを手動でリンクする。 熟練者のみが用いる"
6721 "べきである。"
6722
6723 #. type: TP
6724 #: build/C/man8/ldconfig.8:152
6725 #, no-wrap
6726 msgid "B<-p>"
6727 msgstr "B<-p>"
6728
6729 #. type: Plain text
6730 #: build/C/man8/ldconfig.8:156
6731 msgid ""
6732 "Print the lists of directories and candidate libraries stored in the current "
6733 "cache."
6734 msgstr ""
6735 "現在のキャッシュに保存されているディレクトリのリストと、 ライブラリの候補を表"
6736 "示する。"
6737
6738 #. type: Plain text
6739 #: build/C/man8/ldconfig.8:161
6740 msgid "run-time linker/loader"
6741 msgstr "実行時リンカ/ローダー。"
6742
6743 #. type: TP
6744 #: build/C/man8/ldconfig.8:161
6745 #, no-wrap
6746 msgid "I</etc/ld.so.conf>"
6747 msgstr "I</etc/ld.so.conf>"
6748
6749 #. type: Plain text
6750 #: build/C/man8/ldconfig.8:165
6751 msgid ""
6752 "File containing a list of colon, space, tab, newline, or comma-separated "
6753 "directories in which to search for libraries."
6754 msgstr ""
6755 "コロン・スペース・タブ・改行・コンマで区切られたディレクトリのリスト。 それぞ"
6756 "れのディレクトリでライブラリが検索される。"
6757
6758 #. type: Plain text
6759 #: build/C/man8/ldconfig.8:174
6760 msgid ""
6761 "File containing an ordered list of libraries found in the directories "
6762 "specified in I</etc/ld.so.conf>, as well as those found in I</lib> and I</"
6763 "usr/lib>."
6764 msgstr ""
6765 "I</etc/ld.so.conf> で指定されたディレクトリにあるライブラリ、および I</lib> "
6766 "と I</usr/lib> にあるライブラリの順序付きリスト。"
6767
6768 #. type: Plain text
6769 #: build/C/man8/ldconfig.8:178
6770 msgid "B<ldd>(1), B<ld.so>(8)"
6771 msgstr "B<ldd>(1), B<ld.so>(8)"
6772
6773 #. type: TH
6774 #: build/C/man1/ldd.1:14
6775 #, no-wrap
6776 msgid "LDD"
6777 msgstr "LDD"
6778
6779 #. type: TH
6780 #: build/C/man1/ldd.1:14
6781 #, no-wrap
6782 msgid "2012-07-16"
6783 msgstr "2012-07-16"
6784
6785 #. type: Plain text
6786 #: build/C/man1/ldd.1:17
6787 msgid "ldd - print shared library dependencies"
6788 msgstr "ldd - 共有ライブラリへの依存関係を表示する"
6789
6790 #. type: Plain text
6791 #: build/C/man1/ldd.1:19
6792 msgid "B<ldd> [OPTION]... FILE..."
6793 msgstr "B<ldd> [OPTION]... FILE..."
6794
6795 #. type: Plain text
6796 #: build/C/man1/ldd.1:23
6797 msgid ""
6798 "B<ldd> prints the shared libraries required by each program or shared "
6799 "library specified on the command line."
6800 msgstr ""
6801 "B<ldd> はコマンドラインで指定したプログラムや共有ライブラリについて、 それぞ"
6802 "れで必要とされる共有ライブラリを表示する。"
6803
6804 #. type: SS
6805 #: build/C/man1/ldd.1:23
6806 #, no-wrap
6807 msgid "Security"
6808 msgstr "セキュリティ"
6809
6810 #.  Mainline glibc's ldd allows this possibility (the line
6811 #.       try_trace "$file"
6812 #.  in glibc 2.15, for example), but many distro versions of
6813 #.  ldd seem to remove that code path from the script.
6814 #. type: Plain text
6815 #: build/C/man1/ldd.1:49
6816 msgid ""
6817 "In the usual case, B<ldd> invokes the standard dynamic linker (see B<ld.so>"
6818 "(8))  with the B<LD_TRACE_LOADED_OBJECTS> environment variable set to 1, "
6819 "which causes the linker to display the library dependencies.  Be aware, "
6820 "however, that in some circumstances, some versions of B<ldd> may attempt to "
6821 "obtain the dependency information by directly executing the program.  Thus, "
6822 "you should I<never> employ B<ldd> on an untrusted executable, since this may "
6823 "result in the execution of arbitrary code.  A safer alternative when dealing "
6824 "with untrusted executables is:"
6825 msgstr ""
6826 "通常の場合、 B<ldd> は標準の動的リンカ (B<ld.so>(8) 参照) を "
6827 "B<LD_TRACE_LOADED_OBJECTS> 環境変数に 1 をセットして起動する。 "
6828 "B<LD_TRACE_LOADED_OBJECTS> に 1 をセットすると、リンカはライブラリの依存関係"
6829 "を表示する。但し、状況次第では、依存関係の情報を得るのにプログラムを直接実行"
6830 "するバージョンの B<ldd> が存在する。したがって、信頼できない実行ファイルに対"
6831 "しては「決して」 B<ldd> を使っては「ならない」。任意のコードを実行することに"
6832 "つながるからである。信頼できない実行ファイルを扱う、より安全な別の方法として"
6833 "は次のようにするとよい。"
6834
6835 #. type: Plain text
6836 #: build/C/man1/ldd.1:51
6837 #, no-wrap
6838 msgid "    $ objdump -p /path/to/program | grep NEEDED\n"
6839 msgstr "    $ objdump -p /path/to/program | grep NEEDED\n"
6840
6841 #. type: TP
6842 #: build/C/man1/ldd.1:52
6843 #, no-wrap
6844 msgid "B<--version>"
6845 msgstr "B<--version>"
6846
6847 #. type: Plain text
6848 #: build/C/man1/ldd.1:56
6849 msgid "Print the version number of B<ldd>."
6850 msgstr "B<ldd> のバージョン番号を表示する。"
6851
6852 #. type: TP
6853 #: build/C/man1/ldd.1:56
6854 #, no-wrap
6855 msgid "B<-v\\ --verbose>"
6856 msgstr "B<-v\\ --verbose>"
6857
6858 #. type: Plain text
6859 #: build/C/man1/ldd.1:60
6860 msgid ""
6861 "Print all information, including, for example, symbol versioning information."
6862 msgstr "シンボルのバージョン情報などを含めた全ての情報を表示する。"
6863
6864 #. type: TP
6865 #: build/C/man1/ldd.1:60
6866 #, no-wrap
6867 msgid "B<-u\\ --unused>"
6868 msgstr "B<-u\\ --unused>"
6869
6870 #. type: Plain text
6871 #: build/C/man1/ldd.1:64
6872 msgid "Print unused direct dependencies.  (Since glibc 2.3.4.)"
6873 msgstr "使用されていない直接の依存関係を表示する (glibc 2.3.4 以降)。"
6874
6875 #. type: TP
6876 #: build/C/man1/ldd.1:64
6877 #, no-wrap
6878 msgid "B<-d\\ --data-relocs>"
6879 msgstr "B<-d\\ --data-relocs>"
6880
6881 #. type: Plain text
6882 #: build/C/man1/ldd.1:67
6883 msgid "Perform relocations and report any missing objects (ELF only)."
6884 msgstr ""
6885 "リロケーションを実行し、足りないオブジェクトについてレポートする (ELF のみ)。"
6886
6887 #. type: TP
6888 #: build/C/man1/ldd.1:67
6889 #, no-wrap
6890 msgid "B<-r\\ --function-relocs>"
6891 msgstr "B<-r\\ --function-relocs>"
6892
6893 #. type: Plain text
6894 #: build/C/man1/ldd.1:71
6895 msgid ""
6896 "Perform relocations for both data objects and functions, and report any "
6897 "missing objects or functions (ELF only)."
6898 msgstr "足りないオブジェクトや関数についてレポートする (ELF のみ)。"
6899
6900 #. type: TP
6901 #: build/C/man1/ldd.1:71
6902 #, no-wrap
6903 msgid "B<--help>"
6904 msgstr "B<--help>"
6905
6906 #. type: Plain text
6907 #: build/C/man1/ldd.1:74
6908 msgid "Usage information."
6909 msgstr "使用法を表示する。"
6910
6911 #. type: Plain text
6912 #: build/C/man1/ldd.1:85
6913 msgid ""
6914 "The standard version of B<ldd> comes with glibc2.  Libc5 came with an older "
6915 "version, still present on some systems.  The long options are not supported "
6916 "by the libc5 version.  On the other hand, the glibc2 version does not "
6917 "support B<-V> and only has the equivalent B<--version>."
6918 msgstr ""
6919 "標準的なバージョンの B<ldd> は glibc2 に付属している。 libc5 には古いバージョ"
6920 "ンのものが付属しており、 これが入っているシステムもまだ存在する。 libc5 バー"
6921 "ジョンではロングオプションがサポートされていない。 一方、glibc2 バージョンで"
6922 "は B<-V> をサポートしておらず、これと同じ意味の B<--version> しかサポートして"
6923 "いない。"
6924
6925 #. type: Plain text
6926 #: build/C/man1/ldd.1:91
6927 msgid ""
6928 "The libc5 version of this program will use the name of a library given on "
6929 "the command line as-is when it contains a \\(aq/\\(aq; otherwise it searches "
6930 "for the library in the standard locations.  To run it on a shared library in "
6931 "the current directory, prefix the name with \"./\"."
6932 msgstr ""
6933 "libc5 バージョンのプログラムでは、 コマンドラインで与えられたライブラリ名に "
6934 "\\(aq/\\(aq が含まれている場合は、ライブラリ名をそのまま用いる。 \\(aq/\\(aq "
6935 "が含まれていない場合は、標準的なパスからライブラリを検索する。 カレントディレ"
6936 "クトリにある共有ライブラリに対して実行するには、 名前にプレフィックス \"./\" "
6937 "を付けること。"
6938
6939 #. type: Plain text
6940 #: build/C/man1/ldd.1:94
6941 msgid "B<ldd> does not work on a.out shared libraries."
6942 msgstr "B<ldd> は a.out 共有ライブラリでは動作しない。"
6943
6944 #.  .SH AUTHOR
6945 #.  David Engel.
6946 #.  Roland McGrath and Ulrich Drepper.
6947 #. type: Plain text
6948 #: build/C/man1/ldd.1:108
6949 msgid ""
6950 "B<ldd> does not work with some extremely old a.out programs which were built "
6951 "before B<ldd> support was added to the compiler releases.  If you use B<ldd> "
6952 "on one of these programs, the program will attempt to run with I<argc> = 0 "
6953 "and the results will be unpredictable."
6954 msgstr ""
6955 "B<ldd> は非常に古い a.out プログラム (B<ldd> のサポートがコンパイラに追加され"
6956 "る以前にビルドされたようなプログラム)  では動作しない。 このようなプログラム"
6957 "に対して B<ldd> を用いると、プログラムは I<argc> = 0 で実行される。結果は予想"
6958 "不可能である。"
6959
6960 #. type: Plain text
6961 #: build/C/man1/ldd.1:111
6962 msgid "B<ld.so>(8), B<ldconfig>(8)"
6963 msgstr "B<ld.so>(8), B<ldconfig>(8)"
6964
6965 #. type: TH
6966 #: build/C/man7/rtld-audit.7:28
6967 #, no-wrap
6968 msgid "RTLD-AUDIT"
6969 msgstr "RTLD-AUDIT"
6970
6971 #. type: TH
6972 #: build/C/man7/rtld-audit.7:28
6973 #, no-wrap
6974 msgid "2012-07-07"
6975 msgstr "2012-07-07"
6976
6977 #. type: Plain text
6978 #: build/C/man7/rtld-audit.7:31
6979 msgid "rtld-audit - auditing API for the dynamic linker"
6980 msgstr ""
6981
6982 #. type: Plain text
6983 #: build/C/man7/rtld-audit.7:33
6984 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
6985 msgstr ""
6986
6987 #. type: Plain text
6988 #: build/C/man7/rtld-audit.7:35
6989 msgid "B<#include E<lt>link.hE<gt>>"
6990 msgstr ""
6991
6992 #. type: Plain text
6993 #: build/C/man7/rtld-audit.7:43
6994 msgid ""
6995 "The GNU dynamic linker (run-time linker)  provides an auditing API that "
6996 "allows an application to be notified when various dynamic linking events "
6997 "occur.  This API is very similar to the auditing interface provided by the "
6998 "Solaris run-time linker.  The necessary constants and prototypes are defined "
6999 "by including I<E<lt>link.hE<gt>>."
7000 msgstr ""
7001
7002 #. type: Plain text
7003 #: build/C/man7/rtld-audit.7:50
7004 msgid ""
7005 "To use this interface, the programmer creates a shared library that "
7006 "implements a standard set of function names.  Not all of the functions need "
7007 "to be implemented: in most cases, if the programmer is not interested in a "
7008 "particular class of auditing event, then no implementation needs to be "
7009 "provided for the corresponding auditing function."
7010 msgstr ""
7011
7012 #. type: Plain text
7013 #: build/C/man7/rtld-audit.7:58
7014 msgid ""
7015 "To employ the auditing interface, the environment variable B<LD_AUDIT> must "
7016 "be defined to contain a colon-separated list of shared libraries, each of "
7017 "which can implement (parts of) the auditing API.  When an auditable event "
7018 "occurs, the corresponding function is invoked in each library, in the order "
7019 "that the libraries are listed."
7020 msgstr ""
7021
7022 #. type: SS
7023 #: build/C/man7/rtld-audit.7:58
7024 #, no-wrap
7025 msgid "la_version()"
7026 msgstr ""
7027
7028 #. type: Plain text
7029 #: build/C/man7/rtld-audit.7:62
7030 #, no-wrap
7031 msgid "B<unsigned int la_version(unsigned int >I<version>B<);>\n"
7032 msgstr ""
7033
7034 #. type: Plain text
7035 #: build/C/man7/rtld-audit.7:74
7036 msgid ""
7037 "This is the only function that I<must> be defined by an auditing library: it "
7038 "performs the initial handshake between the dynamic linker and the auditing "
7039 "library.  When invoking this function, the dynamic linker passes, in "
7040 "I<version>, the highest version of the auditing interface that the linker "
7041 "supports.  If necessary, the auditing library can check that this version is "
7042 "sufficient for its requirements."
7043 msgstr ""
7044
7045 #. type: Plain text
7046 #: build/C/man7/rtld-audit.7:83
7047 msgid ""
7048 "As its function result, this function should return the version of the "
7049 "auditing interface that this auditing library expects to use (returning "
7050 "I<version> is acceptable).  If the returned value is 0, or a version that is "
7051 "greater than that supported by the dynamic linker, then the audit library is "
7052 "ignored."
7053 msgstr ""
7054
7055 #. type: SS
7056 #: build/C/man7/rtld-audit.7:83
7057 #, no-wrap
7058 msgid "la_objsearch()"
7059 msgstr ""
7060
7061 #. type: Plain text
7062 #: build/C/man7/rtld-audit.7:88
7063 #, no-wrap
7064 msgid ""
7065 "B<char *la_objsearch(const char *>I<name>B<, uintptr_t *>I<cookie>B<,>\n"
7066 "B<                   unsigned int >I<flag>B<);>\n"
7067 msgstr ""
7068
7069 #. type: Plain text
7070 #: build/C/man7/rtld-audit.7:99
7071 msgid ""
7072 "The dynamic linker invokes this function to inform the auditing library that "
7073 "it is about to search for a shared object.  The I<name> argument is the "
7074 "filename or pathname that is to be searched for.  I<cookie> identifies the "
7075 "shared object that initiated the search.  I<flag> is set to one of the "
7076 "following values:"
7077 msgstr ""
7078
7079 #. type: TP
7080 #: build/C/man7/rtld-audit.7:99
7081 #, no-wrap
7082 msgid "B<LA_SER_ORIG>"
7083 msgstr ""
7084
7085 #. type: Plain text
7086 #: build/C/man7/rtld-audit.7:108
7087 msgid ""
7088 "This is the original name that is being searched for.  Typically, this name "
7089 "comes from an ELF B<DT_NEEDED> entry, or is the I<filename> argument given "
7090 "to B<dlopen>(3)."
7091 msgstr ""
7092
7093 #. type: TP
7094 #: build/C/man7/rtld-audit.7:108
7095 #, no-wrap
7096 msgid "B<LA_SER_LIBPATH>"
7097 msgstr ""
7098
7099 #. type: Plain text
7100 #: build/C/man7/rtld-audit.7:113
7101 msgid "I<name> was created using a directory specified in B<LD_LIBRARY_PATH>."
7102 msgstr ""
7103
7104 #. type: TP
7105 #: build/C/man7/rtld-audit.7:113
7106 #, no-wrap
7107 msgid "B<LA_SER_RUNPATH>"
7108 msgstr ""
7109
7110 #. type: Plain text
7111 #: build/C/man7/rtld-audit.7:121
7112 msgid ""
7113 "I<name> was created using a directory specified in an ELF B<DT_RPATH> or "
7114 "B<DT_RUNPATH> list."
7115 msgstr ""
7116
7117 #. type: TP
7118 #: build/C/man7/rtld-audit.7:121
7119 #, no-wrap
7120 msgid "B<LA_SER_CONFIG>"
7121 msgstr ""
7122
7123 #. type: Plain text
7124 #: build/C/man7/rtld-audit.7:128
7125 msgid "I<name> was found via the B<ldconfig>(8)  cache (I</etc/ld.so.cache>)."
7126 msgstr ""
7127
7128 #. type: TP
7129 #: build/C/man7/rtld-audit.7:128
7130 #, no-wrap
7131 msgid "B<LA_SER_DEFAULT>"
7132 msgstr ""
7133
7134 #. type: Plain text
7135 #: build/C/man7/rtld-audit.7:132
7136 msgid "I<name> was found via a search of one of the default directories."
7137 msgstr ""
7138
7139 #. type: TP
7140 #: build/C/man7/rtld-audit.7:132
7141 #, no-wrap
7142 msgid "B<LA_SER_SECURE>"
7143 msgstr ""
7144
7145 #. type: Plain text
7146 #: build/C/man7/rtld-audit.7:136
7147 msgid "I<name> is specific to a secure object (unused on Linux)."
7148 msgstr ""
7149
7150 #. type: Plain text
7151 #: build/C/man7/rtld-audit.7:145
7152 msgid ""
7153 "As its function result, B<la_objsearch>()  returns the pathname that the "
7154 "dynamic linker should use for further processing.  If NULL is returned, then "
7155 "this pathname is ignored for further processing.  If this audit library "
7156 "simply intends to monitor search paths, then I<name> should be returned."
7157 msgstr ""
7158
7159 #. type: SS
7160 #: build/C/man7/rtld-audit.7:145
7161 #, no-wrap
7162 msgid "la_activity()"
7163 msgstr ""
7164
7165 #. type: Plain text
7166 #: build/C/man7/rtld-audit.7:149
7167 #, no-wrap
7168 msgid "B<void la_activity( uintptr_t *>I<cookie>B<, unsigned int >I<flag>B<);>\n"
7169 msgstr ""
7170
7171 #. type: Plain text
7172 #: build/C/man7/rtld-audit.7:158
7173 msgid ""
7174 "The dynamic linker calls this function to inform the auditing library that "
7175 "link-map activity is occurring.  I<cookie> identifies the object at the head "
7176 "of the link map.  When the dynamic linker invokes this function, I<flag> is "
7177 "set to one of the following values:"
7178 msgstr ""
7179
7180 #. type: TP
7181 #: build/C/man7/rtld-audit.7:158
7182 #, no-wrap
7183 msgid "B<LA_ACT_ADD>"
7184 msgstr ""
7185
7186 #. type: Plain text
7187 #: build/C/man7/rtld-audit.7:161
7188 msgid "New objects are being added to the link map."
7189 msgstr ""
7190
7191 #. type: TP
7192 #: build/C/man7/rtld-audit.7:161
7193 #, no-wrap
7194 msgid "B<LA_ACT_DELETE>"
7195 msgstr ""
7196
7197 #. type: Plain text
7198 #: build/C/man7/rtld-audit.7:164
7199 msgid "Objects are being removed from the link map."
7200 msgstr ""
7201
7202 #. type: TP
7203 #: build/C/man7/rtld-audit.7:164
7204 #, no-wrap
7205 msgid "B<LA_ACT_CONSISTENT>"
7206 msgstr ""
7207
7208 #. type: Plain text
7209 #: build/C/man7/rtld-audit.7:167
7210 msgid "Link-map activity has been completed: the map is once again consistent."
7211 msgstr ""
7212
7213 #. type: SS
7214 #: build/C/man7/rtld-audit.7:167
7215 #, no-wrap
7216 msgid "la_objopen()"
7217 msgstr ""
7218
7219 #. type: Plain text
7220 #: build/C/man7/rtld-audit.7:172
7221 #, no-wrap
7222 msgid ""
7223 "B<unsigned int la_objopen(struct link_map *>I<map>B<, Lmid_t >I<lmid>B<,>\n"
7224 "B<                        uintptr_t *>I<cookie>B<);>\n"
7225 msgstr ""
7226
7227 #. type: Plain text
7228 #: build/C/man7/rtld-audit.7:181
7229 msgid ""
7230 "The dynamic linker calls this function when a new shared object is loaded.  "
7231 "The I<map> argument is a pointer to a link-map structure that describes the "
7232 "object.  The I<lmid> field has one of the following values"
7233 msgstr ""
7234
7235 #. type: TP
7236 #: build/C/man7/rtld-audit.7:181
7237 #, no-wrap
7238 msgid "B<LM_ID_BASE>"
7239 msgstr ""
7240
7241 #. type: Plain text
7242 #: build/C/man7/rtld-audit.7:184
7243 msgid "Link map is part of the initial namespace."
7244 msgstr ""
7245
7246 #. type: TP
7247 #: build/C/man7/rtld-audit.7:184
7248 #, no-wrap
7249 msgid "B<LM_ID_NEWLM>"
7250 msgstr ""
7251
7252 #. type: Plain text
7253 #: build/C/man7/rtld-audit.7:188
7254 msgid "Link map is part of a new namespace requested via B<dlmopen>(3)."
7255 msgstr ""
7256
7257 #. type: Plain text
7258 #: build/C/man7/rtld-audit.7:196
7259 msgid ""
7260 "I<cookie> is a pointer to an identifier for this object.  The identifier is "
7261 "provided to later calls to functions in the auditing library in order to "
7262 "identify this object.  This identifier is initialized to point to object's "
7263 "link map, but the audit library can change the identifier to some other "
7264 "value that it may prefer to use to identify the object."
7265 msgstr ""
7266
7267 #. type: Plain text
7268 #: build/C/man7/rtld-audit.7:203
7269 msgid ""
7270 "As its return value, B<la_objopen>()  returns a bit mask created by ORing "
7271 "zero or more of the following constants, which allow the auditing library to "
7272 "select the objects to be monitored by B<la_symbind*>():"
7273 msgstr ""
7274
7275 #. type: TP
7276 #: build/C/man7/rtld-audit.7:203
7277 #, no-wrap
7278 msgid "B<LA_FLG_BINDTO>"
7279 msgstr ""
7280
7281 #. type: Plain text
7282 #: build/C/man7/rtld-audit.7:206
7283 msgid "Audit symbol bindings to this object."
7284 msgstr ""
7285
7286 #. type: TP
7287 #: build/C/man7/rtld-audit.7:206
7288 #, no-wrap
7289 msgid "B<LA_FLG_BINDFROM>"
7290 msgstr ""
7291
7292 #. type: Plain text
7293 #: build/C/man7/rtld-audit.7:209
7294 msgid "Audit symbol bindings from this object."
7295 msgstr ""
7296
7297 #. type: Plain text
7298 #: build/C/man7/rtld-audit.7:213
7299 msgid ""
7300 "A return value of 0 from B<la_objopen>()  indicates that no symbol bindings "
7301 "should be audited for this object."
7302 msgstr ""
7303
7304 #. type: SS
7305 #: build/C/man7/rtld-audit.7:213
7306 #, no-wrap
7307 msgid "la_objclose()"
7308 msgstr ""
7309
7310 #. type: Plain text
7311 #: build/C/man7/rtld-audit.7:217
7312 #, no-wrap
7313 msgid "B<unsigned int la_objclose(uintptr_t *>I<cookie>B<);>\n"
7314 msgstr ""
7315
7316 #. type: Plain text
7317 #: build/C/man7/rtld-audit.7:226
7318 msgid ""
7319 "The dynamic linker invokes this function after any finalization code for the "
7320 "object has been executed, before the object is unloaded.  The I<cookie> "
7321 "argument is the identifier obtained from a previous invocation of "
7322 "B<la_objopen>()."
7323 msgstr ""
7324
7325 #. type: Plain text
7326 #: build/C/man7/rtld-audit.7:230
7327 msgid ""
7328 "In the current implementation, the value returned by B<la_objclose>()  is "
7329 "ignored."
7330 msgstr ""
7331
7332 #. type: SS
7333 #: build/C/man7/rtld-audit.7:230
7334 #, no-wrap
7335 msgid "la_preinit()"
7336 msgstr ""
7337
7338 #. type: Plain text
7339 #: build/C/man7/rtld-audit.7:234
7340 #, no-wrap
7341 msgid "B<void la_preinit(uintptr_t *>I<cookie>B<);>\n"
7342 msgstr ""
7343
7344 #. type: Plain text
7345 #: build/C/man7/rtld-audit.7:244
7346 msgid ""
7347 "The dynamic linker invokes this function after all shared objects have been "
7348 "loaded, before control is passed to the application (i.e., before calling "
7349 "I<main>()).  Note that I<main>()  may still later dynamically load objects "
7350 "using B<dlopen>(3)."
7351 msgstr ""
7352
7353 #. type: SS
7354 #: build/C/man7/rtld-audit.7:244
7355 #, no-wrap
7356 msgid "la_symbind*()"
7357 msgstr ""
7358
7359 #. type: Plain text
7360 #: build/C/man7/rtld-audit.7:253
7361 #, no-wrap
7362 msgid ""
7363 "B<uintptr_t la_symbind32(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
7364 "B<                       uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
7365 "B<                       unsigned int *>I<flags>B<, const char *>I<symname>B<);>\n"
7366 "B<uintptr_t la_symbind64(Elf64_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
7367 "B<                       uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
7368 "B<                       unsigned int *>I<flags>B<, const char *>I<symname>B<);>\n"
7369 msgstr ""
7370
7371 #. type: Plain text
7372 #: build/C/man7/rtld-audit.7:265
7373 msgid ""
7374 "The dynamic linker invokes one of these functions when a symbol binding "
7375 "occurs between two shared objects that have been marked for auditing "
7376 "notification by B<la_objopen>().  The B<la_symbind32>()  function is "
7377 "employed on 32-bit platforms; the B<la_symbind64>()  function is employed on "
7378 "64-bit platforms."
7379 msgstr ""
7380
7381 #. type: Plain text
7382 #: build/C/man7/rtld-audit.7:275
7383 msgid ""
7384 "The I<sym> argument is a pointer to a structure that provides information "
7385 "about the symbol being bound.  The structure definition is shown in "
7386 "I<E<lt>elf.hE<gt>>.  Among the fields of this structure, I<st_value> "
7387 "indicates the address to which the symbol is bound."
7388 msgstr ""
7389
7390 #. type: Plain text
7391 #: build/C/man7/rtld-audit.7:280
7392 msgid ""
7393 "The I<ndx> argument gives the index of the symbol in the symbol table of the "
7394 "bound shared object."
7395 msgstr ""
7396
7397 #. type: Plain text
7398 #: build/C/man7/rtld-audit.7:295
7399 msgid ""
7400 "The I<refcook> argument identifies the shared object that is making the "
7401 "symbol reference; this is the same identifier that is provided to the "
7402 "B<la_objopen>()  function that returned B<LA_FLG_BINDFROM>.  The I<defcook> "
7403 "argument identifies the shared object that defines the referenced symbol; "
7404 "this is the same identifier that is provided to the B<la_objopen>()  "
7405 "function that returned B<LA_FLG_BINDTO>."
7406 msgstr ""
7407
7408 #. type: Plain text
7409 #: build/C/man7/rtld-audit.7:299
7410 msgid ""
7411 "The I<symname> argument points a string containing the name of the symbol."
7412 msgstr ""
7413
7414 #.  LA_SYMB_STRUCTCALL appears to be unused
7415 #. type: Plain text
7416 #: build/C/man7/rtld-audit.7:307
7417 msgid ""
7418 "The I<flags> argument is a bit mask that both provides information about the "
7419 "symbol and can be used to modify further auditing of this PLT (Procedure "
7420 "Linkage Table) entry.  The dynamic linker may supply the following bit "
7421 "values in this argument:"
7422 msgstr ""
7423
7424 #. type: TP
7425 #: build/C/man7/rtld-audit.7:307
7426 #, no-wrap
7427 msgid "B<LA_SYMB_DLSYM>"
7428 msgstr ""
7429
7430 #. type: Plain text
7431 #: build/C/man7/rtld-audit.7:311
7432 msgid "The binding resulted from a call to B<dlsym>(3)."
7433 msgstr ""
7434
7435 #. type: TP
7436 #: build/C/man7/rtld-audit.7:311
7437 #, no-wrap
7438 msgid "B<LA_SYMB_ALTVALUE>"
7439 msgstr ""
7440
7441 #. type: Plain text
7442 #: build/C/man7/rtld-audit.7:316
7443 msgid ""
7444 "A previous B<la_symbind*>()  call returned an alternate value for this "
7445 "symbol."
7446 msgstr ""
7447
7448 #.  pltenter/pltexit are called for non-dynamically loaded libraries,
7449 #.  but don't seem to be called for dynamically loaded libs?
7450 #.  Is this the same on Solaris?
7451 #. type: Plain text
7452 #: build/C/man7/rtld-audit.7:330
7453 msgid ""
7454 "By default, if the auditing library implements B<la_pltenter>()  and "
7455 "B<la_pltexit>()  functions (see below), then these functions are invoked, "
7456 "after B<la_symbind>(), for PLT entries, each time the symbol is referenced.  "
7457 "The following flags can be ORed into I<*flags> to change this default "
7458 "behavior:"
7459 msgstr ""
7460
7461 #. type: TP
7462 #: build/C/man7/rtld-audit.7:330
7463 #, no-wrap
7464 msgid "B<LA_SYMB_NOPLTENTER>"
7465 msgstr ""
7466
7467 #. type: Plain text
7468 #: build/C/man7/rtld-audit.7:335
7469 msgid "Don't call B<la_pltenter>()  for this symbol."
7470 msgstr ""
7471
7472 #. type: TP
7473 #: build/C/man7/rtld-audit.7:335
7474 #, no-wrap
7475 msgid "B<LA_SYMB_NOPLTEXIT>"
7476 msgstr ""
7477
7478 #. type: Plain text
7479 #: build/C/man7/rtld-audit.7:340
7480 msgid "Don't call B<la_pltexit>()  for this symbol."
7481 msgstr ""
7482
7483 #. type: Plain text
7484 #: build/C/man7/rtld-audit.7:351
7485 msgid ""
7486 "The return value of B<la_symbind32>()  and B<la_symbind64>()  is the address "
7487 "to which control should be passed after the function returns.  If the "
7488 "auditing library is simply monitoring symbol bindings, then it should return "
7489 "I<sym-E<gt>st_value>.  A different value may be returned if the library "
7490 "wishes to direct control to an alternate location."
7491 msgstr ""
7492
7493 #. type: SS
7494 #: build/C/man7/rtld-audit.7:351
7495 #, no-wrap
7496 msgid "la_pltenter()"
7497 msgstr ""
7498
7499 #. type: Plain text
7500 #: build/C/man7/rtld-audit.7:357 build/C/man7/rtld-audit.7:417
7501 msgid ""
7502 "The precise name and argument types for this function depend on the hardware "
7503 "platform.  (The appropriate definition is supplied by I<E<lt>link.hE<gt>>.)  "
7504 "Here is the definition for x86-32:"
7505 msgstr ""
7506
7507 #. type: Plain text
7508 #: build/C/man7/rtld-audit.7:363
7509 #, no-wrap
7510 msgid ""
7511 "B<Elf32_Addr la_i86_gnu_pltenter(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
7512 "B<                 uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
7513 "B<                 La_i86_regs *>I<regs>B<, unsigned int *>I<flags>B<,>\n"
7514 "B<                 const char *>I<symname>B<, long int *>I<framesizep>B<);>\n"
7515 msgstr ""
7516
7517 #. type: Plain text
7518 #: build/C/man7/rtld-audit.7:367
7519 msgid ""
7520 "This function is invoked just before a PLT entry is called, between two "
7521 "shared objects that have been marked for binding notification."
7522 msgstr ""
7523
7524 #. type: Plain text
7525 #: build/C/man7/rtld-audit.7:377 build/C/man7/rtld-audit.7:440
7526 msgid ""
7527 "The I<sym>, I<ndx>, I<refcook>, I<defcook>, and I<symname> are as for "
7528 "B<la_symbind*>()."
7529 msgstr ""
7530
7531 #. type: Plain text
7532 #: build/C/man7/rtld-audit.7:384
7533 msgid ""
7534 "The I<regs> argument points to a structure (defined in I<E<lt>link.hE<gt>>)  "
7535 "containing the values of registers to be used for the call to this PLT entry."
7536 msgstr ""
7537
7538 #. type: Plain text
7539 #: build/C/man7/rtld-audit.7:390
7540 msgid ""
7541 "The I<flags> argument points to a bit mask that conveys information about, "
7542 "and can be used to modify subsequent auditing of, this PLT entry, as for "
7543 "B<la_symbind*>()."
7544 msgstr ""
7545
7546 #.  FIXME is the following correct?
7547 #. type: Plain text
7548 #: build/C/man7/rtld-audit.7:406
7549 msgid ""
7550 "The I<framesizep> argument points to a I<long\\ int> buffer that can be used "
7551 "to explicitly set the frame size used for the call to this PLT entry.  If "
7552 "different B<la_pltenter>()  invocations for this symbol return different "
7553 "values, then the maximum returned value is used.  The B<la_pltenter>()  "
7554 "function is called only if this buffer is explicitly set to a suitable value."
7555 msgstr ""
7556
7557 #. type: Plain text
7558 #: build/C/man7/rtld-audit.7:411
7559 msgid "The return value of B<la_pltenter>()  is as for B<la_symbind*>()."
7560 msgstr ""
7561
7562 #. type: SS
7563 #: build/C/man7/rtld-audit.7:411
7564 #, no-wrap
7565 msgid "la_pltexit()"
7566 msgstr ""
7567
7568 #. type: Plain text
7569 #: build/C/man7/rtld-audit.7:423
7570 #, no-wrap
7571 msgid ""
7572 "B<unsigned int la_i86_gnu_pltexit(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
7573 "B<                 uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
7574 "B<                 const La_i86_regs *>I<inregs>B<, La_i86_retval *>I<outregs>B<,>\n"
7575 "B<                 const char *>I<symname>B<);>\n"
7576 msgstr ""
7577
7578 #. type: Plain text
7579 #: build/C/man7/rtld-audit.7:430
7580 msgid ""
7581 "This function is called when a PLT entry, made between two shared objects "
7582 "that have been marked for binding notification, returns.  The function is "
7583 "called just before control returns to the caller of the PLT entry."
7584 msgstr ""
7585
7586 #. type: Plain text
7587 #: build/C/man7/rtld-audit.7:453
7588 msgid ""
7589 "The I<inregs> argument points to a structure (defined in I<E<lt>link."
7590 "hE<gt>>)  containing the values of registers used for the call to this PLT "
7591 "entry.  The I<outregs> argument points to a structure (defined in "
7592 "I<E<lt>link.hE<gt>>)  containing return values for the call to this PLT "
7593 "entry.  These values can be modified by the caller, and the changes will be "
7594 "visible to the caller of the PLT entry."
7595 msgstr ""
7596
7597 #.  This differs from Solaris, where an audit library that monitors
7598 #.  symbol binding should return the value of the 'retval' argument
7599 #.  (not provided by GNU, but equivalent to returning outregs->lrv_eax
7600 #.  on (say) x86-32).
7601 #. type: Plain text
7602 #: build/C/man7/rtld-audit.7:461
7603 msgid ""
7604 "In the current GNU implementation, the return value of B<la_pltexit>()  is "
7605 "ignored."
7606 msgstr ""
7607
7608 #. type: Plain text
7609 #: build/C/man7/rtld-audit.7:467
7610 msgid ""
7611 "This API is nonstandard, but very similar to the Solaris API, described in "
7612 "the Solaris I<Linker and Libraries Guide>, in the chapter I<Runtime Linker "
7613 "Auditing Interface>."
7614 msgstr ""
7615
7616 #. type: Plain text
7617 #: build/C/man7/rtld-audit.7:470
7618 msgid ""
7619 "Note the following differences from the Solaris dynamic linker auditing API:"
7620 msgstr ""
7621
7622 #. type: IP
7623 #: build/C/man7/rtld-audit.7:470 build/C/man7/rtld-audit.7:474
7624 #: build/C/man7/rtld-audit.7:482
7625 #, no-wrap
7626 msgid "*"
7627 msgstr ""
7628
7629 #. type: Plain text
7630 #: build/C/man7/rtld-audit.7:474
7631 msgid ""
7632 "The Solaris B<la_objfilter>()  interface is not supported by the GNU "
7633 "implementation."
7634 msgstr ""
7635
7636 #. type: Plain text
7637 #: build/C/man7/rtld-audit.7:482
7638 msgid ""
7639 "The Solaris B<la_symbind32>()  and B<la_pltexit>()  functions do not provide "
7640 "a I<symname> argument."
7641 msgstr ""
7642
7643 #. type: Plain text
7644 #: build/C/man7/rtld-audit.7:492
7645 msgid ""
7646 "The Solaris B<la_pltexit>()  function does not provide I<inregs> and "
7647 "I<outregs> arguments (but does provide a I<retval> argument with the "
7648 "function return value)."
7649 msgstr ""
7650
7651 #.  FIXME Specifying multiple audit libraries doesn't work on GNU.
7652 #.  My simple tests on Solaris work okay, but not on Linux -- mtk, Jan 2009
7653 #.  glibc bug filed: http://sourceware.org/bugzilla/show_bug.cgi?id=9733
7654 #.  Reportedly, this is fixed on 16 Mar 2009 (i.e., for glibc 2.10)
7655 #. type: Plain text
7656 #: build/C/man7/rtld-audit.7:502
7657 msgid ""
7658 "In glibc versions up to and include 2.9, specifying more than one audit "
7659 "library in B<LD_AUDIT> results in a run-time crash.  This is reportedly "
7660 "fixed in glibc 2.10."
7661 msgstr ""
7662
7663 #. type: Plain text
7664 #: build/C/man7/rtld-audit.7:506
7665 #, no-wrap
7666 msgid ""
7667 "#include E<lt>link.hE<gt>\n"
7668 "#include E<lt>stdio.hE<gt>\n"
7669 msgstr ""
7670 "#include E<lt>link.hE<gt>\n"
7671 "#include E<lt>stdio.hE<gt>\n"
7672
7673 #. type: Plain text
7674 #: build/C/man7/rtld-audit.7:511
7675 #, no-wrap
7676 msgid ""
7677 "unsigned int\n"
7678 "la_version(unsigned int version)\n"
7679 "{\n"
7680 "    printf(\"la_version(): %d\\en\", version);\n"
7681 msgstr ""
7682 "unsigned int\n"
7683 "la_version(unsigned int version)\n"
7684 "{\n"
7685 "    printf(\"la_version(): %d\\en\", version);\n"
7686
7687 #. type: Plain text
7688 #: build/C/man7/rtld-audit.7:514
7689 #, no-wrap
7690 msgid ""
7691 "    return version;\n"
7692 "}\n"
7693 msgstr ""
7694 "    return version;\n"
7695 "}\n"
7696
7697 #. type: Plain text
7698 #: build/C/man7/rtld-audit.7:527
7699 #, no-wrap
7700 msgid ""
7701 "char *\n"
7702 "la_objsearch(const char *name, uintptr_t *cookie, unsigned int flag)\n"
7703 "{\n"
7704 "    printf(\"la_objsearch(): name = %s; cookie = %x\", name, cookie);\n"
7705 "    printf(\"; flag = %s\\en\",\n"
7706 "            (flag == LA_SER_ORIG) ?    \"LA_SER_ORIG\" :\n"
7707 "            (flag == LA_SER_LIBPATH) ? \"LA_SER_LIBPATH\" :\n"
7708 "            (flag == LA_SER_RUNPATH) ? \"LA_SER_RUNPATH\" :\n"
7709 "            (flag == LA_SER_DEFAULT) ? \"LA_SER_DEFAULT\" :\n"
7710 "            (flag == LA_SER_CONFIG) ?  \"LA_SER_CONFIG\" :\n"
7711 "            (flag == LA_SER_SECURE) ?  \"LA_SER_SECURE\" :\n"
7712 "            \"???\");\n"
7713 msgstr ""
7714 "char *\n"
7715 "la_objsearch(const char *name, uintptr_t *cookie, unsigned int flag)\n"
7716 "{\n"
7717 "    printf(\"la_objsearch(): name = %s; cookie = %x\", name, cookie);\n"
7718 "    printf(\"; flag = %s\\en\",\n"
7719 "            (flag == LA_SER_ORIG) ?    \"LA_SER_ORIG\" :\n"
7720 "            (flag == LA_SER_LIBPATH) ? \"LA_SER_LIBPATH\" :\n"
7721 "            (flag == LA_SER_RUNPATH) ? \"LA_SER_RUNPATH\" :\n"
7722 "            (flag == LA_SER_DEFAULT) ? \"LA_SER_DEFAULT\" :\n"
7723 "            (flag == LA_SER_CONFIG) ?  \"LA_SER_CONFIG\" :\n"
7724 "            (flag == LA_SER_SECURE) ?  \"LA_SER_SECURE\" :\n"
7725 "            \"???\");\n"
7726
7727 #. type: Plain text
7728 #: build/C/man7/rtld-audit.7:530
7729 #, no-wrap
7730 msgid ""
7731 "    return name;\n"
7732 "}\n"
7733 msgstr ""
7734 "    return name;\n"
7735 "}\n"
7736
7737 #. type: Plain text
7738 #: build/C/man7/rtld-audit.7:540
7739 #, no-wrap
7740 msgid ""
7741 "void\n"
7742 "la_activity (uintptr_t *cookie, unsigned int flag)\n"
7743 "{\n"
7744 "    printf(\"la_activity(): cookie = %x; flag = %s\\en\", cookie,\n"
7745 "            (flag == LA_ACT_CONSISTENT) ? \"LA_ACT_CONSISTENT\" :\n"
7746 "            (flag == LA_ACT_ADD) ?        \"LA_ACT_ADD\" :\n"
7747 "            (flag == LA_ACT_DELETE) ?     \"LA_ACT_DELETE\" :\n"
7748 "            \"???\");\n"
7749 "}\n"
7750 msgstr ""
7751 "void\n"
7752 "la_activity (uintptr_t *cookie, unsigned int flag)\n"
7753 "{\n"
7754 "    printf(\"la_activity(): cookie = %x; flag = %s\\en\", cookie,\n"
7755 "            (flag == LA_ACT_CONSISTENT) ? \"LA_ACT_CONSISTENT\" :\n"
7756 "            (flag == LA_ACT_ADD) ?        \"LA_ACT_ADD\" :\n"
7757 "            (flag == LA_ACT_DELETE) ?     \"LA_ACT_DELETE\" :\n"
7758 "            \"???\");\n"
7759 "}\n"
7760
7761 #. type: Plain text
7762 #: build/C/man7/rtld-audit.7:550
7763 #, no-wrap
7764 msgid ""
7765 "unsigned int\n"
7766 "la_objopen(struct link_map *map, Lmid_t lmid, uintptr_t *cookie)\n"
7767 "{\n"
7768 "    printf(\"la_objopen(): loading \\e\"%s\\e\"; lmid = %s; cookie=%x\\en\",\n"
7769 "            map-E<gt>l_name,\n"
7770 "            (lmid == LM_ID_BASE) ?  \"LM_ID_BASE\" :\n"
7771 "            (lmid == LM_ID_NEWLM) ? \"LM_ID_NEWLM\" :\n"
7772 "            \"???\",\n"
7773 "            cookie);\n"
7774 msgstr ""
7775 "unsigned int\n"
7776 "la_objopen(struct link_map *map, Lmid_t lmid, uintptr_t *cookie)\n"
7777 "{\n"
7778 "    printf(\"la_objopen(): loading \\e\"%s\\e\"; lmid = %s; cookie=%x\\en\",\n"
7779 "            map-E<gt>l_name,\n"
7780 "            (lmid == LM_ID_BASE) ?  \"LM_ID_BASE\" :\n"
7781 "            (lmid == LM_ID_NEWLM) ? \"LM_ID_NEWLM\" :\n"
7782 "            \"???\",\n"
7783 "            cookie);\n"
7784
7785 #. type: Plain text
7786 #: build/C/man7/rtld-audit.7:553
7787 #, no-wrap
7788 msgid ""
7789 "    return LA_FLG_BINDTO | LA_FLG_BINDFROM;\n"
7790 "}\n"
7791 msgstr ""
7792 "    return LA_FLG_BINDTO | LA_FLG_BINDFROM;\n"
7793 "}\n"
7794
7795 #. type: Plain text
7796 #: build/C/man7/rtld-audit.7:558
7797 #, no-wrap
7798 msgid ""
7799 "unsigned int\n"
7800 "la_objclose (uintptr_t *cookie)\n"
7801 "{\n"
7802 "    printf(\"la_objclose(): %x\\en\", cookie);\n"
7803 msgstr ""
7804 "unsigned int\n"
7805 "la_objclose (uintptr_t *cookie)\n"
7806 "{\n"
7807 "    printf(\"la_objclose(): %x\\en\", cookie);\n"
7808
7809 #. type: Plain text
7810 #: build/C/man7/rtld-audit.7:561
7811 #, no-wrap
7812 msgid ""
7813 "    return 0;\n"
7814 "}\n"
7815 msgstr ""
7816 "    return 0;\n"
7817 "}\n"
7818
7819 #. type: Plain text
7820 #: build/C/man7/rtld-audit.7:567
7821 #, no-wrap
7822 msgid ""
7823 "void\n"
7824 "la_preinit(uintptr_t *cookie)\n"
7825 "{\n"
7826 "    printf(\"la_preinit(): %x\\en\", cookie);\n"
7827 "}\n"
7828 msgstr ""
7829 "void\n"
7830 "la_preinit(uintptr_t *cookie)\n"
7831 "{\n"
7832 "    printf(\"la_preinit(): %x\\en\", cookie);\n"
7833 "}\n"
7834
7835 #. type: Plain text
7836 #: build/C/man7/rtld-audit.7:576
7837 #, no-wrap
7838 msgid ""
7839 "uintptr_t\n"
7840 "la_symbind32(Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
7841 "        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
7842 "{\n"
7843 "    printf(\"la_symbind32(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
7844 "            symname, sym-E<gt>st_value);\n"
7845 "    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
7846 "    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
7847 msgstr ""
7848 "uintptr_t\n"
7849 "la_symbind32(Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
7850 "        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
7851 "{\n"
7852 "    printf(\"la_symbind32(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
7853 "            symname, sym-E<gt>st_value);\n"
7854 "    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
7855 "    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
7856
7857 #. type: Plain text
7858 #: build/C/man7/rtld-audit.7:579 build/C/man7/rtld-audit.7:591
7859 #: build/C/man7/rtld-audit.7:601
7860 #, no-wrap
7861 msgid ""
7862 "    return sym-E<gt>st_value;\n"
7863 "}\n"
7864 msgstr ""
7865 "    return sym-E<gt>st_value;\n"
7866 "}\n"
7867
7868 #. type: Plain text
7869 #: build/C/man7/rtld-audit.7:588
7870 #, no-wrap
7871 msgid ""
7872 "uintptr_t\n"
7873 "la_symbind64(Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
7874 "        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
7875 "{\n"
7876 "    printf(\"la_symbind64(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
7877 "            symname, sym-E<gt>st_value);\n"
7878 "    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
7879 "    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
7880 msgstr ""
7881 "uintptr_t\n"
7882 "la_symbind64(Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
7883 "        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
7884 "{\n"
7885 "    printf(\"la_symbind64(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
7886 "            symname, sym-E<gt>st_value);\n"
7887 "    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
7888 "    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
7889
7890 #. type: Plain text
7891 #: build/C/man7/rtld-audit.7:598
7892 #, no-wrap
7893 msgid ""
7894 "Elf32_Addr\n"
7895 "la_i86_gnu_pltenter(Elf32_Sym *sym, unsigned int ndx,\n"
7896 "        uintptr_t *refcook, uintptr_t *defcook, La_i86_regs *regs,\n"
7897 "        unsigned int *flags, const char *symname, long int *framesizep)\n"
7898 "{\n"
7899 "    printf(\"la_i86_gnu_pltenter(): %s (%p)\\en\", symname, sym-E<gt>st_value);\n"
7900 msgstr ""
7901 "Elf32_Addr\n"
7902 "la_i86_gnu_pltenter(Elf32_Sym *sym, unsigned int ndx,\n"
7903 "        uintptr_t *refcook, uintptr_t *defcook, La_i86_regs *regs,\n"
7904 "        unsigned int *flags, const char *symname, long int *framesizep)\n"
7905 "{\n"
7906 "    printf(\"la_i86_gnu_pltenter(): %s (%p)\\en\", symname, sym-E<gt>st_value);\n"
7907
7908 #. type: Plain text
7909 #: build/C/man7/rtld-audit.7:607
7910 msgid "B<ldd>(1), B<dlopen>(3), B<ld.so>(8), B<ldconfig>(8)"
7911 msgstr "B<ldd>(1), B<dlopen>(3), B<ld.so>(8), B<ldconfig>(8)"
7912
7913 #. type: TH
7914 #: build/C/man8/sln.8:25
7915 #, no-wrap
7916 msgid "SLN"
7917 msgstr "SLN"
7918
7919 #. type: TH
7920 #: build/C/man8/sln.8:25
7921 #, no-wrap
7922 msgid "2013-02-10"
7923 msgstr "2013-02-10"
7924
7925 #. type: Plain text
7926 #: build/C/man8/sln.8:28
7927 msgid "sln - create symbolic links"
7928 msgstr "sln - シンボリックリンクを作成する"
7929
7930 #. type: Plain text
7931 #: build/C/man8/sln.8:30
7932 msgid "B<sln>I< source dest>"
7933 msgstr "B<sln>I< source dest>"
7934
7935 #. type: Plain text
7936 #: build/C/man8/sln.8:32
7937 msgid "B<sln>I< filelist>"
7938 msgstr "B<sln>I< filelist>"
7939
7940 #. type: Plain text
7941 #: build/C/man8/sln.8:42
7942 msgid ""
7943 "The B<sln> program creates symbolic links.  Unlike the B<ln>(1)  program, it "
7944 "is statically linked.  This means that if for some reason the dynamic linker "
7945 "is not working, B<sln> can be used to make symbolic links to dynamic "
7946 "libraries."
7947 msgstr ""
7948 "B<sln> プログラムはシンボリックリンクの作成を行う。 B<ln>(1) プログラムと異な"
7949 "り、 このプログラムは静的にリンクされている。 つまり、 何らかの理由で動的リン"
7950 "カが動作しない場合に、 B<sln> を使って、 動的ライブラリへのシンボリックリンク"
7951 "を作成することができる。"
7952
7953 #. type: Plain text
7954 #: build/C/man8/sln.8:48
7955 msgid ""
7956 "The command line has two forms.  In the first form, it creates I<dest> as a "
7957 "new symbolic link to I<source>."
7958 msgstr ""
7959 "コマンドラインには二つの形がある。 一つ目の形では、 I<source> へのシンボリッ"
7960 "クリンクとして I<dest> を作成する。"
7961
7962 #. type: Plain text
7963 #: build/C/man8/sln.8:56
7964 msgid ""
7965 "In the second form, I<filelist> is a list of space-separated pathname pairs, "
7966 "and the effect is as if B<sln> was executed once for each line of the file, "
7967 "with the two pathnames as the arguments."
7968 msgstr ""
7969 "二つ目の形式では、 I<filelist> はスペース区切りのパス名の組のリストで、 この"
7970 "ファイルの各行について、二つのパス名を引き数として 1 回ずつ B<sln> を実行した"
7971 "のと同じ結果となる。"
7972
7973 #. type: Plain text
7974 #: build/C/man8/sln.8:60
7975 msgid "The B<sln> program supports no command-line options."
7976 msgstr "B<sln> プログラムには、 コマンドラインオプションはない。"
7977
7978 #. type: Plain text
7979 #: build/C/man8/sln.8:64
7980 msgid "B<ln>(1), B<ldconfig>(8), B<ld.so>(8)"
7981 msgstr "B<ln>(1), B<ldconfig>(8), B<ld.so>(8)"