OSDN Git Service

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