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.
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2012-05-28 07:16+0900\n"
10 "PO-Revision-Date: 2012-05-28 12:38+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
19 #: build/C/man3/dl_iterate_phdr.3:24
21 msgid "DL_ITERATE_PHDR"
22 msgstr "DL_ITERATE_PHDR"
25 #: build/C/man3/dl_iterate_phdr.3:24
31 #: build/C/man3/dl_iterate_phdr.3:24 build/C/man3/end.3:25
32 #: build/C/man8/ld.so.8:2 build/C/man8/ldconfig.8:22
38 #: build/C/man3/dl_iterate_phdr.3:24 build/C/man3/dlopen.3:35
39 #: build/C/man5/elf.5:33 build/C/man3/end.3:25 build/C/man8/ld.so.8:2
40 #: build/C/man8/ldconfig.8:22 build/C/man1/ldd.1:10
41 #: build/C/man7/rtld-audit.7:26
43 msgid "Linux Programmer's Manual"
44 msgstr "Linux Programmer's Manual"
47 #: build/C/man3/dl_iterate_phdr.3:25 build/C/man3/dlopen.3:36
48 #: build/C/man5/elf.5:34 build/C/man3/end.3:26 build/C/man8/ld.so.8:3
49 #: build/C/man8/ldconfig.8:23 build/C/man1/ldd.1:11
50 #: build/C/man7/rtld-audit.7:27
56 #: build/C/man3/dl_iterate_phdr.3:27
57 msgid "dl_iterate_phdr - walk through list of shared objects"
58 msgstr "dl_iterate_phdr - 共有オブジェクトのリストを辿る"
61 #: build/C/man3/dl_iterate_phdr.3:27 build/C/man3/dlopen.3:39
62 #: build/C/man5/elf.5:36 build/C/man3/end.3:28 build/C/man8/ld.so.8:5
63 #: build/C/man8/ldconfig.8:25 build/C/man1/ldd.1:13
64 #: build/C/man7/rtld-audit.7:29
70 #: build/C/man3/dl_iterate_phdr.3:31
73 "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
74 "B<#include E<lt>link.hE<gt>>\n"
76 "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */\n"
77 "B<#include E<lt>link.hE<gt>>\n"
80 #: build/C/man3/dl_iterate_phdr.3:37
83 "B<int dl_iterate_phdr(>\n"
84 " B<int (*>callbackB<) (struct dl_phdr_info *>infoB<,>\n"
85 " B<size_t> sizeB<, void *>dataB<),>\n"
86 " B<void *>dataB<);>\n"
88 "B<int dl_iterate_phdr(>\n"
89 " B<int (*>callbackB<) (struct dl_phdr_info *>infoB<,>\n"
90 " B<size_t> sizeB<, void *>dataB<),>\n"
91 " B<void *>dataB<);>\n"
94 #: build/C/man3/dl_iterate_phdr.3:38 build/C/man3/dlopen.3:51
95 #: build/C/man5/elf.5:41 build/C/man3/end.3:34 build/C/man8/ld.so.8:15
96 #: build/C/man8/ldconfig.8:54 build/C/man1/ldd.1:15
97 #: build/C/man7/rtld-audit.7:33
103 #: build/C/man3/dl_iterate_phdr.3:43
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."
108 "B<dl_iterate_phdr>() 関数を使うと、アプリケーションは実行時に どの共有オブ"
109 "ジェクトをロードしたかを見つけることができる。"
112 #: build/C/man3/dl_iterate_phdr.3:53
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."
119 "B<dl_iterate_phdr>() 関数はアプリケーションの共有オブジェクトのリストを辿"
120 "り、 各オブジェクトに対して関数 I<callback> を 1 回ずつ呼び出す。 これは全て"
121 "の共有オブジェクトが処理されるか、 I<callback> が 0 以外の値を返すまで行われ"
125 #: build/C/man3/dl_iterate_phdr.3:70
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>()."
134 "各々の I<callback> 呼び出しは 3 つの引き数を受け取る: I<info> は共有オブジェ"
135 "クトの情報を保持する構造体へのポインタである。 I<size> は I<info> で指される"
136 "構造体のサイズである。 I<data> は呼び出し元プログラムから B<dl_iterate_phdr>"
137 "() の呼び出しの (同じく I<data> という名前の) 第 2 引き数として渡される値の"
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> 引き数は、以下のような型の構造体である。"
146 #: build/C/man3/dl_iterate_phdr.3:86
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"
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"
159 "struct dl_phdr_info {\n"
160 " ElfW(Addr) dlpi_addr; /* オブジェクトのベースアドレス */\n"
161 " const char *dlpi_name; /* (null 文字で終端された)\n"
163 " const ElfW(Phdr) *dlpi_phdr; /* このオブジェクトの\n"
166 " ElfW(Half) dlpi_phnum; /* I<dlpi_phdr> のアイテム数 */\n"
170 #: build/C/man3/dl_iterate_phdr.3:98
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.)"
178 "(I<ElfW>() マクロ定義は引き数をハードウェアアーキテクチャに適した ELF データ"
179 "型の名前に変換する。 たとえば、32 ビットプラットフォームでは ElfW(Addr) は"
180 "データ型名 Elf32_Addr を生成する。 これらの型についての更に詳細な情報は、ヘッ"
181 "ダファイル I<E<lt>elf.hE<gt>> と I<E<lt>link.hE<gt>> にある。"
184 #: build/C/man3/dl_iterate_phdr.3:109
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."
192 "I<dlpi_addr> フィールドは共有オブジェクトのベースアドレス (つまり、共有オブ"
193 "ジェクトの仮想メモリアドレスと、 ファイル (このファイルから共有オブジェクトが"
194 "ロードされる) における 共有オブジェクトのオフセットとの差分) を表す。 "
195 "I<dlpi_name> は null 文字で終端された文字列であり、 このパス名のファイルから"
199 #: build/C/man3/dl_iterate_phdr.3:124
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 "
208 "I<dlpi_phdr> と I<dlpi_phnum> フィールドの意味を理解するには、 ELF 共有オブ"
209 "ジェクトが幾つかのセグメントから構成されていることと、 各セグメントがそれに対"
210 "応するプログラムヘッダ (そのセグメントを説明する) を持っていることを知ってい"
211 "る必要がある。 I<dlpi_phdr> フィールドは、この共有オブジェクトのプログラム"
212 "ヘッダの配列へのポインタである。 I<dlpi_phnum> は、この配列のサイズを表す。"
215 #: build/C/man3/dl_iterate_phdr.3:126
216 msgid "These program headers are structures of the following form:"
217 msgstr "これらのプログラムヘッダは以下のような形式の構造体である:"
220 #: build/C/man3/dl_iterate_phdr.3:139
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"
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"
247 #: build/C/man3/dl_iterate_phdr.3:145
249 "Note that we can calculate the location of a particular program header, "
250 "I<x>, in virtual memory using the formula:"
252 "特定のプログラムヘッダ I<x> の仮想メモリにおける位置は、以下の式で計算できる"
256 #: build/C/man3/dl_iterate_phdr.3:148
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"
262 #: build/C/man3/dl_iterate_phdr.3:149
268 #: build/C/man3/dl_iterate_phdr.3:154
270 "The B<dl_iterate_phdr>() function returns whatever value was returned by "
271 "the last call to I<callback>."
273 "B<dl_iterate_phdr>() 関数は最後の I<callback> の呼び出しで返された値を返す。"
276 #: build/C/man3/dl_iterate_phdr.3:154
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."
285 "B<dl_iterate_phdr>() は glibc のバージョン 2.2.4 以降でサポートされている。"
288 #: build/C/man3/dl_iterate_phdr.3:157 build/C/man3/dlopen.3:381
289 #: build/C/man3/end.3:49 build/C/man7/rtld-audit.7:459
291 msgid "CONFORMING TO"
295 #: build/C/man3/dl_iterate_phdr.3:161
297 "The B<dl_iterate_phdr>() function is Linux-specific and should be avoided "
298 "in portable applications."
300 "B<dl_iterate_phdr>() 関数は Linux 固有であり、移植を考えたアプリケーションで"
304 #: build/C/man3/dl_iterate_phdr.3:161 build/C/man3/dlopen.3:446
305 #: build/C/man3/end.3:75 build/C/man7/rtld-audit.7:490
311 #: build/C/man3/dl_iterate_phdr.3:166
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."
317 "以下のプログラムは、共有オブジェクトがロードされた パス名の一覧を表示する。 "
318 "各共有オブジェクトについて、このプログラムは オブジェクトの ELF セグメントが"
319 "ロードされた 仮想アドレスの一覧を表示する。"
322 #: build/C/man3/dl_iterate_phdr.3:172
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"
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"
336 #: build/C/man3/dl_iterate_phdr.3:177
340 "callback(struct dl_phdr_info *info, size_t size, void *data)\n"
345 "callback(struct dl_phdr_info *info, size_t size, void *data)\n"
350 #: build/C/man3/dl_iterate_phdr.3:180
353 " printf(\"name=%s (%d segments)\\en\", info-E<gt>dlpi_name,\n"
354 " info-E<gt>dlpi_phnum);\n"
356 " printf(\"name=%s (%d segments)\\en\", info-E<gt>dlpi_name,\n"
357 " info-E<gt>dlpi_phnum);\n"
360 #: build/C/man3/dl_iterate_phdr.3:186
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"
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"
376 #: build/C/man3/dl_iterate_phdr.3:191
380 "main(int argc, char *argv[])\n"
382 " dl_iterate_phdr(callback, NULL);\n"
385 "main(int argc, char *argv[])\n"
387 " dl_iterate_phdr(callback, NULL);\n"
390 #: build/C/man3/dl_iterate_phdr.3:194 build/C/man3/end.3:106
393 " exit(EXIT_SUCCESS);\n"
396 " exit(EXIT_SUCCESS);\n"
400 #: build/C/man3/dl_iterate_phdr.3:195 build/C/man3/dlopen.3:507
401 #: build/C/man5/elf.5:1937 build/C/man3/end.3:107 build/C/man8/ld.so.8:409
402 #: build/C/man8/ldconfig.8:175 build/C/man1/ldd.1:75
403 #: build/C/man7/rtld-audit.7:600
409 #: build/C/man3/dl_iterate_phdr.3:205
411 "B<ldd>(1), B<objdump>(1), B<readelf>(1), B<dlopen>(3), B<elf>(5), B<ld.so>"
412 "(8), and the I<Executable and Linking Format Specification> available at "
413 "various locations online."
415 "B<ldd>(1), B<objdump>(1), B<readelf>(1), B<dlopen>(3), B<elf>(5), B<ld.so>"
416 "(8), オンラインのいろいろな場所で入手できる I<Executable and Linking Format "
420 #: build/C/man3/dl_iterate_phdr.3:205 build/C/man3/dlopen.3:515
421 #: build/C/man5/elf.5:1961 build/C/man3/end.3:112 build/C/man8/ld.so.8:419
422 #: build/C/man8/ldconfig.8:178 build/C/man1/ldd.1:78
423 #: build/C/man7/rtld-audit.7:605
429 #: build/C/man3/dl_iterate_phdr.3:212 build/C/man3/dlopen.3:522
430 #: build/C/man5/elf.5:1968 build/C/man3/end.3:119 build/C/man8/ld.so.8:426
431 #: build/C/man8/ldconfig.8:185 build/C/man1/ldd.1:85
432 #: build/C/man7/rtld-audit.7:612
434 "This page is part of release 3.41 of the Linux I<man-pages> project. A "
435 "description of the project, and information about reporting bugs, can be "
436 "found at http://www.kernel.org/doc/man-pages/."
438 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.41 の一部\n"
439 "である。プロジェクトの説明とバグ報告に関する情報は\n"
440 "http://www.kernel.org/doc/man-pages/ に書かれている。"
443 #: build/C/man3/dlopen.3:35
449 #: build/C/man3/dlopen.3:35
455 #: build/C/man3/dlopen.3:35 build/C/man5/elf.5:33 build/C/man7/rtld-audit.7:26
461 #: build/C/man3/dlopen.3:39
463 "dladdr, dlclose, dlerror, dlopen, dlsym, dlvsym - programming interface to "
464 "dynamic linking loader"
466 "dlclose, dlerror, dlopen, dlsym - 動的リンクを行うローダへの プログラミングイ"
470 #: build/C/man3/dlopen.3:41
471 msgid "B<#include E<lt>dlfcn.hE<gt>>"
472 msgstr "B<#include E<lt>dlfcn.hE<gt>>"
475 #: build/C/man3/dlopen.3:43
476 msgid "B<void *dlopen(const char *>I<filename>B<, int >I<flag>B<);>"
477 msgstr "B<void *dlopen(const char *>I<filename>B<, int >I<flag>B<);>"
480 #: build/C/man3/dlopen.3:45
481 msgid "B<char *dlerror(void);>"
482 msgstr "B<char *dlerror(void);>"
485 #: build/C/man3/dlopen.3:47
486 msgid "B<void *dlsym(void *>I<handle>B<, const char *>I<symbol>B<);>"
487 msgstr "B<void *dlsym(void *>I<handle>B<, const char *>I<symbol>B<);>"
490 #: build/C/man3/dlopen.3:49
491 msgid "B<int dlclose(void *>I<handle>B<);>"
492 msgstr "B<int dlclose(void *>I<handle>B<);>"
495 #: build/C/man3/dlopen.3:51
496 msgid "Link with I<-ldl>."
497 msgstr "I<-ldl> でリンクする。"
500 #: build/C/man3/dlopen.3:58
502 "The four functions B<dlopen>(), B<dlsym>(), B<dlclose>(), B<dlerror>() "
503 "implement the interface to the dynamic linking loader."
505 "B<dlopen>(), B<dlsym>(), B<dlclose>(), B<dlerror>() の 4つの関数は、動的リン"
506 "ク (dynamic linking) を行うローダへの インタフェースを実装したものである。"
509 #: build/C/man3/dlopen.3:58
515 #: build/C/man3/dlopen.3:71
517 "The function B<dlerror>() returns a human readable string describing the "
518 "most recent error that occurred from B<dlopen>(), B<dlsym>() or B<dlclose>"
519 "() since the last call to B<dlerror>(). It returns NULL if no errors have "
520 "occurred since initialization or since it was last called."
522 "関数 B<dlerror>() は、前回 B<dlerror>() が呼び出された後に、 B<dlopen>(), "
523 "B<dlsym>(), B<dlclose>() のいずれかで最後に発生したエラーについての説明メッ"
524 "セージを返す。 初期化後または前回呼び出された後で、エラーが発生していなけれ"
528 #: build/C/man3/dlopen.3:71
534 #: build/C/man3/dlopen.3:89
536 "The function B<dlopen>() loads the dynamic library file named by the null-"
537 "terminated string I<filename> and returns an opaque \"handle\" for the "
538 "dynamic library. If I<filename> is NULL, then the returned handle is for "
539 "the main program. If I<filename> contains a slash (\"/\"), then it is "
540 "interpreted as a (relative or absolute) pathname. Otherwise, the dynamic "
541 "linker searches for the library as follows (see B<ld.so>(8) for further "
544 "関数 B<dlopen>() は、NULL 終端された文字列 I<filename> で指定されたファイル"
545 "名の動的ライブラリ (dynamic library) をロードし、 その動的ライブラリへの内部"
546 "「ハンドル」を返す。 I<filename> が NULL の場合、メイン・プログラムへのハンド"
547 "ルが返される。 I<filename> がスラッシュ (\"/\") を含む場合、(相対か絶対かの)"
548 "パス名として解釈される。 それ以外の場合、動的リンカは以下の手順でライブラリを"
549 "検索する (詳細は B<ld.so>(8) を参照):"
552 #: build/C/man3/dlopen.3:89 build/C/man3/dlopen.3:93 build/C/man3/dlopen.3:100
553 #: build/C/man3/dlopen.3:104 build/C/man3/dlopen.3:111 build/C/man8/ld.so.8:45
554 #: build/C/man8/ld.so.8:50 build/C/man8/ld.so.8:55 build/C/man8/ld.so.8:59
555 #: build/C/man8/ld.so.8:69
561 #: build/C/man3/dlopen.3:93
563 "(ELF only) If the executable file for the calling program contains a "
564 "DT_RPATH tag, and does not contain a DT_RUNPATH tag, then the directories "
565 "listed in the DT_RPATH tag are searched."
567 "(ELF のみ) 呼び出し元プログラムの実行ファイルに DT_RPATH タグが含まれてお"
568 "り、 DT_RUNPATH タグが含まれていない場合、DT_RPATH タグに書かれている ディレ"
572 #: build/C/man3/dlopen.3:100
574 "If, at the time that the program was started, the environment variable "
575 "B<LD_LIBRARY_PATH> was defined to contain a colon-separated list of "
576 "directories, then these are searched. (As a security measure this variable "
577 "is ignored for set-user-ID and set-group-ID programs.)"
579 "プログラムの開始時に環境変数 B<LD_LIBRARY_PATH> にコロン区切りのディレクトリ"
580 "のリストが定義されていれば、 この環境変数に定義されたディレクトリが検索され"
581 "る (セキュリティ上の理由で、この変数は set-UID や set-GID された プログラムの"
585 #: build/C/man3/dlopen.3:104
587 "(ELF only) If the executable file for the calling program contains a "
588 "DT_RUNPATH tag, then the directories listed in that tag are searched."
590 "(ELF のみ) 呼び出し元プログラムの実行ファイルに DT_RUNPATH タグが含まれて い"
591 "る場合、そのタグに書かれているディレクトリ・リストを検索する。"
594 #: build/C/man3/dlopen.3:111
596 "The cache file I</etc/ld.so.cache> (maintained by B<ldconfig>(8)) is "
597 "checked to see whether it contains an entry for I<filename>."
599 "キャッシュファイル I</etc/ld.so.cache> の中に I<filename> のエントリが入って"
600 "いるかをチェックする (B</etc/ld.so.cache> は B<ldconfig>(8) によって管理され"
604 #: build/C/man3/dlopen.3:117
605 msgid "The directories I</lib> and I</usr/lib> are searched (in that order)."
606 msgstr "ディレクトリ I</lib> と I</usr/lib> をこの順番で検索する。"
609 #: build/C/man3/dlopen.3:123
611 "If the library has dependencies on other shared libraries, then these are "
612 "also automatically loaded by the dynamic linker using the same rules. (This "
613 "process may occur recursively, if those libraries in turn have dependencies, "
616 "そのライブラリが他の共有ライブラリに依存している場合は、 依存しているライブラ"
617 "リも動的リンカが同じ検索ルールに基づいて 自動的にロードする (それらのライブラ"
618 "リにさらに依存関係がある場合などは この処理は再帰的に行われる)。"
621 #: build/C/man3/dlopen.3:126
622 msgid "One of the following two values must be included in I<flag>:"
623 msgstr "I<flag> には以下の 2 つの値のいずれかを含めなければならない:"
626 #: build/C/man3/dlopen.3:126
629 msgstr "B<RTLD_LAZY>"
632 #: build/C/man3/dlopen.3:134
634 "Perform lazy binding. Only resolve symbols as the code that references them "
635 "is executed. If the symbol is never referenced, then it is never resolved. "
636 "(Lazy binding is only performed for function references; references to "
637 "variables are always immediately bound when the library is loaded.)"
639 "lazy binding (手抜きなシンボルの結び付け) が行う。 シンボルの解決はそのシンボ"
640 "ルを参照するコードが実行されるときにのみ 行われる。シンボルが一度も参照されな"
641 "かった場合には、そのシンボルは 解決されないままとなる。 (lazy binding は関数"
642 "参照についてのみ実施される; 変数への参照は常に ライブラリがロードされた時点で"
646 #: build/C/man3/dlopen.3:134
652 #: build/C/man3/dlopen.3:143
654 "If this value is specified, or the environment variable B<LD_BIND_NOW> is "
655 "set to a nonempty string, all undefined symbols in the library are resolved "
656 "before B<dlopen>() returns. If this cannot be done, an error is returned."
658 "この値が指定されるか、環境変数 B<LD_BIND_NOW> に空でない文字列が設定された場"
659 "合、 ライブラリ中の未定義のシンボルを全て解決してから B<dlopen>() は復帰す"
660 "る。解決できなかったときにはエラーが返される。"
663 #: build/C/man3/dlopen.3:146
664 msgid "Zero or more of the following values may also be ORed in I<flag>:"
666 "以下の値のうち 0 個以上を論理和 (OR) の形で I<flag> に追加することもできる:"
669 #: build/C/man3/dlopen.3:146
671 msgid "B<RTLD_GLOBAL>"
672 msgstr "B<RTLD_GLOBAL>"
675 #: build/C/man3/dlopen.3:150
677 "The symbols defined by this library will be made available for symbol "
678 "resolution of subsequently loaded libraries."
680 "このライブラリで定義されているシンボルが、これより後でロードされる ライブラリ"
681 "のシンボル解決で利用できるようになる。"
684 #: build/C/man3/dlopen.3:150
686 msgid "B<RTLD_LOCAL>"
687 msgstr "B<RTLD_LOCAL>"
690 #: build/C/man3/dlopen.3:157
692 "This is the converse of B<RTLD_GLOBAL>, and the default if neither flag is "
693 "specified. Symbols defined in this library are not made available to "
694 "resolve references in subsequently loaded libraries."
696 "このフラグは B<RTLD_GLOBAL> の反対の意味であり、どちらのフラグも指定されな"
697 "かった場合は こちらがデフォルトとなる。 このライブラリで定義されているシンボ"
698 "ルは、これより後でロードされる ライブラリでのシンボル参照で利用できない。"
701 #: build/C/man3/dlopen.3:157
703 msgid "B<RTLD_NODELETE> (since glibc 2.2)"
704 msgstr "B<RTLD_NODELETE> (glibc 2.2 以降)"
706 #. (But it is present on Solaris.)
708 #: build/C/man3/dlopen.3:167
710 "Do not unload the library during B<dlclose>(). Consequently, the library's "
711 "static variables are not reinitialized if the library is reloaded with "
712 "B<dlopen>() at a later time. This flag is not specified in POSIX.1-2001."
714 "B<dlclose>() 中にそのライブラリをアンロードしない。 そのため、同じライブラリ"
715 "をこれ以降に B<dlopen>() で再度ロードした場合に、ライブラリ内の静的変数は再"
716 "初期化されない。 このフラグは POSIX.1-2001 では規定されていない。"
719 #: build/C/man3/dlopen.3:167
721 msgid "B<RTLD_NOLOAD> (since glibc 2.2)"
722 msgstr "B<RTLD_NOLOAD> (glibc 2.2 以降)"
724 #. (But it is present on Solaris.)
726 #: build/C/man3/dlopen.3:182
728 "Don't load the library. This can be used to test if the library is already "
729 "resident (B<dlopen>() returns NULL if it is not, or the library's handle if "
730 "it is resident). This flag can also be used to promote the flags on a "
731 "library that is already loaded. For example, a library that was previously "
732 "loaded with B<RTLD_LOCAL> can be reopened with B<RTLD_NOLOAD\\ |\\ "
733 "RTLD_GLOBAL>. This flag is not specified in POSIX.1-2001."
735 "そのライブラリをロードしない。 このフラグはそのライブラリがすでに組み込まれて"
736 "いるかを検査するのに 利用できる (B<dlopen>() は、ライブラリが組み込まれてい"
737 "なければ NULL を返し、 すでに組み込まれていればそのライブラリのハンドルを返"
738 "す)。 また、すでにロードされているライブラリのフラグを昇格させるのにも 利用で"
739 "きる。例えば、過去に B<RTLD_LOCAL> でロードしたライブラリを B<RTLD_NOLOAD\\ |"
740 "\\ RTLD_GLOBAL> で再オープンすることができる。 このフラグは POSIX.1-2001 では"
744 #: build/C/man3/dlopen.3:182
746 msgid "B<RTLD_DEEPBIND> (since glibc 2.3.4)"
747 msgstr "B<RTLD_DEEPBIND> (glibc 2.3.4 以降)"
749 #. Inimitably described by UD in
750 #. http://sources.redhat.com/ml/libc-hacker/2004-09/msg00083.html.
752 #: build/C/man3/dlopen.3:192
754 "Place the lookup scope of the symbols in this library ahead of the global "
755 "scope. This means that a self-contained library will use its own symbols in "
756 "preference to global symbols with the same name contained in libraries that "
757 "have already been loaded. This flag is not specified in POSIX.1-2001."
759 "このライブラリ内のシンボルの参照領域をグローバル領域よりも前に配置する。 つま"
760 "り、内蔵型のライブラリでは、すでにロードされたライブラリに含まれる 同じ名前の"
761 "グローバルなシンボルよりも自ライブラリ内のシンボルが優先して 使われる。 この"
762 "フラグは POSIX.1-2001 では規定されていない。"
765 #: build/C/man3/dlopen.3:204
767 "If I<filename> is a NULL pointer, then the returned handle is for the main "
768 "program. When given to B<dlsym>(), this handle causes a search for a symbol "
769 "in the main program, followed by all shared libraries loaded at program "
770 "startup, and then all shared libraries loaded by B<dlopen>() with the flag "
773 "I<filename> が NULL ポインタである場合は、 返されるハンドルはメイン・プログラ"
774 "ムのものになる。 このハンドルが B<dlsym>() に渡されると、シンボルの検索は、"
775 "メイン・プログラム内、 プログラムの起動時にロードされる全ての共有ライブラ"
776 "リ、 B<dlopen>() によって B<RTLD_GLOBAL> フラグ付きでロードされた全ての共有"
780 #: build/C/man3/dlopen.3:214
782 "External references in the library are resolved using the libraries in that "
783 "library's dependency list and any other libraries previously opened with the "
784 "B<RTLD_GLOBAL> flag. If the executable was linked with the flag \"-rdynamic"
785 "\" (or, synonymously, \"--export-dynamic\"), then the global symbols in the "
786 "executable will also be used to resolve references in a dynamically loaded "
789 "オープンされたライブラリ中での外部参照は、 そのライブラリの依存リストにあるラ"
790 "イブラリか、 B<RTLD_GLOBAL> フラグ付きで既にオープンされているライブラリを"
791 "使って解決される。 実行ファイルが \"-rdynamic\" フラグ (\"--export-dynamic\" "
792 "も同義) 付きでリンクされている場合は、実行ファイル中のグローバルシンボル"
793 "も、 動的にロードされるライブラリ内の参照解決に用いられる。"
796 #: build/C/man3/dlopen.3:232
798 "If the same library is loaded again with B<dlopen>(), the same file handle "
799 "is returned. The dl library maintains reference counts for library handles, "
800 "so a dynamic library is not deallocated until B<dlclose>() has been called "
801 "on it as many times as B<dlopen>() has succeeded on it. The B<_init>() "
802 "routine, if present, is only called once. But a subsequent call with "
803 "B<RTLD_NOW> may force symbol resolution for a library earlier loaded with "
806 "同じライブラリが B<dlopen>() によって再度ロードされた場合には、同じファイル"
807 "ハンドルが返される。 dl ライブラリはライブラリハンドルのリンク数を管理してい"
808 "る。 したがって動的ライブラリは B<dlclose>() が B<dlopen>() と同じ回数だけ"
809 "呼び出されない限りアンロードされない。 B<_init>() ルーチンは一度だけ呼び出さ"
810 "れる (B<_init>() が存在する場合のみ)。 B<RTLD_NOW> が指定されて B<dlopen>"
811 "() が呼び出された場合、 B<RTLD_LAZY> で以前にロードされたライブラリのシンボ"
815 #: build/C/man3/dlopen.3:236
816 msgid "If B<dlopen>() fails for any reason, it returns NULL."
817 msgstr "B<dlopen>() は、何らかの理由で失敗すると NULL を返す。"
820 #: build/C/man3/dlopen.3:236
826 #: build/C/man3/dlopen.3:265
828 "The function B<dlsym>() takes a \"handle\" of a dynamic library returned by "
829 "B<dlopen>() and the null-terminated symbol name, returning the address "
830 "where that symbol is loaded into memory. If the symbol is not found, in the "
831 "specified library or any of the libraries that were automatically loaded by "
832 "B<dlopen>() when that library was loaded, B<dlsym>() returns NULL. (The "
833 "search performed by B<dlsym>() is breadth first through the dependency tree "
834 "of these libraries.) Since the value of the symbol could actually be NULL "
835 "(so that a NULL return from B<dlsym>() need not indicate an error), the "
836 "correct way to test for an error is to call B<dlerror>() to clear any old "
837 "error conditions, then call B<dlsym>(), and then call B<dlerror>() again, "
838 "saving its return value into a variable, and check whether this saved value "
841 "関数 B<dlsym>() は、 B<dlopen>() が返した動的ライブラリの「ハンドル」と、 "
842 "NULL 終端されたシンボル名の文字列を引き数に取り、 そのシンボルがロードされた"
843 "メモリのアドレスを返す。 シンボルが、指定されたライブラリと、指定されたライブ"
844 "ラリがロードされる際に B<dlopen>() が自動的にロードしてライブラリのいずれに"
845 "も見つからない場合には、 B<dlsym>() は NULL を返す (B<dlsym>() による検索"
846 "は、これらのライブラリの依存関係のツリーを先頭から 辿って行われる)。 実際には"
847 "シンボルの値自体が NULL になることもある (そのため、 B<dlsym>() の返り値が "
848 "NULL であったとしても必ずしもエラーという訳ではない)。 エラーかどうかを確認す"
849 "る正しい方法は以下の通りである: B<dlerror>() を呼び出して以前のエラー状態を"
850 "クリアしてから、 B<dlsym>() を呼び出す。その後でもう一度 B<dlerror>() を呼"
851 "び出して、 B<dlerror>() の返り値を変数に保存し、保存した値が NULL であるか判"
855 #: build/C/man3/dlopen.3:277
857 "There are two special pseudo-handles, B<RTLD_DEFAULT> and B<RTLD_NEXT>. The "
858 "former will find the first occurrence of the desired symbol using the "
859 "default library search order. The latter will find the next occurrence of a "
860 "function in the search order after the current library. This allows one to "
861 "provide a wrapper around a function in another shared library."
863 "B<RTLD_DEFAULT> と B<RTLD_NEXT> という二つの特別な擬似ハンドルがある。 "
864 "B<RTLD_DEFAULT> は、デフォルトのライブラリ検索順序にしたがって、 検索対象のシ"
865 "ンボルが最初に現れるところを探す。 B<RTLD_NEXT> は、ライブラリ検索順序の中で"
866 "現在のライブラリ以降で最初に 関数が現れるところを探す。この機能を使うことで、"
867 "別の共有ライブラリの 関数へのラッパーを提供することができる。"
870 #: build/C/man3/dlopen.3:277
876 #: build/C/man3/dlopen.3:284
878 "The function B<dlclose>() decrements the reference count on the dynamic "
879 "library handle I<handle>. If the reference count drops to zero and no other "
880 "loaded libraries use symbols in it, then the dynamic library is unloaded."
882 "関数 B<dlclose>() は動的ライブラリのハンドル I<handle> の参照カウントを 1 減"
883 "らす。参照カウントが 0 になり、ロードされている 他のライブラリからそのライブ"
884 "ラリ内のシンボルが使われていなければ、 その動的ライブラリをアンロードする。"
887 #: build/C/man3/dlopen.3:288
888 msgid "The function B<dlclose>() returns 0 on success, and nonzero on error."
890 "関数 B<dlclose>() は、成功した場合は 0 を返し、エラーの場合 0 以外を返す。"
893 #: build/C/man3/dlopen.3:288
895 msgid "The obsolete symbols _init() and _fini()"
896 msgstr "廃止されたシンボル _init() と _fini()"
899 #: build/C/man3/dlopen.3:306
901 "The linker recognizes special symbols B<_init> and B<_fini>. If a dynamic "
902 "library exports a routine named B<_init>(), then that code is executed after "
903 "the loading, before B<dlopen>() returns. If the dynamic library exports a "
904 "routine named B<_fini>(), then that routine is called just before the "
905 "library is unloaded. In case you need to avoid linking against the system "
906 "startup files, this can be done by using the B<gcc>(1) I<-nostartfiles> "
907 "command-line option."
909 "リンカは B<_init> と B<_fini> を特別なシンボルと解釈する。 ある動的ライブラリ"
910 "で B<_init>() という名前のルーチンがエクスポートされていれば、 そのコード"
911 "は、ライブラリのロード後、かつ B<dlopen>() が復帰する前に実行される。 その動"
912 "的ライブラリで B<_fini>() という名前のルーチンがエクスポートされていれば、 "
913 "ライブラリがアンロードされる直前にそのルーチンが呼び出される。 システムの起動"
914 "ファイルに対するリンクを避ける必要がある場合、 B<gcc>(1) のコマンドラインに "
915 "I<-nostartfiles> オプションを指定すればよい。"
917 #. void _init(void) __attribute__((constructor));
918 #. void _fini(void) __attribute__((destructor));
920 #: build/C/man3/dlopen.3:317
922 "Using these routines, or the gcc B<-nostartfiles> or B<-nostdlib> options, "
923 "is not recommended. Their use may result in undesired behavior, since the "
924 "constructor/destructor routines will not be executed (unless special "
925 "measures are taken)."
927 "このルーチンや、gcc のオプション B<-nostartfiles> や B<-nostdlib> は使用しな"
928 "いことを推奨する。 これらを使うと、望ましくない動作をすることがある。 なぜな"
929 "ら、(特別な措置が行われない限り) これらの constructor/destructor ルーチンは実"
933 #: build/C/man3/dlopen.3:329
935 "Instead, libraries should export routines using the B<__attribute__"
936 "((constructor))> and B<__attribute__((destructor))> function attributes. "
937 "See the gcc info pages for information on these. Constructor routines are "
938 "executed before B<dlopen>() returns, and destructor routines are executed "
939 "before B<dlclose>() returns."
941 "代わりに、ライブラリは B<__attribute__((constructor))> や B<__attribute__"
942 "((destructor))> の関数属性を使って必要なルーチンをエクスポートするのがよい。 "
943 "これらについては gcc の info ページを参照のこと。 constructor ルーチンは "
944 "B<dlopen>() が復帰する前に実行され、 destructor ルーチンは B<dlclose>() が"
948 #: build/C/man3/dlopen.3:329
950 msgid "Glibc extensions: dladdr() and dlvsym()"
951 msgstr "GNU での拡張: dladdr() と dlvsym()"
954 #: build/C/man3/dlopen.3:331
955 msgid "Glibc adds two functions not described by POSIX, with prototypes"
957 "glibc では POSIX には記載されていない関数が 2つ追加されている。 プロトタイプ"
961 #: build/C/man3/dlopen.3:335
964 "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
965 "B<#include E<lt>dlfcn.hE<gt>>\n"
967 "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */\n"
968 "B<#include E<lt>dlfcn.hE<gt>>\n"
971 #: build/C/man3/dlopen.3:337
973 msgid "B<int dladdr(void *>I<addr>B<, Dl_info *>I<info>B<);>\n"
974 msgstr "B<int dladdr(void *>I<addr>B<, Dl_info *>I<info>B<);>\n"
977 #: build/C/man3/dlopen.3:339
979 msgid "B<void *dlvsym(void *>I<handle>B<, char *>I<symbol>B<, char *>I<version>B<);>\n"
980 msgstr "B<void *dlvsym(void *>I<handle>B<, char *>I<symbol>B<, char *>I<version>B<);>\n"
983 #: build/C/man3/dlopen.3:348
985 "The function B<dladdr>() takes a function pointer and tries to resolve name "
986 "and file where it is located. Information is stored in the I<Dl_info> "
989 "関数 B<dladdr>() は、関数のポインタを引き数にとり、関数の名前と関数が定義さ"
990 "れている ファイルの解決を試みる。情報は I<Dl_info> 構造体に格納される。"
993 #: build/C/man3/dlopen.3:361
997 " const char *dli_fname; /* Pathname of shared object that\n"
998 " contains address */\n"
999 " void *dli_fbase; /* Address at which shared object\n"
1001 " const char *dli_sname; /* Name of nearest symbol with address\n"
1002 " lower than I<addr> */\n"
1003 " void *dli_saddr; /* Exact address of symbol named\n"
1004 " in I<dli_sname> */\n"
1007 "typedef struct {\n"
1008 " const char *dli_fname; /* Pathname of shared object that\n"
1009 " contains address */\n"
1010 " void *dli_fbase; /* Address at which shared object\n"
1012 " const char *dli_sname; /* Name of nearest symbol with address\n"
1013 " lower than I<addr> */\n"
1014 " void *dli_saddr; /* Exact address of symbol named\n"
1015 " in I<dli_sname> */\n"
1019 #: build/C/man3/dlopen.3:371
1021 "If no symbol matching I<addr> could be found, then I<dli_sname> and "
1022 "I<dli_saddr> are set to NULL."
1024 "I<addr> にマッチするシンボルが見つからなかった場合、 I<dli_sname> と "
1025 "I<dli_saddr> は NULL にセットされる。"
1028 #: build/C/man3/dlopen.3:374
1029 msgid "B<dladdr>() returns 0 on error, and nonzero on success."
1030 msgstr "B<dladdr>() は、エラー時には 0 を返し、成功した場合は 0 以外を返す。"
1033 #: build/C/man3/dlopen.3:381
1035 "The function B<dlvsym>(), provided by glibc since version 2.1, does the same "
1036 "as B<dlsym>() but takes a version string as an additional argument."
1038 "関数 B<dlvsym>() は B<dlsym>() と同じ動作をするが、バージョンの文字列を渡す"
1039 "引き数が 追加されている点が異なる (B<dlvsym>() はバージョン 2.1 以降の "
1043 #: build/C/man3/dlopen.3:388
1045 "POSIX.1-2001 describes B<dlclose>(), B<dlerror>(), B<dlopen>(), and B<dlsym>"
1048 "POSIX.1-2003 には B<dlclose>(), B<dlerror>(), B<dlopen>(), B<dlsym>(). の記"
1052 #: build/C/man3/dlopen.3:388 build/C/man5/elf.5:1910 build/C/man3/end.3:52
1053 #: build/C/man8/ld.so.8:403 build/C/man1/ldd.1:42
1054 #: build/C/man7/rtld-audit.7:465
1060 #. The string returned by
1062 #. should not be modified.
1063 #. Some systems give the prototype as
1066 #. .B "const char *dlerror(void);"
1069 #: build/C/man3/dlopen.3:407
1071 "The symbols B<RTLD_DEFAULT> and B<RTLD_NEXT> are defined by I<E<lt>dlfcn."
1072 "hE<gt>> only when B<_GNU_SOURCE> was defined before including it."
1074 "シンボル B<RTLD_DEFAULT> と B<RTLD_NEXT> は I<E<lt>dlfcn.hE<gt>> で定義されて"
1075 "おり、 I<E<lt>dlfcn.hE<gt>> のインクルード前に B<_GNU_SOURCE> が定義されてい"
1079 #: build/C/man3/dlopen.3:412
1081 "Since glibc 2.2.3, B<atexit>(3) can be used to register an exit handler "
1082 "that is automatically called when a library is unloaded."
1084 "glibc 2.2.3 以降では、 B<atexit>(3) を使って、ライブラリがアンロードされる際"
1085 "に自動的に呼び出される 終了ハンドラ (exit handler) を登録することができる。"
1088 #: build/C/man3/dlopen.3:412
1094 #: build/C/man3/dlopen.3:418
1096 "The dlopen interface standard comes from SunOS. That system also has "
1097 "B<dladdr>(), but not B<dlvsym>()."
1099 "dlopen インターフェースの標準は SunOS をもとにしている。 SunOS には B<dladdr>"
1100 "() もあったが、 B<dlvsym>() はなかった。"
1103 #: build/C/man3/dlopen.3:418 build/C/man1/ldd.1:59
1104 #: build/C/man7/rtld-audit.7:590
1110 #: build/C/man3/dlopen.3:430
1112 "Sometimes, the function pointers you pass to B<dladdr>() may surprise you. "
1113 "On some architectures (notably i386 and x86_64), I<dli_fname> and "
1114 "I<dli_fbase> may end up pointing back at the object from which you called "
1115 "B<dladdr>(), even if the function used as an argument should come from a "
1116 "dynamically linked library."
1118 "時として、 B<dladdr>() に渡した関数ポインタは驚くような値になることがある。 "
1119 "いくつかのアーキテクチャ (特に i386 と x86_64) では、 引き数として使用した関"
1120 "数が動的リンクライブラリで定義されるもので あったとしても、 I<dli_fname> と "
1121 "I<dli_fbase> が B<dladdr>() を呼び出したオブジェクトを参照した状態で終わって"
1125 #: build/C/man3/dlopen.3:446
1127 "The problem is that the function pointer will still be resolved at compile "
1128 "time, but merely point to the I<plt> (Procedure Linkage Table) section of "
1129 "the original object (which dispatches the call after asking the dynamic "
1130 "linker to resolve the symbol). To work around this, you can try to compile "
1131 "the code to be position-independent: then, the compiler cannot prepare the "
1132 "pointer at compile time anymore and today's B<gcc>(1) will generate code "
1133 "that just loads the final symbol address from the I<got> (Global Offset "
1134 "Table) at run time before passing it to B<dladdr>()."
1136 "問題は、関数ポインタの解決は今なおコンパイル時に行われるが、 そのポインタは元"
1137 "のオブジェクトの I<plt> (Procedure Linkage Table) セクションを指しているだけ"
1138 "だという点にある (オブジェクト自体は、ダイナミックリンカによってシンボルの解"
1139 "決が行われた後に、 関数の呼び出しを行う)。 これに対処する方法としては、 コー"
1140 "ドを position-independent でコンパイルするという方法がある。 そうすると、コン"
1141 "パイラはコンパイル時にポインタを用意することができず、 今日の B<gcc>(1) で"
1142 "は、実行時に B<dladdr>() に関数ポインタを渡す前に、 I<got> (Global Offset "
1143 "Table) から最終的なシンボルのアドレスをロードするだけの コードが生成される。"
1146 #: build/C/man3/dlopen.3:448
1147 msgid "Load the math library, and print the cosine of 2.0:"
1148 msgstr "math ライブラリをロードし、2.0 の余弦を表示する"
1151 #: build/C/man3/dlopen.3:453
1154 "#include E<lt>stdio.hE<gt>\n"
1155 "#include E<lt>stdlib.hE<gt>\n"
1156 "#include E<lt>dlfcn.hE<gt>\n"
1158 "#include E<lt>stdio.hE<gt>\n"
1159 "#include E<lt>stdlib.hE<gt>\n"
1160 "#include E<lt>dlfcn.hE<gt>\n"
1163 #: build/C/man3/dlopen.3:460
1167 "main(int argc, char **argv)\n"
1170 " double (*cosine)(double);\n"
1174 "main(int argc, char **argv)\n"
1177 " double (*cosine)(double);\n"
1181 #: build/C/man3/dlopen.3:466
1184 " handle = dlopen(\"libm.so\", RTLD_LAZY);\n"
1186 " fprintf(stderr, \"%s\\en\", dlerror());\n"
1187 " exit(EXIT_FAILURE);\n"
1190 " handle = dlopen(\"libm.so\", RTLD_LAZY);\n"
1192 " fprintf(stderr, \"%s\\en\", dlerror());\n"
1193 " exit(EXIT_FAILURE);\n"
1197 #: build/C/man3/dlopen.3:468
1199 msgid " dlerror(); /* Clear any existing error */\n"
1200 msgstr " dlerror(); /* Clear any existing error */\n"
1203 #: build/C/man3/dlopen.3:475
1206 " /* Writing: cosine = (double (*)(double)) dlsym(handle, \"cos\");\n"
1207 " would seem more natural, but the C99 standard leaves\n"
1208 " casting from \"void *\" to a function pointer undefined.\n"
1209 " The assignment used below is the POSIX.1-2003 (Technical\n"
1210 " Corrigendum 1) workaround; see the Rationale for the\n"
1211 " POSIX specification of dlsym(). */\n"
1213 " /* Writing: cosine = (double (*)(double)) dlsym(handle, \"cos\");\n"
1214 " would seem more natural, but the C99 standard leaves\n"
1215 " casting from \"void *\" to a function pointer undefined.\n"
1216 " The assignment used below is the POSIX.1-2003 (Technical\n"
1217 " Corrigendum 1) workaround; see the Rationale for the\n"
1218 " POSIX specification of dlsym(). */\n"
1220 #. But in fact "gcc -O2 -Wall" will complain about the preceding cast.
1222 #: build/C/man3/dlopen.3:478
1224 msgid " *(void **) (&cosine) = dlsym(handle, \"cos\");\n"
1225 msgstr " *(void **) (&cosine) = dlsym(handle, \"cos\");\n"
1228 #: build/C/man3/dlopen.3:483
1231 " if ((error = dlerror()) != NULL) {\n"
1232 " fprintf(stderr, \"%s\\en\", error);\n"
1233 " exit(EXIT_FAILURE);\n"
1236 " if ((error = dlerror()) != NULL) {\n"
1237 " fprintf(stderr, \"%s\\en\", error);\n"
1238 " exit(EXIT_FAILURE);\n"
1242 #: build/C/man3/dlopen.3:488
1245 " printf(\"%f\\en\", (*cosine)(2.0));\n"
1246 " dlclose(handle);\n"
1247 " exit(EXIT_SUCCESS);\n"
1250 " printf(\"%f\\en\", (*cosine)(2.0));\n"
1251 " dlclose(handle);\n"
1252 " exit(EXIT_SUCCESS);\n"
1256 #: build/C/man3/dlopen.3:492
1258 "If this program were in a file named \"foo.c\", you would build the program "
1259 "with the following command:"
1261 "このプログラムを \"foo.c\" に書いたとすると、以下のコマンドでプログラムを ビ"
1265 #: build/C/man3/dlopen.3:495
1267 msgid " gcc -rdynamic -o foo foo.c -ldl\n"
1268 msgstr " gcc -rdynamic -o foo foo.c -ldl\n"
1271 #: build/C/man3/dlopen.3:503
1273 "Libraries exporting B<_init>() and B<_fini>() will want to be compiled as "
1274 "follows, using I<bar.c> as the example name:"
1276 "B<_init>() と B<_fini>() をエクスポートするライブラリの場合は 以下のように"
1277 "してコンパイルする必要がある。 例として I<bar.c> をコンパイルする場合:"
1280 #: build/C/man3/dlopen.3:506
1282 msgid " gcc -shared -nostartfiles -o bar bar.c\n"
1283 msgstr " gcc -shared -nostartfiles -o bar bar.c\n"
1286 #: build/C/man3/dlopen.3:515
1288 "B<ld>(1), B<ldd>(1), B<dl_iterate_phdr>(3), B<rtld-audit>(7), B<ld.so>(8), "
1289 "B<ldconfig>(8), ld.so info pages, gcc info pages, ld info pages"
1291 "B<ld>(1), B<ldd>(1), B<dl_iterate_phdr>(3), B<rtld-audit>(7), B<ld.so>(8), "
1292 "B<ldconfig>(8), ld.so info pages, gcc info pages, ld info pages"
1295 #: build/C/man5/elf.5:33
1301 #: build/C/man5/elf.5:33
1307 #: build/C/man5/elf.5:36
1308 msgid "elf - format of Executable and Linking Format (ELF) files"
1309 msgstr "elf - 実行可能リンクフォーマット (ELF) ファイルのフォーマット"
1311 #. .B #include <elf_abi.h>
1313 #: build/C/man5/elf.5:40
1315 msgid "B<#include E<lt>elf.hE<gt>>\n"
1316 msgstr "B<#include E<lt>elf.hE<gt>>\n"
1319 #: build/C/man5/elf.5:48
1321 "The header file I<E<lt>elf.hE<gt>> defines the format of ELF executable "
1322 "binary files. Amongst these files are normal executable files, relocatable "
1323 "object files, core files and shared libraries."
1325 "ヘッダファイル I<E<lt>elf.hE<gt>> は ELF 実行可能バイナリファイルのフォーマッ"
1326 "トを定義する。 これらのファイルとしては、通常の実行可能ファイル・ 再配置可能"
1327 "オブジェクトファイル・コアファイル・共有ライブラリがある。"
1330 #: build/C/man5/elf.5:57
1332 "An executable file using the ELF file format consists of an ELF header, "
1333 "followed by a program header table or a section header table, or both. The "
1334 "ELF header is always at offset zero of the file. The program header table "
1335 "and the section header table's offset in the file are defined in the ELF "
1336 "header. The two tables describe the rest of the particularities of the file."
1338 "ELF ファイルフォーマットを使う実行可能ファイルは、 ELF ヘッダの後にプログラム"
1339 "ヘッダテーブルまたは セクションヘッダテーブル (またはその両方) が続く構成であ"
1340 "る。 ELF ヘッダは常にファイルのオフセット 0 にある。 プログラムヘッダテーブル"
1341 "とセクションヘッダテーブルの ファイル内でのオフセットは、ELF ヘッダに定義され"
1342 "ている。 この 2 つのテーブルはファイルの残りの部分の詳細を記述する。"
1344 #. Applications which wish to process ELF binary files for their native
1345 #. architecture only should include
1347 #. in their source code.
1348 #. These applications should need to refer to
1349 #. all the types and structures by their generic names
1351 #. and to the macros by
1353 #. Applications written this way can be compiled on any architecture,
1354 #. regardless of whether the host is 32-bit or 64-bit.
1356 #. Should an application need to process ELF files of an unknown
1357 #. architecture, then the application needs to explicitly use either
1361 #. type and structure names.
1362 #. Likewise, the macros need to be identified by
1368 #: build/C/man5/elf.5:84
1370 "This header file describes the above mentioned headers as C structures and "
1371 "also includes structures for dynamic sections, relocation sections and "
1374 "このヘッダファイルは上記のヘッダを C 言語の構造体で記述し、 また動的セクショ"
1375 "ン・再配置可能セクション・シンボルテーブルの構造体も 含んでいる。"
1378 #: build/C/man5/elf.5:96
1380 "The following types are used for N-bit architectures (N=32,64, I<ElfN> "
1381 "stands for I<Elf32> or I<Elf64>, I<uintN_t> stands for I<uint32_t> or "
1384 "以下の型は N ビットアーキテクチャで使われる (N=32,64 であり I<ElfN> は "
1385 "I<Elf32> または I<Elf64> を表し、 I<uintN_t> は I<uint32_t> または "
1388 #. Elf32_Size Unsigned object size
1390 #: build/C/man5/elf.5:110
1393 "ElfN_Addr Unsigned program address, uintN_t\n"
1394 "ElfN_Off Unsigned file offset, uintN_t\n"
1395 "ElfN_Section Unsigned section index, uint16_t\n"
1396 "ElfN_Versym Unsigned version symbol information, uint16_t\n"
1397 "Elf_Byte unsigned char\n"
1398 "ElfN_Half uint16_t\n"
1399 "ElfN_Sword int32_t\n"
1400 "ElfN_Word uint32_t\n"
1401 "ElfN_Sxword int64_t\n"
1402 "ElfN_Xword uint64_t\n"
1404 "ElfN_Addr 符号なしのプログラムアドレス, uintN_t\n"
1405 "ElfN_Off 符号なしのファイルオフセット, uintN_t\n"
1406 "ElfN_Section 符号なしのセクションインデックス, uint16_t\n"
1407 "ElfN_Versym 符号なしのバージョンシンボル情報, uint16_t\n"
1408 "Elf_Byte unsigned char\n"
1409 "ElfN_Half uint16_t\n"
1410 "ElfN_Sword int32_t\n"
1411 "ElfN_Word uint32_t\n"
1412 "ElfN_Sxword int64_t\n"
1413 "ElfN_Xword uint64_t\n"
1416 #: build/C/man5/elf.5:125
1418 "(Note: The *BSD terminology is a bit different. There I<Elf64_Half> is "
1419 "twice as large as I<Elf32_Half>, and I<Elf64Quarter> is used for "
1420 "I<uint16_t>. In order to avoid confusion these types are replaced by "
1421 "explicit ones in the below.)"
1423 "(注意: *BSD での用語は少し異なる。 I<Elf64_Half> は I<Elf32_Half> の 2 倍であ"
1424 "り、 I<Elf64Quarter> が I<uint16_t> に用いられる。 混乱を避けるため、以下で"
1425 "は、これらの型はサイズが自明な型に置き換えてある。)"
1428 #: build/C/man5/elf.5:132
1430 "All data structures that the file format defines follow the \"natural\" size "
1431 "and alignment guidelines for the relevant class. If necessary, data "
1432 "structures contain explicit padding to ensure 4-byte alignment for 4-byte "
1433 "objects, to force structure sizes to a multiple of 4, etc."
1435 "このファイルフォーマットが定義する全てのデータ構造体は、 関連するクラスの "
1436 "\"自然な\" サイズと配置の指針に従う。 必要な場合、データ構造体では明示的なパ"
1437 "ディング (padding, 詰め込み) が行なわれる。これは 4 バイトオブジェクトに対す"
1438 "る 4 バイト配置を保証するためや、 構造体のサイズを 4 の倍数にするためなどであ"
1442 #: build/C/man5/elf.5:137
1443 msgid "The ELF header is described by the type I<Elf32_Ehdr> or I<Elf64_Ehdr>:"
1444 msgstr "ELF ヘッダは型 I<Elf32_Ehdr> または I<Elf64_Ehdr> で記述される:"
1447 #: build/C/man5/elf.5:141
1449 msgid "#define EI_NIDENT 16\n"
1450 msgstr "#define EI_NIDENT 16\n"
1453 #: build/C/man5/elf.5:158
1456 "typedef struct {\n"
1457 " unsigned char e_ident[EI_NIDENT];\n"
1458 " uint16_t e_type;\n"
1459 " uint16_t e_machine;\n"
1460 " uint32_t e_version;\n"
1461 " ElfN_Addr e_entry;\n"
1462 " ElfN_Off e_phoff;\n"
1463 " ElfN_Off e_shoff;\n"
1464 " uint32_t e_flags;\n"
1465 " uint16_t e_ehsize;\n"
1466 " uint16_t e_phentsize;\n"
1467 " uint16_t e_phnum;\n"
1468 " uint16_t e_shentsize;\n"
1469 " uint16_t e_shnum;\n"
1470 " uint16_t e_shstrndx;\n"
1473 "typedef struct {\n"
1474 " unsigned char e_ident[EI_NIDENT];\n"
1475 " uint16_t e_type;\n"
1476 " uint16_t e_machine;\n"
1477 " uint32_t e_version;\n"
1478 " ElfN_Addr e_entry;\n"
1479 " ElfN_Off e_phoff;\n"
1480 " ElfN_Off e_shoff;\n"
1481 " uint32_t e_flags;\n"
1482 " uint16_t e_ehsize;\n"
1483 " uint16_t e_phentsize;\n"
1484 " uint16_t e_phnum;\n"
1485 " uint16_t e_shentsize;\n"
1486 " uint16_t e_shnum;\n"
1487 " uint16_t e_shstrndx;\n"
1490 #. .Bl -tag -width "e_phentsize"
1492 #: build/C/man5/elf.5:163
1493 msgid "The fields have the following meanings:"
1494 msgstr "フィールドは以下の意味を持つ:"
1497 #: build/C/man5/elf.5:163
1503 #: build/C/man5/elf.5:173
1505 "This array of bytes specifies to interpret the file, independent of the "
1506 "processor or the file's remaining contents. Within this array everything is "
1507 "named by macros, which start with the prefix B<EI_> and may contain values "
1508 "which start with the prefix B<ELF>. The following macros are defined:"
1510 "このバイト配列は、プロセッサやファイルの他の部分には依存せずに、 ファイルを解"
1511 "釈 (interpret) するために指定される。 この配列内のすべてのものは、接頭辞 "
1512 "B<EI_> で始まるマクロの名前が付き、接頭辞 B<ELF> で始まる値を持つ。 以下のマ"
1516 #: build/C/man5/elf.5:175
1522 #: build/C/man5/elf.5:181
1524 "The first byte of the magic number. It must be filled with B<ELFMAG0>. (0: "
1527 "マジックナンバーの第 1 バイト。 B<ELFMAG0> で埋めなければならない。 (0: 0x7f)"
1530 #: build/C/man5/elf.5:181
1536 #: build/C/man5/elf.5:187
1538 "The second byte of the magic number. It must be filled with B<ELFMAG1>. "
1541 "マジックナンバーの第 2 バイト。 B<ELFMAG1> で埋めなければならない。 (1: "
1545 #: build/C/man5/elf.5:187
1551 #: build/C/man5/elf.5:193
1553 "The third byte of the magic number. It must be filled with B<ELFMAG2>. (2: "
1556 "マジックナンバーの第 3 バイト。 B<ELFMAG2> で埋めなければならない。 (2: "
1560 #: build/C/man5/elf.5:193
1566 #: build/C/man5/elf.5:199
1568 "The fourth byte of the magic number. It must be filled with B<ELFMAG3>. "
1571 "マジックナンバーの第 4 バイト。 B<ELFMAG3> で埋めなければならない。 (3: "
1575 #: build/C/man5/elf.5:199
1578 msgstr "B<EI_CLASS>"
1581 #: build/C/man5/elf.5:202
1582 msgid "The fifth byte identifies the architecture for this binary:"
1583 msgstr "第 5 バイトは、このバイナリのアーキテクチャを示す:"
1586 #: build/C/man5/elf.5:204
1588 msgid "B<ELFCLASSNONE>"
1589 msgstr "B<ELFCLASSNONE>"
1592 #: build/C/man5/elf.5:208
1593 msgid "This class is invalid."
1594 msgstr "このクラスは不正である。"
1597 #: build/C/man5/elf.5:208
1599 msgid "B<ELFCLASS32>"
1600 msgstr "B<ELFCLASS32>"
1603 #: build/C/man5/elf.5:213
1605 "This defines the 32-bit architecture. It supports machines with files and "
1606 "virtual address spaces up to 4 Gigabytes."
1608 "32 ビットアーキテクチャを定義する。 ファイルと仮想アドレス空間が 4 ギガバイト"
1612 #: build/C/man5/elf.5:213
1614 msgid "B<ELFCLASS64>"
1615 msgstr "B<ELFCLASS64>"
1618 #: build/C/man5/elf.5:216
1619 msgid "This defines the 64-bit architecture."
1620 msgstr "64 ビットアーキテクチャを定義する。"
1623 #: build/C/man5/elf.5:219
1628 #. .Bl -tag -width "ELFDATA2LSB" -compact
1630 #: build/C/man5/elf.5:225
1632 "The sixth byte specifies the data encoding of the processor-specific data in "
1633 "the file. Currently these encodings are supported:"
1635 "第 6 バイトはファイル内のプロセッサ固有データの データエンコーディングを指定"
1636 "する。 現在のところ以下のエンコーディングがサポートされている:"
1639 #: build/C/man5/elf.5:226
1641 msgid "B<ELFDATANONE>"
1642 msgstr "B<ELFDATANONE>"
1645 #: build/C/man5/elf.5:230
1646 msgid "Unknown data format."
1647 msgstr "不明なデータフォーマット。"
1650 #: build/C/man5/elf.5:230
1652 msgid "B<ELFDATA2LSB>"
1653 msgstr "B<ELFDATA2LSB>"
1656 #: build/C/man5/elf.5:233
1657 msgid "Two's complement, little-endian."
1658 msgstr "2 の補数、リトルエンディアン。"
1661 #: build/C/man5/elf.5:233
1663 msgid "B<ELFDATA2MSB>"
1664 msgstr "B<ELFDATA2MSB>"
1667 #: build/C/man5/elf.5:236
1668 msgid "Two's complement, big-endian."
1669 msgstr "2 の補数、ビッグエンディアン。"
1672 #: build/C/man5/elf.5:239
1674 msgid "B<EI_VERSION>"
1675 msgstr "B<EI_VERSION>"
1677 #. .Bl -tag -width "EV_CURRENT" -compact
1679 #: build/C/man5/elf.5:244
1680 msgid "The version number of the ELF specification:"
1681 msgstr "ELF 仕様のバージョン番号:"
1684 #: build/C/man5/elf.5:245 build/C/man5/elf.5:499
1690 #: build/C/man5/elf.5:248 build/C/man5/elf.5:503
1691 msgid "Invalid version."
1695 #: build/C/man5/elf.5:248 build/C/man5/elf.5:503
1697 msgid "B<EV_CURRENT>"
1698 msgstr "B<EV_CURRENT>"
1702 #: build/C/man5/elf.5:251 build/C/man5/elf.5:507
1703 msgid "Current version."
1707 #: build/C/man5/elf.5:254
1710 msgstr "B<EI_OSABI>"
1712 #. .Bl -tag -width "ELFOSABI_STANDALONE" -compact
1714 #: build/C/man5/elf.5:263
1716 "This byte identifies the operating system and ABI to which the object is "
1717 "targeted. Some fields in other ELF structures have flags and values that "
1718 "have platform-specific meanings; the interpretation of those fields is "
1719 "determined by the value of this byte. E.g.:"
1721 "このバイトはオブジェクトのターゲットとなる オペレーティングシステムと ABI を"
1722 "示す。 他の ELF 構造体のフィールドには、 プラットフォーム固有の意味を持つフラ"
1723 "グや値を持つものもある; これらのフィールドの解釈は、このバイトの値によって決"
1727 #: build/C/man5/elf.5:264
1729 msgid "B<ELFOSABI_NONE>"
1730 msgstr "B<ELFOSABI_NONE>"
1734 #: build/C/man5/elf.5:269
1735 msgid "Same as ELFOSABI_SYSV"
1736 msgstr "ELFOSABI_SYSV と同じ。"
1739 #: build/C/man5/elf.5:269
1741 msgid "B<ELFOSABI_SYSV>"
1742 msgstr "B<ELFOSABI_SYSV>"
1745 #. synonym: ELFOSABI_NONE
1747 #: build/C/man5/elf.5:274
1748 msgid "UNIX System V ABI."
1749 msgstr "UNIX System V ABI."
1752 #: build/C/man5/elf.5:274
1754 msgid "B<ELFOSABI_HPUX>"
1755 msgstr "B<ELFOSABI_HPUX>"
1759 #: build/C/man5/elf.5:278
1764 #: build/C/man5/elf.5:278
1766 msgid "B<ELFOSABI_NETBSD>"
1767 msgstr "B<ELFOSABI_NETBSD>"
1771 #: build/C/man5/elf.5:282
1773 msgstr "NetBSD ABI."
1776 #: build/C/man5/elf.5:282
1778 msgid "B<ELFOSABI_LINUX>"
1779 msgstr "B<ELFOSABI_LINUX>"
1783 #. .BR ELFOSABI_HURD
1787 #. .BR ELFOSABI_86OPEN
1788 #. 86Open Common IA32 ABI.
1791 #: build/C/man5/elf.5:294
1796 #: build/C/man5/elf.5:294
1798 msgid "B<ELFOSABI_SOLARIS>"
1799 msgstr "B<ELFOSABI_SOLARIS>"
1803 #. .BR ELFOSABI_MONTEREY
1804 #. Monterey project ABI.
1809 #: build/C/man5/elf.5:304
1810 msgid "Solaris ABI."
1811 msgstr "Solaris ABI."
1814 #: build/C/man5/elf.5:304
1816 msgid "B<ELFOSABI_IRIX>"
1817 msgstr "B<ELFOSABI_IRIX>"
1821 #: build/C/man5/elf.5:308
1826 #: build/C/man5/elf.5:308
1828 msgid "B<ELFOSABI_FREEBSD>"
1829 msgstr "B<ELFOSABI_FREEBSD>"
1833 #: build/C/man5/elf.5:312
1834 msgid "FreeBSD ABI."
1835 msgstr "FreeBSD ABI."
1838 #: build/C/man5/elf.5:312
1840 msgid "B<ELFOSABI_TRU64>"
1841 msgstr "B<ELFOSABI_TRU64>"
1849 #: build/C/man5/elf.5:320
1850 msgid "TRU64 UNIX ABI."
1851 msgstr "TRU64 UNIX ABI."
1854 #: build/C/man5/elf.5:320
1856 msgid "B<ELFOSABI_ARM>"
1857 msgstr "B<ELFOSABI_ARM>"
1861 #: build/C/man5/elf.5:324
1862 msgid "ARM architecture ABI."
1863 msgstr "ARM アーキテクチャ ABI."
1866 #: build/C/man5/elf.5:324
1868 msgid "B<ELFOSABI_STANDALONE>"
1869 msgstr "B<ELFOSABI_STANDALONE>"
1874 #: build/C/man5/elf.5:329
1875 msgid "Stand-alone (embedded) ABI."
1876 msgstr "スタンドアロン (組み込み) ABI."
1879 #: build/C/man5/elf.5:331
1881 msgid "B<EI_ABIVERSION>"
1882 msgstr "B<EI_ABIVERSION>"
1885 #: build/C/man5/elf.5:341
1887 "This byte identifies the version of the ABI to which the object is "
1888 "targeted. This field is used to distinguish among incompatible versions of "
1889 "an ABI. The interpretation of this version number is dependent on the ABI "
1890 "identified by the B<EI_OSABI> field. Applications conforming to this "
1891 "specification use the value 0."
1893 "このバイトはオブジェクトがターゲットとしている ABI のバージョンを示す。 この"
1894 "フィールドは互換性のない ABI のバージョンを区別するために使われる。 このバー"
1895 "ジョン番号の解釈は、 B<EI_OSABI> フィールドで識別される ABI に依存する。 この"
1896 "仕様に準拠するアプリケーションは、値 0 を使う。"
1899 #: build/C/man5/elf.5:341
1904 #. As reported by Yuri Kozlov and confirmed by Mike Frysinger, EI_BRAND is
1905 #. not in GABI (http://www.sco.com/developers/gabi/latest/ch4.eheader.html)
1906 #. It looks to be a BSDism
1909 #. Start of architecture identification.
1911 #: build/C/man5/elf.5:357
1913 "Start of padding. These bytes are reserved and set to zero. Programs which "
1914 "read them should ignore them. The value for B<EI_PAD> will change in the "
1915 "future if currently unused bytes are given meanings."
1917 "パディングの開始。 これらのバイトは予約されており、0 に設定されている。 これ"
1918 "らを読み込むプログラムは、これらのバイトを無視すべきである。 現在使われていな"
1919 "いバイトに意味が与えられる場合、 B<EI_PAD> の値は将来変更されるかもしれない。"
1922 #: build/C/man5/elf.5:357
1924 msgid "B<EI_NIDENT>"
1925 msgstr "B<EI_NIDENT>"
1929 #: build/C/man5/elf.5:363
1930 msgid "The size of the I<e_ident> array."
1931 msgstr "I<e_ident> 配列のサイズ。"
1934 #: build/C/man5/elf.5:364
1940 #: build/C/man5/elf.5:367
1941 msgid "This member of the structure identifies the object file type:"
1942 msgstr "この構造体のメンバはオブジェクトファイルタイプを示す:"
1945 #: build/C/man5/elf.5:369
1951 #: build/C/man5/elf.5:373
1952 msgid "An unknown type."
1956 #: build/C/man5/elf.5:373
1962 #: build/C/man5/elf.5:376
1963 msgid "A relocatable file."
1967 #: build/C/man5/elf.5:376
1973 #: build/C/man5/elf.5:379
1974 msgid "An executable file."
1978 #: build/C/man5/elf.5:379
1984 #: build/C/man5/elf.5:382
1985 msgid "A shared object."
1989 #: build/C/man5/elf.5:382
1995 #: build/C/man5/elf.5:385
1996 msgid "A core file."
2000 #: build/C/man5/elf.5:388
2002 msgid "I<e_machine>"
2003 msgstr "I<e_machine>"
2006 #: build/C/man5/elf.5:392
2008 "This member specifies the required architecture for an individual file. E."
2010 msgstr "このメンバは個々のファイルに必要とされるアーキテクチャを指定する。 例:"
2013 #: build/C/man5/elf.5:394
2020 #: build/C/man5/elf.5:399
2021 msgid "An unknown machine."
2025 #: build/C/man5/elf.5:399
2032 #: build/C/man5/elf.5:403
2033 msgid "AT&T WE 32100."
2034 msgstr "AT&T WE 32100."
2037 #: build/C/man5/elf.5:403
2040 msgstr "B<EM_SPARC>"
2044 #: build/C/man5/elf.5:407
2045 msgid "Sun Microsystems SPARC."
2046 msgstr "Sun Microsystems SPARC."
2049 #: build/C/man5/elf.5:407
2056 #: build/C/man5/elf.5:411
2057 msgid "Intel 80386."
2058 msgstr "Intel 80386."
2061 #: build/C/man5/elf.5:411
2068 #: build/C/man5/elf.5:415
2069 msgid "Motorola 68000."
2070 msgstr "Motorola 68000."
2073 #: build/C/man5/elf.5:415
2084 #: build/C/man5/elf.5:423
2085 msgid "Motorola 88000."
2086 msgstr "Motorola 88000."
2089 #: build/C/man5/elf.5:423
2096 #: build/C/man5/elf.5:427
2097 msgid "Intel 80860."
2098 msgstr "Intel 80860."
2101 #: build/C/man5/elf.5:427
2110 #. .BR EM_MIPS_RS4_BE
2111 #. MIPS RS4000 (big-endian only). Deprecated.
2113 #. EM_MIPS_RS3_LE (MIPS R3000 little-endian)
2116 #: build/C/man5/elf.5:439
2117 msgid "MIPS RS3000 (big-endian only)."
2118 msgstr "MIPS RS3000 (ビッグエンディアンのみ)。"
2121 #: build/C/man5/elf.5:439
2123 msgid "B<EM_PARISC>"
2124 msgstr "B<EM_PARISC>"
2128 #: build/C/man5/elf.5:443
2133 #: build/C/man5/elf.5:443
2135 msgid "B<EM_SPARC32PLUS>"
2136 msgstr "B<EM_SPARC32PLUS>"
2140 #: build/C/man5/elf.5:447
2141 msgid "SPARC with enhanced instruction set."
2142 msgstr "拡張命令セット付き SPARC。"
2145 #: build/C/man5/elf.5:447
2152 #: build/C/man5/elf.5:451
2157 #: build/C/man5/elf.5:451
2160 msgstr "B<EM_PPC64>"
2164 #: build/C/man5/elf.5:455
2165 msgid "PowerPC 64-bit."
2166 msgstr "PowerPC 64-bit."
2169 #: build/C/man5/elf.5:455
2176 #: build/C/man5/elf.5:459
2181 #: build/C/man5/elf.5:459
2188 #: build/C/man5/elf.5:463
2189 msgid "Advanced RISC Machines"
2190 msgstr "Advanced RISC Machines"
2193 #: build/C/man5/elf.5:463
2200 #: build/C/man5/elf.5:467
2201 msgid "Renesas SuperH"
2202 msgstr "Renesas SuperH"
2205 #: build/C/man5/elf.5:467
2207 msgid "B<EM_SPARCV9>"
2208 msgstr "B<EM_SPARCV9>"
2212 #: build/C/man5/elf.5:471
2213 msgid "SPARC v9 64-bit."
2214 msgstr "SPARC v9 64-bit."
2217 #: build/C/man5/elf.5:471
2220 msgstr "B<EM_IA_64>"
2224 #: build/C/man5/elf.5:475
2225 msgid "Intel Itanium"
2226 msgstr "Intel Itanium"
2229 #: build/C/man5/elf.5:475
2231 msgid "B<EM_X86_64>"
2232 msgstr "B<EM_X86_64>"
2236 #: build/C/man5/elf.5:479
2241 #: build/C/man5/elf.5:479
2251 #. Compaq [DEC] Alpha.
2254 #. Compaq [DEC] Alpha with enhanced instruction set.
2256 #: build/C/man5/elf.5:491
2261 #: build/C/man5/elf.5:494
2263 msgid "I<e_version>"
2264 msgstr "I<e_version>"
2266 #. .Bl -tag -width "EV_CURRENT" -compact
2268 #: build/C/man5/elf.5:498
2269 msgid "This member identifies the file version:"
2270 msgstr "このメンバはファイルバージョンを示す:"
2273 #: build/C/man5/elf.5:509
2279 #: build/C/man5/elf.5:515
2281 "This member gives the virtual address to which the system first transfers "
2282 "control, thus starting the process. If the file has no associated entry "
2283 "point, this member holds zero."
2285 "このメンバは、システムが最初に制御を渡す、 つまりプロセスを開始する仮想アドレ"
2286 "スを指定する。 ファイルにエントリポイントが関連付けられていない場合、 このメ"
2290 #: build/C/man5/elf.5:515
2296 #: build/C/man5/elf.5:520
2298 "This member holds the program header table's file offset in bytes. If the "
2299 "file has no program header table, this member holds zero."
2301 "このメンバはプログラムヘッダテーブルの ファイルオフセット (バイト単位) を保持"
2302 "する。 ファイルにプログラムヘッダテーブルがない場合、 このメンバには 0 が入"
2306 #: build/C/man5/elf.5:520
2312 #: build/C/man5/elf.5:525
2314 "This member holds the section header table's file offset in bytes. If the "
2315 "file has no section header table this member holds zero."
2317 "このメンバはセクションヘッダテーブルの ファイルオフセット (バイト単位) を保持"
2318 "する。 ファイルにセクションヘッダテーブルがない場合、 このメンバには 0 が入"
2322 #: build/C/man5/elf.5:525
2328 #: build/C/man5/elf.5:530
2330 "This member holds processor-specific flags associated with the file. Flag "
2331 "names take the form EF_`machine_flag'. Currently no flags have been defined."
2333 "このメンバはファイルに関連付けられたプロセッサ固有のフラグを保持する。 フラグ"
2334 "の名前は EF_`machine_flag' という形式である。 現在のところフラグは定義されて"
2338 #: build/C/man5/elf.5:530
2341 msgstr "I<e_ehsize>"
2344 #: build/C/man5/elf.5:533
2345 msgid "This member holds the ELF header's size in bytes."
2346 msgstr "このメンバは ELF ヘッダサイズ (バイト単位) を保持する。"
2349 #: build/C/man5/elf.5:533
2351 msgid "I<e_phentsize>"
2352 msgstr "I<e_phentsize>"
2355 #: build/C/man5/elf.5:537
2357 "This member holds the size in bytes of one entry in the file's program "
2358 "header table; all entries are the same size."
2360 "このメンバはこのファイルのプログラムヘッダテーブルの 1 エントリあたりのサイ"
2361 "ズ (バイト単位) を保持する; 全てのエントリは同じサイズである。"
2364 #: build/C/man5/elf.5:537
2370 #: build/C/man5/elf.5:550
2372 "This member holds the number of entries in the program header table. Thus "
2373 "the product of I<e_phentsize> and I<e_phnum> gives the table's size in "
2374 "bytes. If a file has no program header, I<e_phnum> holds the value zero."
2376 "このメンバはプログラムヘッダテーブルにあるエントリの数を保持する。 よって "
2377 "I<e_phentsize> と I<e_phnum> の積がテーブルサイズ (バイト単位) になる。 ファ"
2378 "イルにプログラムヘッダがない場合、 I<e_phnum> は値 0 を保持する。"
2380 #. This is a Linux extension, added in Linux 2.6.34.
2381 #. .Bl -tag -width "PN_XNUM"
2383 #: build/C/man5/elf.5:564
2385 "If the number of entries in the program header table is larger than or equal "
2386 "to B<PN_XNUM> (0xffff), this member holds B<PN_XNUM> (0xffff) and the real "
2387 "number of entries in the program header table is held in the I<sh_info> "
2388 "member of the initial entry in section header table. Otherwise, the "
2389 "I<sh_info> member of the initial entry contains the value zero."
2391 "プログラムヘッダテーブルのエントリー数が B<PN_XNUM> (0xffff) 以上の場合、\n"
2392 "このメンバは B<PN_XNUM> (0xffff) になり、プログラムヘッダテーブルの\n"
2393 "エントリーの実際の数は、セクションヘッダテーブルの最初のエントリーの \n"
2394 "I<sh_info> メンバに格納される。それ以外の場合、セクションヘッダテーブルの\n"
2395 "最初のエントリーの I<sh_info> メンバには値 0 が格納される。"
2398 #: build/C/man5/elf.5:565
2404 #: build/C/man5/elf.5:570
2406 "This is defined as 0xffff, the largest number I<e_phnum> can have, "
2407 "specifying where the actual number of program headers is assigned."
2409 "I<e_phnum> が保持できる最大値を表し、 0xffff に定義されている。 I<e_phnum> \n"
2410 "はプログラムヘッダの実際の数がどこに割り当てられているかを示す。"
2413 #: build/C/man5/elf.5:574
2415 msgid "I<e_shentsize>"
2416 msgstr "I<e_shentsize>"
2419 #: build/C/man5/elf.5:579
2421 "This member holds a sections header's size in bytes. A section header is "
2422 "one entry in the section header table; all entries are the same size."
2424 "このメンバはセクションヘッダのサイズ (バイト単位) を保持する。 セクションヘッ"
2425 "ダはセクションヘッダテーブルの 1 つのエントリである; 全てのエントリは同じサイ"
2429 #: build/C/man5/elf.5:579
2435 #: build/C/man5/elf.5:592
2437 "This member holds the number of entries in the section header table. Thus "
2438 "the product of I<e_shentsize> and I<e_shnum> gives the section header "
2439 "table's size in bytes. If a file has no section header table, I<e_shnum> "
2440 "holds the value of zero."
2442 "このメンバはセクションヘッダテーブルにあるエントリの数を保持する。 よって "
2443 "I<e_shentsize> と I<e_shnum> の積はセクションヘッダテーブルのサイズ (バイト単"
2444 "位) になる。 ファイルにセクションヘッダテーブルがない場合、 I<e_shnum> は値 "
2448 #: build/C/man5/elf.5:604
2450 "If the number of entries in the section header table is larger than or equal "
2451 "to B<SHN_LORESERVE> (0xff00), I<e_shnum> holds the value zero and the real "
2452 "number of entries in the section header table is held in the I<sh_size> "
2453 "member of the initial entry in section header table. Otherwise, the "
2454 "I<sh_size> member of the initial entry in the section header table holds the "
2457 "セクションヘッダテーブルのエントリー数が B<SHN_LORESERVE> (0xff00) 以上の場"
2459 "I<e_shnum> には値 0 が入り、セクションヘッダテーブルのエントリーの実際の数"
2461 "セクションヘッダテーブルの最初のエントリーの I<sh_size> メンバに格納され"
2463 "それ以外の場合、セクションヘッダテーブルの最初のエントリーの I<sh_info> メン"
2468 #: build/C/man5/elf.5:604
2470 msgid "I<e_shstrndx>"
2471 msgstr "I<e_shstrndx>"
2474 #: build/C/man5/elf.5:611
2476 "This member holds the section header table index of the entry associated "
2477 "with the section name string table. If the file has no section name string "
2478 "table, this member holds the value B<SHN_UNDEF>."
2480 "このメンバはセクション名文字列テーブルに関連付けられたエントリの セクション"
2481 "ヘッダテーブルインデックスを保持する。 ファイルにセクション名文字列テーブルが"
2482 "ない場合、 このメンバは値 B<SHN_UNDEF> を保持する。 B<SHN_UNDEF>."
2485 #: build/C/man5/elf.5:623
2487 "If the index of section name string table section is larger than or equal to "
2488 "B<SHN_LORESERVE> (0xff00), this member holds B<SHN_XINDEX> (0xffff) and the "
2489 "real index of the section name string table section is held in the "
2490 "I<sh_link> member of the initial entry in section header table. Otherwise, "
2491 "the I<sh_link> member of the initial entry in section header table contains "
2494 "セクション名前文字列テーブルのインデックスが B<SHN_LORESERVE> (0xff00) 以上"
2496 "場合、このメンバには B<SHN_XINDEX> (0xffff) が入り、セクション名前文字列\n"
2497 "テーブルの実際のインデックスはセクションヘッダテーブルの最初のエントリーの\n"
2498 "I<sh_link> メンバに格納される。それ以外の場合、セクションヘッダテーブルの\n"
2499 "最初のエントリーの I<sh_link> メンバには値 0 が格納される。"
2502 #: build/C/man5/elf.5:625 build/C/man5/elf.5:912
2504 msgid "B<SHN_UNDEF>"
2505 msgstr "B<SHN_UNDEF>"
2508 #: build/C/man5/elf.5:634
2510 "This value marks an undefined, missing, irrelevant, or otherwise meaningless "
2511 "section reference. For example, a symbol \"defined\" relative to section "
2512 "number B<SHN_UNDEF> is an undefined symbol."
2514 "この値は未定義・存在しない・無関係その他、 意味のないセクションの参照であるこ"
2515 "とを表す。 例えば、セクション番号 B<SHN_UNDEF> に関連づけて「定義」されたシン"
2516 "ボルは、「未定義」なシンボルである。"
2519 #: build/C/man5/elf.5:634 build/C/man5/elf.5:916
2521 msgid "B<SHN_LORESERVE>"
2522 msgstr "B<SHN_LORESERVE>"
2525 #: build/C/man5/elf.5:637 build/C/man5/elf.5:919
2526 msgid "This value specifies the lower bound of the range of reserved indices."
2527 msgstr "この値は予約済みのインデックス領域の下限を指定する。"
2530 #: build/C/man5/elf.5:637 build/C/man5/elf.5:919
2532 msgid "B<SHN_LOPROC>"
2533 msgstr "B<SHN_LOPROC>"
2536 #: build/C/man5/elf.5:642 build/C/man5/elf.5:924
2538 "Values greater than or equal to B<SHN_HIPROC> are reserved for processor-"
2539 "specific semantics."
2541 "この値以上で B<SHN_HIPROC> 以下の値はプロセッサ固有の意味に予約されている。"
2544 #: build/C/man5/elf.5:642 build/C/man5/elf.5:924
2546 msgid "B<SHN_HIPROC>"
2547 msgstr "B<SHN_HIPROC>"
2550 #: build/C/man5/elf.5:647 build/C/man5/elf.5:929
2552 "Values less than or equal to B<SHN_LOPROC> are reserved for processor-"
2553 "specific semantics."
2555 "この値以下で B<SHN_HIPROC> 以上の値はプロセッサ固有の意味に予約されている。"
2558 #: build/C/man5/elf.5:647 build/C/man5/elf.5:929
2564 #: build/C/man5/elf.5:654
2566 "This value specifies absolute values for the corresponding reference. For "
2567 "example, symbols defined relative to section number B<SHN_ABS> have absolute "
2568 "values and are not affected by relocation."
2570 "この値は対応する参照の絶対値を指定する。 例えば、セクション番号 B<SHN_ABS> に"
2571 "関連づけられたシンボルは絶対値を保持し、再配置に影響されない。"
2574 #: build/C/man5/elf.5:654 build/C/man5/elf.5:936
2576 msgid "B<SHN_COMMON>"
2577 msgstr "B<SHN_COMMON>"
2580 #: build/C/man5/elf.5:658
2582 "Symbols defined relative to this section are common symbols, such as Fortran "
2583 "COMMON or unallocated C external variables."
2585 "このセクションに関連して定義されたシンボルは、 Fortran の COMMON や C の未割"
2586 "り当て external 変数のような、 共通シンボルである。"
2589 #: build/C/man5/elf.5:658 build/C/man5/elf.5:940
2591 msgid "B<SHN_HIRESERVE>"
2592 msgstr "B<SHN_HIRESERVE>"
2595 #: build/C/man5/elf.5:671
2597 "This value specifies the upper bound of the range of reserved indices "
2598 "between B<SHN_LORESERVE> and B<SHN_HIRESERVE>, inclusive; the values do not "
2599 "reference the section header table. That is, the section header table does "
2600 "I<not> contain entries for the reserved indices."
2602 "この値は予約されたインデックスの範囲の上限を指定する。 B<SHN_LORESERVE> と "
2603 "B<SHN_HIRESERVE> は含まれる。 この値はセクションヘッダテーブルを参照しない。 "
2604 "つまり、セクションヘッダテーブルは 予約されたインデックスのエントリを I<含ま"
2608 #: build/C/man5/elf.5:693
2610 "An executable or shared object file's program header table is an array of "
2611 "structures, each describing a segment or other information the system needs "
2612 "to prepare the program for execution. An object file I<segment> contains "
2613 "one or more I<sections>. Program headers are meaningful only for executable "
2614 "and shared object files. A file specifies its own program header size with "
2615 "the ELF header's I<e_phentsize> and I<e_phnum> members. The ELF program "
2616 "header is described by the type I<Elf32_Phdr> or I<Elf64_Phdr> depending on "
2619 "実行可能ファイルまたは共有オブジェクトファイルのプログラムヘッダテーブルは、 "
2620 "システムによるプログラム実行準備に必要な、 セグメント等の情報を記述する構造体"
2621 "の配列である。 オブジェクトファイルの I<セグメント> には 1 つ以上の I<セク"
2622 "ション> が含まれる。 プログラムヘッダは実行可能ファイルと共有オブジェクトファ"
2623 "イルでのみ意味を持つ。 ファイルは自身のプログラムヘッダサイズを ELF ヘッダの "
2624 "I<e_phentsize> メンバと I<e_phnum> メンバで指定する。 ELF プログラムヘッダは "
2625 "I<Elf32_Phdr> 型または I<Elf64_Phdr> 型で記述される (どちらになるかはアーキテ"
2629 #: build/C/man5/elf.5:706
2632 "typedef struct {\n"
2633 " uint32_t p_type;\n"
2634 " Elf32_Off p_offset;\n"
2635 " Elf32_Addr p_vaddr;\n"
2636 " Elf32_Addr p_paddr;\n"
2637 " uint32_t p_filesz;\n"
2638 " uint32_t p_memsz;\n"
2639 " uint32_t p_flags;\n"
2640 " uint32_t p_align;\n"
2643 "typedef struct {\n"
2644 " uint32_t p_type;\n"
2645 " Elf32_Off p_offset;\n"
2646 " Elf32_Addr p_vaddr;\n"
2647 " Elf32_Addr p_paddr;\n"
2648 " uint32_t p_filesz;\n"
2649 " uint32_t p_memsz;\n"
2650 " uint32_t p_flags;\n"
2651 " uint32_t p_align;\n"
2655 #: build/C/man5/elf.5:721
2658 "typedef struct {\n"
2659 " uint32_t p_type;\n"
2660 " uint32_t p_flags;\n"
2661 " Elf64_Off p_offset;\n"
2662 " Elf64_Addr p_vaddr;\n"
2663 " Elf64_Addr p_paddr;\n"
2664 " uint64_t p_filesz;\n"
2665 " uint64_t p_memsz;\n"
2666 " uint64_t p_align;\n"
2669 "typedef struct {\n"
2670 " uint32_t p_type;\n"
2671 " uint32_t p_flags;\n"
2672 " Elf64_Off p_offset;\n"
2673 " Elf64_Addr p_vaddr;\n"
2674 " Elf64_Addr p_paddr;\n"
2675 " uint64_t p_filesz;\n"
2676 " uint64_t p_memsz;\n"
2677 " uint64_t p_align;\n"
2680 #. .Bl -tag -width "p_offset"
2682 #: build/C/man5/elf.5:729
2684 "The main difference between the 32-bit and the 64-bit program header lies in "
2685 "the location of the I<p_flags> member in the total struct."
2687 "32 ビットと 64 ビットのプログラムヘッダの主な違いは、構造体における "
2688 "I<p_flags> メンバの位置にある。"
2691 #: build/C/man5/elf.5:729
2696 #. .Bl -tag -width "PT_DYNAMIC"
2698 #: build/C/man5/elf.5:734
2700 "This member of the Phdr struct tells what kind of segment this array element "
2701 "describes or how to interpret the array element's information."
2703 "Phdr 構造体のこのメンバは、 この配列要素がどのような種類のセグメントを記述し"
2704 "ているか、 またはこの配列要素の情報をどのように解釈するか、を表す。"
2707 #: build/C/man5/elf.5:735
2713 #: build/C/man5/elf.5:739
2715 "The array element is unused and the other members' values are undefined. "
2716 "This lets the program header have ignored entries."
2718 "この配列要素は使用されておらず、その他のメンバの値は未定義である。 これによ"
2719 "り、このプログラムヘッダのエントリは無視される。"
2722 #: build/C/man5/elf.5:739
2728 #: build/C/man5/elf.5:760
2730 "The array element specifies a loadable segment, described by I<p_filesz> and "
2731 "I<p_memsz>. The bytes from the file are mapped to the beginning of the "
2732 "memory segment. If the segment's memory size I<p_memsz> is larger than the "
2733 "file size I<p_filesz>, the \"extra\" bytes are defined to hold the value 0 "
2734 "and to follow the segment's initialized area. The file size may not be "
2735 "larger than the memory size. Loadable segment entries in the program header "
2736 "table appear in ascending order, sorted on the I<p_vaddr> member."
2738 "この配列要素は I<p_filesz> と I<p_memsz> で記述されるロード可能セグメントを指"
2739 "定する。 このファイルからのバイトデータが、このメモリセグメントの先頭からマッ"
2740 "プされる。 セグメントのメモリサイズ I<Sy>p_memsz がファイルサイズ "
2741 "I<Sy>p_filesz より大きい場合、 「余った」バイトは値 0 となり、 そのセグメント"
2742 "初期化データの後ろに置かれると定められている。 ファイルサイズはメモリサイズよ"
2743 "り大きくてはいけない。 プログラムヘッダテーブルのロード可能セグメントエントリ"
2744 "は、 I<p_vaddr> メンバの昇順にソートされて出現する。"
2747 #: build/C/man5/elf.5:760
2749 msgid "B<PT_DYNAMIC>"
2750 msgstr "B<PT_DYNAMIC>"
2753 #: build/C/man5/elf.5:763
2754 msgid "The array element specifies dynamic linking information."
2755 msgstr "この配列要素は動的リンク情報を指定する。"
2758 #: build/C/man5/elf.5:763
2760 msgid "B<PT_INTERP>"
2761 msgstr "B<PT_INTERP>"
2764 #: build/C/man5/elf.5:771
2766 "The array element specifies the location and size of a null-terminated "
2767 "pathname to invoke as an interpreter. This segment type is meaningful only "
2768 "for executable files (though it may occur for shared objects). However it "
2769 "may not occur more than once in a file. If it is present, it must precede "
2770 "any loadable segment entry."
2772 "この配列要素は、インタプリタとして起動されるパス名 (NULL 文字終端) の位置と"
2773 "サイズを指定する。 このセグメント型は (共有オブジェクトにもあるかも知れない"
2774 "が) 実行可能ファイルでのみ意味を持つ。 ただし、このセグメント型は 1 つのファ"
2775 "イルに 2 回以上出現してはならない。 もし存在する場合、このセグメント型は 全て"
2776 "のロード可能セグメントエントリより前になければならない。"
2779 #: build/C/man5/elf.5:771
2785 #: build/C/man5/elf.5:774
2787 "The array element specifies the location and size for auxiliary information."
2789 "この配列要素は補足情報 (auxiliary information) の位置とサイズを指定する。"
2792 #: build/C/man5/elf.5:774
2795 msgstr "B<PT_SHLIB>"
2798 #: build/C/man5/elf.5:779
2800 "This segment type is reserved but has unspecified semantics. Programs that "
2801 "contain an array element of this type do not conform to the ABI."
2803 "このセグメント型は予約されているが、意味は指定されていない。 この型の配列要素"
2804 "を保持するプログラムは ABI に準拠しない。"
2807 #: build/C/man5/elf.5:779
2813 #: build/C/man5/elf.5:788
2815 "The array element, if present, specifies the location and size of the "
2816 "program header table itself, both in the file and in the memory image of the "
2817 "program. This segment type may not occur more than once in a file. "
2818 "Moreover, it may only occur if the program header table is part of the "
2819 "memory image of the program. If it is present, it must precede any loadable "
2822 "この配列要素は、もし存在しているならば、 ファイルおよびプログラムのメモリイ"
2823 "メージ双方における プログラムヘッダテーブル自身の位置とサイズを指定する。 こ"
2824 "のセグメント型は 1 つのファイルに 2 回以上出現してはならない。 さらに、このセ"
2825 "グメント型が存在してもよいのは、プログラムヘッダテーブルが プログラムのメモリ"
2826 "イメージの一部である場合のみである。 もし存在する場合、これは全てのロード可能"
2827 "セグメントエントリより 前になければならない。"
2830 #: build/C/man5/elf.5:788
2832 msgid "B<PT_LOPROC>"
2833 msgstr "B<PT_LOPROC>"
2836 #: build/C/man5/elf.5:793
2838 "Values greater than or equal to B<PT_HIPROC> are reserved for processor-"
2839 "specific semantics."
2841 "この値以上で B<PT_HIPROC> 以下の値はプロセッサ固有の意味に予約されている。"
2844 #: build/C/man5/elf.5:793
2846 msgid "B<PT_HIPROC>"
2847 msgstr "B<PT_HIPROC>"
2850 #: build/C/man5/elf.5:798
2852 "Values less than or equal to B<PT_LOPROC> are reserved for processor-"
2853 "specific semantics."
2855 "この値以下で B<PT_LOPROC> 以上の値はプロセッサ固有の意味に予約されている。"
2858 #: build/C/man5/elf.5:798
2860 msgid "B<PT_GNU_STACK>"
2861 msgstr "B<PT_GNU_STACK>"
2865 #: build/C/man5/elf.5:805
2867 "GNU extension which is used by the Linux kernel to control the state of the "
2868 "stack via the flags set in the I<p_flags> member."
2870 "GNU 拡張であり、Linux カーネルが I<p_flags> のメンバーにセットされたフラグ経"
2871 "由でスタックの状態を制御するために使用する。"
2874 #: build/C/man5/elf.5:806
2877 msgstr "I<p_offset>"
2880 #: build/C/man5/elf.5:810
2882 "This member holds the offset from the beginning of the file at which the "
2883 "first byte of the segment resides."
2885 "このメンバは、セグメントの先頭バイトがある (ファイル先頭からの) オフセットを"
2889 #: build/C/man5/elf.5:810
2895 #: build/C/man5/elf.5:814
2897 "This member holds the virtual address at which the first byte of the segment "
2898 "resides in memory."
2900 "このメンバは、セグメントの先頭バイトがある メモリの仮想アドレスを保持する。"
2903 #: build/C/man5/elf.5:814
2909 #: build/C/man5/elf.5:822
2911 "On systems for which physical addressing is relevant, this member is "
2912 "reserved for the segment's physical address. Under BSD this member is not "
2913 "used and must be zero."
2915 "物理アドレスが意味をもつシステムでは、 このメンバはセグメントの物理アドレスと"
2916 "して予約されている。 BSD ではこのメンバは使用されない。0 でなければならない。"
2919 #: build/C/man5/elf.5:822
2922 msgstr "I<p_filesz>"
2925 #: build/C/man5/elf.5:826
2927 "This member holds the number of bytes in the file image of the segment. It "
2930 "このメンバはセグメントのファイルイメージのバイト数を保持する。 これは 0 でも"
2934 #: build/C/man5/elf.5:826
2940 #: build/C/man5/elf.5:830
2942 "This member holds the number of bytes in the memory image of the segment. "
2945 "このメンバはセグメントのメモリイメージのバイト数を保持する。 これは 0 でもよ"
2949 #: build/C/man5/elf.5:830
2954 #. .Bl -tag -width "PF_X" -compact
2956 #: build/C/man5/elf.5:834
2957 msgid "This member holds a bitmask of flags relevant to the segment:"
2958 msgstr "このメンバはセグメントに関連するフラグのビットマップを保持する:"
2961 #: build/C/man5/elf.5:835
2967 #: build/C/man5/elf.5:839
2968 msgid "An executable segment."
2972 #: build/C/man5/elf.5:839
2978 #: build/C/man5/elf.5:842
2979 msgid "A writable segment."
2980 msgstr "書き込み可能セグメント."
2983 #: build/C/man5/elf.5:842
2989 #: build/C/man5/elf.5:845
2990 msgid "A readable segment."
2991 msgstr "読み込み可能セグメント。"
2994 #: build/C/man5/elf.5:858
2996 "A text segment commonly has the flags B<PF_X> and B<PF_R>. A data segment "
2997 "commonly has B<PF_X>, B<PF_W> and B<PF_R>."
2999 "テキストセグメントは一般にフラグ B<PF_X> と B<PF_R> を持つ。 データセグメント"
3000 "は一般に B<PF_X>, B<PF_W>, B<PF_R> を持つ。"
3003 #: build/C/man5/elf.5:858
3010 #: build/C/man5/elf.5:877
3012 "This member holds the value to which the segments are aligned in memory and "
3013 "in the file. Loadable process segments must have congruent values for "
3014 "I<p_vaddr> and I<p_offset>, modulo the page size. Values of zero and one "
3015 "mean no alignment is required. Otherwise, I<p_align> should be a positive, "
3016 "integral power of two, and I<p_vaddr> should equal I<p_offset>, modulo "
3019 "このメンバは、セグメントがメモリおよびファイルにおいて配置 (align) される値"
3020 "を保持する。 ロード可能プロセスセグメントは、ページサイズを法として "
3021 "I<p_vaddr> と I<p_offset> と合同でなければならない (訳注:「p_vaddr mod ページ"
3022 "サイズ = p_offset mod ページサイズ」 でなければならない)。。 0 と 1 という値"
3023 "は配置が必要ないことを意味する。 それ以外の場合、 I<p_align> は正で 2 の整数"
3024 "乗でなければならず、 I<p_vaddr> は I<p_align> を法として I<p_offset> と合同で"
3025 "なければならない (訳注:「p_vaddr mod p_align = p_offset mod p_align」でなけれ"
3029 #: build/C/man5/elf.5:894
3031 "A file's section header table lets one locate all the file's sections. The "
3032 "section header table is an array of I<Elf32_Shdr> or I<Elf64_Shdr> "
3033 "structures. The ELF header's I<e_shoff> member gives the byte offset from "
3034 "the beginning of the file to the section header table. I<e_shnum> holds the "
3035 "number of entries the section header table contains. I<e_shentsize> holds "
3036 "the size in bytes of each entry."
3038 "ファイルのセクションヘッダテーブルには、 全てのファイルセクションの場所が記述"
3039 "されている。 セクションヘッダテーブルは I<Elf32_Shdr> 構造体または "
3040 "I<Elf64_Shdr> 構造体の配列である。 ELF ヘッダの I<e_shoff> メンバはファイルの"
3041 "先頭から セクションヘッダテーブルへのバイトオフセットである。 I<e_shnum> はセ"
3042 "クションヘッダテーブルに含まれるエントリの数を保持する。 I<e_shentsize> は各"
3043 "エントリのサイズ (バイト単位) を保持する。"
3045 #. .Bl -tag -width "SHN_LORESERVE"
3047 #: build/C/man5/elf.5:911
3049 "A section header table index is a subscript into this array. Some section "
3050 "header table indices are reserved: the initial entry and the indices between "
3051 "B<SHN_LORESERVE> and B<SHN_HIRESERVE>. The initial entry is used in ELF "
3052 "extensions for I<e_phnum>, I<e_shnum> and I<e_strndx>; in other cases, each "
3053 "field in the initial entry is set to zero. An object file does not have "
3054 "sections for these special indices:"
3056 "セクションヘッダテーブルインデックスは、この配列の添字である。\n"
3057 "いくつかのセクションヘッダテーブルインデックスは予約されている。予約されて\n"
3058 "いるのは、最初のエントリーと、B<SHN_LORESERVE> と B<SHN_HIRESERVE> の間の\n"
3060 "最初のエントリーは、ELF 拡張で I<e_phnum>, I<e_shnum>, I<e_strndx> に使用\n"
3061 "される。それ以外の場合、最初のエントリーの各フィールドには 0 が設定される。\n"
3062 "オブジェクトファイルにはこれらの特別なインデックスに対応するセクションはな"
3066 #: build/C/man5/elf.5:916
3068 "This value marks an undefined, missing, irrelevant or otherwise meaningless "
3069 "section reference."
3070 msgstr "この値は未定義・不明・無関係・無意味なセクション参照の印となる。"
3073 #: build/C/man5/elf.5:936
3075 "This value specifies the absolute value for the corresponding reference. "
3076 "For example, a symbol defined relative to section number B<SHN_ABS> has an "
3077 "absolute value and is not affected by relocation."
3079 "この値は対応する参照の絶対値を指定する。 例えば、セクション番号 B<SHN_ABS> に"
3080 "関連して定義されているシンボルは、 絶対値を保持しているので、再配置に影響され"
3084 #: build/C/man5/elf.5:940
3086 "Symbols defined relative to this section are common symbols, such as FORTRAN "
3087 "COMMON or unallocated C external variables."
3089 "このセクションに関連して定義されているシンボルは、 FORTRAN の COMMON や C の"
3090 "未割り当て外部変数のような共通シンボルである。"
3093 #: build/C/man5/elf.5:951
3095 "This value specifies the upper bound of the range of reserved indices. The "
3096 "system reserves indices between B<SHN_LORESERVE> and B<SHN_HIRESERVE>, "
3097 "inclusive. The section header table does not contain entries for the "
3100 "この値は予約済みのインデックス領域の上限を指定する。 システムは "
3101 "B<SHN_LORESERVE> と B<SHN_HIRESERVE> を含む範囲を予約する。 セクションヘッダ"
3102 "テーブルは予約されたインデックスに対応するエントリを持たない。"
3105 #: build/C/man5/elf.5:955
3106 msgid "The section header has the following structure:"
3107 msgstr "セクションヘッダは以下の構造体を持つ:"
3110 #: build/C/man5/elf.5:970
3113 "typedef struct {\n"
3114 " uint32_t sh_name;\n"
3115 " uint32_t sh_type;\n"
3116 " uint32_t sh_flags;\n"
3117 " Elf32_Addr sh_addr;\n"
3118 " Elf32_Off sh_offset;\n"
3119 " uint32_t sh_size;\n"
3120 " uint32_t sh_link;\n"
3121 " uint32_t sh_info;\n"
3122 " uint32_t sh_addralign;\n"
3123 " uint32_t sh_entsize;\n"
3126 "typedef struct {\n"
3127 " uint32_t sh_name;\n"
3128 " uint32_t sh_type;\n"
3129 " uint32_t sh_flags;\n"
3130 " Elf32_Addr sh_addr;\n"
3131 " Elf32_Off sh_offset;\n"
3132 " uint32_t sh_size;\n"
3133 " uint32_t sh_link;\n"
3134 " uint32_t sh_info;\n"
3135 " uint32_t sh_addralign;\n"
3136 " uint32_t sh_entsize;\n"
3140 #: build/C/man5/elf.5:987
3143 "typedef struct {\n"
3144 " uint32_t sh_name;\n"
3145 " uint32_t sh_type;\n"
3146 " uint64_t sh_flags;\n"
3147 " Elf64_Addr sh_addr;\n"
3148 " Elf64_Off sh_offset;\n"
3149 " uint64_t sh_size;\n"
3150 " uint32_t sh_link;\n"
3151 " uint32_t sh_info;\n"
3152 " uint64_t sh_addralign;\n"
3153 " uint64_t sh_entsize;\n"
3156 "typedef struct {\n"
3157 " uint32_t sh_name;\n"
3158 " uint32_t sh_type;\n"
3159 " uint64_t sh_flags;\n"
3160 " Elf64_Addr sh_addr;\n"
3161 " Elf64_Off sh_offset;\n"
3162 " uint64_t sh_size;\n"
3163 " uint32_t sh_link;\n"
3164 " uint32_t sh_info;\n"
3165 " uint64_t sh_addralign;\n"
3166 " uint64_t sh_entsize;\n"
3169 #. .Bl -tag -width "sh_addralign"
3171 #: build/C/man5/elf.5:992
3173 "No real differences exist between the 32-bit and 64-bit section headers."
3174 msgstr "32 ビットと 64 ビットのセクションヘッダには実際の違いはない。"
3177 #: build/C/man5/elf.5:992
3183 #: build/C/man5/elf.5:998
3185 "This member specifies the name of the section. Its value is an index into "
3186 "the section header string table section, giving the location of a null-"
3187 "terminated string."
3189 "このメンバはセクション名を定める。 この値はセクションヘッダ文字列テーブルセク"
3190 "ションのインデックスであり、 NULL 文字で終端された文字列の場所を示す。"
3193 #: build/C/man5/elf.5:998
3198 #. .Bl -tag -width "SHT_PROGBITS"
3200 #: build/C/man5/elf.5:1002
3201 msgid "This member categorizes the section's contents and semantics."
3202 msgstr "このメンバはセクションの内容と意味が含まれるカテゴリを示す。"
3205 #: build/C/man5/elf.5:1003
3208 msgstr "B<SHT_NULL>"
3211 #: build/C/man5/elf.5:1010
3213 "This value marks the section header as inactive. It does not have an "
3214 "associated section. Other members of the section header have undefined "
3217 "この値はセクションヘッダが不活性であることを示す。 これは関連するセクションを"
3218 "持たない。 このセクションヘッダの他のメンバは、未定義の値を持つ。"
3221 #: build/C/man5/elf.5:1010
3223 msgid "B<SHT_PROGBITS>"
3224 msgstr "B<SHT_PROGBITS>"
3227 #: build/C/man5/elf.5:1014
3229 "This section holds information defined by the program, whose format and "
3230 "meaning are determined solely by the program."
3232 "このセクションはプログラムにより定義される情報を保持する。 この情報の形式と意"
3233 "味は、ひとえにプログラムによって決定される。"
3236 #: build/C/man5/elf.5:1014
3238 msgid "B<SHT_SYMTAB>"
3239 msgstr "B<SHT_SYMTAB>"
3242 #: build/C/man5/elf.5:1027
3244 "This section holds a symbol table. Typically, B<SHT_SYMTAB> provides "
3245 "symbols for link editing, though it may also be used for dynamic linking. "
3246 "As a complete symbol table, it may contain many symbols unnecessary for "
3247 "dynamic linking. An object file can also contain a B<SHT_DYNSYM> section."
3249 "このセクションはシンボルテーブルを保持する。 一般には B<SHT_SYMTAB> はリンク"
3250 "編集のためのシンボルを提供するが、 動的リンクにも使われる。 完全なシンボル"
3251 "テーブルとして、動的リンクには不要な 多くのシンボルを保持できる。 オブジェク"
3252 "トファイルも B<SHT_DYNSYM> セクションを持つことができる。"
3255 #: build/C/man5/elf.5:1027
3257 msgid "B<SHT_STRTAB>"
3258 msgstr "B<SHT_STRTAB>"
3261 #: build/C/man5/elf.5:1032
3263 "This section holds a string table. An object file may have multiple string "
3266 "このセクションは文字列テーブルを保持する。 オブジェクトファイルは複数の文字列"
3267 "テーブルセクションを持つことができる。"
3270 #: build/C/man5/elf.5:1032
3273 msgstr "B<SHT_RELA>"
3276 #: build/C/man5/elf.5:1040
3278 "This section holds relocation entries with explicit addends, such as type "
3279 "I<Elf32_Rela> for the 32-bit class of object files. An object may have "
3280 "multiple relocation sections."
3282 "このセクションは明示的な加数 (addend) を持つ再配置エントリを保持する。 再配置"
3283 "エントリの型は、オブジェクトファイルの 32 ビットクラスでは I<Elf32_Rela> であ"
3284 "る。 オブジェクトファイルは複数の再配置セクションを持つことができる。"
3287 #: build/C/man5/elf.5:1040
3290 msgstr "B<SHT_HASH>"
3293 #: build/C/man5/elf.5:1047
3295 "This section holds a symbol hash table. An object participating in dynamic "
3296 "linking must contain a symbol hash table. An object file may have only one "
3299 "このセクションはシンボルハッシュテーブルを保持する。 動的リンクされるオブジェ"
3300 "クトは、 シンボルハッシュテーブルを含んでいなければならない。 オブジェクト"
3301 "ファイルは 1 つのハッシュテーブルのみを持つことができる。"
3304 #: build/C/man5/elf.5:1047
3306 msgid "B<SHT_DYNAMIC>"
3307 msgstr "B<SHT_DYNAMIC>"
3310 #: build/C/man5/elf.5:1052
3312 "This section holds information for dynamic linking. An object file may have "
3313 "only one dynamic section."
3315 "このセクションは動的リンクの情報を保持する。 オブジェクトファイルは 1 つの動"
3316 "的セクションのみを持つことができる。"
3319 #: build/C/man5/elf.5:1052
3322 msgstr "B<SHT_NOTE>"
3325 #: build/C/man5/elf.5:1055
3326 msgid "This section holds information that marks the file in some way."
3327 msgstr "このセクションはファイルに何らかの印を付ける情報を保持する。"
3330 #: build/C/man5/elf.5:1055
3332 msgid "B<SHT_NOBITS>"
3333 msgstr "B<SHT_NOBITS>"
3336 #: build/C/man5/elf.5:1063
3338 "A section of this type occupies no space in the file but otherwise resembles "
3339 "B<SHT_PROGBITS>. Although this section contains no bytes, the I<sh_offset> "
3340 "member contains the conceptual file offset."
3342 "このタイプのセクションはファイルの領域を使わないという以外は、 "
3343 "B<SHT_PROGBITS> と似ている。 このセクションは 1 バイトも含まないが、 "
3344 "I<sh_offset> メンバは概念的なファイルオフセットを持つ。"
3347 #: build/C/man5/elf.5:1063
3353 #: build/C/man5/elf.5:1071
3355 "This section holds relocation offsets without explicit addends, such as type "
3356 "I<Elf32_Rel> for the 32-bit class of object files. An object file may have "
3357 "multiple relocation sections."
3359 "このセクションは明示的な加数を持たない再配置オフセットを保持する。 再配置オフ"
3360 "セットの型は、オブジェクトファイルの 32 ビットクラスでは I<Elf32_Rel> であ"
3361 "る。 オブジェクトファイルは複数の再配置セクションを持つことができる。"
3364 #: build/C/man5/elf.5:1071
3366 msgid "B<SHT_SHLIB>"
3367 msgstr "B<SHT_SHLIB>"
3370 #: build/C/man5/elf.5:1074
3371 msgid "This section is reserved but has unspecified semantics."
3372 msgstr "このセクションは予約されているが、意味は指定されていない。"
3375 #: build/C/man5/elf.5:1074
3377 msgid "B<SHT_DYNSYM>"
3378 msgstr "B<SHT_DYNSYM>"
3381 #: build/C/man5/elf.5:1081
3383 "This section holds a minimal set of dynamic linking symbols. An object file "
3384 "can also contain a B<SHT_SYMTAB> section."
3386 "このセクションは動的リンクシンボルの最小セットを保持する。 オブジェクトファイ"
3387 "ルは B<SHT_SYMTAB> セクションも含むことができる。"
3390 #: build/C/man5/elf.5:1081
3392 msgid "B<SHT_LOPROC>"
3393 msgstr "B<SHT_LOPROC>"
3396 #: build/C/man5/elf.5:1086
3398 "This value up to and including B<SHT_HIPROC> is reserved for processor-"
3399 "specific semantics."
3401 "この値以上で B<SHT_HIPROC> 以下の範囲はプロセッサ固有の意味に予約されている。"
3404 #: build/C/man5/elf.5:1086
3406 msgid "B<SHT_HIPROC>"
3407 msgstr "B<SHT_HIPROC>"
3410 #: build/C/man5/elf.5:1091
3412 "This value down to and including B<SHT_LOPROC> is reserved for processor-"
3413 "specific semantics."
3415 "この値以下で B<SHT_LOPROC> 以上の範囲はプロセッサ固有の意味に予約されている。"
3418 #: build/C/man5/elf.5:1091
3420 msgid "B<SHT_LOUSER>"
3421 msgstr "B<SHT_LOUSER>"
3424 #: build/C/man5/elf.5:1095
3426 "This value specifies the lower bound of the range of indices reserved for "
3427 "application programs."
3429 "この値はアプリケーションプログラムのために予約される インデックス範囲の下限を"
3433 #: build/C/man5/elf.5:1095
3435 msgid "B<SHT_HIUSER>"
3436 msgstr "B<SHT_HIUSER>"
3440 #: build/C/man5/elf.5:1106
3442 "This value specifies the upper bound of the range of indices reserved for "
3443 "application programs. Section types between B<SHT_LOUSER> and B<SHT_HIUSER> "
3444 "may be used by the application, without conflicting with current or future "
3445 "system-defined section types."
3447 "この値はアプリケーションプログラムのために予約される インデックス範囲の上限を"
3448 "指定する。 B<SHT_LOUSER> から B<SHT_HIUSER> の間のセクションタイプは、 現在ま"
3449 "たは将来のシステム定義セクションタイプと衝突することなく、 アプリケーションで"
3453 #: build/C/man5/elf.5:1107
3456 msgstr "I<sh_flags>"
3458 #. .Bl -tag -width "SHF_EXECINSTR" -compact
3460 #: build/C/man5/elf.5:1120
3462 "Sections support one-bit flags that describe miscellaneous attributes. If a "
3463 "flag bit is set in I<sh_flags>, the attribute is \"on\" for the section. "
3464 "Otherwise, the attribute is \"off\" or does not apply. Undefined attributes "
3467 "様々な属性を記述するための 1 ビットのフラグをサポートするセクション。 フラグ"
3468 "ビットが I<sh_flags> に設定された場合、そのセクションについての属性は \"オン"
3469 "\" になる。 それ以外の場合、属性が \"オフ\" であるか属性が適用されない。 未定"
3473 #: build/C/man5/elf.5:1121
3475 msgid "B<SHF_WRITE>"
3476 msgstr "B<SHF_WRITE>"
3479 #: build/C/man5/elf.5:1125
3481 "This section contains data that should be writable during process execution."
3482 msgstr "このセクションはプロセス実行中に書き込み可能なデータを含む。"
3485 #: build/C/man5/elf.5:1125
3487 msgid "B<SHF_ALLOC>"
3488 msgstr "B<SHF_ALLOC>"
3491 #: build/C/man5/elf.5:1132
3493 "This section occupies memory during process execution. Some control "
3494 "sections do not reside in the memory image of an object file. This "
3495 "attribute is off for those sections."
3497 "このセクションはプロセス実行中にメモリを使用する。 制御セクションの中には、オ"
3498 "ブジェクトファイルのメモリイメージには 存在しないものもある。 そうしたセク"
3499 "ションの場合、この属性はオフである。"
3502 #: build/C/man5/elf.5:1132
3504 msgid "B<SHF_EXECINSTR>"
3505 msgstr "B<SHF_EXECINSTR>"
3508 #: build/C/man5/elf.5:1135
3509 msgid "This section contains executable machine instructions."
3510 msgstr "このセクションは実行可能なマシン命令を含む。"
3513 #: build/C/man5/elf.5:1135
3515 msgid "B<SHF_MASKPROC>"
3516 msgstr "B<SHF_MASKPROC>"
3519 #: build/C/man5/elf.5:1139
3521 "All bits included in this mask are reserved for processor-specific semantics."
3523 "このマスクに含まれる全てのビットはプロセッサ固有の意味に予約されている。"
3526 #: build/C/man5/elf.5:1141
3532 #: build/C/man5/elf.5:1146
3534 "If this section appears in the memory image of a process, this member holds "
3535 "the address at which the section's first byte should reside. Otherwise, the "
3536 "member contains zero."
3538 "このセクションがプロセスのメモリイメージにある場合、 このメンバはセクションの"
3539 "最初のバイトが存在するアドレスを保持する。 それ以外の場合、このメンバは 0 で"
3543 #: build/C/man5/elf.5:1146
3545 msgid "I<sh_offset>"
3546 msgstr "I<sh_offset>"
3549 #: build/C/man5/elf.5:1155
3551 "This member's value holds the byte offset from the beginning of the file to "
3552 "the first byte in the section. One section type, B<SHT_NOBITS>, occupies no "
3553 "space in the file, and its I<sh_offset> member locates the conceptual "
3554 "placement in the file."
3556 "このメンバの値は、ファイルの先頭からセクションの最初のバイトへの バイトオフ"
3557 "セットを保持する。 セクションタイプ B<SHT_NOBITS> はファイルの領域を全く使用"
3558 "せず、このタイプの I<sh_offset> メンバはファイルの概念的な位置を示す。"
3561 #: build/C/man5/elf.5:1155
3567 #: build/C/man5/elf.5:1167
3569 "This member holds the section's size in bytes. Unless the section type is "
3570 "B<SHT_NOBITS>, the section occupies I<sh_size> bytes in the file. A section "
3571 "of type B<SHT_NOBITS> may have a nonzero size, but it occupies no space in "
3574 "このメンバはセクションのサイズ (バイト単位) を保持する。 セクションタイプが "
3575 "B<SHT_NOBITS> でない限り、そのセクションはファイル中の I<sh_size> バイトを使"
3576 "用する。 タイプが B<SHT_NOBITS> のセクションはサイズが 0 でないが、ファイルの"
3580 #: build/C/man5/elf.5:1167
3586 #: build/C/man5/elf.5:1171
3588 "This member holds a section header table index link, whose interpretation "
3589 "depends on the section type."
3591 "このメンバは、セクションヘッダテーブルインデックスリンクを保持する。 この解釈"
3595 #: build/C/man5/elf.5:1171
3601 #: build/C/man5/elf.5:1175
3603 "This member holds extra information, whose interpretation depends on the "
3606 "このメンバは追加情報を保持する。 この解釈はセクションタイプに依存する。"
3609 #: build/C/man5/elf.5:1175
3611 msgid "I<sh_addralign>"
3612 msgstr "I<sh_addralign>"
3615 #: build/C/man5/elf.5:1188
3617 "Some sections have address alignment constraints. If a section holds a "
3618 "doubleword, the system must ensure doubleword alignment for the entire "
3619 "section. That is, the value of I<sh_addr> must be congruent to zero, modulo "
3620 "the value of I<sh_addralign>. Only zero and positive integral powers of two "
3621 "are allowed. Values of zero or one mean the section has no alignment "
3624 "アドレス配置に制約があるセクションもある。 セクションが倍長語 (doubleword) を"
3625 "保持する場合、 システムは全てのセクションについて倍長語の配置を保証しなければ"
3626 "ならない。 つまり、 I<sh_addr> の値は I<sh_addralign> の値を法として 0 と合同"
3627 "でなければならない (訳注:「sh_addr mod sh_addralign = 0 でなければならな"
3628 "い)。 2 の 0 乗と正の整数乗のみが許可される。 0 または 1 はセクションの配置に"
3632 #: build/C/man5/elf.5:1188
3634 msgid "I<sh_entsize>"
3635 msgstr "I<sh_entsize>"
3639 #: build/C/man5/elf.5:1195
3641 "Some sections hold a table of fixed-sized entries, such as a symbol table. "
3642 "For such a section, this member gives the size in bytes for each entry. "
3643 "This member contains zero if the section does not hold a table of fixed-size "
3646 "シンボルテーブルのような固定サイズエントリのテーブルを保持する セクションもあ"
3647 "る。 このようなセクションでは、 このメンバは各エントリのサイズ (バイト単位) "
3648 "を表す。 このメンバが 0 の場合、 そのセクションは固定サイズエントリのテーブル"
3651 #. .Bl -tag -width ".shstrtab"
3653 #: build/C/man5/elf.5:1198
3654 msgid "Various sections hold program and control information:"
3655 msgstr "さまざまなセクションにプログラム情報・制御情報が保持される:"
3658 #: build/C/man5/elf.5:1198
3664 #: build/C/man5/elf.5:1210
3666 "This section holds uninitialized data that contributes to the program's "
3667 "memory image. By definition, the system initializes the data with zeros "
3668 "when the program begins to run. This section is of type B<SHT_NOBITS>. The "
3669 "attribute types are B<SHF_ALLOC> and B<SHF_WRITE>."
3671 "このセクションはプログラムのメモリイメージに配置される 非初期化データを保持す"
3672 "る。 定義上、システムはプログラムの実行開始時に、データを 0 で初期化する。 こ"
3673 "のセクションのタイプは B<SHT_NOBITS> である。 属性タイプは B<SHF_ALLOC> と "
3677 #: build/C/man5/elf.5:1210
3680 msgstr "I<.comment>"
3683 #: build/C/man5/elf.5:1216
3685 "This section holds version control information. This section is of type "
3686 "B<SHT_PROGBITS>. No attribute types are used."
3688 "このセクションはバージョン制御情報を保持する。 このセクションのタイプは "
3689 "B<SHT_PROGBITS> である。 属性タイプは使用されない。"
3692 #: build/C/man5/elf.5:1216
3698 #: build/C/man5/elf.5:1225
3700 "This section holds initialized pointers to the C++ constructor functions. "
3701 "This section is of type B<SHT_PROGBITS>. The attribute types are "
3702 "B<SHF_ALLOC> and B<SHF_WRITE>."
3704 "このセクションは C++ コンストラクタ関数への初期化されたポインタを保持する。 "
3705 "このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは B<SHF_ALLOC> "
3706 "と B<SHF_WRITE> である。"
3709 #: build/C/man5/elf.5:1225
3715 #: build/C/man5/elf.5:1235 build/C/man5/elf.5:1245
3717 "This section holds initialized data that contribute to the program's memory "
3718 "image. This section is of type B<SHT_PROGBITS>. The attribute types are "
3719 "B<SHF_ALLOC> and B<SHF_WRITE>."
3721 "このセクションはプログラムのメモリイメージに配置される 初期化済みデータを保持"
3722 "する。 このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは "
3723 "B<SHF_ALLOC> と B<SHF_WRITE> である。"
3726 #: build/C/man5/elf.5:1235
3732 #: build/C/man5/elf.5:1245
3738 #: build/C/man5/elf.5:1253
3740 "This section holds information for symbolic debugging. The contents are "
3741 "unspecified. This section is of type B<SHT_PROGBITS>. No attribute types "
3744 "このセクションはシンボリックデバッグ用の情報を保持する。 その内容は指定されて"
3745 "いない。 このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは使用さ"
3749 #: build/C/man5/elf.5:1253
3755 #: build/C/man5/elf.5:1262
3757 "This section holds initialized pointers to the C++ destructor functions. "
3758 "This section is of type B<SHT_PROGBITS>. The attribute types are "
3759 "B<SHF_ALLOC> and B<SHF_WRITE>."
3761 "このセクションは C++ デストラクタ関数への初期化されたポインタを保持する。 こ"
3762 "のセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは B<SHF_ALLOC> と "
3766 #: build/C/man5/elf.5:1262
3769 msgstr "I<.dynamic>"
3772 #: build/C/man5/elf.5:1275
3774 "This section holds dynamic linking information. The section's attributes "
3775 "will include the B<SHF_ALLOC> bit. Whether the B<SHF_WRITE> bit is set is "
3776 "processor-specific. This section is of type B<SHT_DYNAMIC>. See the "
3779 "このセクションは動的リンク情報を保持する。 このセクションの属性は "
3780 "B<SHF_ALLOC> ビットを含む。 B<SHF_WRITE> ビットが設定されるか否かはプロセッサ"
3781 "による。 このセクションのタイプは B<SHT_DYNAMIC> である。 上記の属性を参照す"
3785 #: build/C/man5/elf.5:1275
3791 #: build/C/man5/elf.5:1283
3793 "This section holds strings needed for dynamic linking, most commonly the "
3794 "strings that represent the names associated with symbol table entries. This "
3795 "section is of type B<SHT_STRTAB>. The attribute type used is B<SHF_ALLOC>."
3797 "このセクションは動的リンクに必要な文字列を保持する。 最も一般的には、この文字"
3798 "列はシンボルテーブルエントリと 関連づけられた名前を表す。 このセクションのタ"
3799 "イプは B<SHT_STRTAB> である。 使用される属性タイプは B<SHF_ALLOC> である。"
3802 #: build/C/man5/elf.5:1283
3808 #: build/C/man5/elf.5:1290
3810 "This section holds the dynamic linking symbol table. This section is of "
3811 "type B<SHT_DYNSYM>. The attribute used is B<SHF_ALLOC>."
3813 "このセクションは動的リンクシンボルテーブルを保持する。 このセクションのタイプ"
3814 "は B<SHT_DYNSYM> である。 使用される属性タイプは B<SHF_ALLOC> である。"
3817 #: build/C/man5/elf.5:1290
3823 #: build/C/man5/elf.5:1302
3825 "This section holds executable instructions that contribute to the process "
3826 "termination code. When a program exits normally the system arranges to "
3827 "execute the code in this section. This section is of type B<SHT_PROGBITS>. "
3828 "The attributes used are B<SHF_ALLOC> and B<SHF_EXECINSTR>."
3830 "このセクションはプロセス終了コードに置かれる実行可能命令を保持する。 プロセス"
3831 "が正常に終了した場合、システムはこのセクションにある コードを配置して実行す"
3832 "る。 このセクションのタイプは B<SHT_PROGBITS> である。 使用される属性タイプ"
3833 "は B<SHF_ALLOC> と B<SHF_EXECINSTR> である。"
3836 #: build/C/man5/elf.5:1302
3838 msgid "I<.gnu.version>"
3839 msgstr "I<.gnu.version>"
3842 #: build/C/man5/elf.5:1311
3844 "This section holds the version symbol table, an array of I<ElfN_Half> "
3845 "elements. This section is of type B<SHT_GNU_versym>. The attribute type "
3846 "used is B<SHF_ALLOC>."
3848 "このセクションはバージョン・シンボル・テーブルを保持する。 その内容は "
3849 "I<ElfN_Half> 要素の配列である。 このセクションのタイプは B<SHT_GNU_versym> で"
3850 "ある。 使用される属性タイプは B<SHF_ALLOC> である。"
3853 #: build/C/man5/elf.5:1311
3855 msgid "I<.gnu.version_d>"
3856 msgstr "I<.gnu.version_d>"
3859 #: build/C/man5/elf.5:1320
3861 "This section holds the version symbol definitions, a table of I<ElfN_Verdef> "
3862 "structures. This section is of type B<SHT_GNU_verdef>. The attribute type "
3863 "used is B<SHF_ALLOC>."
3865 "このセクションはバージョンシンボルの定義を保持する。 その内容は "
3866 "I<ElfN_Verdef> 構造体のテーブルである。 このセクションのタイプは "
3867 "B<SHT_GNU_verdef> である。 使用される属性タイプは B<SHF_ALLOC> である。"
3870 #: build/C/man5/elf.5:1320
3872 msgid "I<.gnu.version_r>"
3873 msgstr "I<.gnu.version_r>"
3876 #: build/C/man5/elf.5:1330
3878 "This section holds the version symbol needed elements, a table of "
3879 "I<ElfN_Verneed> structures. This section is of type B<SHT_GNU_versym>. The "
3880 "attribute type used is B<SHF_ALLOC>."
3882 "このセクションはバージョンシンボルが必要とする要素を保持する。 その内容は "
3883 "I<ElfN_Verneed> 構造体のテーブルである。 このセクションのタイプは "
3884 "B<SHT_GNU_versym> である。 使用される属性タイプは B<shf_alloc> である。"
3887 #: build/C/man5/elf.5:1330
3893 #: build/C/man5/elf.5:1336
3895 "This section holds the global offset table. This section is of type "
3896 "B<SHT_PROGBITS>. The attributes are processor specific."
3898 "このセクションはグローバルオフセットテーブルを保持する。 このセクションのタイ"
3899 "プは B<SHT_PROGBITS> である。 属性はプロセッサ毎に異なる。"
3902 #: build/C/man5/elf.5:1336
3908 #: build/C/man5/elf.5:1343
3910 "This section holds a symbol hash table. This section is of type "
3911 "B<SHT_HASH>. The attribute used is B<SHF_ALLOC>."
3913 "このセクションはシンボルハッシュテーブルを保持する。 セクションのタイプは "
3914 "B<SHT_HASH> である。 使用される属性は B<SHF_ALLOC> である。"
3917 #: build/C/man5/elf.5:1343
3923 #: build/C/man5/elf.5:1355
3925 "This section holds executable instructions that contribute to the process "
3926 "initialization code. When a program starts to run the system arranges to "
3927 "execute the code in this section before calling the main program entry "
3928 "point. This section is of type B<SHT_PROGBITS>. The attributes used are "
3929 "B<SHF_ALLOC> and B<SHF_EXECINSTR>."
3931 "このセクションはプロセス初期化コードに配置される実行可能命令を保持する。 プロ"
3932 "グラムが実行を開始すると、 システムはメインプログラムエントリポイントを呼び出"
3933 "す前に、 このセクションにあるコードを配置して実行する。 このセクションはのタ"
3934 "イプは B<SHT_PROGBITS> である。 使用される属性は B<SHF_ALLOC> と "
3935 "B<SHF_EXECINSTR> である。"
3938 #: build/C/man5/elf.5:1355
3944 #: build/C/man5/elf.5:1366
3946 "This section holds the pathname of a program interpreter. If the file has a "
3947 "loadable segment that includes the section, the section's attributes will "
3948 "include the B<SHF_ALLOC> bit. Otherwise, that bit will be off. This "
3949 "section is of type B<SHT_PROGBITS>."
3951 "このセクションはプログラムインタプリタのパス名を保持する。 ファイルにこのセク"
3952 "ションを含むロード可能セグメントがある場合、 そのセクションの属性には "
3953 "B<SHF_ALLOC> ビットが含まれる。 それ以外の場合このビットはオフになる。 このセ"
3954 "クションのタイプは B<SHT_PROGBITS> である。"
3957 #: build/C/man5/elf.5:1366
3963 #: build/C/man5/elf.5:1374
3965 "This section holds line number information for symbolic debugging, which "
3966 "describes the correspondence between the program source and the machine "
3967 "code. The contents are unspecified. This section is of type "
3968 "B<SHT_PROGBITS>. No attribute types are used."
3970 "このセクションはシンボリックデバッグのための行番号情報を保持する。 ここにはプ"
3971 "ログラムソースコードとマシンコードの対応関係が記述される。 内容は指定されてい"
3972 "ない。 このセクションのタイプは B<SHT_PROGBITS> である。 属性タイプは使用され"
3976 #: build/C/man5/elf.5:1374
3982 #: build/C/man5/elf.5:1387
3984 "This section holds information in the \"Note Section\" format. This section "
3985 "is of type B<SHT_NOTE>. No attribute types are used. OpenBSD native "
3986 "executables usually contain a I<.note.openbsd.ident> section to identify "
3987 "themselves, for the kernel to bypass any compatibility ELF binary emulation "
3988 "tests when loading the file."
3990 "このセクションは \"Note Section\" 形式で情報を保持する。このセクションのタイ"
3992 "は B<SHT_NOTE> である。属性タイプは使用されない。通常 OpenBSD ネイティブ実"
3994 "可能ファイルは自身を識別するために I<.note.openbsd.ident> セクションを持"
3996 "これによりカーネルは、ファイルをロードする際に 互換 ELF バイナリエミュレー"
4001 #: build/C/man5/elf.5:1387
4003 msgid "I<.note.GNU-stack>"
4004 msgstr "I<.note.GNU-stack>"
4007 #: build/C/man5/elf.5:1396
4009 "This section is used in Linux object files for declaring stack attributes. "
4010 "This section is of type B<SHT_PROGBITS>. The only attribute used is "
4011 "B<SHF_EXECINSTR>. This indicates to the GNU linker that the object file "
4012 "requires an executable stack."
4014 "このセクションは Linux のオブジェクトファイルで スタック属性を宣言するのに使"
4015 "用される。 セクションのタイプは B<SHT_PROGBITS> である。使用される属性は "
4016 "B<SHF_EXECINSTR> だけである。この属性は GNU リンカに対して オブジェクトファイ"
4017 "ルが実行可能なスタック (executable stack) を必要とする 示すものである。"
4020 #: build/C/man5/elf.5:1396
4026 #: build/C/man5/elf.5:1402
4028 "This section holds the procedure linkage table. This section is of type "
4029 "B<SHT_PROGBITS>. The attributes are processor specific."
4031 "このセクションは手続き (procedure) リンクテーブルを保持する。 このセクション"
4032 "のタイプは B<SHT_PROGBITS> である。 属性はプロセッサ毎に異なる。"
4035 #: build/C/man5/elf.5:1402
4038 msgstr "I<.relNAME>"
4041 #: build/C/man5/elf.5:1421
4043 "This section holds relocation information as described below. If the file "
4044 "has a loadable segment that includes relocation, the section's attributes "
4045 "will include the B<SHF_ALLOC> bit. Otherwise the bit will be off. By "
4046 "convention, \"NAME\" is supplied by the section to which the relocations "
4047 "apply. Thus a relocation section for B<.text> normally would have the name "
4048 "B<.rel.text>. This section is of type B<SHT_REL>."
4050 "このセクションは以下に記述される再配置情報を保持する。 ファイルが再配置を含む"
4051 "ロード可能セグメントを持っている場合、 このセクションの属性は B<SHF_ALLOC> "
4052 "ビットを含む。 それ以外の場合、そのビットはオフである。 慣例として、 \"NAME"
4053 "\" は再配置が適用されるセクションが指定される。 よって B<.text> についての再"
4054 "配置セクションは、通常は B<.rel.text> という名前を持つ。 このセクションのタイ"
4055 "プは B<SHT_REL> である。"
4058 #: build/C/man5/elf.5:1421
4060 msgid "I<.relaNAME>"
4061 msgstr "I<.relaNAME>"
4064 #: build/C/man5/elf.5:1440
4066 "This section holds relocation information as described below. If the file "
4067 "has a loadable segment that includes relocation, the section's attributes "
4068 "will include the B<SHF_ALLOC> bit. Otherwise the bit will be off. By "
4069 "convention, \"NAME\" is supplied by the section to which the relocations "
4070 "apply. Thus a relocation section for B<.text> normally would have the name "
4071 "B<.rela.text>. This section is of type B<SHT_RELA>."
4073 "このセクションは以下に記述される再配置情報を保持する。 ファイルが再配置を含む"
4074 "ロード可能セグメントを持っている場合、 このセクションの属性は B<SHF_ALLOC> "
4075 "ビットを含む。 それ以外の場合、そのビットはオフである。 慣例として、 \"NAME"
4076 "\" は再配置が適用されるセクションが指定される。 よって B<.text> についての再"
4077 "配置セクションは、通常は B<.rela.text> という名前を持つ。 このセクションのタ"
4078 "イプは B<SHT_RELA> である。"
4081 #: build/C/man5/elf.5:1440
4087 #: build/C/man5/elf.5:1448 build/C/man5/elf.5:1456
4089 "This section holds read-only data that typically contributes to a "
4090 "nonwritable segment in the process image. This section is of type "
4091 "B<SHT_PROGBITS>. The attribute used is B<SHF_ALLOC>."
4093 "このセクションはリードオンリーのデータを保持する。 このデータはプロセスイメー"
4094 "ジにおける書き込み不可能なセグメントに置かれる。 このセクションのタイプは "
4095 "B<SHT_PROGBITS> である。 使用される属性は B<SHF_ALLOC> である。"
4098 #: build/C/man5/elf.5:1448
4101 msgstr "I<.rodata1>"
4104 #: build/C/man5/elf.5:1456
4106 msgid "I<.shstrtab>"
4107 msgstr "I<.shstrtab>"
4110 #: build/C/man5/elf.5:1462
4112 "This section holds section names. This section is of type B<SHT_STRTAB>. "
4113 "No attribute types are used."
4115 "このセクションはセクション名を保持する。 このセクションのタイプは "
4116 "B<SHT_STRTAB> である。 属性タイプは使用されない。"
4119 #: build/C/man5/elf.5:1462
4125 #: build/C/man5/elf.5:1474
4127 "This section holds strings, most commonly the strings that represent the "
4128 "names associated with symbol table entries. If the file has a loadable "
4129 "segment that includes the symbol string table, the section's attributes will "
4130 "include the B<SHF_ALLOC> bit. Otherwise the bit will be off. This section "
4131 "is of type B<SHT_STRTAB>."
4133 "このセクションは文字列を保持する。 最も一般的なのは、シンボルテーブルエントリ"
4134 "に関連づけられた 名前を表す文字列である。 ファイルがシンボル文字列テーブルを"
4135 "含むロード可能セグメントを持つ場合、 セクションの属性は B<SHF_ALLOC> ビットを"
4136 "含む。 それ以外の場合、そのビットはオフである。 このセクションのタイプは "
4137 "B<SHT_STRTAB> である。"
4140 #: build/C/man5/elf.5:1474
4146 #: build/C/man5/elf.5:1485
4148 "This section holds a symbol table. If the file has a loadable segment that "
4149 "includes the symbol table, the section's attributes will include the "
4150 "B<SHF_ALLOC> bit. Otherwise the bit will be off. This section is of type "
4153 "このセクションはシンボルテーブルを保持する。 ファイルがシンボルテーブルを含む"
4154 "ロード可能セグメントを持つ場合、 セクションの属性は B<SHF_ALLOC> ビットを含"
4155 "む。 それ以外の場合、ビットはオフである。 このセクションのタイプは "
4156 "B<SHT_SYMTAB> である。"
4159 #: build/C/man5/elf.5:1485
4166 #: build/C/man5/elf.5:1497
4168 "This section holds the \"text\", or executable instructions, of a program. "
4169 "This section is of type B<SHT_PROGBITS>. The attributes used are "
4170 "B<SHF_ALLOC> and B<SHF_EXECINSTR>."
4172 "このセクションはプログラムの \"テキスト\" または実行可能命令を保持する。 セク"
4173 "ションのタイプは B<SHT_PROGBITS> である。 使用される属性は B<SHF_ALLOC> と "
4174 "B<SHF_EXECINSTR> である。"
4177 #: build/C/man5/elf.5:1508
4179 "String table sections hold null-terminated character sequences, commonly "
4180 "called strings. The object file uses these strings to represent symbol and "
4181 "section names. One references a string as an index into the string table "
4182 "section. The first byte, which is index zero, is defined to hold a null "
4183 "byte (\\(aq\\e0\\(aq). Similarly, a string table's last byte is defined to "
4184 "hold a null byte, ensuring null termination for all strings."
4186 "文字列テーブルセクションは NULL 文字で終端されたキャラクタ配列 (通常文字列と"
4187 "呼ばれるもの) を保持する。 オブジェクトファイルはこれらの文字列を シンボル名"
4188 "とセクション名を表すために使う。 文字列は、文字列テーブルセクションへのイン"
4189 "デックスとして参照される。 インデックス 0 の最初のバイトは、NULL バイト "
4190 "(\\(aq\\e0\\(aq) を 保持すると定義されている。 同様に文字列テーブルの最後のバ"
4191 "イトも NULL 文字を保持すると定義されている。 これは全ての文字列が NULL バイト"
4192 "で終端されていることを保証するためである。"
4195 #: build/C/man5/elf.5:1513
4197 "An object file's symbol table holds information needed to locate and "
4198 "relocate a program's symbolic definitions and references. A symbol table "
4199 "index is a subscript into this array."
4201 "オブジェクトファイルのシンボルテーブルは、 プログラムのシンボル定義と参照を配"
4202 "置または再配置するのに 必要な情報を保持する。"
4205 #: build/C/man5/elf.5:1524
4208 "typedef struct {\n"
4209 " uint32_t st_name;\n"
4210 " Elf32_Addr st_value;\n"
4211 " uint32_t st_size;\n"
4212 " unsigned char st_info;\n"
4213 " unsigned char st_other;\n"
4214 " uint16_t st_shndx;\n"
4217 "typedef struct {\n"
4218 " uint32_t st_name;\n"
4219 " Elf32_Addr st_value;\n"
4220 " uint32_t st_size;\n"
4221 " unsigned char st_info;\n"
4222 " unsigned char st_other;\n"
4223 " uint16_t st_shndx;\n"
4227 #: build/C/man5/elf.5:1537
4230 "typedef struct {\n"
4231 " uint32_t st_name;\n"
4232 " unsigned char st_info;\n"
4233 " unsigned char st_other;\n"
4234 " uint16_t st_shndx;\n"
4235 " Elf64_Addr st_value;\n"
4236 " uint64_t st_size;\n"
4239 "typedef struct {\n"
4240 " uint32_t st_name;\n"
4241 " unsigned char st_info;\n"
4242 " unsigned char st_other;\n"
4243 " uint16_t st_shndx;\n"
4244 " Elf64_Addr st_value;\n"
4245 " uint64_t st_size;\n"
4248 #. .Bl -tag -width "st_value"
4250 #: build/C/man5/elf.5:1543
4252 "The 32-bit and 64-bit versions have the same members, just in a different "
4255 "32 ビット版と 64 ビット版は同じメンバを持ち、単に順番が異なるだけである。"
4258 #: build/C/man5/elf.5:1543
4264 #: build/C/man5/elf.5:1551
4266 "This member holds an index into the object file's symbol string table, which "
4267 "holds character representations of the symbol names. If the value is "
4268 "nonzero, it represents a string table index that gives the symbol name. "
4269 "Otherwise, the symbol table has no name."
4271 "このメンバはオブジェクトファイルのシンボル文字列テーブルの インデックスを保持"
4272 "する。 シンボル文字列テーブルはシンボル名の文字表現を保持する。 この値が 0 で"
4273 "ない場合、シンボル名を得るための文字テーブルインデックスを表す。 それ以外の場"
4274 "合、シンボルテーブルは名前を持たない。"
4277 #: build/C/man5/elf.5:1551
4280 msgstr "I<st_value>"
4283 #: build/C/man5/elf.5:1554
4284 msgid "This member gives the value of the associated symbol."
4285 msgstr "このメンバは関連づけられたシンボルの値を表す。"
4288 #: build/C/man5/elf.5:1554
4294 #: build/C/man5/elf.5:1559
4296 "Many symbols have associated sizes. This member holds zero if the symbol "
4297 "has no size or an unknown size."
4299 "多くのシンボルにはそれに関連づけられたサイズがある。 シンボルがサイズを持たな"
4300 "い場合、またはサイズが不明な場合、 このメンバは 0 である。"
4303 #: build/C/man5/elf.5:1559
4308 #. .Bl -tag -width "STT_SECTION"
4310 #: build/C/man5/elf.5:1563
4311 msgid "This member specifies the symbol's type and binding attributes:"
4312 msgstr "このメンバはシンボルのタイプとバインディング (binding) 属性を指定する:"
4315 #: build/C/man5/elf.5:1564
4317 msgid "B<STT_NOTYPE>"
4318 msgstr "B<STT_NOTYPE>"
4321 #: build/C/man5/elf.5:1567
4322 msgid "The symbol's type is not defined."
4323 msgstr "シンボルのタイプが定義されていない。"
4326 #: build/C/man5/elf.5:1567
4328 msgid "B<STT_OBJECT>"
4329 msgstr "B<STT_OBJECT>"
4332 #: build/C/man5/elf.5:1570
4333 msgid "The symbol is associated with a data object."
4334 msgstr "シンボルはデータオブジェクトに関連づけられている。"
4337 #: build/C/man5/elf.5:1570
4340 msgstr "B<STT_FUNC>"
4343 #: build/C/man5/elf.5:1573
4344 msgid "The symbol is associated with a function or other executable code."
4345 msgstr "シンボルは関数またはその他の実行コードに関連づけられている。"
4348 #: build/C/man5/elf.5:1573
4350 msgid "B<STT_SECTION>"
4351 msgstr "B<STT_SECTION>"
4354 #: build/C/man5/elf.5:1580
4356 "The symbol is associated with a section. Symbol table entries of this type "
4357 "exist primarily for relocation and normally have B<STB_LOCAL> bindings."
4359 "シンボルはセクションに関連づけられている。 このタイプのシンボルテーブルエント"
4360 "リは、 主として再配置のために存在し、通常は B<STB_LOCAL> バインディングを持"
4364 #: build/C/man5/elf.5:1580
4367 msgstr "B<STT_FILE>"
4370 #: build/C/man5/elf.5:1591
4372 "By convention, the symbol's name gives the name of the source file "
4373 "associated with the object file. A file symbol has B<STB_LOCAL> bindings, "
4374 "its section index is B<SHN_ABS>, and it precedes the other B<STB_LOCAL> "
4375 "symbols of the file, if it is present."
4377 "慣例として、シンボルの名前は オブジェクトファイルに関連づけられたソースファイ"
4378 "ルの名前を指定する。 ファイルシンボルは B<STB_LOCAL> バインディングを持ち、そ"
4379 "のセクションインデックスは B<SHN_ABS> である。 ファイルシンボルは、ファイルに"
4380 "他の B<STB_LOCAL> シンボルがある場合は、それよりも先に来る。"
4383 #: build/C/man5/elf.5:1591
4385 msgid "B<STT_LOPROC>"
4386 msgstr "B<STT_LOPROC>"
4389 #: build/C/man5/elf.5:1596
4391 "This value up to and including B<STT_HIPROC> is reserved for processor-"
4392 "specific semantics."
4394 "この値以上で B<STT_HIPROC> 以下の範囲はプロセッサ固有の意味に予約されている。"
4397 #: build/C/man5/elf.5:1596
4399 msgid "B<STT_HIPROC>"
4400 msgstr "B<STT_HIPROC>"
4403 #. .Bl -tag -width "STB_GLOBAL"
4405 #: build/C/man5/elf.5:1603
4407 "This value down to and including B<STT_LOPROC> is reserved for processor-"
4408 "specific semantics."
4410 "この値以下で B<STT_LOPROC> 以上の範囲はプロセッサ固有の意味に予約されている。"
4413 #: build/C/man5/elf.5:1603
4415 msgid "B<STB_LOCAL>"
4416 msgstr "B<STB_LOCAL>"
4419 #: build/C/man5/elf.5:1609
4421 "Local symbols are not visible outside the object file containing their "
4422 "definition. Local symbols of the same name may exist in multiple files "
4423 "without interfering with each other."
4425 "局所的シンボルはその定義を含むオブジェクトファイルの外からは見えない。 同じ名"
4426 "前の局所的シンボルは、お互いに影響を受けることなく、 複数のファイルに存在でき"
4430 #: build/C/man5/elf.5:1609
4432 msgid "B<STB_GLOBAL>"
4433 msgstr "B<STB_GLOBAL>"
4436 #: build/C/man5/elf.5:1615
4438 "Global symbols are visible to all object files being combined. One file's "
4439 "definition of a global symbol will satisfy another file's undefined "
4440 "reference to the same symbol."
4442 "大域的シンボルは結びつけられている全てのオブジェクトファイルから見える。 1 つ"
4443 "のファイルで大域的シンボルが定義されていたら、 他のファイルでは同じシンボルへ"
4447 #: build/C/man5/elf.5:1615
4450 msgstr "B<STB_WEAK>"
4453 #: build/C/man5/elf.5:1619
4455 "Weak symbols resemble global symbols, but their definitions have lower "
4457 msgstr "弱シンボルは大域的シンボルに似ているが、その定義は優先度が低い。"
4460 #: build/C/man5/elf.5:1619
4462 msgid "B<STB_LOPROC>"
4463 msgstr "B<STB_LOPROC>"
4466 #: build/C/man5/elf.5:1624
4468 "This value up to and including B<STB_HIPROC> is reserved for processor-"
4469 "specific semantics."
4471 "この値以上で B<STB_HIPROC> 以下の範囲はプロセッサ固有の意味に予約されている。"
4474 #: build/C/man5/elf.5:1624
4476 msgid "B<STB_HIPROC>"
4477 msgstr "B<STB_HIPROC>"
4480 #: build/C/man5/elf.5:1629
4482 "This value down to and including B<STB_LOPROC> is reserved for processor-"
4483 "specific semantics."
4485 "この値以下で B<STB_LOPROC> 以上の範囲はプロセッサ固有の意味に予約されている。"
4488 #: build/C/man5/elf.5:1631
4489 msgid "There are macros for packing and unpacking the binding and type fields:"
4491 "バインディングとタイプフィールドを パックしたりアンパックしたりするマクロがあ"
4495 #: build/C/man5/elf.5:1638
4497 "B<ELF32_ST_BIND>(info) or B<ELF64_ST_BIND>(info) extract a binding from an "
4500 "B<ELF32_ST_BIND>(info) または B<ELF64_ST_BIND>(info) I<st_info> の値からバ"
4504 #: build/C/man5/elf.5:1642
4505 msgid "B<ELF32_ST_TYPE>(info) or B<ELF64_ST_TYPE>(info)"
4506 msgstr "B<ELF32_ST_TYPE>(info) または B<ELF64_ST_TYPE>(info)"
4509 #: build/C/man5/elf.5:1646
4510 msgid "extract a type from an I<st_info> value."
4511 msgstr "I<st_info> の値からタイプを取り出す。"
4514 #: build/C/man5/elf.5:1650
4515 msgid "B<ELF32_ST_INFO>(bind, type) or B<ELF64_ST_INFO>(bind, type)"
4516 msgstr "B<ELF32_ST_INFO>(bind, type) または B<ELF64_ST_INFO>(bind, type)"
4519 #: build/C/man5/elf.5:1654
4520 msgid "convert a binding and a type into an I<st_info> value."
4521 msgstr "バインディングとタイプを I<st_info> の値に変換する。"
4524 #: build/C/man5/elf.5:1656
4527 msgstr "I<st_other>"
4529 #. .Bl -tag -width "STV_PROTECTED"
4531 #: build/C/man5/elf.5:1660
4532 msgid "This member defines the symbol visibility."
4533 msgstr "このメンバはシンボルの visibility (見える範囲) を規定する。"
4536 #: build/C/man5/elf.5:1661
4538 msgid "B<STV_DEFAULT>"
4539 msgstr "B<STV_DEFAULT>"
4542 #: build/C/man5/elf.5:1665
4543 msgid "Default symbol visibility rules."
4544 msgstr "デフォルトのシンボル visibility ルール。"
4547 #: build/C/man5/elf.5:1665
4549 msgid "B<STV_INTERNAL>"
4550 msgstr "B<STV_INTERNAL>"
4553 #: build/C/man5/elf.5:1668
4554 msgid "Processor-specific hidden class."
4555 msgstr "プロセッサ固有の隠しクラス。"
4558 #: build/C/man5/elf.5:1668
4560 msgid "B<STV_HIDDEN>"
4561 msgstr "B<STV_HIDDEN>"
4564 #: build/C/man5/elf.5:1671
4565 msgid "Symbol is unavailable in other modules."
4566 msgstr "シンボルは他のモジュールからは利用できない。"
4569 #: build/C/man5/elf.5:1671
4571 msgid "B<STV_PROTECTED>"
4572 msgstr "B<STV_PROTECTED>"
4575 #: build/C/man5/elf.5:1674
4576 msgid "Not preemptible, not exported."
4577 msgstr "横取りできず (not preemptible)、公開されない。"
4580 #: build/C/man5/elf.5:1677
4581 msgid "There are macros for extracting the visibility type:"
4582 msgstr "visibility 種別を抽出するためのマクロがある。"
4585 #: build/C/man5/elf.5:1681
4586 msgid "B<ELF32_ST_VISIBILITY>(other) or B<ELF64_ST_VISIBILITY>(other)"
4587 msgstr "B<ELF32_ST_VISIBILITY>(other) または B<ELF64_ST_VISIBILITY>(other)"
4590 #: build/C/man5/elf.5:1683
4593 msgstr "I<st_shndx>"
4597 #: build/C/man5/elf.5:1691
4599 "Every symbol table entry is \"defined\" in relation to some section. This "
4600 "member holds the relevant section header table index."
4602 "各シンボルテーブルエントリは、いくつかのセクションに関連して \"定義されている"
4603 "\"。 このメンバは関連するセクションヘッダテーブルインデックスを保持する。"
4606 #: build/C/man5/elf.5:1699
4608 "Relocation is the process of connecting symbolic references with symbolic "
4609 "definitions. Relocatable files must have information that describes how to "
4610 "modify their section contents, thus allowing executable and shared object "
4611 "files to hold the right information for a process's program image. "
4612 "Relocation entries are these data."
4614 "再配置はシンボル参照とシンボル定義を結合するプロセスである。 再配置可能ファイ"
4615 "ルはセクションの内容をどのように修正するかに関する 情報を持たなければならな"
4616 "い。 これにより、実行可能ファイルと共有オブジェクトファイルは プロセスのプロ"
4617 "グラムイメージについての正しい情報を持つことができる。 再配置エントリは以下の"
4621 #: build/C/man5/elf.5:1701
4622 msgid "Relocation structures that do not need an addend:"
4623 msgstr "加数を必要としない再配置構造体。"
4626 #: build/C/man5/elf.5:1708
4629 "typedef struct {\n"
4630 " Elf32_Addr r_offset;\n"
4631 " uint32_t r_info;\n"
4634 "typedef struct {\n"
4635 " Elf32_Addr r_offset;\n"
4636 " uint32_t r_info;\n"
4640 #: build/C/man5/elf.5:1717
4643 "typedef struct {\n"
4644 " Elf64_Addr r_offset;\n"
4645 " uint64_t r_info;\n"
4648 "typedef struct {\n"
4649 " Elf64_Addr r_offset;\n"
4650 " uint64_t r_info;\n"
4654 #: build/C/man5/elf.5:1721
4655 msgid "Relocation structures that need an addend:"
4656 msgstr "加数を必要とする再配置構造体。"
4659 #: build/C/man5/elf.5:1729
4662 "typedef struct {\n"
4663 " Elf32_Addr r_offset;\n"
4664 " uint32_t r_info;\n"
4665 " int32_t r_addend;\n"
4668 "typedef struct {\n"
4669 " Elf32_Addr r_offset;\n"
4670 " uint32_t r_info;\n"
4671 " int32_t r_addend;\n"
4675 #: build/C/man5/elf.5:1739
4678 "typedef struct {\n"
4679 " Elf64_Addr r_offset;\n"
4680 " uint64_t r_info;\n"
4681 " int64_t r_addend;\n"
4684 "typedef struct {\n"
4685 " Elf64_Addr r_offset;\n"
4686 " uint64_t r_info;\n"
4687 " int64_t r_addend;\n"
4691 #: build/C/man5/elf.5:1742
4694 msgstr "I<r_offset>"
4697 #: build/C/man5/elf.5:1750
4699 "This member gives the location at which to apply the relocation action. For "
4700 "a relocatable file, the value is the byte offset from the beginning of the "
4701 "section to the storage unit affected by the relocation. For an executable "
4702 "file or shared object, the value is the virtual address of the storage unit "
4703 "affected by the relocation."
4705 "このメンバは再配置動作が適用される位置を与える。 再配置可能ファイルの場合、こ"
4706 "の値はセクションの先頭から 再配置で影響を受ける格納単位 (storage unit) までの"
4707 "バイトオフセットである。 実行可能ファイルまたは共有オブジェクトの場合、 この"
4708 "値は再配置で影響を受ける格納単位の仮想アドレスである。"
4711 #: build/C/man5/elf.5:1750
4717 #: build/C/man5/elf.5:1765
4719 "This member gives both the symbol table index with respect to which the "
4720 "relocation must be made and the type of relocation to apply. Relocation "
4721 "types are processor specific. When the text refers to a relocation entry's "
4722 "relocation type or symbol table index, it means the result of applying B<ELF_"
4723 "[32|64]_R_TYPE> or B<ELF[32|64]_R_SYM>, respectively, to the entry's "
4726 "このメンバは、再配置が行われなければならないシンボルテーブルインデックスと、 "
4727 "適用される再配置のタイプの両方を与える。 再配置タイプはプロセッサ毎に異な"
4728 "る。 テキストが再配置エントリの再配置タイプ またはシンボルテーブルインデック"
4729 "スを参照している場合、 それぞれエントリの I<r_info> メンバに対して、それぞれ "
4730 "B<ELF_[32|64]_R_TYPE> と B<ELF[32|64]_R_SYM> を適用した結果を意味する。"
4733 #: build/C/man5/elf.5:1765
4736 msgstr "I<r_addend>"
4740 #: build/C/man5/elf.5:1770
4742 "This member specifies a constant addend used to compute the value to be "
4743 "stored into the relocatable field."
4745 "このメンバは定数の加数を指定する。 この加数は再配置可能フィールドに格納される"
4749 #: build/C/man5/elf.5:1775
4751 "The .dynamic section contains a series of structures that hold relevant "
4752 "dynamic linking information. The d_tag member controls the interpretation "
4755 "\\&.dynamic セクションは、関連する動的リンク情報を保持している 一連の構造体を"
4756 "保持する。 d_tag メンバは d_un の解釈を制御する。"
4759 #: build/C/man5/elf.5:1786
4762 "typedef struct {\n"
4763 " Elf32_Sword d_tag;\n"
4765 " Elf32_Word d_val;\n"
4766 " Elf32_Addr d_ptr;\n"
4769 "extern Elf32_Dyn _DYNAMIC[];\n"
4771 "typedef struct {\n"
4772 " Elf32_Sword d_tag;\n"
4774 " Elf32_Word d_val;\n"
4775 " Elf32_Addr d_ptr;\n"
4778 "extern Elf32_Dyn _DYNAMIC[];\n"
4781 #: build/C/man5/elf.5:1799
4784 "typedef struct {\n"
4785 " Elf64_Sxword d_tag;\n"
4787 " Elf64_Xword d_val;\n"
4788 " Elf64_Addr d_ptr;\n"
4791 "extern Elf64_Dyn _DYNAMIC[];\n"
4793 "typedef struct {\n"
4794 " Elf64_Sxword d_tag;\n"
4796 " Elf64_Xword d_val;\n"
4797 " Elf64_Addr d_ptr;\n"
4800 "extern Elf64_Dyn _DYNAMIC[];\n"
4803 #: build/C/man5/elf.5:1802
4808 #. .Bl -tag -width "DT_SYMBOLIC"
4810 #: build/C/man5/elf.5:1806
4811 msgid "This member may have any of the following values:"
4812 msgstr "このメンバは以下の値を持つことができる:"
4815 #: build/C/man5/elf.5:1807
4821 #: build/C/man5/elf.5:1810
4822 msgid "Marks end of dynamic section"
4823 msgstr "動的セクションの終りのマーク"
4826 #: build/C/man5/elf.5:1810
4828 msgid "B<DT_NEEDED>"
4829 msgstr "B<DT_NEEDED>"
4832 #: build/C/man5/elf.5:1813
4833 msgid "String table offset to name of a needed library"
4834 msgstr "必要なライブラリの名前への文字列テーブルオフセット"
4837 #: build/C/man5/elf.5:1813
4839 msgid "B<DT_PLTRELSZ>"
4840 msgstr "B<DT_PLTRELSZ>"
4843 #: build/C/man5/elf.5:1816
4844 msgid "Size in bytes of PLT relocs"
4845 msgstr "PLT 再配置 (reloc) テーブルのサイズ (バイト単位)"
4848 #: build/C/man5/elf.5:1816
4850 msgid "B<DT_PLTGOT>"
4851 msgstr "B<DT_PLTGOT>"
4854 #: build/C/man5/elf.5:1819
4855 msgid "Address of PLT and/or GOT"
4856 msgstr "PLT と GOT (または何れか一方) のアドレス"
4859 #: build/C/man5/elf.5:1819
4865 #: build/C/man5/elf.5:1822
4866 msgid "Address of symbol hash table"
4867 msgstr "シンボルハッシュテーブルのアドレス"
4870 #: build/C/man5/elf.5:1822
4872 msgid "B<DT_STRTAB>"
4873 msgstr "B<DT_STRTAB>"
4876 #: build/C/man5/elf.5:1825
4877 msgid "Address of string table"
4878 msgstr "文字列テーブルのアドレス"
4881 #: build/C/man5/elf.5:1825
4883 msgid "B<DT_SYMTAB>"
4884 msgstr "B<DT_SYMTAB>"
4887 #: build/C/man5/elf.5:1828
4888 msgid "Address of symbol table"
4889 msgstr "シンボルテーブルのアドレス"
4892 #: build/C/man5/elf.5:1828
4898 #: build/C/man5/elf.5:1831
4899 msgid "Address of Rela relocs table"
4900 msgstr "Rela 再配置テーブルのアドレス"
4903 #: build/C/man5/elf.5:1831
4905 msgid "B<DT_RELASZ>"
4906 msgstr "B<DT_RELASZ>"
4909 #: build/C/man5/elf.5:1834
4910 msgid "Size in bytes of Rela table"
4911 msgstr "Rela テーブルのサイズ (バイト単位)"
4914 #: build/C/man5/elf.5:1834
4916 msgid "B<DT_RELAENT>"
4917 msgstr "B<DT_RELAENT>"
4920 #: build/C/man5/elf.5:1837
4921 msgid "Size in bytes of a Rela table entry"
4922 msgstr "Rela テーブルエントリのサイズ (バイト単位)"
4925 #: build/C/man5/elf.5:1837
4928 msgstr "B<DT_STRSZ>"
4931 #: build/C/man5/elf.5:1840
4932 msgid "Size in bytes of string table"
4933 msgstr "文字列テーブルのサイズ (バイト単位)"
4936 #: build/C/man5/elf.5:1840
4938 msgid "B<DT_SYMENT>"
4939 msgstr "B<DT_SYMENT>"
4942 #: build/C/man5/elf.5:1843
4943 msgid "Size in bytes of a symbol table entry"
4944 msgstr "シンボルテーブルエントリのサイズ (バイト単位)"
4947 #: build/C/man5/elf.5:1843
4953 #: build/C/man5/elf.5:1846
4954 msgid "Address of the initialization function"
4958 #: build/C/man5/elf.5:1846
4964 #: build/C/man5/elf.5:1849
4965 msgid "Address of the termination function"
4969 #: build/C/man5/elf.5:1849
4971 msgid "B<DT_SONAME>"
4972 msgstr "B<DT_SONAME>"
4975 #: build/C/man5/elf.5:1852
4976 msgid "String table offset to name of shared object"
4977 msgstr "共有オブジェクトの名前への文字列テーブルオフセット"
4980 #: build/C/man5/elf.5:1852
4983 msgstr "B<DT_RPATH>"
4986 #: build/C/man5/elf.5:1855
4987 msgid "String table offset to library search path (deprecated)"
4988 msgstr "ライブラリ検索パスへの文字列テーブルオフセット (推奨されない)"
4991 #: build/C/man5/elf.5:1855
4993 msgid "B<DT_SYMBOLIC>"
4994 msgstr "B<DT_SYMBOLIC>"
4997 #: build/C/man5/elf.5:1858
4999 "Alert linker to search this shared object before the executable for symbols"
5001 "リンカがシンボルの実行可能ファイルより前に この共有オブジェクトを検索した場合"
5005 #: build/C/man5/elf.5:1858
5011 #: build/C/man5/elf.5:1861
5012 msgid "Address of Rel relocs table"
5013 msgstr "Rel 再配置テーブルのアドレス"
5016 #: build/C/man5/elf.5:1861
5019 msgstr "B<DT_RELSZ>"
5022 #: build/C/man5/elf.5:1864
5023 msgid "Size in bytes of Rel table"
5024 msgstr "Rel テーブルのサイズ (バイト単位)"
5027 #: build/C/man5/elf.5:1864
5029 msgid "B<DT_RELENT>"
5030 msgstr "B<DT_RELENT>"
5033 #: build/C/man5/elf.5:1867
5034 msgid "Size in bytes of a Rel table entry"
5035 msgstr "Rel テーブルエントリのサイズ (バイト単位)"
5038 #: build/C/man5/elf.5:1867
5040 msgid "B<DT_PLTREL>"
5041 msgstr "B<DT_PLTREL>"
5044 #: build/C/man5/elf.5:1870
5045 msgid "Type of reloc the PLT refers (Rela or Rel)"
5046 msgstr "PLT が参照する再配置テーブルのタイプ (Rela または Rel)"
5049 #: build/C/man5/elf.5:1870
5052 msgstr "B<DT_DEBUG>"
5055 #: build/C/man5/elf.5:1873
5056 msgid "Undefined use for debugging"
5057 msgstr "デバッグのために使用されている。内容は定義されていない。"
5060 #: build/C/man5/elf.5:1873
5062 msgid "B<DT_TEXTREL>"
5063 msgstr "B<DT_TEXTREL>"
5066 #: build/C/man5/elf.5:1876
5068 "Absence of this indicates no relocs should apply to a nonwritable segment"
5070 "これが指定されていない場合、 書き込み不可のセグメントには再配置は適用されな"
5074 #: build/C/man5/elf.5:1876
5076 msgid "B<DT_JMPREL>"
5077 msgstr "B<DT_JMPREL>"
5080 #: build/C/man5/elf.5:1879
5081 msgid "Address of reloc entries solely for the PLT"
5082 msgstr "PLT 専用の再配置エントリのアドレス"
5085 #: build/C/man5/elf.5:1879
5087 msgid "B<DT_BIND_NOW>"
5088 msgstr "B<DT_BIND_NOW>"
5091 #: build/C/man5/elf.5:1883
5093 "Instruct dynamic linker to process all relocs before transferring control to "
5096 "実行可能ファイルに制御を譲る前に、 全ての再配置を処理するように動的リンカに指"
5100 #: build/C/man5/elf.5:1883
5102 msgid "B<DT_RUNPATH>"
5103 msgstr "B<DT_RUNPATH>"
5106 #: build/C/man5/elf.5:1886
5107 msgid "String table offset to library search path"
5108 msgstr "ライブラリ検索パスへの文字列テーブルオフセット"
5111 #: build/C/man5/elf.5:1886
5113 msgid "B<DT_LOPROC>"
5114 msgstr "B<DT_LOPROC>"
5117 #: build/C/man5/elf.5:1889
5118 msgid "Start of processor-specific semantics"
5119 msgstr "プロセッサ固有の意味の開始"
5122 #: build/C/man5/elf.5:1889
5124 msgid "B<DT_HIPROC>"
5125 msgstr "B<DT_HIPROC>"
5128 #: build/C/man5/elf.5:1892
5129 msgid "End of processor-specific semantics"
5130 msgstr "プロセッサ固有の意味の終了"
5133 #: build/C/man5/elf.5:1894
5139 #: build/C/man5/elf.5:1897
5140 msgid "This member represents integer values with various interpretations."
5141 msgstr "このメンバは様々な意味に解釈される整数値である。"
5144 #: build/C/man5/elf.5:1897
5150 #: build/C/man5/elf.5:1905
5152 "This member represents program virtual addresses. When interpreting these "
5153 "addresses, the actual address should be computed based on the original file "
5154 "value and memory base address. Files do not contain relocation entries to "
5155 "fixup these addresses."
5157 "このメンバはプログラムの仮想アドレスを表す。 これらのアドレスを解釈する際"
5158 "に、 実際のアドレスは元々のファイルの値と メモリの基底アドレスから計算され"
5159 "る。 ファイルにはこれらのアドレスを修正するための 再配置エントリを含めてはな"
5163 #: build/C/man5/elf.5:1905
5166 msgstr "I<_DYNAMIC>"
5170 #: build/C/man5/elf.5:1910
5172 "Array containing all the dynamic structures in the .dynamic section. This "
5173 "is automatically populated by the linker."
5175 "\\&.dynamic セクションにある全ての動的構造体を含む配列。 これは自動的にリンカ"
5179 #. ELF support first appeared in
5181 #. although not all supported platforms use it as the native
5182 #. binary file format.
5184 #: build/C/man5/elf.5:1919
5185 msgid "ELF first appeared in System V. The ELF format is an adopted standard."
5187 "ELF は System V で初めて登場した。 ELF 自体は System V で初めて登場した。 "
5188 "ELF フォーマットは採択された標準である。"
5191 #. The original version of this manual page was written by
5192 #. .An Jeroen Ruigrok van der Werven
5193 #. .Aq asmodai@FreeBSD.org
5194 #. with inspiration from BSDi's
5199 #: build/C/man5/elf.5:1937
5201 "The extensions for I<e_phnum>, I<e_shnum> and I<e_strndx> respectively are "
5202 "Linux extensions. Sun, BSD and AMD64 also support them; for further "
5203 "information, look under SEE ALSO."
5205 "I<e_phnum>, I<e_shnum>, I<e_strndx> に対する拡張は、いずれも Linux での拡張"
5207 "ある。Sun, BSD, AMD64 もこれに対応している。詳しい情報は、関連項目を参照。"
5210 #: build/C/man5/elf.5:1944
5211 msgid "B<as>(1), B<gdb>(1), B<ld>(1), B<objdump>(1), B<execve>(2), B<core>(5)"
5212 msgstr "B<as>(1), B<gdb>(1), B<ld>(1), B<objdump>(1), B<execve>(2), B<core>(5)"
5215 #: build/C/man5/elf.5:1947
5216 msgid "Hewlett-Packard, I<Elf-64 Object File Format>."
5217 msgstr "Hewlett-Packard, I<Elf-64 Object File Format>."
5220 #: build/C/man5/elf.5:1950
5221 msgid "Santa Cruz Operation, I<System V Application Binary Interface>."
5222 msgstr "Santa Cruz Operation, I<System V Application Binary Interface>."
5225 #: build/C/man5/elf.5:1954
5227 "UNIX System Laboratories, \"Object Files\", I<Executable and Linking Format "
5230 "UNIX System Laboratories, \"Object Files\", I<Executable and Linking Format "
5234 #: build/C/man5/elf.5:1957
5235 msgid "Sun Microsystems, I<Linker and Libraries Guide>."
5236 msgstr "Sun Microsystems, I<Linker and Libraries Guide>."
5239 #: build/C/man5/elf.5:1960
5241 "AMD64 ABI Draft, I<System V Application Binary Interface AMD64 Architecture "
5242 "Processor Supplement>."
5244 "AMD64 ABI Draft, I<System V Application Binary Interface AMD64 Architecture\n"
5245 "Processor Supplement>."
5248 #: build/C/man3/end.3:25
5254 #: build/C/man3/end.3:25
5260 #: build/C/man3/end.3:28
5261 msgid "etext, edata, end - end of program segments"
5262 msgstr "etext, edata, end - プログラムセグメントの終わり"
5265 #: build/C/man3/end.3:33
5268 "B<extern>I< etext>B<;>\n"
5269 "B<extern>I< edata>B<;>\n"
5270 "B<extern>I< end>B<;>\n"
5272 "B<extern>I< etext>B<;>\n"
5273 "B<extern>I< edata>B<;>\n"
5274 "B<extern>I< end>B<;>\n"
5277 #: build/C/man3/end.3:37
5279 "The addresses of these symbols indicate the end of various program segments:"
5280 msgstr "これらのシンボルのアドレスは各種のプログラムセグメントの終わりを示す。"
5283 #: build/C/man3/end.3:37
5289 #: build/C/man3/end.3:41
5291 "This is the first address past the end of the text segment (the program "
5293 msgstr "テキストセグメント (プログラムのコード) の末尾の次のアドレス。"
5296 #: build/C/man3/end.3:41
5302 #: build/C/man3/end.3:45
5303 msgid "This is the first address past the end of the initialized data segment."
5304 msgstr "初期化されたデータのセグメントの末尾の次のアドレス。"
5307 #: build/C/man3/end.3:45
5313 #: build/C/man3/end.3:49
5315 "This is the first address past the end of the uninitialized data segment "
5316 "(also known as the BSS segment)."
5318 "初期化されていないデータのセグメント (BSS セグメントとも言われる) の末尾の次"
5322 #: build/C/man3/end.3:52
5324 "Although these symbols have long been provided on most UNIX systems, they "
5325 "are not standardized; use with caution."
5327 "これらのシンボルは長年ほとんどの UNIX システムで提供されているが、 標準化され"
5331 #: build/C/man3/end.3:55
5333 "The program must explicitly declare these symbols; they are not defined in "
5336 "プログラムではこれらのシンボルは明示的に宣言しなければならない。 これらはどの"
5337 "ヘッダファイルでも定義されていない。"
5340 #: build/C/man3/end.3:63
5342 "On some systems the names of these symbols are preceded by underscores, "
5343 "thus: I<_etext>, I<_edata>, and I<_end>. These symbols are also defined for "
5344 "programs compiled on Linux."
5346 "いくつかのシステムでは、これらのシンボルの名前は前にアンダースコアが 付いてい"
5347 "て、 I<_etext>, I<_edata>, I<_end> となっている。 Linux でコンパイルされたプ"
5348 "ログラムでは、 これらのシンボルでも定義される。"
5351 #: build/C/man3/end.3:75
5353 "At the start of program execution, the program break will be somewhere near "
5354 "I<&end> (perhaps at the start of the following page). However, the break "
5355 "will change as memory is allocated via B<brk>(2) or B<malloc>(3). Use "
5356 "B<sbrk>(2) with an argument of zero to find the current value of the "
5359 "プログラムの実行開始時に、プログラム・ブレークは I<&end> の近くのどこか (おそ"
5360 "らく次のページの先頭) になる。 しかしながら、 B<brk>(2) や B<malloc>(3) で"
5361 "メモリが割り当てられるに連れて、プログラム・ブレークは変化していく。 引き数"
5362 "に 0 を指定して B<sbrk>(2) を呼び出すことで、プログラム・ブレークの現在値を"
5366 #: build/C/man3/end.3:77
5367 msgid "When run, the program below produces output such as the following:"
5368 msgstr "下記のプログラムを実行すると、次のような出力が得られる。"
5371 #: build/C/man3/end.3:85
5375 "First address past:\n"
5376 " program text (etext) 0x8048568\n"
5377 " initialized data (edata) 0x804a01c\n"
5378 " uninitialized data (end) 0x804a024\n"
5381 "First address past:\n"
5382 " program text (etext) 0x8048568\n"
5383 " initialized data (edata) 0x804a01c\n"
5384 " uninitialized data (end) 0x804a024\n"
5387 #: build/C/man3/end.3:87
5389 msgid "Program source"
5393 #: build/C/man3/end.3:92
5396 "#include E<lt>stdio.hE<gt>\n"
5397 "#include E<lt>stdlib.hE<gt>\n"
5399 "#include E<lt>stdio.hE<gt>\n"
5400 "#include E<lt>stdlib.hE<gt>\n"
5403 #: build/C/man3/end.3:95
5406 "extern char etext, edata, end; /* The symbols must have some type,\n"
5407 " or \"gcc -Wall\" complains */\n"
5409 "extern char etext, edata, end; /* The symbols must have some type,\n"
5410 " or \"gcc -Wall\" complains */\n"
5413 #: build/C/man3/end.3:103
5417 "main(int argc, char *argv[])\n"
5419 " printf(\"First address past:\\en\");\n"
5420 " printf(\" program text (etext) %10p\\en\", &etext);\n"
5421 " printf(\" initialized data (edata) %10p\\en\", &edata);\n"
5422 " printf(\" uninitialized data (end) %10p\\en\", &end);\n"
5425 "main(int argc, char *argv[])\n"
5427 " printf(\"First address past:\\en\");\n"
5428 " printf(\" program text (etext) %10p\\en\", &etext);\n"
5429 " printf(\" initialized data (edata) %10p\\en\", &edata);\n"
5430 " printf(\" uninitialized data (end) %10p\\en\", &end);\n"
5433 #: build/C/man3/end.3:112
5434 msgid "B<objdump>(1), B<readelf>(1), B<sbrk>(2), B<elf>(5)"
5435 msgstr "B<objdump>(1), B<readelf>(1), B<sbrk>(2), B<elf>(5)"
5438 #: build/C/man8/ld.so.8:2
5444 #: build/C/man8/ld.so.8:2
5450 #: build/C/man8/ld.so.8:5
5451 msgid "ld.so, ld-linux.so* - dynamic linker/loader"
5452 msgstr "ld.so, ld-linux.so* - 動的なリンカ/ローダ"
5455 #: build/C/man8/ld.so.8:12
5457 "The dynamic linker can be run either indirectly by running some dynamically "
5458 "linked program or library (in which case no command-line options to the "
5459 "dynamic linker can be passed and, in the ELF case, the dynamic linker which "
5460 "is stored in the B<.interp> section of the program is executed) or directly "
5463 "動的リンカは、動的にリンクされたプログラムやライブラリの実行によって 間接的に"
5464 "実行することができる (ELF の場合、動的リンカにコマンドラインオプションを渡す"
5465 "ことはできず、 プログラムの B<.interp> セクションに入っている動的リンカが実行"
5466 "される)。 また以下のように直接実行することもできる"
5469 #: build/C/man8/ld.so.8:15
5470 msgid "I</lib/ld-linux.so.*> [OPTIONS] [PROGRAM [ARGUMENTS]]"
5471 msgstr "I</lib/ld-linux.so.*> [OPTIONS] [PROGRAM [ARGUMENTS]]"
5474 #: build/C/man8/ld.so.8:22
5476 "The programs B<ld.so> and B<ld-linux.so*> find and load the shared libraries "
5477 "needed by a program, prepare the program to run, and then run it."
5479 "プログラム B<ld.so> と B<ld-linux.so*> はプログラムに必要な共有ライブラリを見"
5480 "つけてロードし、 プログラムの実行を準備してから起動させる。"
5483 #: build/C/man8/ld.so.8:29
5485 "Linux binaries require dynamic linking (linking at run time) unless the B<-"
5486 "static> option was given to B<ld>(1) during compilation."
5488 "Linux のバイナリは、コンパイルの時に B<ld>(1) に対して B<-static> オプション"
5489 "が指定されていない限り、動的リンク (実行時リンク) が必要となる。"
5492 #: build/C/man8/ld.so.8:42
5494 "The program B<ld.so> handles a.out binaries, a format used long ago; B<ld-"
5495 "linux.so*> handles ELF (I</lib/ld-linux.so.1> for libc5, I</lib/ld-linux."
5496 "so.2> for glibc2), which everybody has been using for years now. Otherwise "
5497 "both have the same behavior, and use the same support files and programs "
5498 "B<ldd>(1), B<ldconfig>(8) and I</etc/ld.so.conf>."
5500 "プログラム B<ld.so> は a.out バイナリを扱う。 これはずっと昔に使われていた"
5501 "フォーマットである。 B<ld-linux.so*> (libc5 では I</lib/ld-linux.so.1>, "
5502 "glibc2 では I</lib/ld-linux.so.2>) は ELF バイナリを扱う。 このフォーマット"
5503 "は多くの人が最近何年も使っている。 それ以外の点では両方とも同じように動作"
5504 "し、 同じサポートファイルとプログラム B<ldd>(1), B<ldconfig>(8), I</etc/ld."
5508 #: build/C/man8/ld.so.8:45
5510 "The shared libraries needed by the program are searched for in the following "
5512 msgstr "プログラムで必要とされる共有ライブラリは、 以下の順序で検索される。"
5515 #: build/C/man8/ld.so.8:50
5517 "(ELF only) Using the directories specified in the DT_RPATH dynamic section "
5518 "attribute of the binary if present and DT_RUNPATH attribute does not exist. "
5519 "Use of DT_RPATH is deprecated."
5521 "(ELF のみ) バイナリの動的セクション属性 DT_RPATH が存在し、 DT_RUNPATH 属性"
5522 "が存在しない場合は、 DT_RPATH で指定されたディレクトリを使用する。 DT_RPATH "
5526 #: build/C/man8/ld.so.8:55
5528 "Using the environment variable B<LD_LIBRARY_PATH>. Except if the executable "
5529 "is a set-user-ID/set-group-ID binary, in which case it is ignored."
5531 "環境変数 B<LD_LIBRARY_PATH> を用いる。 ただし実行ファイルが set-user-ID/set-"
5532 "group-ID バイナリの場合、 これは無視される。"
5535 #: build/C/man8/ld.so.8:59
5537 "(ELF only) Using the directories specified in the DT_RUNPATH dynamic section "
5538 "attribute of the binary if present."
5540 "(ELF のみ) バイナリの動的セクション属性 DT_RUNPATH が存在すれば、 "
5541 "DT_RUNPATH で指定されたディレクトリを使用する。"
5544 #: build/C/man8/ld.so.8:69
5546 "From the cache file I</etc/ld.so.cache> which contains a compiled list of "
5547 "candidate libraries previously found in the augmented library path. If, "
5548 "however, the binary was linked with the B<-z nodeflib> linker option, "
5549 "libraries in the default library paths are skipped. Libraries installed in "
5550 "hardware capability directories (see below) are preferred to other "
5553 "キャッシュファイル I</etc/ld.so.cache> を探す。\n"
5554 "このファイルは、 (ld.so.conf で追加指定されたものも含めた) ライブラリ検索パス"
5556 "見つかったライブラリファイルの情報を集めたものである。\n"
5557 "ただし、バイナリがリンカオプション B<-z nodeflib> でリンクされている場合"
5559 "デフォルトのライブラリパスにある ライブラリはスキップされる。\n"
5560 "ハードウェア機能ディレクトリ (下記参照) にインストールされたライブラリは、\n"
5564 #: build/C/man8/ld.so.8:77
5566 "In the default path I</lib>, and then I</usr/lib>. If the binary was linked "
5567 "with the B<-z nodeflib> linker option, this step is skipped."
5569 "デフォルトパスである I</lib>、 次いで I</usr/lib> を用いる。 バイナリがリンカ"
5570 "オプション B<-z nodeflib> でリンクされている場合、このステップはスキップされ"
5574 #: build/C/man8/ld.so.8:77
5576 msgid "$ORIGIN and rpath"
5577 msgstr "$ORIGIN と rpath"
5579 #. ld.so also understands $LIB, with the same meaning as $ORIGIN/lib,
5581 #. There is also $PLATFORM. This is a kind of wildcard
5582 #. of directories related at AT_HWCAP. To get an idea of the
5583 #. places that $PLATFORM would match, look at the output of the
5586 #. LD_LIBRARY_PATH=/tmp/d strace -e open /bin/date 2>&1 | grep /tmp/d
5587 #. ld.so lets names be abbreviated, so $O will work for $ORIGIN;
5590 #: build/C/man8/ld.so.8:112
5592 "B<ld.so> understands the string I<$ORIGIN> (or equivalently I<${ORIGIN}>) "
5593 "in an rpath specification (DT_RPATH or DT_RUNPATH) to mean the directory "
5594 "containing the application executable. Thus, an application located in "
5595 "I<somedir/app> could be compiled with I<gcc -Wl,-rpath,\\(aq$ORIGIN/../lib"
5596 "\\(aq> so that it finds an associated shared library in I<somedir/lib> no "
5597 "matter where I<somedir> is located in the directory hierarchy. This "
5598 "facilitates the creation of \"turn-key\" applications that do not need to be "
5599 "installed into special directories, but can instead be unpacked into any "
5600 "directory and still find their own shared libraries."
5602 "B<ld.so> では、rpath 指定 (DT_RPATH や DT_RUNPATH) 中に I<$ORIGIN> という文字"
5603 "列 (I<${ORIGIN}> も等価) を使うことができる。 I<$ORIGIN> はアプリケーションの"
5604 "実行ファイルが入っているディレクトリを表す。 これを使って I<somedir/app> に置"
5605 "かれたアプリケーションを I<gcc -Wl,-rpath,'$ORIGIN/../lib'> でコンパイルする"
5606 "と、 I<somedir> がディレクトリ階層のどこにあっても、アプリケーションは "
5607 "I<somedir/lib> にある対応する共有ライブラリを見つけることができる。 この機能"
5608 "を使うと、 特別なディレクトリではなく任意のディレクトリにインストールしても "
5609 "\"ややこしい設定なしで\" 独自の共有ライブラリを使えるアプリケーションを作成す"
5613 #: build/C/man8/ld.so.8:112 build/C/man8/ldconfig.8:100 build/C/man1/ldd.1:19
5619 #: build/C/man8/ld.so.8:113
5625 #: build/C/man8/ld.so.8:116
5626 msgid "List all dependencies and how they are resolved."
5627 msgstr "全ての依存関係とその解決法をリストする。"
5630 #: build/C/man8/ld.so.8:116
5633 msgstr "B<--verify>"
5636 #: build/C/man8/ld.so.8:120
5638 "Verify that program is dynamically linked and this dynamic linker can handle "
5641 "プログラムが動的にリンクされているかと、 動的リンカがそのプログラムを扱えるか"
5645 #: build/C/man8/ld.so.8:120
5647 msgid "B<--library-path PATH>"
5648 msgstr "B<--library-path PATH>"
5651 #: build/C/man8/ld.so.8:125
5653 "Use PATH instead of B<LD_LIBRARY_PATH> environment variable setting (see "
5656 "B<LD_LIBRARY_PATH> 環境変数の設定ではなく、\n"
5657 "指定した PATH を使用する (下記参照)。"
5660 #: build/C/man8/ld.so.8:125
5662 msgid "B<--inhibit-rpath LIST>"
5663 msgstr "B<--inhibit-rpath LIST>"
5666 #: build/C/man8/ld.so.8:131
5668 "Ignore RPATH and RUNPATH information in object names in LIST. This option "
5669 "is ignored if B<ld.so> is set-user-ID or set-group-ID."
5671 "LIST にあるオブジェクト名の RPATH と RUNPATH の情報を無視する。 B<ld.so> が "
5672 "set-user-ID か set-group-ID されている場合、 このオプションは無視される。"
5675 #: build/C/man8/ld.so.8:131
5677 msgid "B<--audit LIST>"
5678 msgstr "B<--audit LIST>"
5681 #: build/C/man8/ld.so.8:134
5682 msgid "Use objects named in LIST as auditors."
5683 msgstr "LIST で指定された名前のオブジェクトを監査者として使用する。"
5686 #: build/C/man8/ld.so.8:134
5688 msgid "HARDWARE CAPABILITIES"
5692 #: build/C/man8/ld.so.8:145
5694 "Some libraries are compiled using hardware-specific instructions which do "
5695 "not exist on every CPU. Such libraries should be installed in directories "
5696 "whose names define the required hardware capabilities, such as I</usr/lib/"
5697 "sse2/>. The dynamic linker checks these directories against the hardware of "
5698 "the machine and selects the most suitable version of a given library. "
5699 "Hardware capability directories can be cascaded to combine CPU features. "
5700 "The list of supported hardware capability names depends on the CPU. The "
5701 "following names are currently recognized:"
5703 "いくつかのライブラリは、(すべての CPU に存在するわけではない)ハードウェア固"
5705 "の命令を使ってコンパイルされている。そのようなライブラリは、\n"
5706 "I</usr/lib/sse2/> のような、必要なハードウェア機能 (hardware capability) を"
5708 "定する名前のディレクトリにインストールすべきである。\n"
5709 "動的リンカは、マシンのハードウェアに基づいてこれらのディレクトリを確認し、\n"
5710 "指定されたライブラリに最も適したバージョンを選択する。\n"
5711 "ハードウェア機能ディレクトリはつなげることができ、\n"
5712 "複数の CPU 機能を組み合わることができる。\n"
5713 "対応しているハードウェア機能名のリストは CPU に依存する。\n"
5714 "現在のところ、以下の名前が認識される。"
5717 #: build/C/man8/ld.so.8:145
5723 #: build/C/man8/ld.so.8:148
5724 msgid "ev4, ev5, ev56, ev6, ev67"
5725 msgstr "ev4, ev5, ev56, ev6, ev67"
5728 #: build/C/man8/ld.so.8:148
5734 #: build/C/man8/ld.so.8:151
5735 msgid "loongson2e, loongson2f, octeon, octeon2"
5736 msgstr "loongson2e, loongson2f, octeon, octeon2"
5739 #: build/C/man8/ld.so.8:151
5745 #: build/C/man8/ld.so.8:156
5747 "4xxmac, altivec, arch_2_05, arch_2_06, booke, cellbe, dfp, efpdouble, "
5748 "efpsingle, fpu, ic_snoop, mmu, notb, pa6t, power4, power5, power5+, power6x, "
5749 "ppc32, ppc601, ppc64, smt, spe, ucache, vsx"
5751 "4xxmac, altivec, arch_2_05, arch_2_06, booke, cellbe, dfp, efpdouble, "
5752 "efpsingle, fpu, ic_snoop, mmu, notb, pa6t, power4, power5, power5+, power6x, "
5753 "ppc32, ppc601, ppc64, smt, spe, ucache, vsx"
5756 #: build/C/man8/ld.so.8:156
5762 #: build/C/man8/ld.so.8:159
5763 msgid "flush, muldiv, stbar, swap, ultra3, v9, v9v, v9v2"
5764 msgstr "flush, muldiv, stbar, swap, ultra3, v9, v9v, v9v2"
5767 #: build/C/man8/ld.so.8:159
5773 #: build/C/man8/ld.so.8:163
5775 "dfp, eimm, esan3, etf3enh, g5, highgprs, hpage, ldisp, msa, stfle, z900, "
5776 "z990, z9-109, z10, zarch"
5778 "dfp, eimm, esan3, etf3enh, g5, highgprs, hpage, ldisp, msa, stfle, z900, "
5779 "z990, z9-109, z10, zarch"
5782 #: build/C/man8/ld.so.8:164
5784 msgid "B<x86 (32-bit only)>"
5785 msgstr "B<x86 (32-bit のみ)>"
5788 #: build/C/man8/ld.so.8:168
5790 "acpi, apic, clflush, cmov, cx8, dts, fxsr, ht, i386, i486, i586, i686, mca, "
5791 "mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm"
5793 "acpi, apic, clflush, cmov, cx8, dts, fxsr, ht, i386, i486, i586, i686, mca, "
5794 "mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm"
5797 #: build/C/man8/ld.so.8:168
5803 #: build/C/man8/ld.so.8:170
5804 msgid "There are four important environment variables."
5805 msgstr "4 つの重要な環境変数がある。"
5808 #: build/C/man8/ld.so.8:170
5810 msgid "B<LD_BIND_NOW>"
5811 msgstr "B<LD_BIND_NOW>"
5814 #: build/C/man8/ld.so.8:178
5816 "(libc5; glibc since 2.1.1) If set to a nonempty string, causes the dynamic "
5817 "linker to resolve all symbols at program startup instead of deferring "
5818 "function call resolution to the point when they are first referenced. This "
5819 "is useful when using a debugger."
5821 "(libc5; glibc 2.1.1 以降) 空文字列でない場合、 動的リンカはプログラムの開始"
5822 "時に全てのシンボルを解決する。 空文字列の場合、解決しなければならない関数呼び"
5823 "出しが 最初に参照された時点で解決する。 デバッガを使っているときに役立つ。"
5826 #: build/C/man8/ld.so.8:178
5828 msgid "B<LD_LIBRARY_PATH>"
5829 msgstr "B<LD_LIBRARY_PATH>"
5832 #: build/C/man8/ld.so.8:185
5834 "A colon-separated list of directories in which to search for ELF libraries "
5835 "at execution-time. Similar to the B<PATH> environment variable."
5837 "コロン区切りのディレクトリリスト。 実行時に ELF ライブラリを検索するディレク"
5838 "トリを指定する。 B<PATH> 環境変数と同じように指定する。"
5841 #: build/C/man8/ld.so.8:185
5843 msgid "B<LD_PRELOAD>"
5844 msgstr "B<LD_PRELOAD>"
5847 #: build/C/man8/ld.so.8:193
5849 "A whitespace-separated list of additional, user-specified, ELF shared "
5850 "libraries to be loaded before all others. This can be used to selectively "
5851 "override functions in other shared libraries. For set-user-ID/set-group-ID "
5852 "ELF binaries, only libraries in the standard search directories that are "
5853 "also set-user-ID will be loaded."
5855 "スペース区切りで ELF 共有ライブラリを指定する。 これはユーザーが指定でき、す"
5856 "べてのライブラリに先立ってロードされる。 他の共有ライブラリにある関数を選択的"
5857 "に置き換えるために用いることができる。 set-user-ID/set-group-ID された ELF バ"
5858 "イナリに対して、 標準的な検索パスにあるライブラリのうち set-user-ID されてい"
5862 #: build/C/man8/ld.so.8:193
5864 msgid "B<LD_TRACE_LOADED_OBJECTS>"
5865 msgstr "B<LD_TRACE_LOADED_OBJECTS>"
5868 #: build/C/man8/ld.so.8:200
5870 "(ELF only) If set to a nonempty string, causes the program to list its "
5871 "dynamic library dependencies, as if run by B<ldd>(1), instead of running "
5874 "(ELF のみ) 空文字列でない場合、 プログラムを普通に実行するのではなく、 "
5875 "B<ldd>(1) を実行したときのように動的ライブラリの依存関係をリスト表示させる。"
5878 #: build/C/man8/ld.so.8:203
5880 "Then there are lots of more or less obscure variables, many obsolete or only "
5883 "そして、それほど知られていない環境変数もある。 多くは廃れてしまったものか内部"
5887 #: build/C/man8/ld.so.8:203
5889 msgid "B<LD_AOUT_LIBRARY_PATH>"
5890 msgstr "B<LD_AOUT_LIBRARY_PATH>"
5893 #: build/C/man8/ld.so.8:211
5895 "(libc5) Version of B<LD_LIBRARY_PATH> for a.out binaries only. Old "
5896 "versions of ld-linux.so.1 also supported B<LD_ELF_LIBRARY_PATH>."
5898 "(libc5) a.out バイナリにのみ使われる環境変数で、 B<LD_LIBRARY_PATH> と同じ役"
5899 "割をする。 ld-linux.so.1 の古いバージョンでは B<LD_ELF_LIBRARY_PATH> もサポー"
5903 #: build/C/man8/ld.so.8:211
5905 msgid "B<LD_AOUT_PRELOAD>"
5906 msgstr "B<LD_AOUT_PRELOAD>"
5909 #: build/C/man8/ld.so.8:219
5911 "(libc5) Version of B<LD_PRELOAD> for a.out binaries only. Old versions of "
5912 "ld-linux.so.1 also supported B<LD_ELF_PRELOAD>."
5914 "(libc5) a.out バイナリにのみ使われる環境変数で、 B<LD_PRELOAD> と同じ役割を"
5915 "する。 ld-linux.so.1 の古いバージョンでは B<LD_ELF_PRELOAD> もサポートしてい"
5919 #: build/C/man8/ld.so.8:219
5922 msgstr "B<LD_AUDIT>"
5925 #: build/C/man8/ld.so.8:229
5927 "(glibc since 2.4) A colon-separated list of user-specified, ELF shared "
5928 "objects to be loaded before all others in a separate linker namespace (i.e., "
5929 "one that does not intrude upon the normal symbol bindings that would occur "
5930 "in the process). These libraries can be used to audit the operation of the "
5931 "dynamic linker. B<LD_AUDIT> is ignored for set-user-ID/set-group-ID "
5934 "(glibc 2.4 以降) 他のオブジェクトよりも前に、別のリンカ名前空間 (そのプロセ"
5935 "スで行われる 通常のシンボル結合 (symbol bindigns) には関与しない名前空間) で "
5936 "ロードされる、ユーザ指定の ELF 共有オブジェクトのコロン区切りのリスト。 これ"
5937 "らのライブラリを使って、動的リンカの動作を監査することができる。 set-user-ID/"
5938 "set-group-ID されたバイナリでは、 B<LD_AUDIT> は無視される。"
5941 #: build/C/man8/ld.so.8:242
5943 "The dynamic linker will notify the audit libraries at so-called auditing "
5944 "checkpoints\\(emfor example, loading a new library, resolving a symbol, or "
5945 "calling a symbol from another shared object\\(emby calling an appropriate "
5946 "function within the audit library. For details, see B<rtld-audit>(7). The "
5947 "auditing interface is largely compatible with that provided on Solaris, as "
5948 "described in its I<Linker and Libraries Guide>, in the chapter I<Runtime "
5949 "Linker Auditing Interface>."
5951 "動的リンカは、いわゆる監査チェックポイント (auditing checkpoints) において、"
5952 "監査 (audit) ライブラリの適切な関数を呼び出すことで、 監査ライブラリへの通知"
5953 "を行う。監査チェックポイントの例としては、 新たなライブラリのロード、シンボル"
5954 "の解決、別の共有オブジェクト からのシンボルの呼び出し、などがある。 詳細は "
5955 "B<rtld-audit>(7) を参照してほしい。 audit インタフェースは、Solaris で提供さ"
5956 "れているものと 大部分は互換性がある。Solaris の audit インタフェースについて"
5957 "は、 I<Linker and Libraries Guide> の I<Runtime Linker Auditing Interface> の"
5961 #: build/C/man8/ld.so.8:242
5963 msgid "B<LD_BIND_NOT>"
5964 msgstr "B<LD_BIND_NOT>"
5967 #: build/C/man8/ld.so.8:247
5969 "(glibc since 2.1.95) Do not update the GOT (global offset table) and PLT "
5970 "(procedure linkage table) after resolving a symbol."
5972 "(glibc 2.1.95 以降) シンボルを解決した後、GOT (global offset table) と PLT "
5973 "(procedure linkage table) を更新しない。"
5976 #: build/C/man8/ld.so.8:247
5979 msgstr "B<LD_DEBUG>"
5982 #: build/C/man8/ld.so.8:260
5984 "(glibc since 2.1) Output verbose debugging information about the dynamic "
5985 "linker. If set to B<all> prints all debugging information it has, if set to "
5986 "B<help> prints a help message about which categories can be specified in "
5987 "this environment variable. Since glibc 2.3.4, B<LD_DEBUG> is ignored for "
5988 "set-user-ID/set-group-ID binaries."
5990 "(glibc 2.1 以降) 動的リンカの詳細なデバッグ情報を出力する。 B<all> に設定し"
5991 "た場合、全ての動的リンカが持つデバッグ情報を表示する。 B<help> に設定した場"
5992 "合、この環境変数で指定されるカテゴリのヘルプ情報を表示する。 glibc 2.3.4 以"
5993 "降、 set-user-ID/set-group-ID されたバイナリでは B<LD_DEBUG> は無視される。"
5996 #: build/C/man8/ld.so.8:260
5998 msgid "B<LD_DEBUG_OUTPUT>"
5999 msgstr "B<LD_DEBUG_OUTPUT>"
6002 #: build/C/man8/ld.so.8:268
6004 "(glibc since 2.1) File where B<LD_DEBUG> output should be fed into, default "
6005 "is standard output. B<LD_DEBUG_OUTPUT> is ignored for set-user-ID/set-group-"
6008 "(glibc 2.1 以降) B<LD_DEBUG> の出力を書き込むファイル。 デフォルトは標準出力"
6009 "である。 set-user-ID/set-group-ID されたバイナリでは、 B<LD_DEBUG_OUTPUT> は"
6013 #: build/C/man8/ld.so.8:268
6015 msgid "B<LD_DYNAMIC_WEAK>"
6016 msgstr "B<LD_DYNAMIC_WEAK>"
6019 #: build/C/man8/ld.so.8:275
6021 "(glibc since 2.1.91) Allow weak symbols to be overridden (reverting to old "
6022 "glibc behavior). For security reasons, since glibc 2.3.4, "
6023 "B<LD_DYNAMIC_WEAK> is ignored for set-user-ID/set-group-ID binaries."
6025 "(glibc 2.1.19 以降) 上書きされる弱いシンボル (昔の glibc の挙動を逆にす"
6026 "る)。 セキュリティ上の理由から、glibc 2.3.4 以降、 set-user-ID/set-group-ID "
6027 "されたバイナリでは B<LD_DYNAMIC_WEAK> は無視される。"
6030 #: build/C/man8/ld.so.8:275
6032 msgid "B<LD_HWCAP_MASK>"
6033 msgstr "B<LD_HWCAP_MASK>"
6036 #: build/C/man8/ld.so.8:279
6037 msgid "(glibc since 2.1) Mask for hardware capabilities."
6038 msgstr "(glibc 2.1 以降) ハードウェア機能のマスク。"
6041 #: build/C/man8/ld.so.8:279
6043 msgid "B<LD_KEEPDIR>"
6044 msgstr "B<LD_KEEPDIR>"
6047 #: build/C/man8/ld.so.8:284
6049 "(a.out only)(libc5) Don't ignore the directory in the names of a.out "
6050 "libraries to be loaded. Use of this option is strongly discouraged."
6052 "(a.out のみ)(libc5) ロードする a.out ライブラリの名前において、ディレクトリ"
6053 "を無視しない。 このオプションは用いるべきではない。"
6056 #: build/C/man8/ld.so.8:284
6058 msgid "B<LD_NOWARN>"
6059 msgstr "B<LD_NOWARN>"
6062 #: build/C/man8/ld.so.8:289
6064 "(a.out only)(libc5) Suppress warnings about a.out libraries with "
6065 "incompatible minor version numbers."
6067 "(a.out のみ)(libc5) a.out ライブラリにおけるマイナーバージョン番号の非互換"
6068 "に 対する警告メッセージを抑制する。"
6071 #: build/C/man8/ld.so.8:289
6073 msgid "B<LD_ORIGIN_PATH>"
6074 msgstr "B<LD_ORIGIN_PATH>"
6076 #. Only used if $ORIGIN can't be determined by normal means
6077 #. (from the origin path saved at load time, or from /proc/self/exe)?
6079 #: build/C/man8/ld.so.8:298
6081 "(glibc since 2.1) Path where the binary is found (for non-set-user-ID "
6082 "programs). For security reasons, since glibc 2.4, B<LD_ORIGIN_PATH> is "
6083 "ignored for set-user-ID/set-group-ID binaries."
6085 "(glibc 2.1 以降) バイナリへのパス (set-user-ID されていないプログラムについ"
6086 "て)。 セキュリティ上の理由から、glibc 2.3.4 以降、 set-user-ID/set-group-ID "
6087 "されたバイナリでは B<LD_ORIGIN_PATH> は無視される。"
6090 #: build/C/man8/ld.so.8:298
6092 msgid "B<LD_POINTER_GUARD>"
6093 msgstr "B<LD_POINTER_GUARD>"
6096 #: build/C/man8/ld.so.8:310
6098 "(glibc since 2.4) Set to 0 to disable pointer guarding. Any other value "
6099 "enables pointer guarding, which is also the default. Pointer guarding is a "
6100 "security mechanism whereby some pointers to code stored in writable program "
6101 "memory (return addresses saved by B<setjmp>(3) or function pointers used by "
6102 "various glibc internals) are mangled semi-randomly to make it more difficult "
6103 "for an attacker to hijack the pointers for use in the event of a buffer "
6104 "overrun or stack-smashing attack."
6106 "(glibc 2.4 以降) 0 に設定すると、ポインタ保護 (pointer guarding) が無効にな"
6107 "る。 それ以外の値の場合はポインタ保護が有効になる。 デフォルトはポインタ保護"
6108 "有効である。 ポインタ保護はセキュリティ機構の一つで、書き込み可能なプログラム"
6109 "メモリ に格納されたコードへのポインタをほぼランダム化することで、 攻撃者が"
6110 "バッファオーバーランやスタック破壊 (stack-smashing) 攻撃の際に ポインタを乗っ"
6114 #: build/C/man8/ld.so.8:310
6116 msgid "B<LD_PROFILE>"
6117 msgstr "B<LD_PROFILE>"
6120 #: build/C/man8/ld.so.8:317
6122 "(glibc since 2.1) Shared object to be profiled, specified either as a "
6123 "pathname or a soname. Profiling output is written to the file whose name "
6124 "is: \"I<$LD_PROFILE_OUTPUT>/I<$LD_PROFILE>.profile\"."
6126 "(glibc 2.1 以降) プロファイルを行う共有オブジェクト。 パス名か共有オブジェク"
6127 "ト名 (soname) で指定される。 プロフィールの出力は \"I<$LD_PROFILE_OUTPUT>/I<"
6128 "$LD_PROFILE>.profile\" という名前の ファイルに書き込まれる。"
6131 #: build/C/man8/ld.so.8:317
6133 msgid "B<LD_PROFILE_OUTPUT>"
6134 msgstr "B<LD_PROFILE_OUTPUT>"
6137 #: build/C/man8/ld.so.8:330
6139 "(glibc since 2.1) Directory where B<LD_PROFILE> output should be written. "
6140 "If this variable is not defined, or is defined as an empty string, then the "
6141 "default is I</var/tmp>. B<LD_PROFILE_OUTPUT> is ignored for set-user-ID and "
6142 "set-group-ID programs, which always use I</var/profile>."
6144 "(glibc 2.1 以降) B<LD_PROFILE> の出力が書き込まれるディレクトリ。 この変数が"
6145 "定義されていないか、空の文字列が定義されている場合、 デフォルト値は I</var/"
6146 "tmp> となる。 set-user-ID/set-group-ID されたプログラムでは、 "
6147 "LD_PROFILE_OUTPUT は無視される。 出力ファイルは常に I</var/profile> が使用さ"
6151 #: build/C/man8/ld.so.8:330
6153 msgid "B<LD_SHOW_AUXV>"
6154 msgstr "B<LD_SHOW_AUXV>"
6157 #. Document LD_TRACE_PRELINKING (e.g.: LD_TRACE_PRELINKING=libx1.so ./prog)
6159 #. Also enables DL_DEBUG_PRELINK
6161 #: build/C/man8/ld.so.8:341
6163 "(glibc since 2.1) Show auxiliary array passed up from the kernel. For "
6164 "security reasons, since glibc 2.3.5, B<LD_SHOW_AUXV> is ignored for set-user-"
6165 "ID/set-group-ID binaries."
6167 "(glibc 2.1 以降) カーネルから渡される補助的な (パラメータの) 配列を表示す"
6168 "る。 セキュリティ上の理由から、glibc 2.3.4 以降、 set-user-ID/set-group-ID さ"
6169 "れたバイナリでは B<LD_SHOW_AUXV> は無視される。"
6172 #: build/C/man8/ld.so.8:341
6174 msgid "B<LD_USE_LOAD_BIAS>"
6175 msgstr "B<LD_USE_LOAD_BIAS>"
6177 #. http://sources.redhat.com/ml/libc-hacker/2003-11/msg00127.html
6178 #. Subject: [PATCH] Support LD_USE_LOAD_BIAS
6181 #: build/C/man8/ld.so.8:360
6183 "By default (i.e., if this variable is not defined) executables and "
6184 "prelinked shared objects will honor base addresses of their dependent "
6185 "libraries and (nonprelinked) position-independent executables (PIEs) and "
6186 "other shared objects will not honor them. If B<LD_USE_LOAD_BIAS> is defined "
6187 "wit the value, both executables and PIEs will honor the base addresses. If "
6188 "B<LD_USE_LOAD_BIAS> is defined with the value 0, neither executables nor "
6189 "PIEs will honor the base addresses. This variable is ignored by set-user-ID "
6190 "and set-group-ID programs."
6192 "デフォルトでは (つまり、この変数が定義されていない場合)、 実行ファイルと "
6193 "prelink された共有オブジェクトでは、それらが依存する ライブラリのベースアドレ"
6194 "スが尊重される一方、 (prelink されていない) position-independent executables "
6195 "(PIEs) と 他の共有オブジェクトでは依存するライブラリのベースアドレスは 尊重さ"
6196 "れない。 B<LD_USE_LOAD_BIAS> に値が定義された場合、実行ファイルと PIE のどち"
6197 "らでも ベースアドレスが尊重される。 B<LD_USE_LOAD_BIAS> が値 0 で定義された場"
6198 "合、実行ファイルと PIE のどちらでも ベースアドレスは尊重されない。 set-user-"
6199 "ID や set-group-ID されたプログラムでは、 この変数は無視される。"
6202 #: build/C/man8/ld.so.8:360
6204 msgid "B<LD_VERBOSE>"
6205 msgstr "B<LD_VERBOSE>"
6208 #: build/C/man8/ld.so.8:372
6210 "(glibc since 2.1) If set to a nonempty string, output symbol versioning "
6211 "information about the program if querying information about the program (i."
6212 "e., either B<LD_TRACE_LOADED_OBJECTS> has been set, or B<--list> or B<--"
6213 "verify> options have been given to the dynamic linker)."
6215 "(glibc 2.1 以降) 空文字列でない場合に、 (B<LD_TRACE_LOADED_OBJECTS> を設定す"
6216 "るか、 B<--list> または B<--verify> オプションを動的リンカに指定することによ"
6217 "り) プログラムについての情報を問い合わせると、 プログラムのシンボルバージョ"
6221 #: build/C/man8/ld.so.8:372
6227 #: build/C/man8/ld.so.8:376
6229 "(ELF only)(glibc since 2.1.3) If set to a nonempty string, warn about "
6230 "unresolved symbols."
6232 "(ELF のみ)(glibc 2.1.3 以降) 空文字列でない場合、解決されていないシンボルが"
6236 #: build/C/man8/ld.so.8:376
6238 msgid "B<LDD_ARGV0>"
6239 msgstr "B<LDD_ARGV0>"
6242 #: build/C/man8/ld.so.8:383
6243 msgid "(libc5) I<argv>[0] to be used by B<ldd>(1) when none is present."
6245 "(libc5) B<ldd>(1) の引き数がない場合に、 I<argv>[0] として使われる値。"
6248 #: build/C/man8/ld.so.8:383 build/C/man8/ldconfig.8:156
6254 #: build/C/man8/ld.so.8:385 build/C/man8/ldconfig.8:158
6256 msgid "I</lib/ld.so>"
6257 msgstr "I</lib/ld.so>"
6260 #: build/C/man8/ld.so.8:388
6261 msgid "a.out dynamic linker/loader"
6262 msgstr "a.out の動的リンカ/ローダ"
6265 #: build/C/man8/ld.so.8:388
6267 msgid "I</lib/ld-linux.so.>{I<1>,I<2>}"
6268 msgstr "I</lib/ld-linux.so.>{I<1>,I<2>}"
6271 #: build/C/man8/ld.so.8:391
6272 msgid "ELF dynamic linker/loader"
6273 msgstr "ELF の動的リンカ/ローダ"
6276 #: build/C/man8/ld.so.8:391 build/C/man8/ldconfig.8:165
6278 msgid "I</etc/ld.so.cache>"
6279 msgstr "I</etc/ld.so.cache>"
6282 #: build/C/man8/ld.so.8:395
6284 "File containing a compiled list of directories in which to search for "
6285 "libraries and an ordered list of candidate libraries."
6287 "ライブラリを検索するディレクトリを集めたリストと、 共有ライブラリの候補の整列"
6291 #: build/C/man8/ld.so.8:395
6293 msgid "I</etc/ld.so.preload>"
6294 msgstr "I</etc/ld.so.preload>"
6297 #: build/C/man8/ld.so.8:399
6299 "File containing a whitespace separated list of ELF shared libraries to be "
6300 "loaded before the program."
6302 "プログラムの前にロードすべき ELF 共有ライブラリを スペースで区切ったリストが"
6306 #: build/C/man8/ld.so.8:399
6309 msgstr "B<lib*.so*>"
6312 #: build/C/man8/ld.so.8:402
6313 msgid "shared libraries"
6317 #: build/C/man8/ld.so.8:409
6319 "The B<ld.so> functionality is available for executables compiled using libc "
6320 "version 4.4.3 or greater. ELF functionality is available since Linux 1.1.52 "
6323 "B<ld.so> の機能は libc のバージョン 4.4.3 以上を用いてコンパイルされた 実行"
6324 "ファイルで使用可能である。 ELF の機能は Linux 1.1.52 以降と libc5 以降で使用"
6328 #. ld.so: David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu, Linus
6329 #. Torvalds, Lars Wirzenius and Mitch D'Souza
6330 #. ld-linux.so: Roland McGrath, Ulrich Drepper and others.
6331 #. In the above, (libc5) stands for David Engel's ld.so/ld-linux.so.
6333 #: build/C/man8/ld.so.8:419
6334 msgid "B<ldd>(1), B<rtld-audit>(7), B<ldconfig>(8)"
6335 msgstr "B<ldd>(1), B<rtld-audit>(7), B<ldconfig>(8)"
6338 #: build/C/man8/ldconfig.8:22
6344 #: build/C/man8/ldconfig.8:22
6350 #: build/C/man8/ldconfig.8:25
6351 msgid "ldconfig - configure dynamic linker run-time bindings"
6352 msgstr "ldconfig - 動的リンカによる実行時の結合関係を設定する"
6355 #: build/C/man8/ldconfig.8:40
6357 "B</sbin/ldconfig> [ B<-nNvXV> ] [ B<-f\\ conf> ] [ B<-C\\ cache> ] [ B<-r\\ "
6358 "root> ] I<directory>\\ ..."
6360 "B</sbin/ldconfig> [ B<-nNvXV> ] [ B<-f\\ conf> ] [ B<-C\\ cache> ] [ B<-r\\ "
6361 "root> ] I<directory>\\ ..."
6364 #: build/C/man8/ldconfig.8:49
6365 msgid "B</sbin/ldconfig> B<-l> [ B<-v> ] I<library>\\ ..."
6366 msgstr "B</sbin/ldconfig> B<-l> [ B<-v> ] I<library>\\ ..."
6369 #: build/C/man8/ldconfig.8:54
6370 msgid "B</sbin/ldconfig> B<-p>"
6371 msgstr "B</sbin/ldconfig> B<-p>"
6374 #: build/C/man8/ldconfig.8:71
6376 "B<ldconfig> creates the necessary links and cache to the most recent shared "
6377 "libraries found in the directories specified on the command line, in the "
6378 "file I</etc/ld.so.conf>, and in the trusted directories (I</lib> and I</usr/"
6379 "lib>). The cache is used by the run-time linker, I<ld.so> or I<ld-linux."
6380 "so>. B<ldconfig> checks the header and filenames of the libraries it "
6381 "encounters when determining which versions should have their links updated."
6383 "B<ldcofig> は最新の共有ライブラリに対して必要なリンクを作成したり、 ライブラ"
6384 "リをキャッシュしたりする。 ライブラリは、コマンドラインや I</etc/ld.so.conf> "
6385 "ファイルで指定されたディレクトリや、共有ライブラリが 通常置かれるディレクト"
6386 "リ (I</lib> と I</usr/lib>) から検索される。 キャッシュは実行時リンカ I<ld."
6387 "so> または I<ld-linux.so> によって使われる。 B<ldconfig> は処理するライブラリ"
6388 "のヘッダ部分とファイル名をチェックし、 どのバージョンに対してリンクを更新すべ"
6391 #. The following sentence looks suspect
6392 #. (perhaps historical cruft) -- MTK, Jul 2005
6393 #. Therefore, when making dynamic libraries,
6394 #. it is wise to explicitly link against libc (use \-lc).
6396 #: build/C/man8/ldconfig.8:79
6398 "B<ldconfig> will attempt to deduce the type of ELF libs (i.e., libc5 or "
6399 "libc6/glibc) based on what C libs, if any, the library was linked against."
6401 "B<ldconfig> は ELF ライブラリの種類 (libc5 か libc6/glibc か) を判断すると"
6402 "き、 そのライブラリがリンクしている C ライブラリを参考にする。"
6405 #: build/C/man8/ldconfig.8:100
6407 "Some existing libs do not contain enough information to allow the deduction "
6408 "of their type. Therefore, the I</etc/ld.so.conf> file format allows the "
6409 "specification of an expected type. This is I<only> used for those ELF libs "
6410 "which we can not work out. The format is \"dirname=TYPE\", where TYPE can "
6411 "be libc4, libc5, or libc6. (This syntax also works on the command line.) "
6412 "Spaces are I<not> allowed. Also see the B<-p> option. B<ldconfig> should "
6413 "normally be run by the superuser as it may require write permission on some "
6414 "root owned directories and files."
6416 "すでに存在しているライブラリの中には、種類を区別するために充分な 情報が含まれ"
6417 "ていないものもある。 このため I</etc/ld.so.conf> ファイルでライブラリの形式を"
6418 "指定することができるようになっている。 これは区別不能な ELF ライブラリ「だ"
6419 "け」に用いるものである。 フォーマットは \"dirname=TYPE\" とする。 ここで "
6420 "TYPE は libc4, libc5, libc6 のいずれかである (この書式はコマンドラインでも使"
6421 "える)。 「スペースを入れてはならない」。 B<-p> オプションも見ておくこと。 "
6422 "B<ldconfig> は通常スーパーユーザー権限で実行しなければならない。 root が所有"
6423 "しているディレクトリやファイルへの書き込み権限が 必要になるからである。"
6426 #: build/C/man8/ldconfig.8:101
6432 #: build/C/man8/ldconfig.8:107
6434 "Verbose mode. Print current version number, the name of each directory as "
6435 "it is scanned, and any links that are created. Overrides quiet mode."
6437 "詳細表示モード。 現在のバージョン番号を表示する。 またそれぞれのディレクトリ"
6438 "をスキャンし、 新しいリンクを生成するたびに、その内容を表示する。 メッセージ"
6442 #: build/C/man8/ldconfig.8:107
6448 #: build/C/man8/ldconfig.8:118
6450 "Only process directories specified on the command line. Don't process the "
6451 "trusted directories (I</lib> and I</usr/lib>) nor those specified in I</etc/"
6452 "ld.so.conf>. Implies B<-N>."
6454 "コマンドラインで指定されたディレクトリのみを処理する。 通常共有ライブラリが置"
6455 "かれるディレクトリ (I</lib> と I</usr/lib>) や I</etc/ld.so.conf> で指定され"
6456 "たディレクトリは処理しない。 暗黙のうちに B<-N> が指定される。"
6459 #: build/C/man8/ldconfig.8:118
6465 #: build/C/man8/ldconfig.8:124
6467 "Don't rebuild the cache. Unless B<-X> is also specified, links are still "
6470 "キャッシュを再構成しない。 同時に B<-X> が同時に指定されなければ、リンクのほ"
6474 #: build/C/man8/ldconfig.8:124
6480 #: build/C/man8/ldconfig.8:130
6482 "Don't update links. Unless B<-N> is also specified, the cache is still "
6485 "リンクを更新しない。 B<-N> が同時に指定されなければ、キャッシュのほうは再構成"
6489 #: build/C/man8/ldconfig.8:130
6495 #: build/C/man8/ldconfig.8:136
6496 msgid "Use B<conf> instead of I</etc/ld.so.conf>."
6497 msgstr "B<conf> を I</etc/ld.so.conf> の代わりに用いる。"
6500 #: build/C/man8/ldconfig.8:136
6503 msgstr "B<-C cache>"
6506 #: build/C/man8/ldconfig.8:142
6507 msgid "Use B<cache> instead of I</etc/ld.so.cache>."
6508 msgstr "B<cache> を I</etc/ld.so.cache> の代わりに用いる。"
6511 #: build/C/man8/ldconfig.8:142
6517 #: build/C/man8/ldconfig.8:147
6518 msgid "Change to and use I<root> as the root directory."
6520 "I<root> にカレントディレクトリを変更し、ここをルートディレクトリとして用い"
6524 #: build/C/man8/ldconfig.8:147
6530 #: build/C/man8/ldconfig.8:152
6532 "Library mode. Manually link individual libraries. Intended for use by "
6535 "ライブラリモード。それぞれのライブラリを手動でリンクする。 熟練者のみが用いる"
6539 #: build/C/man8/ldconfig.8:152
6545 #: build/C/man8/ldconfig.8:156
6547 "Print the lists of directories and candidate libraries stored in the current "
6550 "現在のキャッシュに保存されているディレクトリのリストと、 ライブラリの候補を表"
6554 #: build/C/man8/ldconfig.8:161
6555 msgid "run-time linker/loader"
6556 msgstr "実行時リンカ/ローダー。"
6559 #: build/C/man8/ldconfig.8:161
6561 msgid "I</etc/ld.so.conf>"
6562 msgstr "I</etc/ld.so.conf>"
6565 #: build/C/man8/ldconfig.8:165
6567 "File containing a list of colon, space, tab, newline, or comma-separated "
6568 "directories in which to search for libraries."
6570 "コロン・スペース・タブ・改行・コンマで区切られたディレクトリのリスト。 それぞ"
6571 "れのディレクトリでライブラリが検索される。"
6574 #: build/C/man8/ldconfig.8:174
6576 "File containing an ordered list of libraries found in the directories "
6577 "specified in I</etc/ld.so.conf>, as well as those found in I</lib> and I</"
6580 "I</etc/ld.so.conf> で指定されたディレクトリにあるライブラリ、および I</lib> "
6581 "と I</usr/lib> にあるライブラリの順序付きリスト。"
6584 #: build/C/man8/ldconfig.8:178
6585 msgid "B<ldd>(1), B<ld.so>(8)"
6586 msgstr "B<ldd>(1), B<ld.so>(8)"
6589 #: build/C/man1/ldd.1:10
6595 #: build/C/man1/ldd.1:10
6601 #: build/C/man1/ldd.1:13
6602 msgid "ldd - print shared library dependencies"
6603 msgstr "ldd - 共有ライブラリへの依存関係を表示する"
6606 #: build/C/man1/ldd.1:15
6607 msgid "B<ldd> [OPTION]... FILE..."
6608 msgstr "B<ldd> [OPTION]... FILE..."
6611 #: build/C/man1/ldd.1:19
6613 "B<ldd> prints the shared libraries required by each program or shared "
6614 "library specified on the command line."
6616 "B<ldd> はコマンドラインで指定したプログラムや共有ライブラリについて、 それぞ"
6617 "れで必要とされる共有ライブラリを表示する。"
6620 #: build/C/man1/ldd.1:20
6622 msgid "B<--version>"
6623 msgstr "B<--version>"
6626 #: build/C/man1/ldd.1:24
6627 msgid "Print the version number of B<ldd>."
6628 msgstr "B<ldd> のバージョン番号を表示する。"
6631 #: build/C/man1/ldd.1:24
6633 msgid "B<-v\\ --verbose>"
6634 msgstr "B<-v\\ --verbose>"
6637 #: build/C/man1/ldd.1:28
6639 "Print all information, including, for example, symbol versioning information."
6640 msgstr "シンボルのバージョン情報などを含めた全ての情報を表示する。"
6643 #: build/C/man1/ldd.1:28
6645 msgid "B<-u\\ --unused>"
6646 msgstr "B<-u\\ --unused>"
6649 #: build/C/man1/ldd.1:32
6650 msgid "Print unused direct dependencies. (Since glibc 2.3.4.)"
6651 msgstr "使用されていない直接の依存関係を表示する (glibc 2.3.4 以降)。"
6654 #: build/C/man1/ldd.1:32
6656 msgid "B<-d\\ --data-relocs>"
6657 msgstr "B<-d\\ --data-relocs>"
6660 #: build/C/man1/ldd.1:35
6661 msgid "Perform relocations and report any missing objects (ELF only)."
6663 "リロケーションを実行し、足りないオブジェクトについてレポートする (ELF のみ)。"
6666 #: build/C/man1/ldd.1:35
6668 msgid "B<-r\\ --function-relocs>"
6669 msgstr "B<-r\\ --function-relocs>"
6672 #: build/C/man1/ldd.1:39
6674 "Perform relocations for both data objects and functions, and report any "
6675 "missing objects or functions (ELF only)."
6676 msgstr "足りないオブジェクトや関数についてレポートする (ELF のみ)。"
6679 #: build/C/man1/ldd.1:39
6685 #: build/C/man1/ldd.1:42
6686 msgid "Usage information."
6690 #: build/C/man1/ldd.1:53
6692 "The standard version of B<ldd> comes with glibc2. Libc5 came with an older "
6693 "version, still present on some systems. The long options are not supported "
6694 "by the libc5 version. On the other hand, the glibc2 version does not "
6695 "support B<-V> and only has the equivalent B<--version>."
6697 "標準的なバージョンの B<ldd> は glibc2 に付属している。 libc5 には古いバージョ"
6698 "ンのものが付属しており、 これが入っているシステムもまだ存在する。 libc5 バー"
6699 "ジョンではロングオプションがサポートされていない。 一方、glibc2 バージョンで"
6700 "は B<-V> をサポートしておらず、これと同じ意味の B<--version> しかサポートして"
6704 #: build/C/man1/ldd.1:59
6706 "The libc5 version of this program will use the name of a library given on "
6707 "the command line as-is when it contains a \\(aq/\\(aq; otherwise it searches "
6708 "for the library in the standard locations. To run it on a shared library in "
6709 "the current directory, prefix the name with \"./\"."
6711 "libc5 バージョンのプログラムでは、 コマンドラインで与えられたライブラリ名に "
6712 "\\(aq/\\(aq が含まれている場合は、ライブラリ名をそのまま用いる。 \\(aq/\\(aq "
6713 "が含まれていない場合は、標準的なパスからライブラリを検索する。 カレントディレ"
6714 "クトリにある共有ライブラリに対して実行するには、 名前にプレフィックス \"./\" "
6718 #: build/C/man1/ldd.1:62
6719 msgid "B<ldd> does not work on a.out shared libraries."
6720 msgstr "B<ldd> は a.out 共有ライブラリでは動作しない。"
6724 #. Roland McGrath and Ulrich Drepper.
6726 #: build/C/man1/ldd.1:75
6728 "B<ldd> does not work with some extremely old a.out programs which were built "
6729 "before B<ldd> support was added to the compiler releases. If you use B<ldd> "
6730 "on one of these programs, the program will attempt to run with I<argc> = 0 "
6731 "and the results will be unpredictable."
6733 "B<ldd> は非常に古い a.out プログラム (B<ldd> のサポートがコンパイラに追加され"
6734 "る以前にビルドされたようなプログラム) では動作しない。 このようなプログラム"
6735 "に対して B<ldd> を用いると、プログラムは I<argc> = 0 で実行される。結果は予想"
6739 #: build/C/man1/ldd.1:78
6740 msgid "B<ld.so>(8), B<ldconfig>(8)"
6741 msgstr "B<ld.so>(8), B<ldconfig>(8)"
6744 #: build/C/man7/rtld-audit.7:26
6750 #: build/C/man7/rtld-audit.7:26
6756 #: build/C/man7/rtld-audit.7:29
6757 msgid "rtld-audit - auditing API for the dynamic linker"
6761 #: build/C/man7/rtld-audit.7:31
6762 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
6766 #: build/C/man7/rtld-audit.7:33
6767 msgid "B<#include E<lt>link.hE<gt>>"
6771 #: build/C/man7/rtld-audit.7:41
6773 "The GNU dynamic linker (run-time linker) provides an auditing API that "
6774 "allows an application to be notified when various dynamic linking events "
6775 "occur. This API is very similar to the auditing interface provided by the "
6776 "Solaris run-time linker. The necessary constants and prototypes are defined "
6777 "by including I<E<lt>link.hE<gt>>."
6781 #: build/C/man7/rtld-audit.7:48
6783 "To use this interface, the programmer creates a shared library that "
6784 "implements a standard set of function names. Not all of the functions need "
6785 "to be implemented: in most cases, if the programmer is not interested in a "
6786 "particular class of auditing event, then no implementation needs to be "
6787 "provided for the corresponding auditing function."
6791 #: build/C/man7/rtld-audit.7:56
6793 "To employ the auditing interface, the environment variable B<LD_AUDIT> must "
6794 "be defined to contain a colon-separated list of shared libraries, each of "
6795 "which can implement (parts of) the auditing API. When an auditable event "
6796 "occurs, the corresponding function is invoked in each library, in the order "
6797 "that the libraries are listed."
6801 #: build/C/man7/rtld-audit.7:56
6803 msgid "la_version()"
6807 #: build/C/man7/rtld-audit.7:60
6809 msgid "B<unsigned int la_version(unsigned int >I<version>B<);>\n"
6813 #: build/C/man7/rtld-audit.7:72
6815 "This is the only function that I<must> be defined by an auditing library: it "
6816 "performs the initial handshake between the dynamic linker and the auditing "
6817 "library. When invoking this function, the dynamic linker passes, in "
6818 "I<version>, the highest version of the auditing interface that the linker "
6819 "supports. If necessary, the auditing library can check that this version is "
6820 "sufficient for its requirements."
6824 #: build/C/man7/rtld-audit.7:81
6826 "As its function result, this function should return the version of the "
6827 "auditing interface that this auditing library expects to use (returning "
6828 "I<version> is acceptable). If the returned value is 0, or a version that is "
6829 "greater than that supported by the dynamic linker, then the audit library is "
6834 #: build/C/man7/rtld-audit.7:81
6836 msgid "la_objsearch()"
6840 #: build/C/man7/rtld-audit.7:86
6843 "B<char *la_objsearch(const char *>I<name>B<, uintptr_t *>I<cookie>B<,>\n"
6844 "B< unsigned int >I<flag>B<);>\n"
6848 #: build/C/man7/rtld-audit.7:97
6850 "The dynamic linker invokes this function to inform the auditing library that "
6851 "it is about to search for a shared object. The I<name> argument is the "
6852 "filename or pathname that is to be searched for. I<cookie> identifies the "
6853 "shared object that initiated the search. I<flag> is set to one of the "
6858 #: build/C/man7/rtld-audit.7:97
6860 msgid "B<LA_SER_ORIG>"
6864 #: build/C/man7/rtld-audit.7:106
6866 "This is the original name that is being searched for. Typically, this name "
6867 "comes from an ELF B<DT_NEEDED> entry, or is the I<filename> argument given "
6872 #: build/C/man7/rtld-audit.7:106
6874 msgid "B<LA_SER_LIBPATH>"
6878 #: build/C/man7/rtld-audit.7:111
6879 msgid "I<name> was created using a directory specified in B<LD_LIBRARY_PATH>."
6883 #: build/C/man7/rtld-audit.7:111
6885 msgid "B<LA_SER_RUNPATH>"
6889 #: build/C/man7/rtld-audit.7:119
6891 "I<name> was created using a directory specified in an ELF B<DT_RPATH> or "
6892 "B<DT_RUNPATH> list."
6896 #: build/C/man7/rtld-audit.7:119
6898 msgid "B<LA_SER_CONFIG>"
6902 #: build/C/man7/rtld-audit.7:126
6903 msgid "I<name> was found via the B<ldconfig>(8) cache (I</etc/ld.so.cache>)."
6907 #: build/C/man7/rtld-audit.7:126
6909 msgid "B<LA_SER_DEFAULT>"
6913 #: build/C/man7/rtld-audit.7:130
6914 msgid "I<name> was found via a search of one of the default directories."
6918 #: build/C/man7/rtld-audit.7:130
6920 msgid "B<LA_SER_SECURE>"
6924 #: build/C/man7/rtld-audit.7:134
6925 msgid "I<name> is specific to a secure object (unused on Linux)."
6929 #: build/C/man7/rtld-audit.7:143
6931 "As its function result, B<la_objsearch>() returns the pathname that the "
6932 "dynamic linker should use for further processing. If NULL is returned, then "
6933 "this pathname is ignored for further processing. If this audit library "
6934 "simply intends to monitor search paths, then I<name> should be returned."
6938 #: build/C/man7/rtld-audit.7:143
6940 msgid "la_activity()"
6944 #: build/C/man7/rtld-audit.7:147
6946 msgid "B<void la_activity( uintptr_t *>I<cookie>B<, unsigned int >I<flag>B<);>\n"
6950 #: build/C/man7/rtld-audit.7:156
6952 "The dynamic linker calls this function to inform the auditing library that "
6953 "link-map activity is occurring. I<cookie> identifies the object at the head "
6954 "of the link map. When the dynamic linker invokes this function, I<flag> is "
6955 "set to one of the following values:"
6959 #: build/C/man7/rtld-audit.7:156
6961 msgid "B<LA_ACT_ADD>"
6965 #: build/C/man7/rtld-audit.7:159
6966 msgid "New objects are being added to the link map."
6970 #: build/C/man7/rtld-audit.7:159
6972 msgid "B<LA_ACT_DELETE>"
6976 #: build/C/man7/rtld-audit.7:162
6977 msgid "Objects are being removed from the link map."
6981 #: build/C/man7/rtld-audit.7:162
6983 msgid "B<LA_ACT_CONSISTENT>"
6987 #: build/C/man7/rtld-audit.7:165
6988 msgid "Link-map activity has been completed: the map is once again consistent."
6992 #: build/C/man7/rtld-audit.7:165
6994 msgid "la_objopen()"
6998 #: build/C/man7/rtld-audit.7:170
7001 "B<unsigned int la_objopen(struct link_map *>I<map>B<, Lmid_t >I<lmid>B<,>\n"
7002 "B< uintptr_t *>I<cookie>B<);>\n"
7006 #: build/C/man7/rtld-audit.7:179
7008 "The dynamic linker calls this function when a new shared object is loaded. "
7009 "The I<map> argument is a pointer to a link-map structure that describes the "
7010 "object. The I<lmid> field has one of the following values"
7014 #: build/C/man7/rtld-audit.7:179
7016 msgid "B<LM_ID_BASE>"
7020 #: build/C/man7/rtld-audit.7:182
7021 msgid "Link map is part of the initial namespace."
7025 #: build/C/man7/rtld-audit.7:182
7027 msgid "B<LM_ID_NEWLM>"
7031 #: build/C/man7/rtld-audit.7:186
7032 msgid "Link map is part of a new namespace requested via B<dlmopen>(3)."
7036 #: build/C/man7/rtld-audit.7:194
7038 "I<cookie> is a pointer to an identifier for this object. The identifier is "
7039 "provided to later calls to functions in the auditing library in order to "
7040 "identify this object. This identifier is initialized to point to object's "
7041 "link map, but the audit library can change the identifier to some other "
7042 "value that it may prefer to use to identify the object."
7046 #: build/C/man7/rtld-audit.7:201
7048 "As its return value, B<la_objopen>() returns a bit mask created by ORing "
7049 "zero or more of the following constants, which allow the auditing library to "
7050 "select the objects to be monitored by B<la_symbind*>():"
7054 #: build/C/man7/rtld-audit.7:201
7056 msgid "B<LA_FLG_BINDTO>"
7060 #: build/C/man7/rtld-audit.7:204
7061 msgid "Audit symbol bindings to this object."
7065 #: build/C/man7/rtld-audit.7:204
7067 msgid "B<LA_FLG_BINDFROM>"
7071 #: build/C/man7/rtld-audit.7:207
7072 msgid "Audit symbol bindings from this object."
7076 #: build/C/man7/rtld-audit.7:211
7078 "A return value of 0 from B<la_objopen>() indicates that no symbol bindings "
7079 "should be audited for this object."
7083 #: build/C/man7/rtld-audit.7:211
7085 msgid "la_objclose()"
7089 #: build/C/man7/rtld-audit.7:215
7091 msgid "B<unsigned int la_objclose(uintptr_t *>I<cookie);>\n"
7095 #: build/C/man7/rtld-audit.7:224
7097 "The dynamic linker invokes this function after any finalization code for the "
7098 "object has been executed, before the object is unloaded. The I<cookie> "
7099 "argument is the identifier obtained from a previous invocation of "
7104 #: build/C/man7/rtld-audit.7:228
7106 "In the current implementation, the value returned by B<la_objclose>() is "
7111 #: build/C/man7/rtld-audit.7:228
7113 msgid "la_preinit()"
7117 #: build/C/man7/rtld-audit.7:232
7119 msgid "B<void la_preinit(uintptr_t *>I<cookie>B<);>\n"
7123 #: build/C/man7/rtld-audit.7:242
7125 "The dynamic linker invokes this function after all shared objects have been "
7126 "loaded, before control is passed to the application (i.e., before calling "
7127 "I<main>()). Note that I<main>() may still later dynamically load objects "
7128 "using B<dlopen>(3)."
7132 #: build/C/man7/rtld-audit.7:242
7134 msgid "la_symbind*()"
7138 #: build/C/man7/rtld-audit.7:251
7141 "B<uintptr_t la_symbind32(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
7142 "B< uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
7143 "B< unsigned int *>I<flags>B<, const char *>I<symname>B<);>\n"
7144 "B<uintptr_t la_symbind64(Elf64_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
7145 "B< uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
7146 "B< unsigned int *>I<flags>B<, const char *>I<symname>B<);>\n"
7150 #: build/C/man7/rtld-audit.7:263
7152 "The dynamic linker invokes one of these functions when a symbol binding "
7153 "occurs between two shared objects that have been marked for auditing "
7154 "notification by B<la_objopen>(). The B<la_symbind32>() function is "
7155 "employed on 32-bit platforms; the B<la_symbind64>() function is employed on "
7160 #: build/C/man7/rtld-audit.7:273
7162 "The I<sym> argument is a pointer to a structure that provides information "
7163 "about the symbol being bound. The structure definition is shown in "
7164 "I<E<lt>elf.hE<gt>>. Among the fields of this structure, I<st_value> "
7165 "indicates the address to which the symbol is bound."
7169 #: build/C/man7/rtld-audit.7:278
7171 "The I<ndx> argument gives the index of the symbol in the symbol table of the "
7172 "bound shared object."
7176 #: build/C/man7/rtld-audit.7:293
7178 "The I<refcook> argument identifies the shared object that is making the "
7179 "symbol reference; this is the same identifier that is provided to the "
7180 "B<la_objopen>() function that returned B<LA_FLG_BINDFROM>. The I<defcook> "
7181 "argument identifies the shared object that defines the referenced symbol; "
7182 "this is the same identifier that is provided to the B<la_objopen>() "
7183 "function that returned B<LA_FLG_BINDTO>."
7187 #: build/C/man7/rtld-audit.7:297
7189 "The I<symname> argument points a string containing the name of the symbol."
7192 #. LA_SYMB_STRUCTCALL appears to be unused
7194 #: build/C/man7/rtld-audit.7:305
7196 "The I<flags> argument is a bit mask that both provides information about the "
7197 "symbol and can be used to modify further auditing of this PLT (Procedure "
7198 "Linkage Table) entry. The dynamic linker may supply the following bit "
7199 "values in this argument:"
7203 #: build/C/man7/rtld-audit.7:305
7205 msgid "B<LA_SYMB_DLSYM>"
7209 #: build/C/man7/rtld-audit.7:309
7210 msgid "The binding resulted from a call to B<dlsym>(3)."
7214 #: build/C/man7/rtld-audit.7:309
7216 msgid "B<LA_SYMB_ALTVALUE>"
7220 #: build/C/man7/rtld-audit.7:314
7222 "A previous B<la_symbind*>() call returned an alternate value for this "
7226 #. pltenter/pltexit are called for non-dynamically loaded libraries,
7227 #. but don't seem to be called for dynamically loaded libs?
7228 #. Is this the same on Solaris?
7230 #: build/C/man7/rtld-audit.7:328
7232 "By default, if the auditing library implements B<la_pltenter>() and "
7233 "B<la_pltexit>() functions (see below), then these functions are invoked, "
7234 "after B<la_symbind>(), for PLT entries, each time the symbol is referenced. "
7235 "The following flags can be ORed into I<*flags> to change this default "
7240 #: build/C/man7/rtld-audit.7:328
7242 msgid "B<LA_SYMB_NOPLTENTER>"
7246 #: build/C/man7/rtld-audit.7:333
7247 msgid "Don't call B<la_pltenter>() for this symbol."
7251 #: build/C/man7/rtld-audit.7:333
7253 msgid "B<LA_SYMB_NOPLTEXIT>"
7257 #: build/C/man7/rtld-audit.7:338
7258 msgid "Don't call B<la_pltexit>() for this symbol."
7262 #: build/C/man7/rtld-audit.7:349
7264 "The return value of B<la_symbind32>() and B<la_symbind64>() is the address "
7265 "to which control should be passed after the function returns. If the "
7266 "auditing library is simply monitoring symbol bindings, then it should return "
7267 "I<sym-E<gt>st_name>. A different value may be returned if the library "
7268 "wishes to direct control to an alternate location."
7272 #: build/C/man7/rtld-audit.7:349
7274 msgid "la_pltenter()"
7278 #: build/C/man7/rtld-audit.7:355 build/C/man7/rtld-audit.7:415
7280 "The precise name and argument types for this function depend on the hardware "
7281 "platform. (The appropriate definition is supplied by I<E<lt>link.hE<gt>>.) "
7282 "Here is the definition for x86-32:"
7286 #: build/C/man7/rtld-audit.7:361
7289 "B<Elf32_Addr la_i86_gnu_pltenter(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
7290 "B< uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
7291 "B< La_i86_regs *>I<regs>B<, unsigned int *>I<flags>B<,>\n"
7292 "B< const char *>I<symname>B<, long int *>I<framesizep>B<);>\n"
7296 #: build/C/man7/rtld-audit.7:365
7298 "This function is invoked just before a PLT entry is called, between two "
7299 "shared objects that have been marked for binding notification."
7303 #: build/C/man7/rtld-audit.7:375 build/C/man7/rtld-audit.7:438
7305 "The I<sym>, I<ndx>, I<refcook>, I<defcook>, and I<symname> are as for "
7310 #: build/C/man7/rtld-audit.7:382
7312 "The I<regs> argument points to a structure (defined in I<E<lt>link.hE<gt>>) "
7313 "containing the values of registers to be used for the call to this PLT entry."
7317 #: build/C/man7/rtld-audit.7:388
7319 "The I<flags> argument points to a bit mask that conveys information about, "
7320 "and can be used to modify subsequent auditing of, this PLT entry, as for "
7324 #. FIXME is the following correct?
7326 #: build/C/man7/rtld-audit.7:404
7328 "The I<framesizep> argument points to a I<long\\ int> buffer that can be used "
7329 "to explicitly set the frame size used for the call to this PLT entry. If "
7330 "different B<la_pltenter>() invocations for this symbol return different "
7331 "values, then the maximum returned value is used. The B<la_pltenter>() "
7332 "function is only called if this buffer is explicitly set to a suitable value."
7336 #: build/C/man7/rtld-audit.7:409
7337 msgid "The return value of B<la_pltenter>() is as for B<la_symbind*>()."
7341 #: build/C/man7/rtld-audit.7:409
7343 msgid "la_pltexit()"
7347 #: build/C/man7/rtld-audit.7:421
7350 "B<unsigned int la_i86_gnu_pltexit(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
7351 "B< uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
7352 "B< const La_i86_regs *>I<inregs>B<, La_i86_retval *>I<outregs>B<,>\n"
7353 "B< const char *>I<symname>B<);>\n"
7357 #: build/C/man7/rtld-audit.7:428
7359 "This function is called when a PLT entry, made between two shared objects "
7360 "that have been marked for binding notification, returns. The function is "
7361 "called just before control returns to the caller of the PLT entry."
7365 #: build/C/man7/rtld-audit.7:451
7367 "The I<inregs> argument points to a structure (defined in I<E<lt>link."
7368 "hE<gt>>) containing the values of registers used for the call to this PLT "
7369 "entry. The I<outregs> argument points to a structure (defined in "
7370 "I<E<lt>link.hE<gt>>) containing return values for the call to this PLT "
7371 "entry. These values can be modified by the caller, and the changes will be "
7372 "visible to the caller of the PLT entry."
7375 #. This differs from Solaris, where an audit library that monitors
7376 #. symbol binding should return the value of the 'retval' argument
7377 #. (not provided by GNU, but equivalent to returning outregs->lrv_eax
7378 #. on (say) x86-32).
7380 #: build/C/man7/rtld-audit.7:459
7382 "In the current GNU implementation, the return value of B<la_pltexit>() is "
7387 #: build/C/man7/rtld-audit.7:465
7389 "This API is nonstandard, but very similar to the Solaris API, described in "
7390 "the Solaris I<Linker and Libraries Guide>, in the chapter I<Runtime Linker "
7391 "Auditing Interface>."
7395 #: build/C/man7/rtld-audit.7:468
7397 "Note the following differences from the Solaris dynamic linker auditing API:"
7401 #: build/C/man7/rtld-audit.7:468 build/C/man7/rtld-audit.7:472
7402 #: build/C/man7/rtld-audit.7:480
7408 #: build/C/man7/rtld-audit.7:472
7410 "The Solaris B<la_objfilter>() interface is not supported by the GNU "
7415 #: build/C/man7/rtld-audit.7:480
7417 "The Solaris B<la_symbind32>() and B<la_pltexit>() functions do not provide "
7418 "a I<symname> argument."
7422 #: build/C/man7/rtld-audit.7:490
7424 "The Solaris B<la_pltexit>() function does not provide I<inregs> and "
7425 "I<outregs> arguments (but does provide a I<retval> argument with the "
7426 "function return value)."
7430 #: build/C/man7/rtld-audit.7:494
7433 "#include E<lt>link.hE<gt>\n"
7434 "#include E<lt>stdio.hE<gt>\n"
7438 #: build/C/man7/rtld-audit.7:499
7442 "la_version(unsigned int version)\n"
7444 " printf(\"la_version(): %d\\en\", version);\n"
7448 #: build/C/man7/rtld-audit.7:502
7451 " return version;\n"
7456 #: build/C/man7/rtld-audit.7:515
7460 "la_objsearch(const char *name, uintptr_t *cookie, unsigned int flag)\n"
7462 " printf(\"la_objsearch(): name = %s; cookie = %x\", name, cookie);\n"
7463 " printf(\"; flag = %s\\en\",\n"
7464 " (flag == LA_SER_ORIG) ? \"LA_SER_ORIG\" :\n"
7465 " (flag == LA_SER_LIBPATH) ? \"LA_SER_LIBPATH\" :\n"
7466 " (flag == LA_SER_RUNPATH) ? \"LA_SER_RUNPATH\" :\n"
7467 " (flag == LA_SER_DEFAULT) ? \"LA_SER_DEFAULT\" :\n"
7468 " (flag == LA_SER_CONFIG) ? \"LA_SER_CONFIG\" :\n"
7469 " (flag == LA_SER_SECURE) ? \"LA_SER_SECURE\" :\n"
7474 #: build/C/man7/rtld-audit.7:518
7482 #: build/C/man7/rtld-audit.7:528
7486 "la_activity (uintptr_t *cookie, unsigned int flag)\n"
7488 " printf(\"la_activity(): cookie = %x; flag = %s\\en\", cookie,\n"
7489 " (flag == LA_ACT_CONSISTENT) ? \"LA_ACT_CONSISTENT\" :\n"
7490 " (flag == LA_ACT_ADD) ? \"LA_ACT_ADD\" :\n"
7491 " (flag == LA_ACT_DELETE) ? \"LA_ACT_DELETE\" :\n"
7497 #: build/C/man7/rtld-audit.7:538
7501 "la_objopen(struct link_map *map, Lmid_t lmid, uintptr_t *cookie)\n"
7503 " printf(\"la_objopen(): loading \\e\"%s\\e\"; lmid = %s; cookie=%x\\en\",\n"
7504 " map-E<gt>l_name,\n"
7505 " (lmid == LM_ID_BASE) ? \"LM_ID_BASE\" :\n"
7506 " (lmid == LM_ID_NEWLM) ? \"LM_ID_NEWLM\" :\n"
7512 #: build/C/man7/rtld-audit.7:541
7515 " return LA_FLG_BINDTO | LA_FLG_BINDFROM;\n"
7520 #: build/C/man7/rtld-audit.7:546
7524 "la_objclose (uintptr_t *cookie)\n"
7526 " printf(\"la_objclose(): %x\\en\", cookie);\n"
7530 #: build/C/man7/rtld-audit.7:549
7538 #: build/C/man7/rtld-audit.7:555
7542 "la_preinit(uintptr_t *cookie)\n"
7544 " printf(\"la_preinit(): %x\\en\", cookie);\n"
7549 #: build/C/man7/rtld-audit.7:564
7553 "la_symbind32(Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
7554 " uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
7556 " printf(\"la_symbind32(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
7557 " symname, sym-E<gt>st_value);\n"
7558 " printf(\" ndx = %d; flags = 0x%x\", ndx, *flags);\n"
7559 " printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
7563 #: build/C/man7/rtld-audit.7:567 build/C/man7/rtld-audit.7:579
7564 #: build/C/man7/rtld-audit.7:589
7567 " return sym-E<gt>st_value;\n"
7572 #: build/C/man7/rtld-audit.7:576
7576 "la_symbind64(Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
7577 " uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
7579 " printf(\"la_symbind64(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
7580 " symname, sym-E<gt>st_value);\n"
7581 " printf(\" ndx = %d; flags = 0x%x\", ndx, *flags);\n"
7582 " printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
7586 #: build/C/man7/rtld-audit.7:586
7590 "la_i86_gnu_pltenter(Elf32_Sym *sym, unsigned int ndx,\n"
7591 " uintptr_t *refcook, uintptr_t *defcook, La_i86_regs *regs,\n"
7592 " unsigned int *flags, const char *symname, long int *framesizep)\n"
7594 " printf(\"la_i86_gnu_pltenter(): %s (%p)\\en\", symname, sym-E<gt>st_value);\n"
7597 #. FIXME Specifying multiple audit libraries doesn't work on GNU.
7598 #. My simple tests on Solaris work okay, but not on Linux -- mtk, Jan 2009
7599 #. glibc bug filed: http://sourceware.org/bugzilla/show_bug.cgi?id=9733
7600 #. Reportedly, this is fixed on 16 Mar 2009 (i.e., for glibc 2.10)
7602 #: build/C/man7/rtld-audit.7:600
7604 "In glibc versions up to and include 2.9, specifying more than one audit "
7605 "library in B<LD_AUDIT> results in a run-time crash. This is reportedly "
7606 "fixed in glibc 2.10."
7610 #: build/C/man7/rtld-audit.7:605
7611 msgid "B<ldd>(1), B<dlopen>(3), B<ld.so>(8), B<ldconfig>(8)"
7612 msgstr "B<ldd>(1), B<dlopen>(3), B<ld.so>(8), B<ldconfig>(8)"
7614 #~ msgid "2009-04-15"
7615 #~ msgstr "2009-04-15"
7617 #~ msgid "2009-01-12"
7618 #~ msgstr "2009-01-12"
7620 #~ msgid "2007-12-28"
7621 #~ msgstr "2007-12-28"
7623 #~ msgid "B<EI_BRAND>"
7624 #~ msgstr "B<EI_BRAND>"
7626 #~ msgid "Start of architecture identification."
7627 #~ msgstr "アーキテクチャ ID の開始。"
7630 #~ "A section header table index is a subscript into this array. Some "
7631 #~ "section header table indices are reserved. An object file does not have "
7632 #~ "sections for these special indices:"
7634 #~ "セクションヘッダテーブルインデックスは、この配列の要素を指定する。 いくつ"
7635 #~ "かのセクションヘッダテーブルインデックスは予約されている。 オブジェクト"
7636 #~ "ファイルは、これらの特別なインデックスに対応する セクションを持たない:"