OSDN Git Service

(split) LDP: Update POT and ja.po to LDP v3.41.
[linuxjm/LDP_man-pages.git] / po4a / ld / po / ld.pot
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 #, fuzzy
7 msgid ""
8 msgstr ""
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2012-05-28 07:16+0900\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
14 "Language: \n"
15 "MIME-Version: 1.0\n"
16 "Content-Type: text/plain; charset=CHARSET\n"
17 "Content-Transfer-Encoding: 8bit\n"
18
19 #. type: TH
20 #: build/C/man3/dl_iterate_phdr.3:24
21 #, no-wrap
22 msgid "DL_ITERATE_PHDR"
23 msgstr ""
24
25 #. type: TH
26 #: build/C/man3/dl_iterate_phdr.3:24
27 #, no-wrap
28 msgid "2007-05-18"
29 msgstr ""
30
31 #. type: TH
32 #: build/C/man3/dl_iterate_phdr.3:24 build/C/man3/end.3:25 build/C/man8/ld.so.8:2 build/C/man8/ldconfig.8:22
33 #, no-wrap
34 msgid "GNU"
35 msgstr ""
36
37 #. type: TH
38 #: build/C/man3/dl_iterate_phdr.3:24 build/C/man3/dlopen.3:35 build/C/man5/elf.5:33 build/C/man3/end.3:25 build/C/man8/ld.so.8:2 build/C/man8/ldconfig.8:22 build/C/man1/ldd.1:10 build/C/man7/rtld-audit.7:26
39 #, no-wrap
40 msgid "Linux Programmer's Manual"
41 msgstr ""
42
43 #. type: SH
44 #: build/C/man3/dl_iterate_phdr.3:25 build/C/man3/dlopen.3:36 build/C/man5/elf.5:34 build/C/man3/end.3:26 build/C/man8/ld.so.8:3 build/C/man8/ldconfig.8:23 build/C/man1/ldd.1:11 build/C/man7/rtld-audit.7:27
45 #, no-wrap
46 msgid "NAME"
47 msgstr ""
48
49 #. type: Plain text
50 #: build/C/man3/dl_iterate_phdr.3:27
51 msgid "dl_iterate_phdr - walk through list of shared objects"
52 msgstr ""
53
54 #. type: SH
55 #: build/C/man3/dl_iterate_phdr.3:27 build/C/man3/dlopen.3:39 build/C/man5/elf.5:36 build/C/man3/end.3:28 build/C/man8/ld.so.8:5 build/C/man8/ldconfig.8:25 build/C/man1/ldd.1:13 build/C/man7/rtld-audit.7:29
56 #, no-wrap
57 msgid "SYNOPSIS"
58 msgstr ""
59
60 #. type: Plain text
61 #: build/C/man3/dl_iterate_phdr.3:31
62 #, no-wrap
63 msgid ""
64 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
65 "B<#include E<lt>link.hE<gt>>\n"
66 msgstr ""
67
68 #. type: Plain text
69 #: build/C/man3/dl_iterate_phdr.3:37
70 #, no-wrap
71 msgid ""
72 "B<int dl_iterate_phdr(>\n"
73 "          B<int (*>callbackB<) (struct dl_phdr_info *>infoB<,>\n"
74 "                           B<size_t> sizeB<, void *>dataB<),>\n"
75 "          B<void *>dataB<);>\n"
76 msgstr ""
77
78 #. type: SH
79 #: build/C/man3/dl_iterate_phdr.3:38 build/C/man3/dlopen.3:51 build/C/man5/elf.5:41 build/C/man3/end.3:34 build/C/man8/ld.so.8:15 build/C/man8/ldconfig.8:54 build/C/man1/ldd.1:15 build/C/man7/rtld-audit.7:33
80 #, no-wrap
81 msgid "DESCRIPTION"
82 msgstr ""
83
84 #. type: Plain text
85 #: build/C/man3/dl_iterate_phdr.3:43
86 msgid ""
87 "The B<dl_iterate_phdr>()  function allows an application to inquire at run "
88 "time to find out which shared objects it has loaded."
89 msgstr ""
90
91 #. type: Plain text
92 #: build/C/man3/dl_iterate_phdr.3:53
93 msgid ""
94 "The B<dl_iterate_phdr>()  function walks through the list of an "
95 "application's shared objects and calls the function I<callback> once for "
96 "each object, until either all shared objects have been processed or "
97 "I<callback> returns a nonzero value."
98 msgstr ""
99
100 #. type: Plain text
101 #: build/C/man3/dl_iterate_phdr.3:70
102 msgid ""
103 "Each call to I<callback> receives three arguments: I<info>, which is a "
104 "pointer to a structure containing information about the shared object; "
105 "I<size>, which is the size of the structure pointed to by I<info>; and "
106 "I<data>, which is a copy of whatever value was passed by the calling program "
107 "as the second argument (also named I<data>)  in the call to "
108 "B<dl_iterate_phdr>()."
109 msgstr ""
110
111 #. type: Plain text
112 #: build/C/man3/dl_iterate_phdr.3:74
113 msgid "The I<info> argument is a structure of the following type:"
114 msgstr ""
115
116 #. type: Plain text
117 #: build/C/man3/dl_iterate_phdr.3:86
118 #, no-wrap
119 msgid ""
120 "struct dl_phdr_info {\n"
121 "    ElfW(Addr)        dlpi_addr;  /* Base address of object */\n"
122 "    const char       *dlpi_name;  /* (Null-terminated) name of\n"
123 "                                     object */\n"
124 "    const ElfW(Phdr) *dlpi_phdr;  /* Pointer to array of\n"
125 "                                     ELF program headers\n"
126 "                                     for this object */\n"
127 "    ElfW(Half)        dlpi_phnum; /* # of items in I<dlpi_phdr> */\n"
128 "};\n"
129 msgstr ""
130
131 #. type: Plain text
132 #: build/C/man3/dl_iterate_phdr.3:98
133 msgid ""
134 "(The I<ElfW>()  macro definition turns its argument into the name of an ELF "
135 "data type suitable for the hardware architecture.  For example, on a 32-bit "
136 "platform, ElfW(Addr) yields the data type name Elf32_Addr.  Further "
137 "information on these types can be found in the I<E<lt>elf.hE<gt>> and "
138 "I<E<lt>link.hE<gt>> header files.)"
139 msgstr ""
140
141 #. type: Plain text
142 #: build/C/man3/dl_iterate_phdr.3:109
143 msgid ""
144 "The I<dlpi_addr> field indicates the base address of the shared object "
145 "(i.e., the difference between the virtual memory address of the shared "
146 "object and the offset of that object in the file from which it was loaded).  "
147 "The I<dlpi_name> field is a null-terminated string giving the pathname from "
148 "which the shared object was loaded."
149 msgstr ""
150
151 #. type: Plain text
152 #: build/C/man3/dl_iterate_phdr.3:124
153 msgid ""
154 "To understand the meaning of the I<dlpi_phdr> and I<dlpi_phnum> fields, we "
155 "need to be aware that an ELF shared object consists of a number of segments, "
156 "each of which has a corresponding program header describing the segment.  "
157 "The I<dlpi_phdr> field is a pointer to an array of the program headers for "
158 "this shared object.  The I<dlpi_phnum> field indicates the size of this "
159 "array."
160 msgstr ""
161
162 #. type: Plain text
163 #: build/C/man3/dl_iterate_phdr.3:126
164 msgid "These program headers are structures of the following form:"
165 msgstr ""
166
167 #. type: Plain text
168 #: build/C/man3/dl_iterate_phdr.3:139
169 #, no-wrap
170 msgid ""
171 "typedef struct {\n"
172 "    Elf32_Word  p_type;    /* Segment type */\n"
173 "    Elf32_Off   p_offset;  /* Segment file offset */\n"
174 "    Elf32_Addr  p_vaddr;   /* Segment virtual address */\n"
175 "    Elf32_Addr  p_paddr;   /* Segment physical address */\n"
176 "    Elf32_Word  p_filesz;  /* Segment size in file */\n"
177 "    Elf32_Word  p_memsz;   /* Segment size in memory */\n"
178 "    Elf32_Word  p_flags;   /* Segment flags */\n"
179 "    Elf32_Word  p_align;   /* Segment alignment */\n"
180 "} Elf32_Phdr;\n"
181 msgstr ""
182
183 #. type: Plain text
184 #: build/C/man3/dl_iterate_phdr.3:145
185 msgid ""
186 "Note that we can calculate the location of a particular program header, "
187 "I<x>, in virtual memory using the formula:"
188 msgstr ""
189
190 #. type: Plain text
191 #: build/C/man3/dl_iterate_phdr.3:148
192 #, no-wrap
193 msgid "  addr == info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[x].p_vaddr;\n"
194 msgstr ""
195
196 #. type: SH
197 #: build/C/man3/dl_iterate_phdr.3:149
198 #, no-wrap
199 msgid "RETURN VALUE"
200 msgstr ""
201
202 #. type: Plain text
203 #: build/C/man3/dl_iterate_phdr.3:154
204 msgid ""
205 "The B<dl_iterate_phdr>()  function returns whatever value was returned by "
206 "the last call to I<callback>."
207 msgstr ""
208
209 #. type: SH
210 #: build/C/man3/dl_iterate_phdr.3:154
211 #, no-wrap
212 msgid "VERSIONS"
213 msgstr ""
214
215 #. type: Plain text
216 #: build/C/man3/dl_iterate_phdr.3:157
217 msgid "B<dl_iterate_phdr>()  has been supported in glibc since version 2.2.4."
218 msgstr ""
219
220 #. type: SH
221 #: build/C/man3/dl_iterate_phdr.3:157 build/C/man3/dlopen.3:381 build/C/man3/end.3:49 build/C/man7/rtld-audit.7:459
222 #, no-wrap
223 msgid "CONFORMING TO"
224 msgstr ""
225
226 #. type: Plain text
227 #: build/C/man3/dl_iterate_phdr.3:161
228 msgid ""
229 "The B<dl_iterate_phdr>()  function is Linux-specific and should be avoided "
230 "in portable applications."
231 msgstr ""
232
233 #. type: SH
234 #: build/C/man3/dl_iterate_phdr.3:161 build/C/man3/dlopen.3:446 build/C/man3/end.3:75 build/C/man7/rtld-audit.7:490
235 #, no-wrap
236 msgid "EXAMPLE"
237 msgstr ""
238
239 #. type: Plain text
240 #: build/C/man3/dl_iterate_phdr.3:166
241 msgid ""
242 "The following program displays a list of pathnames of the shared objects it "
243 "has loaded.  For each shared object, the program lists the virtual addresses "
244 "at which the object's ELF segments are loaded."
245 msgstr ""
246
247 #. type: Plain text
248 #: build/C/man3/dl_iterate_phdr.3:172
249 #, no-wrap
250 msgid ""
251 "#define _GNU_SOURCE\n"
252 "#include E<lt>link.hE<gt>\n"
253 "#include E<lt>stdlib.hE<gt>\n"
254 "#include E<lt>stdio.hE<gt>\n"
255 msgstr ""
256
257 #. type: Plain text
258 #: build/C/man3/dl_iterate_phdr.3:177
259 #, no-wrap
260 msgid ""
261 "static int\n"
262 "callback(struct dl_phdr_info *info, size_t size, void *data)\n"
263 "{\n"
264 "    int j;\n"
265 msgstr ""
266
267 #. type: Plain text
268 #: build/C/man3/dl_iterate_phdr.3:180
269 #, no-wrap
270 msgid ""
271 "    printf(\"name=%s (%d segments)\\en\", info-E<gt>dlpi_name,\n"
272 "        info-E<gt>dlpi_phnum);\n"
273 msgstr ""
274
275 #. type: Plain text
276 #: build/C/man3/dl_iterate_phdr.3:186
277 #, no-wrap
278 msgid ""
279 "    for (j = 0; j E<lt> info-E<gt>dlpi_phnum; j++)\n"
280 "         printf(\"\\et\\et header %2d: address=%10p\\en\", j,\n"
281 "             (void *) (info-E<gt>dlpi_addr + "
282 "info-E<gt>dlpi_phdr[j].p_vaddr));\n"
283 "    return 0;\n"
284 "}\n"
285 msgstr ""
286
287 #. type: Plain text
288 #: build/C/man3/dl_iterate_phdr.3:191
289 #, no-wrap
290 msgid ""
291 "int\n"
292 "main(int argc, char *argv[])\n"
293 "{\n"
294 "    dl_iterate_phdr(callback, NULL);\n"
295 msgstr ""
296
297 #. type: Plain text
298 #: build/C/man3/dl_iterate_phdr.3:194 build/C/man3/end.3:106
299 #, no-wrap
300 msgid ""
301 "    exit(EXIT_SUCCESS);\n"
302 "}\n"
303 msgstr ""
304
305 #. type: SH
306 #: build/C/man3/dl_iterate_phdr.3:195 build/C/man3/dlopen.3:507 build/C/man5/elf.5:1937 build/C/man3/end.3:107 build/C/man8/ld.so.8:409 build/C/man8/ldconfig.8:175 build/C/man1/ldd.1:75 build/C/man7/rtld-audit.7:600
307 #, no-wrap
308 msgid "SEE ALSO"
309 msgstr ""
310
311 #. type: Plain text
312 #: build/C/man3/dl_iterate_phdr.3:205
313 msgid ""
314 "B<ldd>(1), B<objdump>(1), B<readelf>(1), B<dlopen>(3), B<elf>(5), "
315 "B<ld.so>(8), and the I<Executable and Linking Format Specification> "
316 "available at various locations online."
317 msgstr ""
318
319 #. type: SH
320 #: build/C/man3/dl_iterate_phdr.3:205 build/C/man3/dlopen.3:515 build/C/man5/elf.5:1961 build/C/man3/end.3:112 build/C/man8/ld.so.8:419 build/C/man8/ldconfig.8:178 build/C/man1/ldd.1:78 build/C/man7/rtld-audit.7:605
321 #, no-wrap
322 msgid "COLOPHON"
323 msgstr ""
324
325 #. type: Plain text
326 #: build/C/man3/dl_iterate_phdr.3:212 build/C/man3/dlopen.3:522 build/C/man5/elf.5:1968 build/C/man3/end.3:119 build/C/man8/ld.so.8:426 build/C/man8/ldconfig.8:185 build/C/man1/ldd.1:85 build/C/man7/rtld-audit.7:612
327 msgid ""
328 "This page is part of release 3.41 of the Linux I<man-pages> project.  A "
329 "description of the project, and information about reporting bugs, can be "
330 "found at http://www.kernel.org/doc/man-pages/."
331 msgstr ""
332
333 #. type: TH
334 #: build/C/man3/dlopen.3:35
335 #, no-wrap
336 msgid "DLOPEN"
337 msgstr ""
338
339 #. type: TH
340 #: build/C/man3/dlopen.3:35
341 #, no-wrap
342 msgid "2008-12-06"
343 msgstr ""
344
345 #. type: TH
346 #: build/C/man3/dlopen.3:35 build/C/man5/elf.5:33 build/C/man7/rtld-audit.7:26
347 #, no-wrap
348 msgid "Linux"
349 msgstr ""
350
351 #. type: Plain text
352 #: build/C/man3/dlopen.3:39
353 msgid ""
354 "dladdr, dlclose, dlerror, dlopen, dlsym, dlvsym - programming interface to "
355 "dynamic linking loader"
356 msgstr ""
357
358 #. type: Plain text
359 #: build/C/man3/dlopen.3:41
360 msgid "B<#include E<lt>dlfcn.hE<gt>>"
361 msgstr ""
362
363 #. type: Plain text
364 #: build/C/man3/dlopen.3:43
365 msgid "B<void *dlopen(const char *>I<filename>B<, int >I<flag>B<);>"
366 msgstr ""
367
368 #. type: Plain text
369 #: build/C/man3/dlopen.3:45
370 msgid "B<char *dlerror(void);>"
371 msgstr ""
372
373 #. type: Plain text
374 #: build/C/man3/dlopen.3:47
375 msgid "B<void *dlsym(void *>I<handle>B<, const char *>I<symbol>B<);>"
376 msgstr ""
377
378 #. type: Plain text
379 #: build/C/man3/dlopen.3:49
380 msgid "B<int dlclose(void *>I<handle>B<);>"
381 msgstr ""
382
383 #. type: Plain text
384 #: build/C/man3/dlopen.3:51
385 msgid "Link with I<-ldl>."
386 msgstr ""
387
388 #. type: Plain text
389 #: build/C/man3/dlopen.3:58
390 msgid ""
391 "The four functions B<dlopen>(), B<dlsym>(), B<dlclose>(), B<dlerror>()  "
392 "implement the interface to the dynamic linking loader."
393 msgstr ""
394
395 #. type: SS
396 #: build/C/man3/dlopen.3:58
397 #, no-wrap
398 msgid "dlerror()"
399 msgstr ""
400
401 #. type: Plain text
402 #: build/C/man3/dlopen.3:71
403 msgid ""
404 "The function B<dlerror>()  returns a human readable string describing the "
405 "most recent error that occurred from B<dlopen>(), B<dlsym>()  or "
406 "B<dlclose>()  since the last call to B<dlerror>().  It returns NULL if no "
407 "errors have occurred since initialization or since it was last called."
408 msgstr ""
409
410 #. type: SS
411 #: build/C/man3/dlopen.3:71
412 #, no-wrap
413 msgid "dlopen()"
414 msgstr ""
415
416 #. type: Plain text
417 #: build/C/man3/dlopen.3:89
418 msgid ""
419 "The function B<dlopen>()  loads the dynamic library file named by the "
420 "null-terminated string I<filename> and returns an opaque \"handle\" for the "
421 "dynamic library.  If I<filename> is NULL, then the returned handle is for "
422 "the main program.  If I<filename> contains a slash (\"/\"), then it is "
423 "interpreted as a (relative or absolute) pathname.  Otherwise, the dynamic "
424 "linker searches for the library as follows (see B<ld.so>(8)  for further "
425 "details):"
426 msgstr ""
427
428 #. type: IP
429 #: build/C/man3/dlopen.3:89 build/C/man3/dlopen.3:93 build/C/man3/dlopen.3:100 build/C/man3/dlopen.3:104 build/C/man3/dlopen.3:111 build/C/man8/ld.so.8:45 build/C/man8/ld.so.8:50 build/C/man8/ld.so.8:55 build/C/man8/ld.so.8:59 build/C/man8/ld.so.8:69
430 #, no-wrap
431 msgid "o"
432 msgstr ""
433
434 #. type: Plain text
435 #: build/C/man3/dlopen.3:93
436 msgid ""
437 "(ELF only) If the executable file for the calling program contains a "
438 "DT_RPATH tag, and does not contain a DT_RUNPATH tag, then the directories "
439 "listed in the DT_RPATH tag are searched."
440 msgstr ""
441
442 #. type: Plain text
443 #: build/C/man3/dlopen.3:100
444 msgid ""
445 "If, at the time that the program was started, the environment variable "
446 "B<LD_LIBRARY_PATH> was defined to contain a colon-separated list of "
447 "directories, then these are searched.  (As a security measure this variable "
448 "is ignored for set-user-ID and set-group-ID programs.)"
449 msgstr ""
450
451 #. type: Plain text
452 #: build/C/man3/dlopen.3:104
453 msgid ""
454 "(ELF only) If the executable file for the calling program contains a "
455 "DT_RUNPATH tag, then the directories listed in that tag are searched."
456 msgstr ""
457
458 #. type: Plain text
459 #: build/C/man3/dlopen.3:111
460 msgid ""
461 "The cache file I</etc/ld.so.cache> (maintained by B<ldconfig>(8))  is "
462 "checked to see whether it contains an entry for I<filename>."
463 msgstr ""
464
465 #. type: Plain text
466 #: build/C/man3/dlopen.3:117
467 msgid "The directories I</lib> and I</usr/lib> are searched (in that order)."
468 msgstr ""
469
470 #. type: Plain text
471 #: build/C/man3/dlopen.3:123
472 msgid ""
473 "If the library has dependencies on other shared libraries, then these are "
474 "also automatically loaded by the dynamic linker using the same rules.  (This "
475 "process may occur recursively, if those libraries in turn have dependencies, "
476 "and so on.)"
477 msgstr ""
478
479 #. type: Plain text
480 #: build/C/man3/dlopen.3:126
481 msgid "One of the following two values must be included in I<flag>:"
482 msgstr ""
483
484 #. type: TP
485 #: build/C/man3/dlopen.3:126
486 #, no-wrap
487 msgid "B<RTLD_LAZY>"
488 msgstr ""
489
490 #. type: Plain text
491 #: build/C/man3/dlopen.3:134
492 msgid ""
493 "Perform lazy binding.  Only resolve symbols as the code that references them "
494 "is executed.  If the symbol is never referenced, then it is never resolved.  "
495 "(Lazy binding is only performed for function references; references to "
496 "variables are always immediately bound when the library is loaded.)"
497 msgstr ""
498
499 #. type: TP
500 #: build/C/man3/dlopen.3:134
501 #, no-wrap
502 msgid "B<RTLD_NOW>"
503 msgstr ""
504
505 #. type: Plain text
506 #: build/C/man3/dlopen.3:143
507 msgid ""
508 "If this value is specified, or the environment variable B<LD_BIND_NOW> is "
509 "set to a nonempty string, all undefined symbols in the library are resolved "
510 "before B<dlopen>()  returns.  If this cannot be done, an error is returned."
511 msgstr ""
512
513 #. type: Plain text
514 #: build/C/man3/dlopen.3:146
515 msgid "Zero or more of the following values may also be ORed in I<flag>:"
516 msgstr ""
517
518 #. type: TP
519 #: build/C/man3/dlopen.3:146
520 #, no-wrap
521 msgid "B<RTLD_GLOBAL>"
522 msgstr ""
523
524 #. type: Plain text
525 #: build/C/man3/dlopen.3:150
526 msgid ""
527 "The symbols defined by this library will be made available for symbol "
528 "resolution of subsequently loaded libraries."
529 msgstr ""
530
531 #. type: TP
532 #: build/C/man3/dlopen.3:150
533 #, no-wrap
534 msgid "B<RTLD_LOCAL>"
535 msgstr ""
536
537 #. type: Plain text
538 #: build/C/man3/dlopen.3:157
539 msgid ""
540 "This is the converse of B<RTLD_GLOBAL>, and the default if neither flag is "
541 "specified.  Symbols defined in this library are not made available to "
542 "resolve references in subsequently loaded libraries."
543 msgstr ""
544
545 #. type: TP
546 #: build/C/man3/dlopen.3:157
547 #, no-wrap
548 msgid "B<RTLD_NODELETE> (since glibc 2.2)"
549 msgstr ""
550
551 #.  (But it is present on Solaris.)
552 #. type: Plain text
553 #: build/C/man3/dlopen.3:167
554 msgid ""
555 "Do not unload the library during B<dlclose>().  Consequently, the library's "
556 "static variables are not reinitialized if the library is reloaded with "
557 "B<dlopen>()  at a later time.  This flag is not specified in POSIX.1-2001."
558 msgstr ""
559
560 #. type: TP
561 #: build/C/man3/dlopen.3:167
562 #, no-wrap
563 msgid "B<RTLD_NOLOAD> (since glibc 2.2)"
564 msgstr ""
565
566 #.  (But it is present on Solaris.)
567 #. type: Plain text
568 #: build/C/man3/dlopen.3:182
569 msgid ""
570 "Don't load the library.  This can be used to test if the library is already "
571 "resident (B<dlopen>()  returns NULL if it is not, or the library's handle if "
572 "it is resident).  This flag can also be used to promote the flags on a "
573 "library that is already loaded.  For example, a library that was previously "
574 "loaded with B<RTLD_LOCAL> can be reopened with B<RTLD_NOLOAD\\ |\\ "
575 "RTLD_GLOBAL>.  This flag is not specified in POSIX.1-2001."
576 msgstr ""
577
578 #. type: TP
579 #: build/C/man3/dlopen.3:182
580 #, no-wrap
581 msgid "B<RTLD_DEEPBIND> (since glibc 2.3.4)"
582 msgstr ""
583
584 #.  Inimitably described by UD in
585 #.  http://sources.redhat.com/ml/libc-hacker/2004-09/msg00083.html.
586 #. type: Plain text
587 #: build/C/man3/dlopen.3:192
588 msgid ""
589 "Place the lookup scope of the symbols in this library ahead of the global "
590 "scope.  This means that a self-contained library will use its own symbols in "
591 "preference to global symbols with the same name contained in libraries that "
592 "have already been loaded.  This flag is not specified in POSIX.1-2001."
593 msgstr ""
594
595 #. type: Plain text
596 #: build/C/man3/dlopen.3:204
597 msgid ""
598 "If I<filename> is a NULL pointer, then the returned handle is for the main "
599 "program.  When given to B<dlsym>(), this handle causes a search for a symbol "
600 "in the main program, followed by all shared libraries loaded at program "
601 "startup, and then all shared libraries loaded by B<dlopen>()  with the flag "
602 "B<RTLD_GLOBAL>."
603 msgstr ""
604
605 #. type: Plain text
606 #: build/C/man3/dlopen.3:214
607 msgid ""
608 "External references in the library are resolved using the libraries in that "
609 "library's dependency list and any other libraries previously opened with the "
610 "B<RTLD_GLOBAL> flag.  If the executable was linked with the flag "
611 "\"-rdynamic\" (or, synonymously, \"--export-dynamic\"), then the global "
612 "symbols in the executable will also be used to resolve references in a "
613 "dynamically loaded library."
614 msgstr ""
615
616 #. type: Plain text
617 #: build/C/man3/dlopen.3:232
618 msgid ""
619 "If the same library is loaded again with B<dlopen>(), the same file handle "
620 "is returned.  The dl library maintains reference counts for library handles, "
621 "so a dynamic library is not deallocated until B<dlclose>()  has been called "
622 "on it as many times as B<dlopen>()  has succeeded on it.  The B<_init>()  "
623 "routine, if present, is only called once.  But a subsequent call with "
624 "B<RTLD_NOW> may force symbol resolution for a library earlier loaded with "
625 "B<RTLD_LAZY>."
626 msgstr ""
627
628 #. type: Plain text
629 #: build/C/man3/dlopen.3:236
630 msgid "If B<dlopen>()  fails for any reason, it returns NULL."
631 msgstr ""
632
633 #. type: SS
634 #: build/C/man3/dlopen.3:236
635 #, no-wrap
636 msgid "dlsym()"
637 msgstr ""
638
639 #. type: Plain text
640 #: build/C/man3/dlopen.3:265
641 msgid ""
642 "The function B<dlsym>()  takes a \"handle\" of a dynamic library returned by "
643 "B<dlopen>()  and the null-terminated symbol name, returning the address "
644 "where that symbol is loaded into memory.  If the symbol is not found, in the "
645 "specified library or any of the libraries that were automatically loaded by "
646 "B<dlopen>()  when that library was loaded, B<dlsym>()  returns NULL.  (The "
647 "search performed by B<dlsym>()  is breadth first through the dependency tree "
648 "of these libraries.)  Since the value of the symbol could actually be NULL "
649 "(so that a NULL return from B<dlsym>()  need not indicate an error), the "
650 "correct way to test for an error is to call B<dlerror>()  to clear any old "
651 "error conditions, then call B<dlsym>(), and then call B<dlerror>()  again, "
652 "saving its return value into a variable, and check whether this saved value "
653 "is not NULL."
654 msgstr ""
655
656 #. type: Plain text
657 #: build/C/man3/dlopen.3:277
658 msgid ""
659 "There are two special pseudo-handles, B<RTLD_DEFAULT> and B<RTLD_NEXT>.  The "
660 "former will find the first occurrence of the desired symbol using the "
661 "default library search order.  The latter will find the next occurrence of a "
662 "function in the search order after the current library.  This allows one to "
663 "provide a wrapper around a function in another shared library."
664 msgstr ""
665
666 #. type: SS
667 #: build/C/man3/dlopen.3:277
668 #, no-wrap
669 msgid "dlclose()"
670 msgstr ""
671
672 #. type: Plain text
673 #: build/C/man3/dlopen.3:284
674 msgid ""
675 "The function B<dlclose>()  decrements the reference count on the dynamic "
676 "library handle I<handle>.  If the reference count drops to zero and no other "
677 "loaded libraries use symbols in it, then the dynamic library is unloaded."
678 msgstr ""
679
680 #. type: Plain text
681 #: build/C/man3/dlopen.3:288
682 msgid "The function B<dlclose>()  returns 0 on success, and nonzero on error."
683 msgstr ""
684
685 #. type: SS
686 #: build/C/man3/dlopen.3:288
687 #, no-wrap
688 msgid "The obsolete symbols _init() and _fini()"
689 msgstr ""
690
691 #. type: Plain text
692 #: build/C/man3/dlopen.3:306
693 msgid ""
694 "The linker recognizes special symbols B<_init> and B<_fini>.  If a dynamic "
695 "library exports a routine named B<_init>(), then that code is executed after "
696 "the loading, before B<dlopen>()  returns.  If the dynamic library exports a "
697 "routine named B<_fini>(), then that routine is called just before the "
698 "library is unloaded.  In case you need to avoid linking against the system "
699 "startup files, this can be done by using the B<gcc>(1)  I<-nostartfiles> "
700 "command-line option."
701 msgstr ""
702
703 #.  void _init(void) __attribute__((constructor));
704 #.  void _fini(void) __attribute__((destructor));
705 #. type: Plain text
706 #: build/C/man3/dlopen.3:317
707 msgid ""
708 "Using these routines, or the gcc B<-nostartfiles> or B<-nostdlib> options, "
709 "is not recommended.  Their use may result in undesired behavior, since the "
710 "constructor/destructor routines will not be executed (unless special "
711 "measures are taken)."
712 msgstr ""
713
714 #. type: Plain text
715 #: build/C/man3/dlopen.3:329
716 msgid ""
717 "Instead, libraries should export routines using the "
718 "B<__attribute__((constructor))> and B<__attribute__((destructor))> function "
719 "attributes.  See the gcc info pages for information on these.  Constructor "
720 "routines are executed before B<dlopen>()  returns, and destructor routines "
721 "are executed before B<dlclose>()  returns."
722 msgstr ""
723
724 #. type: SS
725 #: build/C/man3/dlopen.3:329
726 #, no-wrap
727 msgid "Glibc extensions: dladdr() and dlvsym()"
728 msgstr ""
729
730 #. type: Plain text
731 #: build/C/man3/dlopen.3:331
732 msgid "Glibc adds two functions not described by POSIX, with prototypes"
733 msgstr ""
734
735 #. type: Plain text
736 #: build/C/man3/dlopen.3:335
737 #, no-wrap
738 msgid ""
739 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
740 "B<#include E<lt>dlfcn.hE<gt>>\n"
741 msgstr ""
742
743 #. type: Plain text
744 #: build/C/man3/dlopen.3:337
745 #, no-wrap
746 msgid "B<int dladdr(void *>I<addr>B<, Dl_info *>I<info>B<);>\n"
747 msgstr ""
748
749 #. type: Plain text
750 #: build/C/man3/dlopen.3:339
751 #, no-wrap
752 msgid ""
753 "B<void *dlvsym(void *>I<handle>B<, char *>I<symbol>B<, char "
754 "*>I<version>B<);>\n"
755 msgstr ""
756
757 #. type: Plain text
758 #: build/C/man3/dlopen.3:348
759 msgid ""
760 "The function B<dladdr>()  takes a function pointer and tries to resolve name "
761 "and file where it is located.  Information is stored in the I<Dl_info> "
762 "structure:"
763 msgstr ""
764
765 #. type: Plain text
766 #: build/C/man3/dlopen.3:361
767 #, no-wrap
768 msgid ""
769 "typedef struct {\n"
770 "    const char *dli_fname;  /* Pathname of shared object that\n"
771 "                               contains address */\n"
772 "    void       *dli_fbase;  /* Address at which shared object\n"
773 "                               is loaded */\n"
774 "    const char *dli_sname;  /* Name of nearest symbol with address\n"
775 "                               lower than I<addr> */\n"
776 "    void       *dli_saddr;  /* Exact address of symbol named\n"
777 "                               in I<dli_sname> */\n"
778 "} Dl_info;\n"
779 msgstr ""
780
781 #. type: Plain text
782 #: build/C/man3/dlopen.3:371
783 msgid ""
784 "If no symbol matching I<addr> could be found, then I<dli_sname> and "
785 "I<dli_saddr> are set to NULL."
786 msgstr ""
787
788 #. type: Plain text
789 #: build/C/man3/dlopen.3:374
790 msgid "B<dladdr>()  returns 0 on error, and nonzero on success."
791 msgstr ""
792
793 #. type: Plain text
794 #: build/C/man3/dlopen.3:381
795 msgid ""
796 "The function B<dlvsym>(), provided by glibc since version 2.1, does the same "
797 "as B<dlsym>()  but takes a version string as an additional argument."
798 msgstr ""
799
800 #. type: Plain text
801 #: build/C/man3/dlopen.3:388
802 msgid ""
803 "POSIX.1-2001 describes B<dlclose>(), B<dlerror>(), B<dlopen>(), and "
804 "B<dlsym>()."
805 msgstr ""
806
807 #. type: SH
808 #: build/C/man3/dlopen.3:388 build/C/man5/elf.5:1910 build/C/man3/end.3:52 build/C/man8/ld.so.8:403 build/C/man1/ldd.1:42 build/C/man7/rtld-audit.7:465
809 #, no-wrap
810 msgid "NOTES"
811 msgstr ""
812
813 #.  .LP
814 #.  The string returned by
815 #.  .BR dlerror ()
816 #.  should not be modified.
817 #.  Some systems give the prototype as
818 #.  .sp
819 #.  .in +5
820 #.  .B "const char *dlerror(void);"
821 #.  .in
822 #. type: Plain text
823 #: build/C/man3/dlopen.3:407
824 msgid ""
825 "The symbols B<RTLD_DEFAULT> and B<RTLD_NEXT> are defined by "
826 "I<E<lt>dlfcn.hE<gt>> only when B<_GNU_SOURCE> was defined before including "
827 "it."
828 msgstr ""
829
830 #. type: Plain text
831 #: build/C/man3/dlopen.3:412
832 msgid ""
833 "Since glibc 2.2.3, B<atexit>(3)  can be used to register an exit handler "
834 "that is automatically called when a library is unloaded."
835 msgstr ""
836
837 #. type: SS
838 #: build/C/man3/dlopen.3:412
839 #, no-wrap
840 msgid "History"
841 msgstr ""
842
843 #. type: Plain text
844 #: build/C/man3/dlopen.3:418
845 msgid ""
846 "The dlopen interface standard comes from SunOS.  That system also has "
847 "B<dladdr>(), but not B<dlvsym>()."
848 msgstr ""
849
850 #. type: SH
851 #: build/C/man3/dlopen.3:418 build/C/man1/ldd.1:59 build/C/man7/rtld-audit.7:590
852 #, no-wrap
853 msgid "BUGS"
854 msgstr ""
855
856 #. type: Plain text
857 #: build/C/man3/dlopen.3:430
858 msgid ""
859 "Sometimes, the function pointers you pass to B<dladdr>()  may surprise you.  "
860 "On some architectures (notably i386 and x86_64), I<dli_fname> and "
861 "I<dli_fbase> may end up pointing back at the object from which you called "
862 "B<dladdr>(), even if the function used as an argument should come from a "
863 "dynamically linked library."
864 msgstr ""
865
866 #. type: Plain text
867 #: build/C/man3/dlopen.3:446
868 msgid ""
869 "The problem is that the function pointer will still be resolved at compile "
870 "time, but merely point to the I<plt> (Procedure Linkage Table)  section of "
871 "the original object (which dispatches the call after asking the dynamic "
872 "linker to resolve the symbol).  To work around this, you can try to compile "
873 "the code to be position-independent: then, the compiler cannot prepare the "
874 "pointer at compile time anymore and today's B<gcc>(1)  will generate code "
875 "that just loads the final symbol address from the I<got> (Global Offset "
876 "Table) at run time before passing it to B<dladdr>()."
877 msgstr ""
878
879 #. type: Plain text
880 #: build/C/man3/dlopen.3:448
881 msgid "Load the math library, and print the cosine of 2.0:"
882 msgstr ""
883
884 #. type: Plain text
885 #: build/C/man3/dlopen.3:453
886 #, no-wrap
887 msgid ""
888 "#include E<lt>stdio.hE<gt>\n"
889 "#include E<lt>stdlib.hE<gt>\n"
890 "#include E<lt>dlfcn.hE<gt>\n"
891 msgstr ""
892
893 #. type: Plain text
894 #: build/C/man3/dlopen.3:460
895 #, no-wrap
896 msgid ""
897 "int\n"
898 "main(int argc, char **argv)\n"
899 "{\n"
900 "    void *handle;\n"
901 "    double (*cosine)(double);\n"
902 "    char *error;\n"
903 msgstr ""
904
905 #. type: Plain text
906 #: build/C/man3/dlopen.3:466
907 #, no-wrap
908 msgid ""
909 "    handle = dlopen(\"libm.so\", RTLD_LAZY);\n"
910 "    if (!handle) {\n"
911 "        fprintf(stderr, \"%s\\en\", dlerror());\n"
912 "        exit(EXIT_FAILURE);\n"
913 "    }\n"
914 msgstr ""
915
916 #. type: Plain text
917 #: build/C/man3/dlopen.3:468
918 #, no-wrap
919 msgid "    dlerror();    /* Clear any existing error */\n"
920 msgstr ""
921
922 #. type: Plain text
923 #: build/C/man3/dlopen.3:475
924 #, no-wrap
925 msgid ""
926 "    /* Writing: cosine = (double (*)(double)) dlsym(handle, \"cos\");\n"
927 "       would seem more natural, but the C99 standard leaves\n"
928 "       casting from \"void *\" to a function pointer undefined.\n"
929 "       The assignment used below is the POSIX.1-2003 (Technical\n"
930 "       Corrigendum 1) workaround; see the Rationale for the\n"
931 "       POSIX specification of dlsym(). */\n"
932 msgstr ""
933
934 #.  But in fact "gcc -O2 -Wall" will complain about the preceding cast.
935 #. type: Plain text
936 #: build/C/man3/dlopen.3:478
937 #, no-wrap
938 msgid "    *(void **) (&cosine) = dlsym(handle, \"cos\");\n"
939 msgstr ""
940
941 #. type: Plain text
942 #: build/C/man3/dlopen.3:483
943 #, no-wrap
944 msgid ""
945 "    if ((error = dlerror()) != NULL)  {\n"
946 "        fprintf(stderr, \"%s\\en\", error);\n"
947 "        exit(EXIT_FAILURE);\n"
948 "    }\n"
949 msgstr ""
950
951 #. type: Plain text
952 #: build/C/man3/dlopen.3:488
953 #, no-wrap
954 msgid ""
955 "    printf(\"%f\\en\", (*cosine)(2.0));\n"
956 "    dlclose(handle);\n"
957 "    exit(EXIT_SUCCESS);\n"
958 "}\n"
959 msgstr ""
960
961 #. type: Plain text
962 #: build/C/man3/dlopen.3:492
963 msgid ""
964 "If this program were in a file named \"foo.c\", you would build the program "
965 "with the following command:"
966 msgstr ""
967
968 #. type: Plain text
969 #: build/C/man3/dlopen.3:495
970 #, no-wrap
971 msgid "    gcc -rdynamic -o foo foo.c -ldl\n"
972 msgstr ""
973
974 #. type: Plain text
975 #: build/C/man3/dlopen.3:503
976 msgid ""
977 "Libraries exporting B<_init>()  and B<_fini>()  will want to be compiled as "
978 "follows, using I<bar.c> as the example name:"
979 msgstr ""
980
981 #. type: Plain text
982 #: build/C/man3/dlopen.3:506
983 #, no-wrap
984 msgid "    gcc -shared -nostartfiles -o bar bar.c\n"
985 msgstr ""
986
987 #. type: Plain text
988 #: build/C/man3/dlopen.3:515
989 msgid ""
990 "B<ld>(1), B<ldd>(1), B<dl_iterate_phdr>(3), B<rtld-audit>(7), B<ld.so>(8), "
991 "B<ldconfig>(8), ld.so info pages, gcc info pages, ld info pages"
992 msgstr ""
993
994 #. type: TH
995 #: build/C/man5/elf.5:33
996 #, no-wrap
997 msgid "ELF"
998 msgstr ""
999
1000 #. type: TH
1001 #: build/C/man5/elf.5:33
1002 #, no-wrap
1003 msgid "2010-06-19"
1004 msgstr ""
1005
1006 #. type: Plain text
1007 #: build/C/man5/elf.5:36
1008 msgid "elf - format of Executable and Linking Format (ELF) files"
1009 msgstr ""
1010
1011 #.  .B #include <elf_abi.h>
1012 #. type: Plain text
1013 #: build/C/man5/elf.5:40
1014 #, no-wrap
1015 msgid "B<#include E<lt>elf.hE<gt>>\n"
1016 msgstr ""
1017
1018 #. type: Plain text
1019 #: build/C/man5/elf.5:48
1020 msgid ""
1021 "The header file I<E<lt>elf.hE<gt>> defines the format of ELF executable "
1022 "binary files.  Amongst these files are normal executable files, relocatable "
1023 "object files, core files and shared libraries."
1024 msgstr ""
1025
1026 #. type: Plain text
1027 #: build/C/man5/elf.5:57
1028 msgid ""
1029 "An executable file using the ELF file format consists of an ELF header, "
1030 "followed by a program header table or a section header table, or both.  The "
1031 "ELF header is always at offset zero of the file.  The program header table "
1032 "and the section header table's offset in the file are defined in the ELF "
1033 "header.  The two tables describe the rest of the particularities of the "
1034 "file."
1035 msgstr ""
1036
1037 #.  Applications which wish to process ELF binary files for their native
1038 #.  architecture only should include
1039 #.  .I <elf_abi.h>
1040 #.  in their source code.
1041 #.  These applications should need to refer to
1042 #.  all the types and structures by their generic names
1043 #.  "Elf_xxx"
1044 #.  and to the macros by
1045 #.  ELF_xxx".
1046 #.  Applications written this way can be compiled on any architecture,
1047 #.  regardless of whether the host is 32-bit or 64-bit.
1048 #.  .PP
1049 #.  Should an application need to process ELF files of an unknown
1050 #.  architecture, then the application needs to explicitly use either
1051 #.  "Elf32_xxx"
1052 #.  or
1053 #.  "Elf64_xxx"
1054 #.  type and structure names.
1055 #.  Likewise, the macros need to be identified by
1056 #.  "ELF32_xxx"
1057 #.  or
1058 #.  "ELF64_xxx".
1059 #.  .PP
1060 #. type: Plain text
1061 #: build/C/man5/elf.5:84
1062 msgid ""
1063 "This header file describes the above mentioned headers as C structures and "
1064 "also includes structures for dynamic sections, relocation sections and "
1065 "symbol tables."
1066 msgstr ""
1067
1068 #. type: Plain text
1069 #: build/C/man5/elf.5:96
1070 msgid ""
1071 "The following types are used for N-bit architectures (N=32,64, I<ElfN> "
1072 "stands for I<Elf32> or I<Elf64>, I<uintN_t> stands for I<uint32_t> or "
1073 "I<uint64_t>):"
1074 msgstr ""
1075
1076 #.  Elf32_Size  Unsigned object size
1077 #. type: Plain text
1078 #: build/C/man5/elf.5:110
1079 #, no-wrap
1080 msgid ""
1081 "ElfN_Addr       Unsigned program address, uintN_t\n"
1082 "ElfN_Off        Unsigned file offset, uintN_t\n"
1083 "ElfN_Section    Unsigned section index, uint16_t\n"
1084 "ElfN_Versym     Unsigned version symbol information, uint16_t\n"
1085 "Elf_Byte        unsigned char\n"
1086 "ElfN_Half       uint16_t\n"
1087 "ElfN_Sword      int32_t\n"
1088 "ElfN_Word       uint32_t\n"
1089 "ElfN_Sxword     int64_t\n"
1090 "ElfN_Xword      uint64_t\n"
1091 msgstr ""
1092
1093 #. type: Plain text
1094 #: build/C/man5/elf.5:125
1095 msgid ""
1096 "(Note: The *BSD terminology is a bit different.  There I<Elf64_Half> is "
1097 "twice as large as I<Elf32_Half>, and I<Elf64Quarter> is used for "
1098 "I<uint16_t>.  In order to avoid confusion these types are replaced by "
1099 "explicit ones in the below.)"
1100 msgstr ""
1101
1102 #. type: Plain text
1103 #: build/C/man5/elf.5:132
1104 msgid ""
1105 "All data structures that the file format defines follow the \"natural\" size "
1106 "and alignment guidelines for the relevant class.  If necessary, data "
1107 "structures contain explicit padding to ensure 4-byte alignment for 4-byte "
1108 "objects, to force structure sizes to a multiple of 4, etc."
1109 msgstr ""
1110
1111 #. type: Plain text
1112 #: build/C/man5/elf.5:137
1113 msgid "The ELF header is described by the type I<Elf32_Ehdr> or I<Elf64_Ehdr>:"
1114 msgstr ""
1115
1116 #. type: Plain text
1117 #: build/C/man5/elf.5:141
1118 #, no-wrap
1119 msgid "#define EI_NIDENT 16\n"
1120 msgstr ""
1121
1122 #. type: Plain text
1123 #: build/C/man5/elf.5:158
1124 #, no-wrap
1125 msgid ""
1126 "typedef struct {\n"
1127 "    unsigned char e_ident[EI_NIDENT];\n"
1128 "    uint16_t      e_type;\n"
1129 "    uint16_t      e_machine;\n"
1130 "    uint32_t      e_version;\n"
1131 "    ElfN_Addr     e_entry;\n"
1132 "    ElfN_Off      e_phoff;\n"
1133 "    ElfN_Off      e_shoff;\n"
1134 "    uint32_t      e_flags;\n"
1135 "    uint16_t      e_ehsize;\n"
1136 "    uint16_t      e_phentsize;\n"
1137 "    uint16_t      e_phnum;\n"
1138 "    uint16_t      e_shentsize;\n"
1139 "    uint16_t      e_shnum;\n"
1140 "    uint16_t      e_shstrndx;\n"
1141 "} ElfN_Ehdr;\n"
1142 msgstr ""
1143
1144 #.  .Bl -tag -width "e_phentsize"
1145 #. type: Plain text
1146 #: build/C/man5/elf.5:163
1147 msgid "The fields have the following meanings:"
1148 msgstr ""
1149
1150 #. type: TP
1151 #: build/C/man5/elf.5:163
1152 #, no-wrap
1153 msgid "I<e_ident>"
1154 msgstr ""
1155
1156 #. type: Plain text
1157 #: build/C/man5/elf.5:173
1158 msgid ""
1159 "This array of bytes specifies to interpret the file, independent of the "
1160 "processor or the file's remaining contents.  Within this array everything is "
1161 "named by macros, which start with the prefix B<EI_> and may contain values "
1162 "which start with the prefix B<ELF>.  The following macros are defined:"
1163 msgstr ""
1164
1165 #. type: TP
1166 #: build/C/man5/elf.5:175
1167 #, no-wrap
1168 msgid "B<EI_MAG0>"
1169 msgstr ""
1170
1171 #. type: Plain text
1172 #: build/C/man5/elf.5:181
1173 msgid ""
1174 "The first byte of the magic number.  It must be filled with B<ELFMAG0>.  (0: "
1175 "0x7f)"
1176 msgstr ""
1177
1178 #. type: TP
1179 #: build/C/man5/elf.5:181
1180 #, no-wrap
1181 msgid "B<EI_MAG1>"
1182 msgstr ""
1183
1184 #. type: Plain text
1185 #: build/C/man5/elf.5:187
1186 msgid ""
1187 "The second byte of the magic number.  It must be filled with B<ELFMAG1>.  "
1188 "(1: \\(aqE\\(aq)"
1189 msgstr ""
1190
1191 #. type: TP
1192 #: build/C/man5/elf.5:187
1193 #, no-wrap
1194 msgid "B<EI_MAG2>"
1195 msgstr ""
1196
1197 #. type: Plain text
1198 #: build/C/man5/elf.5:193
1199 msgid ""
1200 "The third byte of the magic number.  It must be filled with B<ELFMAG2>.  (2: "
1201 "\\(aqL\\(aq)"
1202 msgstr ""
1203
1204 #. type: TP
1205 #: build/C/man5/elf.5:193
1206 #, no-wrap
1207 msgid "B<EI_MAG3>"
1208 msgstr ""
1209
1210 #. type: Plain text
1211 #: build/C/man5/elf.5:199
1212 msgid ""
1213 "The fourth byte of the magic number.  It must be filled with B<ELFMAG3>.  "
1214 "(3: \\(aqF\\(aq)"
1215 msgstr ""
1216
1217 #. type: TP
1218 #: build/C/man5/elf.5:199
1219 #, no-wrap
1220 msgid "B<EI_CLASS>"
1221 msgstr ""
1222
1223 #. type: Plain text
1224 #: build/C/man5/elf.5:202
1225 msgid "The fifth byte identifies the architecture for this binary:"
1226 msgstr ""
1227
1228 #. type: TP
1229 #: build/C/man5/elf.5:204
1230 #, no-wrap
1231 msgid "B<ELFCLASSNONE>"
1232 msgstr ""
1233
1234 #. type: Plain text
1235 #: build/C/man5/elf.5:208
1236 msgid "This class is invalid."
1237 msgstr ""
1238
1239 #. type: TP
1240 #: build/C/man5/elf.5:208
1241 #, no-wrap
1242 msgid "B<ELFCLASS32>"
1243 msgstr ""
1244
1245 #. type: Plain text
1246 #: build/C/man5/elf.5:213
1247 msgid ""
1248 "This defines the 32-bit architecture.  It supports machines with files and "
1249 "virtual address spaces up to 4 Gigabytes."
1250 msgstr ""
1251
1252 #. type: TP
1253 #: build/C/man5/elf.5:213
1254 #, no-wrap
1255 msgid "B<ELFCLASS64>"
1256 msgstr ""
1257
1258 #. type: Plain text
1259 #: build/C/man5/elf.5:216
1260 msgid "This defines the 64-bit architecture."
1261 msgstr ""
1262
1263 #. type: TP
1264 #: build/C/man5/elf.5:219
1265 #, no-wrap
1266 msgid "B<EI_DATA>"
1267 msgstr ""
1268
1269 #.  .Bl -tag -width "ELFDATA2LSB" -compact
1270 #. type: Plain text
1271 #: build/C/man5/elf.5:225
1272 msgid ""
1273 "The sixth byte specifies the data encoding of the processor-specific data in "
1274 "the file.  Currently these encodings are supported:"
1275 msgstr ""
1276
1277 #. type: TP
1278 #: build/C/man5/elf.5:226
1279 #, no-wrap
1280 msgid "B<ELFDATANONE>"
1281 msgstr ""
1282
1283 #. type: Plain text
1284 #: build/C/man5/elf.5:230
1285 msgid "Unknown data format."
1286 msgstr ""
1287
1288 #. type: TP
1289 #: build/C/man5/elf.5:230
1290 #, no-wrap
1291 msgid "B<ELFDATA2LSB>"
1292 msgstr ""
1293
1294 #. type: Plain text
1295 #: build/C/man5/elf.5:233
1296 msgid "Two's complement, little-endian."
1297 msgstr ""
1298
1299 #. type: TP
1300 #: build/C/man5/elf.5:233
1301 #, no-wrap
1302 msgid "B<ELFDATA2MSB>"
1303 msgstr ""
1304
1305 #. type: Plain text
1306 #: build/C/man5/elf.5:236
1307 msgid "Two's complement, big-endian."
1308 msgstr ""
1309
1310 #. type: TP
1311 #: build/C/man5/elf.5:239
1312 #, no-wrap
1313 msgid "B<EI_VERSION>"
1314 msgstr ""
1315
1316 #.  .Bl -tag -width "EV_CURRENT" -compact
1317 #. type: Plain text
1318 #: build/C/man5/elf.5:244
1319 msgid "The version number of the ELF specification:"
1320 msgstr ""
1321
1322 #. type: TP
1323 #: build/C/man5/elf.5:245 build/C/man5/elf.5:499
1324 #, no-wrap
1325 msgid "B<EV_NONE>"
1326 msgstr ""
1327
1328 #. type: Plain text
1329 #: build/C/man5/elf.5:248 build/C/man5/elf.5:503
1330 msgid "Invalid version."
1331 msgstr ""
1332
1333 #. type: TP
1334 #: build/C/man5/elf.5:248 build/C/man5/elf.5:503
1335 #, no-wrap
1336 msgid "B<EV_CURRENT>"
1337 msgstr ""
1338
1339 #.  .El
1340 #. type: Plain text
1341 #: build/C/man5/elf.5:251 build/C/man5/elf.5:507
1342 msgid "Current version."
1343 msgstr ""
1344
1345 #. type: TP
1346 #: build/C/man5/elf.5:254
1347 #, no-wrap
1348 msgid "B<EI_OSABI>"
1349 msgstr ""
1350
1351 #.  .Bl -tag -width "ELFOSABI_STANDALONE" -compact
1352 #. type: Plain text
1353 #: build/C/man5/elf.5:263
1354 msgid ""
1355 "This byte identifies the operating system and ABI to which the object is "
1356 "targeted.  Some fields in other ELF structures have flags and values that "
1357 "have platform-specific meanings; the interpretation of those fields is "
1358 "determined by the value of this byte.  E.g.:"
1359 msgstr ""
1360
1361 #. type: TP
1362 #: build/C/man5/elf.5:264
1363 #, no-wrap
1364 msgid "B<ELFOSABI_NONE>"
1365 msgstr ""
1366
1367 #.  0
1368 #. type: Plain text
1369 #: build/C/man5/elf.5:269
1370 msgid "Same as ELFOSABI_SYSV"
1371 msgstr ""
1372
1373 #. type: TP
1374 #: build/C/man5/elf.5:269
1375 #, no-wrap
1376 msgid "B<ELFOSABI_SYSV>"
1377 msgstr ""
1378
1379 #.  0
1380 #.  synonym: ELFOSABI_NONE
1381 #. type: Plain text
1382 #: build/C/man5/elf.5:274
1383 msgid "UNIX System V ABI."
1384 msgstr ""
1385
1386 #. type: TP
1387 #: build/C/man5/elf.5:274
1388 #, no-wrap
1389 msgid "B<ELFOSABI_HPUX>"
1390 msgstr ""
1391
1392 #.  1
1393 #. type: Plain text
1394 #: build/C/man5/elf.5:278
1395 msgid "HP-UX ABI."
1396 msgstr ""
1397
1398 #. type: TP
1399 #: build/C/man5/elf.5:278
1400 #, no-wrap
1401 msgid "B<ELFOSABI_NETBSD>"
1402 msgstr ""
1403
1404 #.  2
1405 #. type: Plain text
1406 #: build/C/man5/elf.5:282
1407 msgid "NetBSD ABI."
1408 msgstr ""
1409
1410 #. type: TP
1411 #: build/C/man5/elf.5:282
1412 #, no-wrap
1413 msgid "B<ELFOSABI_LINUX>"
1414 msgstr ""
1415
1416 #.  3
1417 #.  .TP
1418 #.  .BR ELFOSABI_HURD
1419 #.  Hurd ABI.
1420 #.  4
1421 #.  .TP
1422 #.  .BR ELFOSABI_86OPEN
1423 #.  86Open Common IA32 ABI.
1424 #.  5
1425 #. type: Plain text
1426 #: build/C/man5/elf.5:294
1427 msgid "Linux ABI."
1428 msgstr ""
1429
1430 #. type: TP
1431 #: build/C/man5/elf.5:294
1432 #, no-wrap
1433 msgid "B<ELFOSABI_SOLARIS>"
1434 msgstr ""
1435
1436 #.  6
1437 #.  .TP
1438 #.  .BR ELFOSABI_MONTEREY
1439 #.  Monterey project ABI.
1440 #.  Now replaced by
1441 #.  ELFOSABI_AIX
1442 #.  7
1443 #. type: Plain text
1444 #: build/C/man5/elf.5:304
1445 msgid "Solaris ABI."
1446 msgstr ""
1447
1448 #. type: TP
1449 #: build/C/man5/elf.5:304
1450 #, no-wrap
1451 msgid "B<ELFOSABI_IRIX>"
1452 msgstr ""
1453
1454 #.  8
1455 #. type: Plain text
1456 #: build/C/man5/elf.5:308
1457 msgid "IRIX ABI."
1458 msgstr ""
1459
1460 #. type: TP
1461 #: build/C/man5/elf.5:308
1462 #, no-wrap
1463 msgid "B<ELFOSABI_FREEBSD>"
1464 msgstr ""
1465
1466 #.  9
1467 #. type: Plain text
1468 #: build/C/man5/elf.5:312
1469 msgid "FreeBSD ABI."
1470 msgstr ""
1471
1472 #. type: TP
1473 #: build/C/man5/elf.5:312
1474 #, no-wrap
1475 msgid "B<ELFOSABI_TRU64>"
1476 msgstr ""
1477
1478 #.  10
1479 #.  ELFOSABI_MODESTO
1480 #.  11
1481 #.  ELFOSABI_OPENBSD
1482 #.  12
1483 #. type: Plain text
1484 #: build/C/man5/elf.5:320
1485 msgid "TRU64 UNIX ABI."
1486 msgstr ""
1487
1488 #. type: TP
1489 #: build/C/man5/elf.5:320
1490 #, no-wrap
1491 msgid "B<ELFOSABI_ARM>"
1492 msgstr ""
1493
1494 #.  97
1495 #. type: Plain text
1496 #: build/C/man5/elf.5:324
1497 msgid "ARM architecture ABI."
1498 msgstr ""
1499
1500 #. type: TP
1501 #: build/C/man5/elf.5:324
1502 #, no-wrap
1503 msgid "B<ELFOSABI_STANDALONE>"
1504 msgstr ""
1505
1506 #.  255
1507 #.  .El
1508 #. type: Plain text
1509 #: build/C/man5/elf.5:329
1510 msgid "Stand-alone (embedded) ABI."
1511 msgstr ""
1512
1513 #. type: TP
1514 #: build/C/man5/elf.5:331
1515 #, no-wrap
1516 msgid "B<EI_ABIVERSION>"
1517 msgstr ""
1518
1519 #. type: Plain text
1520 #: build/C/man5/elf.5:341
1521 msgid ""
1522 "This byte identifies the version of the ABI to which the object is "
1523 "targeted.  This field is used to distinguish among incompatible versions of "
1524 "an ABI.  The interpretation of this version number is dependent on the ABI "
1525 "identified by the B<EI_OSABI> field.  Applications conforming to this "
1526 "specification use the value 0."
1527 msgstr ""
1528
1529 #. type: TP
1530 #: build/C/man5/elf.5:341
1531 #, no-wrap
1532 msgid "B<EI_PAD>"
1533 msgstr ""
1534
1535 #.  As reported by Yuri Kozlov and confirmed by Mike Frysinger, EI_BRAND is
1536 #.  not in GABI (http://www.sco.com/developers/gabi/latest/ch4.eheader.html)
1537 #.  It looks to be a BSDism
1538 #.  .TP
1539 #.  .BR EI_BRAND
1540 #.  Start of architecture identification.
1541 #. type: Plain text
1542 #: build/C/man5/elf.5:357
1543 msgid ""
1544 "Start of padding.  These bytes are reserved and set to zero.  Programs which "
1545 "read them should ignore them.  The value for B<EI_PAD> will change in the "
1546 "future if currently unused bytes are given meanings."
1547 msgstr ""
1548
1549 #. type: TP
1550 #: build/C/man5/elf.5:357
1551 #, no-wrap
1552 msgid "B<EI_NIDENT>"
1553 msgstr ""
1554
1555 #.  .El
1556 #. type: Plain text
1557 #: build/C/man5/elf.5:363
1558 msgid "The size of the I<e_ident> array."
1559 msgstr ""
1560
1561 #. type: TP
1562 #: build/C/man5/elf.5:364
1563 #, no-wrap
1564 msgid "I<e_type>"
1565 msgstr ""
1566
1567 #. type: Plain text
1568 #: build/C/man5/elf.5:367
1569 msgid "This member of the structure identifies the object file type:"
1570 msgstr ""
1571
1572 #. type: TP
1573 #: build/C/man5/elf.5:369
1574 #, no-wrap
1575 msgid "B<ET_NONE>"
1576 msgstr ""
1577
1578 #. type: Plain text
1579 #: build/C/man5/elf.5:373
1580 msgid "An unknown type."
1581 msgstr ""
1582
1583 #. type: TP
1584 #: build/C/man5/elf.5:373
1585 #, no-wrap
1586 msgid "B<ET_REL>"
1587 msgstr ""
1588
1589 #. type: Plain text
1590 #: build/C/man5/elf.5:376
1591 msgid "A relocatable file."
1592 msgstr ""
1593
1594 #. type: TP
1595 #: build/C/man5/elf.5:376
1596 #, no-wrap
1597 msgid "B<ET_EXEC>"
1598 msgstr ""
1599
1600 #. type: Plain text
1601 #: build/C/man5/elf.5:379
1602 msgid "An executable file."
1603 msgstr ""
1604
1605 #. type: TP
1606 #: build/C/man5/elf.5:379
1607 #, no-wrap
1608 msgid "B<ET_DYN>"
1609 msgstr ""
1610
1611 #. type: Plain text
1612 #: build/C/man5/elf.5:382
1613 msgid "A shared object."
1614 msgstr ""
1615
1616 #. type: TP
1617 #: build/C/man5/elf.5:382
1618 #, no-wrap
1619 msgid "B<ET_CORE>"
1620 msgstr ""
1621
1622 #. type: Plain text
1623 #: build/C/man5/elf.5:385
1624 msgid "A core file."
1625 msgstr ""
1626
1627 #. type: TP
1628 #: build/C/man5/elf.5:388
1629 #, no-wrap
1630 msgid "I<e_machine>"
1631 msgstr ""
1632
1633 #. type: Plain text
1634 #: build/C/man5/elf.5:392
1635 msgid ""
1636 "This member specifies the required architecture for an individual file.  "
1637 "E.g.:"
1638 msgstr ""
1639
1640 #. type: TP
1641 #: build/C/man5/elf.5:394
1642 #, no-wrap
1643 msgid "B<EM_NONE>"
1644 msgstr ""
1645
1646 #.  0
1647 #. type: Plain text
1648 #: build/C/man5/elf.5:399
1649 msgid "An unknown machine."
1650 msgstr ""
1651
1652 #. type: TP
1653 #: build/C/man5/elf.5:399
1654 #, no-wrap
1655 msgid "B<EM_M32>"
1656 msgstr ""
1657
1658 #.  1
1659 #. type: Plain text
1660 #: build/C/man5/elf.5:403
1661 msgid "AT&T WE 32100."
1662 msgstr ""
1663
1664 #. type: TP
1665 #: build/C/man5/elf.5:403
1666 #, no-wrap
1667 msgid "B<EM_SPARC>"
1668 msgstr ""
1669
1670 #.  2
1671 #. type: Plain text
1672 #: build/C/man5/elf.5:407
1673 msgid "Sun Microsystems SPARC."
1674 msgstr ""
1675
1676 #. type: TP
1677 #: build/C/man5/elf.5:407
1678 #, no-wrap
1679 msgid "B<EM_386>"
1680 msgstr ""
1681
1682 #.  3
1683 #. type: Plain text
1684 #: build/C/man5/elf.5:411
1685 msgid "Intel 80386."
1686 msgstr ""
1687
1688 #. type: TP
1689 #: build/C/man5/elf.5:411
1690 #, no-wrap
1691 msgid "B<EM_68K>"
1692 msgstr ""
1693
1694 #.  4
1695 #. type: Plain text
1696 #: build/C/man5/elf.5:415
1697 msgid "Motorola 68000."
1698 msgstr ""
1699
1700 #. type: TP
1701 #: build/C/man5/elf.5:415
1702 #, no-wrap
1703 msgid "B<EM_88K>"
1704 msgstr ""
1705
1706 #.  5
1707 #.  .TP
1708 #.  .BR EM_486
1709 #.  Intel 80486.
1710 #.  6
1711 #. type: Plain text
1712 #: build/C/man5/elf.5:423
1713 msgid "Motorola 88000."
1714 msgstr ""
1715
1716 #. type: TP
1717 #: build/C/man5/elf.5:423
1718 #, no-wrap
1719 msgid "B<EM_860>"
1720 msgstr ""
1721
1722 #.  7
1723 #. type: Plain text
1724 #: build/C/man5/elf.5:427
1725 msgid "Intel 80860."
1726 msgstr ""
1727
1728 #. type: TP
1729 #: build/C/man5/elf.5:427
1730 #, no-wrap
1731 msgid "B<EM_MIPS>"
1732 msgstr ""
1733
1734 #.  8
1735 #.  EM_S370
1736 #.  9
1737 #.  .TP
1738 #.  .BR EM_MIPS_RS4_BE
1739 #.  MIPS RS4000 (big-endian only). Deprecated.
1740 #.  10
1741 #.  EM_MIPS_RS3_LE (MIPS R3000 little-endian)
1742 #.  10
1743 #. type: Plain text
1744 #: build/C/man5/elf.5:439
1745 msgid "MIPS RS3000 (big-endian only)."
1746 msgstr ""
1747
1748 #. type: TP
1749 #: build/C/man5/elf.5:439
1750 #, no-wrap
1751 msgid "B<EM_PARISC>"
1752 msgstr ""
1753
1754 #.  15
1755 #. type: Plain text
1756 #: build/C/man5/elf.5:443
1757 msgid "HP/PA."
1758 msgstr ""
1759
1760 #. type: TP
1761 #: build/C/man5/elf.5:443
1762 #, no-wrap
1763 msgid "B<EM_SPARC32PLUS>"
1764 msgstr ""
1765
1766 #.  18
1767 #. type: Plain text
1768 #: build/C/man5/elf.5:447
1769 msgid "SPARC with enhanced instruction set."
1770 msgstr ""
1771
1772 #. type: TP
1773 #: build/C/man5/elf.5:447
1774 #, no-wrap
1775 msgid "B<EM_PPC>"
1776 msgstr ""
1777
1778 #.  20
1779 #. type: Plain text
1780 #: build/C/man5/elf.5:451
1781 msgid "PowerPC."
1782 msgstr ""
1783
1784 #. type: TP
1785 #: build/C/man5/elf.5:451
1786 #, no-wrap
1787 msgid "B<EM_PPC64>"
1788 msgstr ""
1789
1790 #.  21
1791 #. type: Plain text
1792 #: build/C/man5/elf.5:455
1793 msgid "PowerPC 64-bit."
1794 msgstr ""
1795
1796 #. type: TP
1797 #: build/C/man5/elf.5:455
1798 #, no-wrap
1799 msgid "B<EM_S390>"
1800 msgstr ""
1801
1802 #.  22
1803 #. type: Plain text
1804 #: build/C/man5/elf.5:459
1805 msgid "IBM S/390"
1806 msgstr ""
1807
1808 #. type: TP
1809 #: build/C/man5/elf.5:459
1810 #, no-wrap
1811 msgid "B<EM_ARM>"
1812 msgstr ""
1813
1814 #.  40
1815 #. type: Plain text
1816 #: build/C/man5/elf.5:463
1817 msgid "Advanced RISC Machines"
1818 msgstr ""
1819
1820 #. type: TP
1821 #: build/C/man5/elf.5:463
1822 #, no-wrap
1823 msgid "B<EM_SH>"
1824 msgstr ""
1825
1826 #.  42
1827 #. type: Plain text
1828 #: build/C/man5/elf.5:467
1829 msgid "Renesas SuperH"
1830 msgstr ""
1831
1832 #. type: TP
1833 #: build/C/man5/elf.5:467
1834 #, no-wrap
1835 msgid "B<EM_SPARCV9>"
1836 msgstr ""
1837
1838 #.  43
1839 #. type: Plain text
1840 #: build/C/man5/elf.5:471
1841 msgid "SPARC v9 64-bit."
1842 msgstr ""
1843
1844 #. type: TP
1845 #: build/C/man5/elf.5:471
1846 #, no-wrap
1847 msgid "B<EM_IA_64>"
1848 msgstr ""
1849
1850 #.  50
1851 #. type: Plain text
1852 #: build/C/man5/elf.5:475
1853 msgid "Intel Itanium"
1854 msgstr ""
1855
1856 #. type: TP
1857 #: build/C/man5/elf.5:475
1858 #, no-wrap
1859 msgid "B<EM_X86_64>"
1860 msgstr ""
1861
1862 #.  62
1863 #. type: Plain text
1864 #: build/C/man5/elf.5:479
1865 msgid "AMD x86-64"
1866 msgstr ""
1867
1868 #. type: TP
1869 #: build/C/man5/elf.5:479
1870 #, no-wrap
1871 msgid "B<EM_VAX>"
1872 msgstr ""
1873
1874 #.  75
1875 #.  EM_CRIS
1876 #.  76
1877 #.  .TP
1878 #.  .BR EM_ALPHA
1879 #.  Compaq [DEC] Alpha.
1880 #.  .TP
1881 #.  .BR EM_ALPHA_EXP
1882 #.  Compaq [DEC] Alpha with enhanced instruction set.
1883 #. type: Plain text
1884 #: build/C/man5/elf.5:491
1885 msgid "DEC Vax."
1886 msgstr ""
1887
1888 #. type: TP
1889 #: build/C/man5/elf.5:494
1890 #, no-wrap
1891 msgid "I<e_version>"
1892 msgstr ""
1893
1894 #.  .Bl -tag -width "EV_CURRENT" -compact
1895 #. type: Plain text
1896 #: build/C/man5/elf.5:498
1897 msgid "This member identifies the file version:"
1898 msgstr ""
1899
1900 #. type: TP
1901 #: build/C/man5/elf.5:509
1902 #, no-wrap
1903 msgid "I<e_entry>"
1904 msgstr ""
1905
1906 #. type: Plain text
1907 #: build/C/man5/elf.5:515
1908 msgid ""
1909 "This member gives the virtual address to which the system first transfers "
1910 "control, thus starting the process.  If the file has no associated entry "
1911 "point, this member holds zero."
1912 msgstr ""
1913
1914 #. type: TP
1915 #: build/C/man5/elf.5:515
1916 #, no-wrap
1917 msgid "I<e_phoff>"
1918 msgstr ""
1919
1920 #. type: Plain text
1921 #: build/C/man5/elf.5:520
1922 msgid ""
1923 "This member holds the program header table's file offset in bytes.  If the "
1924 "file has no program header table, this member holds zero."
1925 msgstr ""
1926
1927 #. type: TP
1928 #: build/C/man5/elf.5:520
1929 #, no-wrap
1930 msgid "I<e_shoff>"
1931 msgstr ""
1932
1933 #. type: Plain text
1934 #: build/C/man5/elf.5:525
1935 msgid ""
1936 "This member holds the section header table's file offset in bytes.  If the "
1937 "file has no section header table this member holds zero."
1938 msgstr ""
1939
1940 #. type: TP
1941 #: build/C/man5/elf.5:525
1942 #, no-wrap
1943 msgid "I<e_flags>"
1944 msgstr ""
1945
1946 #. type: Plain text
1947 #: build/C/man5/elf.5:530
1948 msgid ""
1949 "This member holds processor-specific flags associated with the file.  Flag "
1950 "names take the form EF_`machine_flag'.  Currently no flags have been "
1951 "defined."
1952 msgstr ""
1953
1954 #. type: TP
1955 #: build/C/man5/elf.5:530
1956 #, no-wrap
1957 msgid "I<e_ehsize>"
1958 msgstr ""
1959
1960 #. type: Plain text
1961 #: build/C/man5/elf.5:533
1962 msgid "This member holds the ELF header's size in bytes."
1963 msgstr ""
1964
1965 #. type: TP
1966 #: build/C/man5/elf.5:533
1967 #, no-wrap
1968 msgid "I<e_phentsize>"
1969 msgstr ""
1970
1971 #. type: Plain text
1972 #: build/C/man5/elf.5:537
1973 msgid ""
1974 "This member holds the size in bytes of one entry in the file's program "
1975 "header table; all entries are the same size."
1976 msgstr ""
1977
1978 #. type: TP
1979 #: build/C/man5/elf.5:537
1980 #, no-wrap
1981 msgid "I<e_phnum>"
1982 msgstr ""
1983
1984 #. type: Plain text
1985 #: build/C/man5/elf.5:550
1986 msgid ""
1987 "This member holds the number of entries in the program header table.  Thus "
1988 "the product of I<e_phentsize> and I<e_phnum> gives the table's size in "
1989 "bytes.  If a file has no program header, I<e_phnum> holds the value zero."
1990 msgstr ""
1991
1992 #.  This is a Linux extension, added in Linux 2.6.34.
1993 #.  .Bl -tag -width "PN_XNUM"
1994 #. type: Plain text
1995 #: build/C/man5/elf.5:564
1996 msgid ""
1997 "If the number of entries in the program header table is larger than or equal "
1998 "to B<PN_XNUM> (0xffff), this member holds B<PN_XNUM> (0xffff) and the real "
1999 "number of entries in the program header table is held in the I<sh_info> "
2000 "member of the initial entry in section header table.  Otherwise, the "
2001 "I<sh_info> member of the initial entry contains the value zero."
2002 msgstr ""
2003
2004 #. type: TP
2005 #: build/C/man5/elf.5:565
2006 #, no-wrap
2007 msgid "B<PN_XNUM>"
2008 msgstr ""
2009
2010 #. type: Plain text
2011 #: build/C/man5/elf.5:570
2012 msgid ""
2013 "This is defined as 0xffff, the largest number I<e_phnum> can have, "
2014 "specifying where the actual number of program headers is assigned."
2015 msgstr ""
2016
2017 #. type: TP
2018 #: build/C/man5/elf.5:574
2019 #, no-wrap
2020 msgid "I<e_shentsize>"
2021 msgstr ""
2022
2023 #. type: Plain text
2024 #: build/C/man5/elf.5:579
2025 msgid ""
2026 "This member holds a sections header's size in bytes.  A section header is "
2027 "one entry in the section header table; all entries are the same size."
2028 msgstr ""
2029
2030 #. type: TP
2031 #: build/C/man5/elf.5:579
2032 #, no-wrap
2033 msgid "I<e_shnum>"
2034 msgstr ""
2035
2036 #. type: Plain text
2037 #: build/C/man5/elf.5:592
2038 msgid ""
2039 "This member holds the number of entries in the section header table.  Thus "
2040 "the product of I<e_shentsize> and I<e_shnum> gives the section header "
2041 "table's size in bytes.  If a file has no section header table, I<e_shnum> "
2042 "holds the value of zero."
2043 msgstr ""
2044
2045 #. type: Plain text
2046 #: build/C/man5/elf.5:604
2047 msgid ""
2048 "If the number of entries in the section header table is larger than or equal "
2049 "to B<SHN_LORESERVE> (0xff00), I<e_shnum> holds the value zero and the real "
2050 "number of entries in the section header table is held in the I<sh_size> "
2051 "member of the initial entry in section header table.  Otherwise, the "
2052 "I<sh_size> member of the initial entry in the section header table holds the "
2053 "value zero."
2054 msgstr ""
2055
2056 #. type: TP
2057 #: build/C/man5/elf.5:604
2058 #, no-wrap
2059 msgid "I<e_shstrndx>"
2060 msgstr ""
2061
2062 #. type: Plain text
2063 #: build/C/man5/elf.5:611
2064 msgid ""
2065 "This member holds the section header table index of the entry associated "
2066 "with the section name string table.  If the file has no section name string "
2067 "table, this member holds the value B<SHN_UNDEF>."
2068 msgstr ""
2069
2070 #. type: Plain text
2071 #: build/C/man5/elf.5:623
2072 msgid ""
2073 "If the index of section name string table section is larger than or equal to "
2074 "B<SHN_LORESERVE> (0xff00), this member holds B<SHN_XINDEX> (0xffff) and the "
2075 "real index of the section name string table section is held in the "
2076 "I<sh_link> member of the initial entry in section header table.  Otherwise, "
2077 "the I<sh_link> member of the initial entry in section header table contains "
2078 "the value zero."
2079 msgstr ""
2080
2081 #. type: TP
2082 #: build/C/man5/elf.5:625 build/C/man5/elf.5:912
2083 #, no-wrap
2084 msgid "B<SHN_UNDEF>"
2085 msgstr ""
2086
2087 #. type: Plain text
2088 #: build/C/man5/elf.5:634
2089 msgid ""
2090 "This value marks an undefined, missing, irrelevant, or otherwise meaningless "
2091 "section reference.  For example, a symbol \"defined\" relative to section "
2092 "number B<SHN_UNDEF> is an undefined symbol."
2093 msgstr ""
2094
2095 #. type: TP
2096 #: build/C/man5/elf.5:634 build/C/man5/elf.5:916
2097 #, no-wrap
2098 msgid "B<SHN_LORESERVE>"
2099 msgstr ""
2100
2101 #. type: Plain text
2102 #: build/C/man5/elf.5:637 build/C/man5/elf.5:919
2103 msgid "This value specifies the lower bound of the range of reserved indices."
2104 msgstr ""
2105
2106 #. type: TP
2107 #: build/C/man5/elf.5:637 build/C/man5/elf.5:919
2108 #, no-wrap
2109 msgid "B<SHN_LOPROC>"
2110 msgstr ""
2111
2112 #. type: Plain text
2113 #: build/C/man5/elf.5:642 build/C/man5/elf.5:924
2114 msgid ""
2115 "Values greater than or equal to B<SHN_HIPROC> are reserved for "
2116 "processor-specific semantics."
2117 msgstr ""
2118
2119 #. type: TP
2120 #: build/C/man5/elf.5:642 build/C/man5/elf.5:924
2121 #, no-wrap
2122 msgid "B<SHN_HIPROC>"
2123 msgstr ""
2124
2125 #. type: Plain text
2126 #: build/C/man5/elf.5:647 build/C/man5/elf.5:929
2127 msgid ""
2128 "Values less than or equal to B<SHN_LOPROC> are reserved for "
2129 "processor-specific semantics."
2130 msgstr ""
2131
2132 #. type: TP
2133 #: build/C/man5/elf.5:647 build/C/man5/elf.5:929
2134 #, no-wrap
2135 msgid "B<SHN_ABS>"
2136 msgstr ""
2137
2138 #. type: Plain text
2139 #: build/C/man5/elf.5:654
2140 msgid ""
2141 "This value specifies absolute values for the corresponding reference.  For "
2142 "example, symbols defined relative to section number B<SHN_ABS> have absolute "
2143 "values and are not affected by relocation."
2144 msgstr ""
2145
2146 #. type: TP
2147 #: build/C/man5/elf.5:654 build/C/man5/elf.5:936
2148 #, no-wrap
2149 msgid "B<SHN_COMMON>"
2150 msgstr ""
2151
2152 #. type: Plain text
2153 #: build/C/man5/elf.5:658
2154 msgid ""
2155 "Symbols defined relative to this section are common symbols, such as Fortran "
2156 "COMMON or unallocated C external variables."
2157 msgstr ""
2158
2159 #. type: TP
2160 #: build/C/man5/elf.5:658 build/C/man5/elf.5:940
2161 #, no-wrap
2162 msgid "B<SHN_HIRESERVE>"
2163 msgstr ""
2164
2165 #. type: Plain text
2166 #: build/C/man5/elf.5:671
2167 msgid ""
2168 "This value specifies the upper bound of the range of reserved indices "
2169 "between B<SHN_LORESERVE> and B<SHN_HIRESERVE>, inclusive; the values do not "
2170 "reference the section header table.  That is, the section header table does "
2171 "I<not> contain entries for the reserved indices."
2172 msgstr ""
2173
2174 #. type: Plain text
2175 #: build/C/man5/elf.5:693
2176 msgid ""
2177 "An executable or shared object file's program header table is an array of "
2178 "structures, each describing a segment or other information the system needs "
2179 "to prepare the program for execution.  An object file I<segment> contains "
2180 "one or more I<sections>.  Program headers are meaningful only for executable "
2181 "and shared object files.  A file specifies its own program header size with "
2182 "the ELF header's I<e_phentsize> and I<e_phnum> members.  The ELF program "
2183 "header is described by the type I<Elf32_Phdr> or I<Elf64_Phdr> depending on "
2184 "the architecture:"
2185 msgstr ""
2186
2187 #. type: Plain text
2188 #: build/C/man5/elf.5:706
2189 #, no-wrap
2190 msgid ""
2191 "typedef struct {\n"
2192 "    uint32_t   p_type;\n"
2193 "    Elf32_Off  p_offset;\n"
2194 "    Elf32_Addr p_vaddr;\n"
2195 "    Elf32_Addr p_paddr;\n"
2196 "    uint32_t   p_filesz;\n"
2197 "    uint32_t   p_memsz;\n"
2198 "    uint32_t   p_flags;\n"
2199 "    uint32_t   p_align;\n"
2200 "} Elf32_Phdr;\n"
2201 msgstr ""
2202
2203 #. type: Plain text
2204 #: build/C/man5/elf.5:721
2205 #, no-wrap
2206 msgid ""
2207 "typedef struct {\n"
2208 "    uint32_t   p_type;\n"
2209 "    uint32_t   p_flags;\n"
2210 "    Elf64_Off  p_offset;\n"
2211 "    Elf64_Addr p_vaddr;\n"
2212 "    Elf64_Addr p_paddr;\n"
2213 "    uint64_t   p_filesz;\n"
2214 "    uint64_t   p_memsz;\n"
2215 "    uint64_t   p_align;\n"
2216 "} Elf64_Phdr;\n"
2217 msgstr ""
2218
2219 #.  .Bl -tag -width "p_offset"
2220 #. type: Plain text
2221 #: build/C/man5/elf.5:729
2222 msgid ""
2223 "The main difference between the 32-bit and the 64-bit program header lies in "
2224 "the location of the I<p_flags> member in the total struct."
2225 msgstr ""
2226
2227 #. type: TP
2228 #: build/C/man5/elf.5:729
2229 #, no-wrap
2230 msgid "I<p_type>"
2231 msgstr ""
2232
2233 #.  .Bl -tag -width "PT_DYNAMIC"
2234 #. type: Plain text
2235 #: build/C/man5/elf.5:734
2236 msgid ""
2237 "This member of the Phdr struct tells what kind of segment this array element "
2238 "describes or how to interpret the array element's information."
2239 msgstr ""
2240
2241 #. type: TP
2242 #: build/C/man5/elf.5:735
2243 #, no-wrap
2244 msgid "B<PT_NULL>"
2245 msgstr ""
2246
2247 #. type: Plain text
2248 #: build/C/man5/elf.5:739
2249 msgid ""
2250 "The array element is unused and the other members' values are undefined.  "
2251 "This lets the program header have ignored entries."
2252 msgstr ""
2253
2254 #. type: TP
2255 #: build/C/man5/elf.5:739
2256 #, no-wrap
2257 msgid "B<PT_LOAD>"
2258 msgstr ""
2259
2260 #. type: Plain text
2261 #: build/C/man5/elf.5:760
2262 msgid ""
2263 "The array element specifies a loadable segment, described by I<p_filesz> and "
2264 "I<p_memsz>.  The bytes from the file are mapped to the beginning of the "
2265 "memory segment.  If the segment's memory size I<p_memsz> is larger than the "
2266 "file size I<p_filesz>, the \"extra\" bytes are defined to hold the value 0 "
2267 "and to follow the segment's initialized area.  The file size may not be "
2268 "larger than the memory size.  Loadable segment entries in the program header "
2269 "table appear in ascending order, sorted on the I<p_vaddr> member."
2270 msgstr ""
2271
2272 #. type: TP
2273 #: build/C/man5/elf.5:760
2274 #, no-wrap
2275 msgid "B<PT_DYNAMIC>"
2276 msgstr ""
2277
2278 #. type: Plain text
2279 #: build/C/man5/elf.5:763
2280 msgid "The array element specifies dynamic linking information."
2281 msgstr ""
2282
2283 #. type: TP
2284 #: build/C/man5/elf.5:763
2285 #, no-wrap
2286 msgid "B<PT_INTERP>"
2287 msgstr ""
2288
2289 #. type: Plain text
2290 #: build/C/man5/elf.5:771
2291 msgid ""
2292 "The array element specifies the location and size of a null-terminated "
2293 "pathname to invoke as an interpreter.  This segment type is meaningful only "
2294 "for executable files (though it may occur for shared objects).  However it "
2295 "may not occur more than once in a file.  If it is present, it must precede "
2296 "any loadable segment entry."
2297 msgstr ""
2298
2299 #. type: TP
2300 #: build/C/man5/elf.5:771
2301 #, no-wrap
2302 msgid "B<PT_NOTE>"
2303 msgstr ""
2304
2305 #. type: Plain text
2306 #: build/C/man5/elf.5:774
2307 msgid "The array element specifies the location and size for auxiliary information."
2308 msgstr ""
2309
2310 #. type: TP
2311 #: build/C/man5/elf.5:774
2312 #, no-wrap
2313 msgid "B<PT_SHLIB>"
2314 msgstr ""
2315
2316 #. type: Plain text
2317 #: build/C/man5/elf.5:779
2318 msgid ""
2319 "This segment type is reserved but has unspecified semantics.  Programs that "
2320 "contain an array element of this type do not conform to the ABI."
2321 msgstr ""
2322
2323 #. type: TP
2324 #: build/C/man5/elf.5:779
2325 #, no-wrap
2326 msgid "B<PT_PHDR>"
2327 msgstr ""
2328
2329 #. type: Plain text
2330 #: build/C/man5/elf.5:788
2331 msgid ""
2332 "The array element, if present, specifies the location and size of the "
2333 "program header table itself, both in the file and in the memory image of the "
2334 "program.  This segment type may not occur more than once in a file.  "
2335 "Moreover, it may only occur if the program header table is part of the "
2336 "memory image of the program.  If it is present, it must precede any loadable "
2337 "segment entry."
2338 msgstr ""
2339
2340 #. type: TP
2341 #: build/C/man5/elf.5:788
2342 #, no-wrap
2343 msgid "B<PT_LOPROC>"
2344 msgstr ""
2345
2346 #. type: Plain text
2347 #: build/C/man5/elf.5:793
2348 msgid ""
2349 "Values greater than or equal to B<PT_HIPROC> are reserved for "
2350 "processor-specific semantics."
2351 msgstr ""
2352
2353 #. type: TP
2354 #: build/C/man5/elf.5:793
2355 #, no-wrap
2356 msgid "B<PT_HIPROC>"
2357 msgstr ""
2358
2359 #. type: Plain text
2360 #: build/C/man5/elf.5:798
2361 msgid ""
2362 "Values less than or equal to B<PT_LOPROC> are reserved for "
2363 "processor-specific semantics."
2364 msgstr ""
2365
2366 #. type: TP
2367 #: build/C/man5/elf.5:798
2368 #, no-wrap
2369 msgid "B<PT_GNU_STACK>"
2370 msgstr ""
2371
2372 #.  .El
2373 #. type: Plain text
2374 #: build/C/man5/elf.5:805
2375 msgid ""
2376 "GNU extension which is used by the Linux kernel to control the state of the "
2377 "stack via the flags set in the I<p_flags> member."
2378 msgstr ""
2379
2380 #. type: TP
2381 #: build/C/man5/elf.5:806
2382 #, no-wrap
2383 msgid "I<p_offset>"
2384 msgstr ""
2385
2386 #. type: Plain text
2387 #: build/C/man5/elf.5:810
2388 msgid ""
2389 "This member holds the offset from the beginning of the file at which the "
2390 "first byte of the segment resides."
2391 msgstr ""
2392
2393 #. type: TP
2394 #: build/C/man5/elf.5:810
2395 #, no-wrap
2396 msgid "I<p_vaddr>"
2397 msgstr ""
2398
2399 #. type: Plain text
2400 #: build/C/man5/elf.5:814
2401 msgid ""
2402 "This member holds the virtual address at which the first byte of the segment "
2403 "resides in memory."
2404 msgstr ""
2405
2406 #. type: TP
2407 #: build/C/man5/elf.5:814
2408 #, no-wrap
2409 msgid "I<p_paddr>"
2410 msgstr ""
2411
2412 #. type: Plain text
2413 #: build/C/man5/elf.5:822
2414 msgid ""
2415 "On systems for which physical addressing is relevant, this member is "
2416 "reserved for the segment's physical address.  Under BSD this member is not "
2417 "used and must be zero."
2418 msgstr ""
2419
2420 #. type: TP
2421 #: build/C/man5/elf.5:822
2422 #, no-wrap
2423 msgid "I<p_filesz>"
2424 msgstr ""
2425
2426 #. type: Plain text
2427 #: build/C/man5/elf.5:826
2428 msgid ""
2429 "This member holds the number of bytes in the file image of the segment.  It "
2430 "may be zero."
2431 msgstr ""
2432
2433 #. type: TP
2434 #: build/C/man5/elf.5:826
2435 #, no-wrap
2436 msgid "I<p_memsz>"
2437 msgstr ""
2438
2439 #. type: Plain text
2440 #: build/C/man5/elf.5:830
2441 msgid ""
2442 "This member holds the number of bytes in the memory image of the segment.  "
2443 "It may be zero."
2444 msgstr ""
2445
2446 #. type: TP
2447 #: build/C/man5/elf.5:830
2448 #, no-wrap
2449 msgid "I<p_flags>"
2450 msgstr ""
2451
2452 #.  .Bl -tag -width "PF_X" -compact
2453 #. type: Plain text
2454 #: build/C/man5/elf.5:834
2455 msgid "This member holds a bitmask of flags relevant to the segment:"
2456 msgstr ""
2457
2458 #. type: TP
2459 #: build/C/man5/elf.5:835
2460 #, no-wrap
2461 msgid "B<PF_X>"
2462 msgstr ""
2463
2464 #. type: Plain text
2465 #: build/C/man5/elf.5:839
2466 msgid "An executable segment."
2467 msgstr ""
2468
2469 #. type: TP
2470 #: build/C/man5/elf.5:839
2471 #, no-wrap
2472 msgid "B<PF_W>"
2473 msgstr ""
2474
2475 #. type: Plain text
2476 #: build/C/man5/elf.5:842
2477 msgid "A writable segment."
2478 msgstr ""
2479
2480 #. type: TP
2481 #: build/C/man5/elf.5:842
2482 #, no-wrap
2483 msgid "B<PF_R>"
2484 msgstr ""
2485
2486 #. type: Plain text
2487 #: build/C/man5/elf.5:845
2488 msgid "A readable segment."
2489 msgstr ""
2490
2491 #. type: Plain text
2492 #: build/C/man5/elf.5:858
2493 msgid ""
2494 "A text segment commonly has the flags B<PF_X> and B<PF_R>.  A data segment "
2495 "commonly has B<PF_X>, B<PF_W> and B<PF_R>."
2496 msgstr ""
2497
2498 #. type: TP
2499 #: build/C/man5/elf.5:858
2500 #, no-wrap
2501 msgid "I<p_align>"
2502 msgstr ""
2503
2504 #.  .El
2505 #. type: Plain text
2506 #: build/C/man5/elf.5:877
2507 msgid ""
2508 "This member holds the value to which the segments are aligned in memory and "
2509 "in the file.  Loadable process segments must have congruent values for "
2510 "I<p_vaddr> and I<p_offset>, modulo the page size.  Values of zero and one "
2511 "mean no alignment is required.  Otherwise, I<p_align> should be a positive, "
2512 "integral power of two, and I<p_vaddr> should equal I<p_offset>, modulo "
2513 "I<p_align>."
2514 msgstr ""
2515
2516 #. type: Plain text
2517 #: build/C/man5/elf.5:894
2518 msgid ""
2519 "A file's section header table lets one locate all the file's sections.  The "
2520 "section header table is an array of I<Elf32_Shdr> or I<Elf64_Shdr> "
2521 "structures.  The ELF header's I<e_shoff> member gives the byte offset from "
2522 "the beginning of the file to the section header table.  I<e_shnum> holds the "
2523 "number of entries the section header table contains.  I<e_shentsize> holds "
2524 "the size in bytes of each entry."
2525 msgstr ""
2526
2527 #.  .Bl -tag -width "SHN_LORESERVE"
2528 #. type: Plain text
2529 #: build/C/man5/elf.5:911
2530 msgid ""
2531 "A section header table index is a subscript into this array.  Some section "
2532 "header table indices are reserved: the initial entry and the indices between "
2533 "B<SHN_LORESERVE> and B<SHN_HIRESERVE>.  The initial entry is used in ELF "
2534 "extensions for I<e_phnum>, I<e_shnum> and I<e_strndx>; in other cases, each "
2535 "field in the initial entry is set to zero.  An object file does not have "
2536 "sections for these special indices:"
2537 msgstr ""
2538
2539 #. type: Plain text
2540 #: build/C/man5/elf.5:916
2541 msgid ""
2542 "This value marks an undefined, missing, irrelevant or otherwise meaningless "
2543 "section reference."
2544 msgstr ""
2545
2546 #. type: Plain text
2547 #: build/C/man5/elf.5:936
2548 msgid ""
2549 "This value specifies the absolute value for the corresponding reference.  "
2550 "For example, a symbol defined relative to section number B<SHN_ABS> has an "
2551 "absolute value and is not affected by relocation."
2552 msgstr ""
2553
2554 #. type: Plain text
2555 #: build/C/man5/elf.5:940
2556 msgid ""
2557 "Symbols defined relative to this section are common symbols, such as FORTRAN "
2558 "COMMON or unallocated C external variables."
2559 msgstr ""
2560
2561 #. type: Plain text
2562 #: build/C/man5/elf.5:951
2563 msgid ""
2564 "This value specifies the upper bound of the range of reserved indices.  The "
2565 "system reserves indices between B<SHN_LORESERVE> and B<SHN_HIRESERVE>, "
2566 "inclusive.  The section header table does not contain entries for the "
2567 "reserved indices."
2568 msgstr ""
2569
2570 #. type: Plain text
2571 #: build/C/man5/elf.5:955
2572 msgid "The section header has the following structure:"
2573 msgstr ""
2574
2575 #. type: Plain text
2576 #: build/C/man5/elf.5:970
2577 #, no-wrap
2578 msgid ""
2579 "typedef struct {\n"
2580 "    uint32_t   sh_name;\n"
2581 "    uint32_t   sh_type;\n"
2582 "    uint32_t   sh_flags;\n"
2583 "    Elf32_Addr sh_addr;\n"
2584 "    Elf32_Off  sh_offset;\n"
2585 "    uint32_t   sh_size;\n"
2586 "    uint32_t   sh_link;\n"
2587 "    uint32_t   sh_info;\n"
2588 "    uint32_t   sh_addralign;\n"
2589 "    uint32_t   sh_entsize;\n"
2590 "} Elf32_Shdr;\n"
2591 msgstr ""
2592
2593 #. type: Plain text
2594 #: build/C/man5/elf.5:987
2595 #, no-wrap
2596 msgid ""
2597 "typedef struct {\n"
2598 "    uint32_t   sh_name;\n"
2599 "    uint32_t   sh_type;\n"
2600 "    uint64_t   sh_flags;\n"
2601 "    Elf64_Addr sh_addr;\n"
2602 "    Elf64_Off  sh_offset;\n"
2603 "    uint64_t   sh_size;\n"
2604 "    uint32_t   sh_link;\n"
2605 "    uint32_t   sh_info;\n"
2606 "    uint64_t   sh_addralign;\n"
2607 "    uint64_t   sh_entsize;\n"
2608 "} Elf64_Shdr;\n"
2609 msgstr ""
2610
2611 #.  .Bl -tag -width "sh_addralign"
2612 #. type: Plain text
2613 #: build/C/man5/elf.5:992
2614 msgid "No real differences exist between the 32-bit and 64-bit section headers."
2615 msgstr ""
2616
2617 #. type: TP
2618 #: build/C/man5/elf.5:992
2619 #, no-wrap
2620 msgid "I<sh_name>"
2621 msgstr ""
2622
2623 #. type: Plain text
2624 #: build/C/man5/elf.5:998
2625 msgid ""
2626 "This member specifies the name of the section.  Its value is an index into "
2627 "the section header string table section, giving the location of a "
2628 "null-terminated string."
2629 msgstr ""
2630
2631 #. type: TP
2632 #: build/C/man5/elf.5:998
2633 #, no-wrap
2634 msgid "I<sh_type>"
2635 msgstr ""
2636
2637 #.  .Bl -tag -width "SHT_PROGBITS"
2638 #. type: Plain text
2639 #: build/C/man5/elf.5:1002
2640 msgid "This member categorizes the section's contents and semantics."
2641 msgstr ""
2642
2643 #. type: TP
2644 #: build/C/man5/elf.5:1003
2645 #, no-wrap
2646 msgid "B<SHT_NULL>"
2647 msgstr ""
2648
2649 #. type: Plain text
2650 #: build/C/man5/elf.5:1010
2651 msgid ""
2652 "This value marks the section header as inactive.  It does not have an "
2653 "associated section.  Other members of the section header have undefined "
2654 "values."
2655 msgstr ""
2656
2657 #. type: TP
2658 #: build/C/man5/elf.5:1010
2659 #, no-wrap
2660 msgid "B<SHT_PROGBITS>"
2661 msgstr ""
2662
2663 #. type: Plain text
2664 #: build/C/man5/elf.5:1014
2665 msgid ""
2666 "This section holds information defined by the program, whose format and "
2667 "meaning are determined solely by the program."
2668 msgstr ""
2669
2670 #. type: TP
2671 #: build/C/man5/elf.5:1014
2672 #, no-wrap
2673 msgid "B<SHT_SYMTAB>"
2674 msgstr ""
2675
2676 #. type: Plain text
2677 #: build/C/man5/elf.5:1027
2678 msgid ""
2679 "This section holds a symbol table.  Typically, B<SHT_SYMTAB> provides "
2680 "symbols for link editing, though it may also be used for dynamic linking.  "
2681 "As a complete symbol table, it may contain many symbols unnecessary for "
2682 "dynamic linking.  An object file can also contain a B<SHT_DYNSYM> section."
2683 msgstr ""
2684
2685 #. type: TP
2686 #: build/C/man5/elf.5:1027
2687 #, no-wrap
2688 msgid "B<SHT_STRTAB>"
2689 msgstr ""
2690
2691 #. type: Plain text
2692 #: build/C/man5/elf.5:1032
2693 msgid ""
2694 "This section holds a string table.  An object file may have multiple string "
2695 "table sections."
2696 msgstr ""
2697
2698 #. type: TP
2699 #: build/C/man5/elf.5:1032
2700 #, no-wrap
2701 msgid "B<SHT_RELA>"
2702 msgstr ""
2703
2704 #. type: Plain text
2705 #: build/C/man5/elf.5:1040
2706 msgid ""
2707 "This section holds relocation entries with explicit addends, such as type "
2708 "I<Elf32_Rela> for the 32-bit class of object files.  An object may have "
2709 "multiple relocation sections."
2710 msgstr ""
2711
2712 #. type: TP
2713 #: build/C/man5/elf.5:1040
2714 #, no-wrap
2715 msgid "B<SHT_HASH>"
2716 msgstr ""
2717
2718 #. type: Plain text
2719 #: build/C/man5/elf.5:1047
2720 msgid ""
2721 "This section holds a symbol hash table.  An object participating in dynamic "
2722 "linking must contain a symbol hash table.  An object file may have only one "
2723 "hash table."
2724 msgstr ""
2725
2726 #. type: TP
2727 #: build/C/man5/elf.5:1047
2728 #, no-wrap
2729 msgid "B<SHT_DYNAMIC>"
2730 msgstr ""
2731
2732 #. type: Plain text
2733 #: build/C/man5/elf.5:1052
2734 msgid ""
2735 "This section holds information for dynamic linking.  An object file may have "
2736 "only one dynamic section."
2737 msgstr ""
2738
2739 #. type: TP
2740 #: build/C/man5/elf.5:1052
2741 #, no-wrap
2742 msgid "B<SHT_NOTE>"
2743 msgstr ""
2744
2745 #. type: Plain text
2746 #: build/C/man5/elf.5:1055
2747 msgid "This section holds information that marks the file in some way."
2748 msgstr ""
2749
2750 #. type: TP
2751 #: build/C/man5/elf.5:1055
2752 #, no-wrap
2753 msgid "B<SHT_NOBITS>"
2754 msgstr ""
2755
2756 #. type: Plain text
2757 #: build/C/man5/elf.5:1063
2758 msgid ""
2759 "A section of this type occupies no space in the file but otherwise resembles "
2760 "B<SHT_PROGBITS>.  Although this section contains no bytes, the I<sh_offset> "
2761 "member contains the conceptual file offset."
2762 msgstr ""
2763
2764 #. type: TP
2765 #: build/C/man5/elf.5:1063
2766 #, no-wrap
2767 msgid "B<SHT_REL>"
2768 msgstr ""
2769
2770 #. type: Plain text
2771 #: build/C/man5/elf.5:1071
2772 msgid ""
2773 "This section holds relocation offsets without explicit addends, such as type "
2774 "I<Elf32_Rel> for the 32-bit class of object files.  An object file may have "
2775 "multiple relocation sections."
2776 msgstr ""
2777
2778 #. type: TP
2779 #: build/C/man5/elf.5:1071
2780 #, no-wrap
2781 msgid "B<SHT_SHLIB>"
2782 msgstr ""
2783
2784 #. type: Plain text
2785 #: build/C/man5/elf.5:1074
2786 msgid "This section is reserved but has unspecified semantics."
2787 msgstr ""
2788
2789 #. type: TP
2790 #: build/C/man5/elf.5:1074
2791 #, no-wrap
2792 msgid "B<SHT_DYNSYM>"
2793 msgstr ""
2794
2795 #. type: Plain text
2796 #: build/C/man5/elf.5:1081
2797 msgid ""
2798 "This section holds a minimal set of dynamic linking symbols.  An object file "
2799 "can also contain a B<SHT_SYMTAB> section."
2800 msgstr ""
2801
2802 #. type: TP
2803 #: build/C/man5/elf.5:1081
2804 #, no-wrap
2805 msgid "B<SHT_LOPROC>"
2806 msgstr ""
2807
2808 #. type: Plain text
2809 #: build/C/man5/elf.5:1086
2810 msgid ""
2811 "This value up to and including B<SHT_HIPROC> is reserved for "
2812 "processor-specific semantics."
2813 msgstr ""
2814
2815 #. type: TP
2816 #: build/C/man5/elf.5:1086
2817 #, no-wrap
2818 msgid "B<SHT_HIPROC>"
2819 msgstr ""
2820
2821 #. type: Plain text
2822 #: build/C/man5/elf.5:1091
2823 msgid ""
2824 "This value down to and including B<SHT_LOPROC> is reserved for "
2825 "processor-specific semantics."
2826 msgstr ""
2827
2828 #. type: TP
2829 #: build/C/man5/elf.5:1091
2830 #, no-wrap
2831 msgid "B<SHT_LOUSER>"
2832 msgstr ""
2833
2834 #. type: Plain text
2835 #: build/C/man5/elf.5:1095
2836 msgid ""
2837 "This value specifies the lower bound of the range of indices reserved for "
2838 "application programs."
2839 msgstr ""
2840
2841 #. type: TP
2842 #: build/C/man5/elf.5:1095
2843 #, no-wrap
2844 msgid "B<SHT_HIUSER>"
2845 msgstr ""
2846
2847 #.  .El
2848 #. type: Plain text
2849 #: build/C/man5/elf.5:1106
2850 msgid ""
2851 "This value specifies the upper bound of the range of indices reserved for "
2852 "application programs.  Section types between B<SHT_LOUSER> and B<SHT_HIUSER> "
2853 "may be used by the application, without conflicting with current or future "
2854 "system-defined section types."
2855 msgstr ""
2856
2857 #. type: TP
2858 #: build/C/man5/elf.5:1107
2859 #, no-wrap
2860 msgid "I<sh_flags>"
2861 msgstr ""
2862
2863 #.  .Bl -tag -width "SHF_EXECINSTR" -compact
2864 #. type: Plain text
2865 #: build/C/man5/elf.5:1120
2866 msgid ""
2867 "Sections support one-bit flags that describe miscellaneous attributes.  If a "
2868 "flag bit is set in I<sh_flags>, the attribute is \"on\" for the section.  "
2869 "Otherwise, the attribute is \"off\" or does not apply.  Undefined attributes "
2870 "are set to zero."
2871 msgstr ""
2872
2873 #. type: TP
2874 #: build/C/man5/elf.5:1121
2875 #, no-wrap
2876 msgid "B<SHF_WRITE>"
2877 msgstr ""
2878
2879 #. type: Plain text
2880 #: build/C/man5/elf.5:1125
2881 msgid "This section contains data that should be writable during process execution."
2882 msgstr ""
2883
2884 #. type: TP
2885 #: build/C/man5/elf.5:1125
2886 #, no-wrap
2887 msgid "B<SHF_ALLOC>"
2888 msgstr ""
2889
2890 #. type: Plain text
2891 #: build/C/man5/elf.5:1132
2892 msgid ""
2893 "This section occupies memory during process execution.  Some control "
2894 "sections do not reside in the memory image of an object file.  This "
2895 "attribute is off for those sections."
2896 msgstr ""
2897
2898 #. type: TP
2899 #: build/C/man5/elf.5:1132
2900 #, no-wrap
2901 msgid "B<SHF_EXECINSTR>"
2902 msgstr ""
2903
2904 #. type: Plain text
2905 #: build/C/man5/elf.5:1135
2906 msgid "This section contains executable machine instructions."
2907 msgstr ""
2908
2909 #. type: TP
2910 #: build/C/man5/elf.5:1135
2911 #, no-wrap
2912 msgid "B<SHF_MASKPROC>"
2913 msgstr ""
2914
2915 #. type: Plain text
2916 #: build/C/man5/elf.5:1139
2917 msgid ""
2918 "All bits included in this mask are reserved for processor-specific "
2919 "semantics."
2920 msgstr ""
2921
2922 #. type: TP
2923 #: build/C/man5/elf.5:1141
2924 #, no-wrap
2925 msgid "I<sh_addr>"
2926 msgstr ""
2927
2928 #. type: Plain text
2929 #: build/C/man5/elf.5:1146
2930 msgid ""
2931 "If this section appears in the memory image of a process, this member holds "
2932 "the address at which the section's first byte should reside.  Otherwise, the "
2933 "member contains zero."
2934 msgstr ""
2935
2936 #. type: TP
2937 #: build/C/man5/elf.5:1146
2938 #, no-wrap
2939 msgid "I<sh_offset>"
2940 msgstr ""
2941
2942 #. type: Plain text
2943 #: build/C/man5/elf.5:1155
2944 msgid ""
2945 "This member's value holds the byte offset from the beginning of the file to "
2946 "the first byte in the section.  One section type, B<SHT_NOBITS>, occupies no "
2947 "space in the file, and its I<sh_offset> member locates the conceptual "
2948 "placement in the file."
2949 msgstr ""
2950
2951 #. type: TP
2952 #: build/C/man5/elf.5:1155
2953 #, no-wrap
2954 msgid "I<sh_size>"
2955 msgstr ""
2956
2957 #. type: Plain text
2958 #: build/C/man5/elf.5:1167
2959 msgid ""
2960 "This member holds the section's size in bytes.  Unless the section type is "
2961 "B<SHT_NOBITS>, the section occupies I<sh_size> bytes in the file.  A section "
2962 "of type B<SHT_NOBITS> may have a nonzero size, but it occupies no space in "
2963 "the file."
2964 msgstr ""
2965
2966 #. type: TP
2967 #: build/C/man5/elf.5:1167
2968 #, no-wrap
2969 msgid "I<sh_link>"
2970 msgstr ""
2971
2972 #. type: Plain text
2973 #: build/C/man5/elf.5:1171
2974 msgid ""
2975 "This member holds a section header table index link, whose interpretation "
2976 "depends on the section type."
2977 msgstr ""
2978
2979 #. type: TP
2980 #: build/C/man5/elf.5:1171
2981 #, no-wrap
2982 msgid "I<sh_info>"
2983 msgstr ""
2984
2985 #. type: Plain text
2986 #: build/C/man5/elf.5:1175
2987 msgid ""
2988 "This member holds extra information, whose interpretation depends on the "
2989 "section type."
2990 msgstr ""
2991
2992 #. type: TP
2993 #: build/C/man5/elf.5:1175
2994 #, no-wrap
2995 msgid "I<sh_addralign>"
2996 msgstr ""
2997
2998 #. type: Plain text
2999 #: build/C/man5/elf.5:1188
3000 msgid ""
3001 "Some sections have address alignment constraints.  If a section holds a "
3002 "doubleword, the system must ensure doubleword alignment for the entire "
3003 "section.  That is, the value of I<sh_addr> must be congruent to zero, modulo "
3004 "the value of I<sh_addralign>.  Only zero and positive integral powers of two "
3005 "are allowed.  Values of zero or one mean the section has no alignment "
3006 "constraints."
3007 msgstr ""
3008
3009 #. type: TP
3010 #: build/C/man5/elf.5:1188
3011 #, no-wrap
3012 msgid "I<sh_entsize>"
3013 msgstr ""
3014
3015 #.  .El
3016 #. type: Plain text
3017 #: build/C/man5/elf.5:1195
3018 msgid ""
3019 "Some sections hold a table of fixed-sized entries, such as a symbol table.  "
3020 "For such a section, this member gives the size in bytes for each entry.  "
3021 "This member contains zero if the section does not hold a table of fixed-size "
3022 "entries."
3023 msgstr ""
3024
3025 #.  .Bl -tag -width ".shstrtab"
3026 #. type: Plain text
3027 #: build/C/man5/elf.5:1198
3028 msgid "Various sections hold program and control information:"
3029 msgstr ""
3030
3031 #. type: TP
3032 #: build/C/man5/elf.5:1198
3033 #, no-wrap
3034 msgid "I<.bss>"
3035 msgstr ""
3036
3037 #. type: Plain text
3038 #: build/C/man5/elf.5:1210
3039 msgid ""
3040 "This section holds uninitialized data that contributes to the program's "
3041 "memory image.  By definition, the system initializes the data with zeros "
3042 "when the program begins to run.  This section is of type B<SHT_NOBITS>.  The "
3043 "attribute types are B<SHF_ALLOC> and B<SHF_WRITE>."
3044 msgstr ""
3045
3046 #. type: TP
3047 #: build/C/man5/elf.5:1210
3048 #, no-wrap
3049 msgid "I<.comment>"
3050 msgstr ""
3051
3052 #. type: Plain text
3053 #: build/C/man5/elf.5:1216
3054 msgid ""
3055 "This section holds version control information.  This section is of type "
3056 "B<SHT_PROGBITS>.  No attribute types are used."
3057 msgstr ""
3058
3059 #. type: TP
3060 #: build/C/man5/elf.5:1216
3061 #, no-wrap
3062 msgid "I<.ctors>"
3063 msgstr ""
3064
3065 #. type: Plain text
3066 #: build/C/man5/elf.5:1225
3067 msgid ""
3068 "This section holds initialized pointers to the C++ constructor functions.  "
3069 "This section is of type B<SHT_PROGBITS>.  The attribute types are "
3070 "B<SHF_ALLOC> and B<SHF_WRITE>."
3071 msgstr ""
3072
3073 #. type: TP
3074 #: build/C/man5/elf.5:1225
3075 #, no-wrap
3076 msgid "I<.data>"
3077 msgstr ""
3078
3079 #. type: Plain text
3080 #: build/C/man5/elf.5:1235 build/C/man5/elf.5:1245
3081 msgid ""
3082 "This section holds initialized data that contribute to the program's memory "
3083 "image.  This section is of type B<SHT_PROGBITS>.  The attribute types are "
3084 "B<SHF_ALLOC> and B<SHF_WRITE>."
3085 msgstr ""
3086
3087 #. type: TP
3088 #: build/C/man5/elf.5:1235
3089 #, no-wrap
3090 msgid "I<.data1>"
3091 msgstr ""
3092
3093 #. type: TP
3094 #: build/C/man5/elf.5:1245
3095 #, no-wrap
3096 msgid "I<.debug>"
3097 msgstr ""
3098
3099 #. type: Plain text
3100 #: build/C/man5/elf.5:1253
3101 msgid ""
3102 "This section holds information for symbolic debugging.  The contents are "
3103 "unspecified.  This section is of type B<SHT_PROGBITS>.  No attribute types "
3104 "are used."
3105 msgstr ""
3106
3107 #. type: TP
3108 #: build/C/man5/elf.5:1253
3109 #, no-wrap
3110 msgid "I<.dtors>"
3111 msgstr ""
3112
3113 #. type: Plain text
3114 #: build/C/man5/elf.5:1262
3115 msgid ""
3116 "This section holds initialized pointers to the C++ destructor functions.  "
3117 "This section is of type B<SHT_PROGBITS>.  The attribute types are "
3118 "B<SHF_ALLOC> and B<SHF_WRITE>."
3119 msgstr ""
3120
3121 #. type: TP
3122 #: build/C/man5/elf.5:1262
3123 #, no-wrap
3124 msgid "I<.dynamic>"
3125 msgstr ""
3126
3127 #. type: Plain text
3128 #: build/C/man5/elf.5:1275
3129 msgid ""
3130 "This section holds dynamic linking information.  The section's attributes "
3131 "will include the B<SHF_ALLOC> bit.  Whether the B<SHF_WRITE> bit is set is "
3132 "processor-specific.  This section is of type B<SHT_DYNAMIC>.  See the "
3133 "attributes above."
3134 msgstr ""
3135
3136 #. type: TP
3137 #: build/C/man5/elf.5:1275
3138 #, no-wrap
3139 msgid "I<.dynstr>"
3140 msgstr ""
3141
3142 #. type: Plain text
3143 #: build/C/man5/elf.5:1283
3144 msgid ""
3145 "This section holds strings needed for dynamic linking, most commonly the "
3146 "strings that represent the names associated with symbol table entries.  This "
3147 "section is of type B<SHT_STRTAB>.  The attribute type used is B<SHF_ALLOC>."
3148 msgstr ""
3149
3150 #. type: TP
3151 #: build/C/man5/elf.5:1283
3152 #, no-wrap
3153 msgid "I<.dynsym>"
3154 msgstr ""
3155
3156 #. type: Plain text
3157 #: build/C/man5/elf.5:1290
3158 msgid ""
3159 "This section holds the dynamic linking symbol table.  This section is of "
3160 "type B<SHT_DYNSYM>.  The attribute used is B<SHF_ALLOC>."
3161 msgstr ""
3162
3163 #. type: TP
3164 #: build/C/man5/elf.5:1290
3165 #, no-wrap
3166 msgid "I<.fini>"
3167 msgstr ""
3168
3169 #. type: Plain text
3170 #: build/C/man5/elf.5:1302
3171 msgid ""
3172 "This section holds executable instructions that contribute to the process "
3173 "termination code.  When a program exits normally the system arranges to "
3174 "execute the code in this section.  This section is of type B<SHT_PROGBITS>.  "
3175 "The attributes used are B<SHF_ALLOC> and B<SHF_EXECINSTR>."
3176 msgstr ""
3177
3178 #. type: TP
3179 #: build/C/man5/elf.5:1302
3180 #, no-wrap
3181 msgid "I<.gnu.version>"
3182 msgstr ""
3183
3184 #. type: Plain text
3185 #: build/C/man5/elf.5:1311
3186 msgid ""
3187 "This section holds the version symbol table, an array of I<ElfN_Half> "
3188 "elements.  This section is of type B<SHT_GNU_versym>.  The attribute type "
3189 "used is B<SHF_ALLOC>."
3190 msgstr ""
3191
3192 #. type: TP
3193 #: build/C/man5/elf.5:1311
3194 #, no-wrap
3195 msgid "I<.gnu.version_d>"
3196 msgstr ""
3197
3198 #. type: Plain text
3199 #: build/C/man5/elf.5:1320
3200 msgid ""
3201 "This section holds the version symbol definitions, a table of I<ElfN_Verdef> "
3202 "structures.  This section is of type B<SHT_GNU_verdef>.  The attribute type "
3203 "used is B<SHF_ALLOC>."
3204 msgstr ""
3205
3206 #. type: TP
3207 #: build/C/man5/elf.5:1320
3208 #, no-wrap
3209 msgid "I<.gnu.version_r>"
3210 msgstr ""
3211
3212 #. type: Plain text
3213 #: build/C/man5/elf.5:1330
3214 msgid ""
3215 "This section holds the version symbol needed elements, a table of "
3216 "I<ElfN_Verneed> structures.  This section is of type B<SHT_GNU_versym>.  The "
3217 "attribute type used is B<SHF_ALLOC>."
3218 msgstr ""
3219
3220 #. type: TP
3221 #: build/C/man5/elf.5:1330
3222 #, no-wrap
3223 msgid "I<.got>"
3224 msgstr ""
3225
3226 #. type: Plain text
3227 #: build/C/man5/elf.5:1336
3228 msgid ""
3229 "This section holds the global offset table.  This section is of type "
3230 "B<SHT_PROGBITS>.  The attributes are processor specific."
3231 msgstr ""
3232
3233 #. type: TP
3234 #: build/C/man5/elf.5:1336
3235 #, no-wrap
3236 msgid "I<.hash>"
3237 msgstr ""
3238
3239 #. type: Plain text
3240 #: build/C/man5/elf.5:1343
3241 msgid ""
3242 "This section holds a symbol hash table.  This section is of type "
3243 "B<SHT_HASH>.  The attribute used is B<SHF_ALLOC>."
3244 msgstr ""
3245
3246 #. type: TP
3247 #: build/C/man5/elf.5:1343
3248 #, no-wrap
3249 msgid "I<.init>"
3250 msgstr ""
3251
3252 #. type: Plain text
3253 #: build/C/man5/elf.5:1355
3254 msgid ""
3255 "This section holds executable instructions that contribute to the process "
3256 "initialization code.  When a program starts to run the system arranges to "
3257 "execute the code in this section before calling the main program entry "
3258 "point.  This section is of type B<SHT_PROGBITS>.  The attributes used are "
3259 "B<SHF_ALLOC> and B<SHF_EXECINSTR>."
3260 msgstr ""
3261
3262 #. type: TP
3263 #: build/C/man5/elf.5:1355
3264 #, no-wrap
3265 msgid "I<.interp>"
3266 msgstr ""
3267
3268 #. type: Plain text
3269 #: build/C/man5/elf.5:1366
3270 msgid ""
3271 "This section holds the pathname of a program interpreter.  If the file has a "
3272 "loadable segment that includes the section, the section's attributes will "
3273 "include the B<SHF_ALLOC> bit.  Otherwise, that bit will be off.  This "
3274 "section is of type B<SHT_PROGBITS>."
3275 msgstr ""
3276
3277 #. type: TP
3278 #: build/C/man5/elf.5:1366
3279 #, no-wrap
3280 msgid "I<.line>"
3281 msgstr ""
3282
3283 #. type: Plain text
3284 #: build/C/man5/elf.5:1374
3285 msgid ""
3286 "This section holds line number information for symbolic debugging, which "
3287 "describes the correspondence between the program source and the machine "
3288 "code.  The contents are unspecified.  This section is of type "
3289 "B<SHT_PROGBITS>.  No attribute types are used."
3290 msgstr ""
3291
3292 #. type: TP
3293 #: build/C/man5/elf.5:1374
3294 #, no-wrap
3295 msgid "I<.note>"
3296 msgstr ""
3297
3298 #. type: Plain text
3299 #: build/C/man5/elf.5:1387
3300 msgid ""
3301 "This section holds information in the \"Note Section\" format.  This section "
3302 "is of type B<SHT_NOTE>.  No attribute types are used.  OpenBSD native "
3303 "executables usually contain a I<.note.openbsd.ident> section to identify "
3304 "themselves, for the kernel to bypass any compatibility ELF binary emulation "
3305 "tests when loading the file."
3306 msgstr ""
3307
3308 #. type: TP
3309 #: build/C/man5/elf.5:1387
3310 #, no-wrap
3311 msgid "I<.note.GNU-stack>"
3312 msgstr ""
3313
3314 #. type: Plain text
3315 #: build/C/man5/elf.5:1396
3316 msgid ""
3317 "This section is used in Linux object files for declaring stack attributes.  "
3318 "This section is of type B<SHT_PROGBITS>.  The only attribute used is "
3319 "B<SHF_EXECINSTR>.  This indicates to the GNU linker that the object file "
3320 "requires an executable stack."
3321 msgstr ""
3322
3323 #. type: TP
3324 #: build/C/man5/elf.5:1396
3325 #, no-wrap
3326 msgid "I<.plt>"
3327 msgstr ""
3328
3329 #. type: Plain text
3330 #: build/C/man5/elf.5:1402
3331 msgid ""
3332 "This section holds the procedure linkage table.  This section is of type "
3333 "B<SHT_PROGBITS>.  The attributes are processor specific."
3334 msgstr ""
3335
3336 #. type: TP
3337 #: build/C/man5/elf.5:1402
3338 #, no-wrap
3339 msgid "I<.relNAME>"
3340 msgstr ""
3341
3342 #. type: Plain text
3343 #: build/C/man5/elf.5:1421
3344 msgid ""
3345 "This section holds relocation information as described below.  If the file "
3346 "has a loadable segment that includes relocation, the section's attributes "
3347 "will include the B<SHF_ALLOC> bit.  Otherwise the bit will be off.  By "
3348 "convention, \"NAME\" is supplied by the section to which the relocations "
3349 "apply.  Thus a relocation section for B<.text> normally would have the name "
3350 "B<.rel.text>.  This section is of type B<SHT_REL>."
3351 msgstr ""
3352
3353 #. type: TP
3354 #: build/C/man5/elf.5:1421
3355 #, no-wrap
3356 msgid "I<.relaNAME>"
3357 msgstr ""
3358
3359 #. type: Plain text
3360 #: build/C/man5/elf.5:1440
3361 msgid ""
3362 "This section holds relocation information as described below.  If the file "
3363 "has a loadable segment that includes relocation, the section's attributes "
3364 "will include the B<SHF_ALLOC> bit.  Otherwise the bit will be off.  By "
3365 "convention, \"NAME\" is supplied by the section to which the relocations "
3366 "apply.  Thus a relocation section for B<.text> normally would have the name "
3367 "B<.rela.text>.  This section is of type B<SHT_RELA>."
3368 msgstr ""
3369
3370 #. type: TP
3371 #: build/C/man5/elf.5:1440
3372 #, no-wrap
3373 msgid "I<.rodata>"
3374 msgstr ""
3375
3376 #. type: Plain text
3377 #: build/C/man5/elf.5:1448 build/C/man5/elf.5:1456
3378 msgid ""
3379 "This section holds read-only data that typically contributes to a "
3380 "nonwritable segment in the process image.  This section is of type "
3381 "B<SHT_PROGBITS>.  The attribute used is B<SHF_ALLOC>."
3382 msgstr ""
3383
3384 #. type: TP
3385 #: build/C/man5/elf.5:1448
3386 #, no-wrap
3387 msgid "I<.rodata1>"
3388 msgstr ""
3389
3390 #. type: TP
3391 #: build/C/man5/elf.5:1456
3392 #, no-wrap
3393 msgid "I<.shstrtab>"
3394 msgstr ""
3395
3396 #. type: Plain text
3397 #: build/C/man5/elf.5:1462
3398 msgid ""
3399 "This section holds section names.  This section is of type B<SHT_STRTAB>.  "
3400 "No attribute types are used."
3401 msgstr ""
3402
3403 #. type: TP
3404 #: build/C/man5/elf.5:1462
3405 #, no-wrap
3406 msgid "I<.strtab>"
3407 msgstr ""
3408
3409 #. type: Plain text
3410 #: build/C/man5/elf.5:1474
3411 msgid ""
3412 "This section holds strings, most commonly the strings that represent the "
3413 "names associated with symbol table entries.  If the file has a loadable "
3414 "segment that includes the symbol string table, the section's attributes will "
3415 "include the B<SHF_ALLOC> bit.  Otherwise the bit will be off.  This section "
3416 "is of type B<SHT_STRTAB>."
3417 msgstr ""
3418
3419 #. type: TP
3420 #: build/C/man5/elf.5:1474
3421 #, no-wrap
3422 msgid "I<.symtab>"
3423 msgstr ""
3424
3425 #. type: Plain text
3426 #: build/C/man5/elf.5:1485
3427 msgid ""
3428 "This section holds a symbol table.  If the file has a loadable segment that "
3429 "includes the symbol table, the section's attributes will include the "
3430 "B<SHF_ALLOC> bit.  Otherwise the bit will be off.  This section is of type "
3431 "B<SHT_SYMTAB>."
3432 msgstr ""
3433
3434 #. type: TP
3435 #: build/C/man5/elf.5:1485
3436 #, no-wrap
3437 msgid "I<.text>"
3438 msgstr ""
3439
3440 #.  .El
3441 #. type: Plain text
3442 #: build/C/man5/elf.5:1497
3443 msgid ""
3444 "This section holds the \"text\", or executable instructions, of a program.  "
3445 "This section is of type B<SHT_PROGBITS>.  The attributes used are "
3446 "B<SHF_ALLOC> and B<SHF_EXECINSTR>."
3447 msgstr ""
3448
3449 #. type: Plain text
3450 #: build/C/man5/elf.5:1508
3451 msgid ""
3452 "String table sections hold null-terminated character sequences, commonly "
3453 "called strings.  The object file uses these strings to represent symbol and "
3454 "section names.  One references a string as an index into the string table "
3455 "section.  The first byte, which is index zero, is defined to hold a null "
3456 "byte (\\(aq\\e0\\(aq).  Similarly, a string table's last byte is defined to "
3457 "hold a null byte, ensuring null termination for all strings."
3458 msgstr ""
3459
3460 #. type: Plain text
3461 #: build/C/man5/elf.5:1513
3462 msgid ""
3463 "An object file's symbol table holds information needed to locate and "
3464 "relocate a program's symbolic definitions and references.  A symbol table "
3465 "index is a subscript into this array."
3466 msgstr ""
3467
3468 #. type: Plain text
3469 #: build/C/man5/elf.5:1524
3470 #, no-wrap
3471 msgid ""
3472 "typedef struct {\n"
3473 "    uint32_t      st_name;\n"
3474 "    Elf32_Addr    st_value;\n"
3475 "    uint32_t      st_size;\n"
3476 "    unsigned char st_info;\n"
3477 "    unsigned char st_other;\n"
3478 "    uint16_t      st_shndx;\n"
3479 "} Elf32_Sym;\n"
3480 msgstr ""
3481
3482 #. type: Plain text
3483 #: build/C/man5/elf.5:1537
3484 #, no-wrap
3485 msgid ""
3486 "typedef struct {\n"
3487 "    uint32_t      st_name;\n"
3488 "    unsigned char st_info;\n"
3489 "    unsigned char st_other;\n"
3490 "    uint16_t      st_shndx;\n"
3491 "    Elf64_Addr    st_value;\n"
3492 "    uint64_t      st_size;\n"
3493 "} Elf64_Sym;\n"
3494 msgstr ""
3495
3496 #.  .Bl -tag -width "st_value"
3497 #. type: Plain text
3498 #: build/C/man5/elf.5:1543
3499 msgid ""
3500 "The 32-bit and 64-bit versions have the same members, just in a different "
3501 "order."
3502 msgstr ""
3503
3504 #. type: TP
3505 #: build/C/man5/elf.5:1543
3506 #, no-wrap
3507 msgid "I<st_name>"
3508 msgstr ""
3509
3510 #. type: Plain text
3511 #: build/C/man5/elf.5:1551
3512 msgid ""
3513 "This member holds an index into the object file's symbol string table, which "
3514 "holds character representations of the symbol names.  If the value is "
3515 "nonzero, it represents a string table index that gives the symbol name.  "
3516 "Otherwise, the symbol table has no name."
3517 msgstr ""
3518
3519 #. type: TP
3520 #: build/C/man5/elf.5:1551
3521 #, no-wrap
3522 msgid "I<st_value>"
3523 msgstr ""
3524
3525 #. type: Plain text
3526 #: build/C/man5/elf.5:1554
3527 msgid "This member gives the value of the associated symbol."
3528 msgstr ""
3529
3530 #. type: TP
3531 #: build/C/man5/elf.5:1554
3532 #, no-wrap
3533 msgid "I<st_size>"
3534 msgstr ""
3535
3536 #. type: Plain text
3537 #: build/C/man5/elf.5:1559
3538 msgid ""
3539 "Many symbols have associated sizes.  This member holds zero if the symbol "
3540 "has no size or an unknown size."
3541 msgstr ""
3542
3543 #. type: TP
3544 #: build/C/man5/elf.5:1559
3545 #, no-wrap
3546 msgid "I<st_info>"
3547 msgstr ""
3548
3549 #.  .Bl -tag -width "STT_SECTION"
3550 #. type: Plain text
3551 #: build/C/man5/elf.5:1563
3552 msgid "This member specifies the symbol's type and binding attributes:"
3553 msgstr ""
3554
3555 #. type: TP
3556 #: build/C/man5/elf.5:1564
3557 #, no-wrap
3558 msgid "B<STT_NOTYPE>"
3559 msgstr ""
3560
3561 #. type: Plain text
3562 #: build/C/man5/elf.5:1567
3563 msgid "The symbol's type is not defined."
3564 msgstr ""
3565
3566 #. type: TP
3567 #: build/C/man5/elf.5:1567
3568 #, no-wrap
3569 msgid "B<STT_OBJECT>"
3570 msgstr ""
3571
3572 #. type: Plain text
3573 #: build/C/man5/elf.5:1570
3574 msgid "The symbol is associated with a data object."
3575 msgstr ""
3576
3577 #. type: TP
3578 #: build/C/man5/elf.5:1570
3579 #, no-wrap
3580 msgid "B<STT_FUNC>"
3581 msgstr ""
3582
3583 #. type: Plain text
3584 #: build/C/man5/elf.5:1573
3585 msgid "The symbol is associated with a function or other executable code."
3586 msgstr ""
3587
3588 #. type: TP
3589 #: build/C/man5/elf.5:1573
3590 #, no-wrap
3591 msgid "B<STT_SECTION>"
3592 msgstr ""
3593
3594 #. type: Plain text
3595 #: build/C/man5/elf.5:1580
3596 msgid ""
3597 "The symbol is associated with a section.  Symbol table entries of this type "
3598 "exist primarily for relocation and normally have B<STB_LOCAL> bindings."
3599 msgstr ""
3600
3601 #. type: TP
3602 #: build/C/man5/elf.5:1580
3603 #, no-wrap
3604 msgid "B<STT_FILE>"
3605 msgstr ""
3606
3607 #. type: Plain text
3608 #: build/C/man5/elf.5:1591
3609 msgid ""
3610 "By convention, the symbol's name gives the name of the source file "
3611 "associated with the object file.  A file symbol has B<STB_LOCAL> bindings, "
3612 "its section index is B<SHN_ABS>, and it precedes the other B<STB_LOCAL> "
3613 "symbols of the file, if it is present."
3614 msgstr ""
3615
3616 #. type: TP
3617 #: build/C/man5/elf.5:1591
3618 #, no-wrap
3619 msgid "B<STT_LOPROC>"
3620 msgstr ""
3621
3622 #. type: Plain text
3623 #: build/C/man5/elf.5:1596
3624 msgid ""
3625 "This value up to and including B<STT_HIPROC> is reserved for "
3626 "processor-specific semantics."
3627 msgstr ""
3628
3629 #. type: TP
3630 #: build/C/man5/elf.5:1596
3631 #, no-wrap
3632 msgid "B<STT_HIPROC>"
3633 msgstr ""
3634
3635 #.  .El
3636 #.  .Bl -tag -width "STB_GLOBAL"
3637 #. type: Plain text
3638 #: build/C/man5/elf.5:1603
3639 msgid ""
3640 "This value down to and including B<STT_LOPROC> is reserved for "
3641 "processor-specific semantics."
3642 msgstr ""
3643
3644 #. type: TP
3645 #: build/C/man5/elf.5:1603
3646 #, no-wrap
3647 msgid "B<STB_LOCAL>"
3648 msgstr ""
3649
3650 #. type: Plain text
3651 #: build/C/man5/elf.5:1609
3652 msgid ""
3653 "Local symbols are not visible outside the object file containing their "
3654 "definition.  Local symbols of the same name may exist in multiple files "
3655 "without interfering with each other."
3656 msgstr ""
3657
3658 #. type: TP
3659 #: build/C/man5/elf.5:1609
3660 #, no-wrap
3661 msgid "B<STB_GLOBAL>"
3662 msgstr ""
3663
3664 #. type: Plain text
3665 #: build/C/man5/elf.5:1615
3666 msgid ""
3667 "Global symbols are visible to all object files being combined.  One file's "
3668 "definition of a global symbol will satisfy another file's undefined "
3669 "reference to the same symbol."
3670 msgstr ""
3671
3672 #. type: TP
3673 #: build/C/man5/elf.5:1615
3674 #, no-wrap
3675 msgid "B<STB_WEAK>"
3676 msgstr ""
3677
3678 #. type: Plain text
3679 #: build/C/man5/elf.5:1619
3680 msgid ""
3681 "Weak symbols resemble global symbols, but their definitions have lower "
3682 "precedence."
3683 msgstr ""
3684
3685 #. type: TP
3686 #: build/C/man5/elf.5:1619
3687 #, no-wrap
3688 msgid "B<STB_LOPROC>"
3689 msgstr ""
3690
3691 #. type: Plain text
3692 #: build/C/man5/elf.5:1624
3693 msgid ""
3694 "This value up to and including B<STB_HIPROC> is reserved for "
3695 "processor-specific semantics."
3696 msgstr ""
3697
3698 #. type: TP
3699 #: build/C/man5/elf.5:1624
3700 #, no-wrap
3701 msgid "B<STB_HIPROC>"
3702 msgstr ""
3703
3704 #. type: Plain text
3705 #: build/C/man5/elf.5:1629
3706 msgid ""
3707 "This value down to and including B<STB_LOPROC> is reserved for "
3708 "processor-specific semantics."
3709 msgstr ""
3710
3711 #. type: Plain text
3712 #: build/C/man5/elf.5:1631
3713 msgid "There are macros for packing and unpacking the binding and type fields:"
3714 msgstr ""
3715
3716 #. type: Plain text
3717 #: build/C/man5/elf.5:1638
3718 msgid ""
3719 "B<ELF32_ST_BIND>(info)  or B<ELF64_ST_BIND>(info)  extract a binding from an "
3720 "I<st_info> value."
3721 msgstr ""
3722
3723 #. type: Plain text
3724 #: build/C/man5/elf.5:1642
3725 msgid "B<ELF32_ST_TYPE>(info)  or B<ELF64_ST_TYPE>(info)"
3726 msgstr ""
3727
3728 #. type: Plain text
3729 #: build/C/man5/elf.5:1646
3730 msgid "extract a type from an I<st_info> value."
3731 msgstr ""
3732
3733 #. type: Plain text
3734 #: build/C/man5/elf.5:1650
3735 msgid "B<ELF32_ST_INFO>(bind, type)  or B<ELF64_ST_INFO>(bind, type)"
3736 msgstr ""
3737
3738 #. type: Plain text
3739 #: build/C/man5/elf.5:1654
3740 msgid "convert a binding and a type into an I<st_info> value."
3741 msgstr ""
3742
3743 #. type: TP
3744 #: build/C/man5/elf.5:1656
3745 #, no-wrap
3746 msgid "I<st_other>"
3747 msgstr ""
3748
3749 #.  .Bl -tag -width "STV_PROTECTED"
3750 #. type: Plain text
3751 #: build/C/man5/elf.5:1660
3752 msgid "This member defines the symbol visibility."
3753 msgstr ""
3754
3755 #. type: TP
3756 #: build/C/man5/elf.5:1661
3757 #, no-wrap
3758 msgid "B<STV_DEFAULT>"
3759 msgstr ""
3760
3761 #. type: Plain text
3762 #: build/C/man5/elf.5:1665
3763 msgid "Default symbol visibility rules."
3764 msgstr ""
3765
3766 #. type: TP
3767 #: build/C/man5/elf.5:1665
3768 #, no-wrap
3769 msgid "B<STV_INTERNAL>"
3770 msgstr ""
3771
3772 #. type: Plain text
3773 #: build/C/man5/elf.5:1668
3774 msgid "Processor-specific hidden class."
3775 msgstr ""
3776
3777 #. type: TP
3778 #: build/C/man5/elf.5:1668
3779 #, no-wrap
3780 msgid "B<STV_HIDDEN>"
3781 msgstr ""
3782
3783 #. type: Plain text
3784 #: build/C/man5/elf.5:1671
3785 msgid "Symbol is unavailable in other modules."
3786 msgstr ""
3787
3788 #. type: TP
3789 #: build/C/man5/elf.5:1671
3790 #, no-wrap
3791 msgid "B<STV_PROTECTED>"
3792 msgstr ""
3793
3794 #. type: Plain text
3795 #: build/C/man5/elf.5:1674
3796 msgid "Not preemptible, not exported."
3797 msgstr ""
3798
3799 #. type: Plain text
3800 #: build/C/man5/elf.5:1677
3801 msgid "There are macros for extracting the visibility type:"
3802 msgstr ""
3803
3804 #. type: Plain text
3805 #: build/C/man5/elf.5:1681
3806 msgid "B<ELF32_ST_VISIBILITY>(other)  or B<ELF64_ST_VISIBILITY>(other)"
3807 msgstr ""
3808
3809 #. type: TP
3810 #: build/C/man5/elf.5:1683
3811 #, no-wrap
3812 msgid "I<st_shndx>"
3813 msgstr ""
3814
3815 #.  .El
3816 #. type: Plain text
3817 #: build/C/man5/elf.5:1691
3818 msgid ""
3819 "Every symbol table entry is \"defined\" in relation to some section.  This "
3820 "member holds the relevant section header table index."
3821 msgstr ""
3822
3823 #. type: Plain text
3824 #: build/C/man5/elf.5:1699
3825 msgid ""
3826 "Relocation is the process of connecting symbolic references with symbolic "
3827 "definitions.  Relocatable files must have information that describes how to "
3828 "modify their section contents, thus allowing executable and shared object "
3829 "files to hold the right information for a process's program image.  "
3830 "Relocation entries are these data."
3831 msgstr ""
3832
3833 #. type: Plain text
3834 #: build/C/man5/elf.5:1701
3835 msgid "Relocation structures that do not need an addend:"
3836 msgstr ""
3837
3838 #. type: Plain text
3839 #: build/C/man5/elf.5:1708
3840 #, no-wrap
3841 msgid ""
3842 "typedef struct {\n"
3843 "    Elf32_Addr r_offset;\n"
3844 "    uint32_t   r_info;\n"
3845 "} Elf32_Rel;\n"
3846 msgstr ""
3847
3848 #. type: Plain text
3849 #: build/C/man5/elf.5:1717
3850 #, no-wrap
3851 msgid ""
3852 "typedef struct {\n"
3853 "    Elf64_Addr r_offset;\n"
3854 "    uint64_t   r_info;\n"
3855 "} Elf64_Rel;\n"
3856 msgstr ""
3857
3858 #. type: Plain text
3859 #: build/C/man5/elf.5:1721
3860 msgid "Relocation structures that need an addend:"
3861 msgstr ""
3862
3863 #. type: Plain text
3864 #: build/C/man5/elf.5:1729
3865 #, no-wrap
3866 msgid ""
3867 "typedef struct {\n"
3868 "    Elf32_Addr r_offset;\n"
3869 "    uint32_t   r_info;\n"
3870 "    int32_t    r_addend;\n"
3871 "} Elf32_Rela;\n"
3872 msgstr ""
3873
3874 #. type: Plain text
3875 #: build/C/man5/elf.5:1739
3876 #, no-wrap
3877 msgid ""
3878 "typedef struct {\n"
3879 "    Elf64_Addr r_offset;\n"
3880 "    uint64_t   r_info;\n"
3881 "    int64_t    r_addend;\n"
3882 "} Elf64_Rela;\n"
3883 msgstr ""
3884
3885 #. type: TP
3886 #: build/C/man5/elf.5:1742
3887 #, no-wrap
3888 msgid "I<r_offset>"
3889 msgstr ""
3890
3891 #. type: Plain text
3892 #: build/C/man5/elf.5:1750
3893 msgid ""
3894 "This member gives the location at which to apply the relocation action.  For "
3895 "a relocatable file, the value is the byte offset from the beginning of the "
3896 "section to the storage unit affected by the relocation.  For an executable "
3897 "file or shared object, the value is the virtual address of the storage unit "
3898 "affected by the relocation."
3899 msgstr ""
3900
3901 #. type: TP
3902 #: build/C/man5/elf.5:1750
3903 #, no-wrap
3904 msgid "I<r_info>"
3905 msgstr ""
3906
3907 #. type: Plain text
3908 #: build/C/man5/elf.5:1765
3909 msgid ""
3910 "This member gives both the symbol table index with respect to which the "
3911 "relocation must be made and the type of relocation to apply.  Relocation "
3912 "types are processor specific.  When the text refers to a relocation entry's "
3913 "relocation type or symbol table index, it means the result of applying "
3914 "B<ELF_[32|64]_R_TYPE> or B<ELF[32|64]_R_SYM>, respectively, to the entry's "
3915 "I<r_info> member."
3916 msgstr ""
3917
3918 #. type: TP
3919 #: build/C/man5/elf.5:1765
3920 #, no-wrap
3921 msgid "I<r_addend>"
3922 msgstr ""
3923
3924 #.  .El
3925 #. type: Plain text
3926 #: build/C/man5/elf.5:1770
3927 msgid ""
3928 "This member specifies a constant addend used to compute the value to be "
3929 "stored into the relocatable field."
3930 msgstr ""
3931
3932 #. type: Plain text
3933 #: build/C/man5/elf.5:1775
3934 msgid ""
3935 "The .dynamic section contains a series of structures that hold relevant "
3936 "dynamic linking information.  The d_tag member controls the interpretation "
3937 "of d_un."
3938 msgstr ""
3939
3940 #. type: Plain text
3941 #: build/C/man5/elf.5:1786
3942 #, no-wrap
3943 msgid ""
3944 "typedef struct {\n"
3945 "    Elf32_Sword    d_tag;\n"
3946 "    union {\n"
3947 "        Elf32_Word d_val;\n"
3948 "        Elf32_Addr d_ptr;\n"
3949 "    } d_un;\n"
3950 "} Elf32_Dyn;\n"
3951 "extern Elf32_Dyn _DYNAMIC[];\n"
3952 msgstr ""
3953
3954 #. type: Plain text
3955 #: build/C/man5/elf.5:1799
3956 #, no-wrap
3957 msgid ""
3958 "typedef struct {\n"
3959 "    Elf64_Sxword    d_tag;\n"
3960 "    union {\n"
3961 "        Elf64_Xword d_val;\n"
3962 "        Elf64_Addr  d_ptr;\n"
3963 "    } d_un;\n"
3964 "} Elf64_Dyn;\n"
3965 "extern Elf64_Dyn _DYNAMIC[];\n"
3966 msgstr ""
3967
3968 #. type: TP
3969 #: build/C/man5/elf.5:1802
3970 #, no-wrap
3971 msgid "I<d_tag>"
3972 msgstr ""
3973
3974 #.  .Bl -tag -width "DT_SYMBOLIC"
3975 #. type: Plain text
3976 #: build/C/man5/elf.5:1806
3977 msgid "This member may have any of the following values:"
3978 msgstr ""
3979
3980 #. type: TP
3981 #: build/C/man5/elf.5:1807
3982 #, no-wrap
3983 msgid "B<DT_NULL>"
3984 msgstr ""
3985
3986 #. type: Plain text
3987 #: build/C/man5/elf.5:1810
3988 msgid "Marks end of dynamic section"
3989 msgstr ""
3990
3991 #. type: TP
3992 #: build/C/man5/elf.5:1810
3993 #, no-wrap
3994 msgid "B<DT_NEEDED>"
3995 msgstr ""
3996
3997 #. type: Plain text
3998 #: build/C/man5/elf.5:1813
3999 msgid "String table offset to name of a needed library"
4000 msgstr ""
4001
4002 #. type: TP
4003 #: build/C/man5/elf.5:1813
4004 #, no-wrap
4005 msgid "B<DT_PLTRELSZ>"
4006 msgstr ""
4007
4008 #. type: Plain text
4009 #: build/C/man5/elf.5:1816
4010 msgid "Size in bytes of PLT relocs"
4011 msgstr ""
4012
4013 #. type: TP
4014 #: build/C/man5/elf.5:1816
4015 #, no-wrap
4016 msgid "B<DT_PLTGOT>"
4017 msgstr ""
4018
4019 #. type: Plain text
4020 #: build/C/man5/elf.5:1819
4021 msgid "Address of PLT and/or GOT"
4022 msgstr ""
4023
4024 #. type: TP
4025 #: build/C/man5/elf.5:1819
4026 #, no-wrap
4027 msgid "B<DT_HASH>"
4028 msgstr ""
4029
4030 #. type: Plain text
4031 #: build/C/man5/elf.5:1822
4032 msgid "Address of symbol hash table"
4033 msgstr ""
4034
4035 #. type: TP
4036 #: build/C/man5/elf.5:1822
4037 #, no-wrap
4038 msgid "B<DT_STRTAB>"
4039 msgstr ""
4040
4041 #. type: Plain text
4042 #: build/C/man5/elf.5:1825
4043 msgid "Address of string table"
4044 msgstr ""
4045
4046 #. type: TP
4047 #: build/C/man5/elf.5:1825
4048 #, no-wrap
4049 msgid "B<DT_SYMTAB>"
4050 msgstr ""
4051
4052 #. type: Plain text
4053 #: build/C/man5/elf.5:1828
4054 msgid "Address of symbol table"
4055 msgstr ""
4056
4057 #. type: TP
4058 #: build/C/man5/elf.5:1828
4059 #, no-wrap
4060 msgid "B<DT_RELA>"
4061 msgstr ""
4062
4063 #. type: Plain text
4064 #: build/C/man5/elf.5:1831
4065 msgid "Address of Rela relocs table"
4066 msgstr ""
4067
4068 #. type: TP
4069 #: build/C/man5/elf.5:1831
4070 #, no-wrap
4071 msgid "B<DT_RELASZ>"
4072 msgstr ""
4073
4074 #. type: Plain text
4075 #: build/C/man5/elf.5:1834
4076 msgid "Size in bytes of Rela table"
4077 msgstr ""
4078
4079 #. type: TP
4080 #: build/C/man5/elf.5:1834
4081 #, no-wrap
4082 msgid "B<DT_RELAENT>"
4083 msgstr ""
4084
4085 #. type: Plain text
4086 #: build/C/man5/elf.5:1837
4087 msgid "Size in bytes of a Rela table entry"
4088 msgstr ""
4089
4090 #. type: TP
4091 #: build/C/man5/elf.5:1837
4092 #, no-wrap
4093 msgid "B<DT_STRSZ>"
4094 msgstr ""
4095
4096 #. type: Plain text
4097 #: build/C/man5/elf.5:1840
4098 msgid "Size in bytes of string table"
4099 msgstr ""
4100
4101 #. type: TP
4102 #: build/C/man5/elf.5:1840
4103 #, no-wrap
4104 msgid "B<DT_SYMENT>"
4105 msgstr ""
4106
4107 #. type: Plain text
4108 #: build/C/man5/elf.5:1843
4109 msgid "Size in bytes of a symbol table entry"
4110 msgstr ""
4111
4112 #. type: TP
4113 #: build/C/man5/elf.5:1843
4114 #, no-wrap
4115 msgid "B<DT_INIT>"
4116 msgstr ""
4117
4118 #. type: Plain text
4119 #: build/C/man5/elf.5:1846
4120 msgid "Address of the initialization function"
4121 msgstr ""
4122
4123 #. type: TP
4124 #: build/C/man5/elf.5:1846
4125 #, no-wrap
4126 msgid "B<DT_FINI>"
4127 msgstr ""
4128
4129 #. type: Plain text
4130 #: build/C/man5/elf.5:1849
4131 msgid "Address of the termination function"
4132 msgstr ""
4133
4134 #. type: TP
4135 #: build/C/man5/elf.5:1849
4136 #, no-wrap
4137 msgid "B<DT_SONAME>"
4138 msgstr ""
4139
4140 #. type: Plain text
4141 #: build/C/man5/elf.5:1852
4142 msgid "String table offset to name of shared object"
4143 msgstr ""
4144
4145 #. type: TP
4146 #: build/C/man5/elf.5:1852
4147 #, no-wrap
4148 msgid "B<DT_RPATH>"
4149 msgstr ""
4150
4151 #. type: Plain text
4152 #: build/C/man5/elf.5:1855
4153 msgid "String table offset to library search path (deprecated)"
4154 msgstr ""
4155
4156 #. type: TP
4157 #: build/C/man5/elf.5:1855
4158 #, no-wrap
4159 msgid "B<DT_SYMBOLIC>"
4160 msgstr ""
4161
4162 #. type: Plain text
4163 #: build/C/man5/elf.5:1858
4164 msgid "Alert linker to search this shared object before the executable for symbols"
4165 msgstr ""
4166
4167 #. type: TP
4168 #: build/C/man5/elf.5:1858
4169 #, no-wrap
4170 msgid "B<DT_REL>"
4171 msgstr ""
4172
4173 #. type: Plain text
4174 #: build/C/man5/elf.5:1861
4175 msgid "Address of Rel relocs table"
4176 msgstr ""
4177
4178 #. type: TP
4179 #: build/C/man5/elf.5:1861
4180 #, no-wrap
4181 msgid "B<DT_RELSZ>"
4182 msgstr ""
4183
4184 #. type: Plain text
4185 #: build/C/man5/elf.5:1864
4186 msgid "Size in bytes of Rel table"
4187 msgstr ""
4188
4189 #. type: TP
4190 #: build/C/man5/elf.5:1864
4191 #, no-wrap
4192 msgid "B<DT_RELENT>"
4193 msgstr ""
4194
4195 #. type: Plain text
4196 #: build/C/man5/elf.5:1867
4197 msgid "Size in bytes of a Rel table entry"
4198 msgstr ""
4199
4200 #. type: TP
4201 #: build/C/man5/elf.5:1867
4202 #, no-wrap
4203 msgid "B<DT_PLTREL>"
4204 msgstr ""
4205
4206 #. type: Plain text
4207 #: build/C/man5/elf.5:1870
4208 msgid "Type of reloc the PLT refers (Rela or Rel)"
4209 msgstr ""
4210
4211 #. type: TP
4212 #: build/C/man5/elf.5:1870
4213 #, no-wrap
4214 msgid "B<DT_DEBUG>"
4215 msgstr ""
4216
4217 #. type: Plain text
4218 #: build/C/man5/elf.5:1873
4219 msgid "Undefined use for debugging"
4220 msgstr ""
4221
4222 #. type: TP
4223 #: build/C/man5/elf.5:1873
4224 #, no-wrap
4225 msgid "B<DT_TEXTREL>"
4226 msgstr ""
4227
4228 #. type: Plain text
4229 #: build/C/man5/elf.5:1876
4230 msgid "Absence of this indicates no relocs should apply to a nonwritable segment"
4231 msgstr ""
4232
4233 #. type: TP
4234 #: build/C/man5/elf.5:1876
4235 #, no-wrap
4236 msgid "B<DT_JMPREL>"
4237 msgstr ""
4238
4239 #. type: Plain text
4240 #: build/C/man5/elf.5:1879
4241 msgid "Address of reloc entries solely for the PLT"
4242 msgstr ""
4243
4244 #. type: TP
4245 #: build/C/man5/elf.5:1879
4246 #, no-wrap
4247 msgid "B<DT_BIND_NOW>"
4248 msgstr ""
4249
4250 #. type: Plain text
4251 #: build/C/man5/elf.5:1883
4252 msgid ""
4253 "Instruct dynamic linker to process all relocs before transferring control to "
4254 "the executable"
4255 msgstr ""
4256
4257 #. type: TP
4258 #: build/C/man5/elf.5:1883
4259 #, no-wrap
4260 msgid "B<DT_RUNPATH>"
4261 msgstr ""
4262
4263 #. type: Plain text
4264 #: build/C/man5/elf.5:1886
4265 msgid "String table offset to library search path"
4266 msgstr ""
4267
4268 #. type: TP
4269 #: build/C/man5/elf.5:1886
4270 #, no-wrap
4271 msgid "B<DT_LOPROC>"
4272 msgstr ""
4273
4274 #. type: Plain text
4275 #: build/C/man5/elf.5:1889
4276 msgid "Start of processor-specific semantics"
4277 msgstr ""
4278
4279 #. type: TP
4280 #: build/C/man5/elf.5:1889
4281 #, no-wrap
4282 msgid "B<DT_HIPROC>"
4283 msgstr ""
4284
4285 #. type: Plain text
4286 #: build/C/man5/elf.5:1892
4287 msgid "End of processor-specific semantics"
4288 msgstr ""
4289
4290 #. type: TP
4291 #: build/C/man5/elf.5:1894
4292 #, no-wrap
4293 msgid "I<d_val>"
4294 msgstr ""
4295
4296 #. type: Plain text
4297 #: build/C/man5/elf.5:1897
4298 msgid "This member represents integer values with various interpretations."
4299 msgstr ""
4300
4301 #. type: TP
4302 #: build/C/man5/elf.5:1897
4303 #, no-wrap
4304 msgid "I<d_ptr>"
4305 msgstr ""
4306
4307 #. type: Plain text
4308 #: build/C/man5/elf.5:1905
4309 msgid ""
4310 "This member represents program virtual addresses.  When interpreting these "
4311 "addresses, the actual address should be computed based on the original file "
4312 "value and memory base address.  Files do not contain relocation entries to "
4313 "fixup these addresses."
4314 msgstr ""
4315
4316 #. type: TP
4317 #: build/C/man5/elf.5:1905
4318 #, no-wrap
4319 msgid "I<_DYNAMIC>"
4320 msgstr ""
4321
4322 #.  .El
4323 #. type: Plain text
4324 #: build/C/man5/elf.5:1910
4325 msgid ""
4326 "Array containing all the dynamic structures in the .dynamic section.  This "
4327 "is automatically populated by the linker."
4328 msgstr ""
4329
4330 #.  OpenBSD
4331 #.  ELF support first appeared in
4332 #.  OpenBSD 1.2,
4333 #.  although not all supported platforms use it as the native
4334 #.  binary file format.
4335 #. type: Plain text
4336 #: build/C/man5/elf.5:1919
4337 msgid "ELF first appeared in System V.  The ELF format is an adopted standard."
4338 msgstr ""
4339
4340 #.  .SH AUTHORS
4341 #.  The original version of this manual page was written by
4342 #.  .An Jeroen Ruigrok van der Werven
4343 #.  .Aq asmodai@FreeBSD.org
4344 #.  with inspiration from BSDi's
4345 #.  .Bsx
4346 #.  .Nm elf
4347 #.  man page.
4348 #. type: Plain text
4349 #: build/C/man5/elf.5:1937
4350 msgid ""
4351 "The extensions for I<e_phnum>, I<e_shnum> and I<e_strndx> respectively are "
4352 "Linux extensions.  Sun, BSD and AMD64 also support them; for further "
4353 "information, look under SEE ALSO."
4354 msgstr ""
4355
4356 #. type: Plain text
4357 #: build/C/man5/elf.5:1944
4358 msgid "B<as>(1), B<gdb>(1), B<ld>(1), B<objdump>(1), B<execve>(2), B<core>(5)"
4359 msgstr ""
4360
4361 #. type: Plain text
4362 #: build/C/man5/elf.5:1947
4363 msgid "Hewlett-Packard, I<Elf-64 Object File Format>."
4364 msgstr ""
4365
4366 #. type: Plain text
4367 #: build/C/man5/elf.5:1950
4368 msgid "Santa Cruz Operation, I<System V Application Binary Interface>."
4369 msgstr ""
4370
4371 #. type: Plain text
4372 #: build/C/man5/elf.5:1954
4373 msgid ""
4374 "UNIX System Laboratories, \"Object Files\", I<Executable and Linking Format "
4375 "(ELF)>."
4376 msgstr ""
4377
4378 #. type: Plain text
4379 #: build/C/man5/elf.5:1957
4380 msgid "Sun Microsystems, I<Linker and Libraries Guide>."
4381 msgstr ""
4382
4383 #. type: Plain text
4384 #: build/C/man5/elf.5:1960
4385 msgid ""
4386 "AMD64 ABI Draft, I<System V Application Binary Interface AMD64 Architecture "
4387 "Processor Supplement>."
4388 msgstr ""
4389
4390 #. type: TH
4391 #: build/C/man3/end.3:25
4392 #, no-wrap
4393 msgid "END"
4394 msgstr ""
4395
4396 #. type: TH
4397 #: build/C/man3/end.3:25
4398 #, no-wrap
4399 msgid "2008-07-17"
4400 msgstr ""
4401
4402 #. type: Plain text
4403 #: build/C/man3/end.3:28
4404 msgid "etext, edata, end - end of program segments"
4405 msgstr ""
4406
4407 #. type: Plain text
4408 #: build/C/man3/end.3:33
4409 #, no-wrap
4410 msgid ""
4411 "B<extern>I< etext>B<;>\n"
4412 "B<extern>I< edata>B<;>\n"
4413 "B<extern>I< end>B<;>\n"
4414 msgstr ""
4415
4416 #. type: Plain text
4417 #: build/C/man3/end.3:37
4418 msgid "The addresses of these symbols indicate the end of various program segments:"
4419 msgstr ""
4420
4421 #. type: TP
4422 #: build/C/man3/end.3:37
4423 #, no-wrap
4424 msgid "I<etext>"
4425 msgstr ""
4426
4427 #. type: Plain text
4428 #: build/C/man3/end.3:41
4429 msgid ""
4430 "This is the first address past the end of the text segment (the program "
4431 "code)."
4432 msgstr ""
4433
4434 #. type: TP
4435 #: build/C/man3/end.3:41
4436 #, no-wrap
4437 msgid "I<edata>"
4438 msgstr ""
4439
4440 #. type: Plain text
4441 #: build/C/man3/end.3:45
4442 msgid "This is the first address past the end of the initialized data segment."
4443 msgstr ""
4444
4445 #. type: TP
4446 #: build/C/man3/end.3:45
4447 #, no-wrap
4448 msgid "I<end>"
4449 msgstr ""
4450
4451 #. type: Plain text
4452 #: build/C/man3/end.3:49
4453 msgid ""
4454 "This is the first address past the end of the uninitialized data segment "
4455 "(also known as the BSS segment)."
4456 msgstr ""
4457
4458 #. type: Plain text
4459 #: build/C/man3/end.3:52
4460 msgid ""
4461 "Although these symbols have long been provided on most UNIX systems, they "
4462 "are not standardized; use with caution."
4463 msgstr ""
4464
4465 #. type: Plain text
4466 #: build/C/man3/end.3:55
4467 msgid ""
4468 "The program must explicitly declare these symbols; they are not defined in "
4469 "any header file."
4470 msgstr ""
4471
4472 #. type: Plain text
4473 #: build/C/man3/end.3:63
4474 msgid ""
4475 "On some systems the names of these symbols are preceded by underscores, "
4476 "thus: I<_etext>, I<_edata>, and I<_end>.  These symbols are also defined for "
4477 "programs compiled on Linux."
4478 msgstr ""
4479
4480 #. type: Plain text
4481 #: build/C/man3/end.3:75
4482 msgid ""
4483 "At the start of program execution, the program break will be somewhere near "
4484 "I<&end> (perhaps at the start of the following page).  However, the break "
4485 "will change as memory is allocated via B<brk>(2)  or B<malloc>(3).  Use "
4486 "B<sbrk>(2)  with an argument of zero to find the current value of the "
4487 "program break."
4488 msgstr ""
4489
4490 #. type: Plain text
4491 #: build/C/man3/end.3:77
4492 msgid "When run, the program below produces output such as the following:"
4493 msgstr ""
4494
4495 #. type: Plain text
4496 #: build/C/man3/end.3:85
4497 #, no-wrap
4498 msgid ""
4499 "$B< ./a.out>\n"
4500 "First address past:\n"
4501 "    program text (etext)       0x8048568\n"
4502 "    initialized data (edata)   0x804a01c\n"
4503 "    uninitialized data (end)   0x804a024\n"
4504 msgstr ""
4505
4506 #. type: SS
4507 #: build/C/man3/end.3:87
4508 #, no-wrap
4509 msgid "Program source"
4510 msgstr ""
4511
4512 #. type: Plain text
4513 #: build/C/man3/end.3:92
4514 #, no-wrap
4515 msgid ""
4516 "#include E<lt>stdio.hE<gt>\n"
4517 "#include E<lt>stdlib.hE<gt>\n"
4518 msgstr ""
4519
4520 #. type: Plain text
4521 #: build/C/man3/end.3:95
4522 #, no-wrap
4523 msgid ""
4524 "extern char etext, edata, end; /* The symbols must have some type,\n"
4525 "                                   or \"gcc -Wall\" complains */\n"
4526 msgstr ""
4527
4528 #. type: Plain text
4529 #: build/C/man3/end.3:103
4530 #, no-wrap
4531 msgid ""
4532 "int\n"
4533 "main(int argc, char *argv[])\n"
4534 "{\n"
4535 "    printf(\"First address past:\\en\");\n"
4536 "    printf(\"    program text (etext)      %10p\\en\", &etext);\n"
4537 "    printf(\"    initialized data (edata)  %10p\\en\", &edata);\n"
4538 "    printf(\"    uninitialized data (end)  %10p\\en\", &end);\n"
4539 msgstr ""
4540
4541 #. type: Plain text
4542 #: build/C/man3/end.3:112
4543 msgid "B<objdump>(1), B<readelf>(1), B<sbrk>(2), B<elf>(5)"
4544 msgstr ""
4545
4546 #. type: TH
4547 #: build/C/man8/ld.so.8:2
4548 #, no-wrap
4549 msgid "LD.SO"
4550 msgstr ""
4551
4552 #. type: TH
4553 #: build/C/man8/ld.so.8:2
4554 #, no-wrap
4555 msgid "2012-04-17"
4556 msgstr ""
4557
4558 #. type: Plain text
4559 #: build/C/man8/ld.so.8:5
4560 msgid "ld.so, ld-linux.so* - dynamic linker/loader"
4561 msgstr ""
4562
4563 #. type: Plain text
4564 #: build/C/man8/ld.so.8:12
4565 msgid ""
4566 "The dynamic linker can be run either indirectly by running some dynamically "
4567 "linked program or library (in which case no command-line options to the "
4568 "dynamic linker can be passed and, in the ELF case, the dynamic linker which "
4569 "is stored in the B<.interp> section of the program is executed) or directly "
4570 "by running:"
4571 msgstr ""
4572
4573 #. type: Plain text
4574 #: build/C/man8/ld.so.8:15
4575 msgid "I</lib/ld-linux.so.*> [OPTIONS] [PROGRAM [ARGUMENTS]]"
4576 msgstr ""
4577
4578 #. type: Plain text
4579 #: build/C/man8/ld.so.8:22
4580 msgid ""
4581 "The programs B<ld.so> and B<ld-linux.so*> find and load the shared libraries "
4582 "needed by a program, prepare the program to run, and then run it."
4583 msgstr ""
4584
4585 #. type: Plain text
4586 #: build/C/man8/ld.so.8:29
4587 msgid ""
4588 "Linux binaries require dynamic linking (linking at run time)  unless the "
4589 "B<-static> option was given to B<ld>(1)  during compilation."
4590 msgstr ""
4591
4592 #. type: Plain text
4593 #: build/C/man8/ld.so.8:42
4594 msgid ""
4595 "The program B<ld.so> handles a.out binaries, a format used long ago; "
4596 "B<ld-linux.so*> handles ELF (I</lib/ld-linux.so.1> for libc5, "
4597 "I</lib/ld-linux.so.2> for glibc2), which everybody has been using for years "
4598 "now.  Otherwise both have the same behavior, and use the same support files "
4599 "and programs B<ldd>(1), B<ldconfig>(8)  and I</etc/ld.so.conf>."
4600 msgstr ""
4601
4602 #. type: Plain text
4603 #: build/C/man8/ld.so.8:45
4604 msgid ""
4605 "The shared libraries needed by the program are searched for in the following "
4606 "order:"
4607 msgstr ""
4608
4609 #. type: Plain text
4610 #: build/C/man8/ld.so.8:50
4611 msgid ""
4612 "(ELF only) Using the directories specified in the DT_RPATH dynamic section "
4613 "attribute of the binary if present and DT_RUNPATH attribute does not exist.  "
4614 "Use of DT_RPATH is deprecated."
4615 msgstr ""
4616
4617 #. type: Plain text
4618 #: build/C/man8/ld.so.8:55
4619 msgid ""
4620 "Using the environment variable B<LD_LIBRARY_PATH>.  Except if the executable "
4621 "is a set-user-ID/set-group-ID binary, in which case it is ignored."
4622 msgstr ""
4623
4624 #. type: Plain text
4625 #: build/C/man8/ld.so.8:59
4626 msgid ""
4627 "(ELF only) Using the directories specified in the DT_RUNPATH dynamic section "
4628 "attribute of the binary if present."
4629 msgstr ""
4630
4631 #. type: Plain text
4632 #: build/C/man8/ld.so.8:69
4633 msgid ""
4634 "From the cache file I</etc/ld.so.cache> which contains a compiled list of "
4635 "candidate libraries previously found in the augmented library path.  If, "
4636 "however, the binary was linked with the B<-z nodeflib> linker option, "
4637 "libraries in the default library paths are skipped.  Libraries installed in "
4638 "hardware capability directories (see below)  are preferred to other "
4639 "libraries."
4640 msgstr ""
4641
4642 #. type: Plain text
4643 #: build/C/man8/ld.so.8:77
4644 msgid ""
4645 "In the default path I</lib>, and then I</usr/lib>.  If the binary was linked "
4646 "with the B<-z nodeflib> linker option, this step is skipped."
4647 msgstr ""
4648
4649 #. type: SS
4650 #: build/C/man8/ld.so.8:77
4651 #, no-wrap
4652 msgid "$ORIGIN and rpath"
4653 msgstr ""
4654
4655 #.  ld.so also understands $LIB, with the same meaning as $ORIGIN/lib,
4656 #.  it appears.
4657 #
4658 #.  There is also $PLATFORM.  This is a kind of wildcard
4659 #.  of directories related at AT_HWCAP.  To get an idea of the
4660 #.  places that $PLATFORM would match, look at the output of the
4661 #.  following:
4662 #
4663 #.  mkdir /tmp/d
4664 #.  LD_LIBRARY_PATH=/tmp/d strace -e open /bin/date 2>&1 | grep /tmp/d
4665 #
4666 #.  ld.so lets names be abbreviated, so $O will work for $ORIGIN;
4667 #.  Don't do this!!
4668 #. type: Plain text
4669 #: build/C/man8/ld.so.8:112
4670 msgid ""
4671 "B<ld.so> understands the string I<$ORIGIN> (or equivalently I<${ORIGIN}>)  "
4672 "in an rpath specification (DT_RPATH or DT_RUNPATH) to mean the directory "
4673 "containing the application executable.  Thus, an application located in "
4674 "I<somedir/app> could be compiled with I<gcc "
4675 "-Wl,-rpath,\\(aq$ORIGIN/../lib\\(aq> so that it finds an associated shared "
4676 "library in I<somedir/lib> no matter where I<somedir> is located in the "
4677 "directory hierarchy.  This facilitates the creation of \"turn-key\" "
4678 "applications that do not need to be installed into special directories, but "
4679 "can instead be unpacked into any directory and still find their own shared "
4680 "libraries."
4681 msgstr ""
4682
4683 #. type: SH
4684 #: build/C/man8/ld.so.8:112 build/C/man8/ldconfig.8:100 build/C/man1/ldd.1:19
4685 #, no-wrap
4686 msgid "OPTIONS"
4687 msgstr ""
4688
4689 #. type: TP
4690 #: build/C/man8/ld.so.8:113
4691 #, no-wrap
4692 msgid "B<--list>"
4693 msgstr ""
4694
4695 #. type: Plain text
4696 #: build/C/man8/ld.so.8:116
4697 msgid "List all dependencies and how they are resolved."
4698 msgstr ""
4699
4700 #. type: TP
4701 #: build/C/man8/ld.so.8:116
4702 #, no-wrap
4703 msgid "B<--verify>"
4704 msgstr ""
4705
4706 #. type: Plain text
4707 #: build/C/man8/ld.so.8:120
4708 msgid ""
4709 "Verify that program is dynamically linked and this dynamic linker can handle "
4710 "it."
4711 msgstr ""
4712
4713 #. type: TP
4714 #: build/C/man8/ld.so.8:120
4715 #, no-wrap
4716 msgid "B<--library-path PATH>"
4717 msgstr ""
4718
4719 #. type: Plain text
4720 #: build/C/man8/ld.so.8:125
4721 msgid ""
4722 "Use PATH instead of B<LD_LIBRARY_PATH> environment variable setting (see "
4723 "below)."
4724 msgstr ""
4725
4726 #. type: TP
4727 #: build/C/man8/ld.so.8:125
4728 #, no-wrap
4729 msgid "B<--inhibit-rpath LIST>"
4730 msgstr ""
4731
4732 #. type: Plain text
4733 #: build/C/man8/ld.so.8:131
4734 msgid ""
4735 "Ignore RPATH and RUNPATH information in object names in LIST.  This option "
4736 "is ignored if B<ld.so> is set-user-ID or set-group-ID."
4737 msgstr ""
4738
4739 #. type: TP
4740 #: build/C/man8/ld.so.8:131
4741 #, no-wrap
4742 msgid "B<--audit LIST>"
4743 msgstr ""
4744
4745 #. type: Plain text
4746 #: build/C/man8/ld.so.8:134
4747 msgid "Use objects named in LIST as auditors."
4748 msgstr ""
4749
4750 #. type: SH
4751 #: build/C/man8/ld.so.8:134
4752 #, no-wrap
4753 msgid "HARDWARE CAPABILITIES"
4754 msgstr ""
4755
4756 #. type: Plain text
4757 #: build/C/man8/ld.so.8:145
4758 msgid ""
4759 "Some libraries are compiled using hardware-specific instructions which do "
4760 "not exist on every CPU.  Such libraries should be installed in directories "
4761 "whose names define the required hardware capabilities, such as "
4762 "I</usr/lib/sse2/>.  The dynamic linker checks these directories against the "
4763 "hardware of the machine and selects the most suitable version of a given "
4764 "library.  Hardware capability directories can be cascaded to combine CPU "
4765 "features.  The list of supported hardware capability names depends on the "
4766 "CPU.  The following names are currently recognized:"
4767 msgstr ""
4768
4769 #. type: TP
4770 #: build/C/man8/ld.so.8:145
4771 #, no-wrap
4772 msgid "B<Alpha>"
4773 msgstr ""
4774
4775 #. type: Plain text
4776 #: build/C/man8/ld.so.8:148
4777 msgid "ev4, ev5, ev56, ev6, ev67"
4778 msgstr ""
4779
4780 #. type: TP
4781 #: build/C/man8/ld.so.8:148
4782 #, no-wrap
4783 msgid "B<MIPS>"
4784 msgstr ""
4785
4786 #. type: Plain text
4787 #: build/C/man8/ld.so.8:151
4788 msgid "loongson2e, loongson2f, octeon, octeon2"
4789 msgstr ""
4790
4791 #. type: TP
4792 #: build/C/man8/ld.so.8:151
4793 #, no-wrap
4794 msgid "B<PowerPC>"
4795 msgstr ""
4796
4797 #. type: Plain text
4798 #: build/C/man8/ld.so.8:156
4799 msgid ""
4800 "4xxmac, altivec, arch_2_05, arch_2_06, booke, cellbe, dfp, efpdouble, "
4801 "efpsingle, fpu, ic_snoop, mmu, notb, pa6t, power4, power5, power5+, power6x, "
4802 "ppc32, ppc601, ppc64, smt, spe, ucache, vsx"
4803 msgstr ""
4804
4805 #. type: TP
4806 #: build/C/man8/ld.so.8:156
4807 #, no-wrap
4808 msgid "B<SPARC>"
4809 msgstr ""
4810
4811 #. type: Plain text
4812 #: build/C/man8/ld.so.8:159
4813 msgid "flush, muldiv, stbar, swap, ultra3, v9, v9v, v9v2"
4814 msgstr ""
4815
4816 #. type: TP
4817 #: build/C/man8/ld.so.8:159
4818 #, no-wrap
4819 msgid "B<s390>"
4820 msgstr ""
4821
4822 #. type: Plain text
4823 #: build/C/man8/ld.so.8:163
4824 msgid ""
4825 "dfp, eimm, esan3, etf3enh, g5, highgprs, hpage, ldisp, msa, stfle, z900, "
4826 "z990, z9-109, z10, zarch"
4827 msgstr ""
4828
4829 #. type: TP
4830 #: build/C/man8/ld.so.8:164
4831 #, no-wrap
4832 msgid "B<x86 (32-bit only)>"
4833 msgstr ""
4834
4835 #. type: Plain text
4836 #: build/C/man8/ld.so.8:168
4837 msgid ""
4838 "acpi, apic, clflush, cmov, cx8, dts, fxsr, ht, i386, i486, i586, i686, mca, "
4839 "mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm"
4840 msgstr ""
4841
4842 #. type: SH
4843 #: build/C/man8/ld.so.8:168
4844 #, no-wrap
4845 msgid "ENVIRONMENT"
4846 msgstr ""
4847
4848 #. type: Plain text
4849 #: build/C/man8/ld.so.8:170
4850 msgid "There are four important environment variables."
4851 msgstr ""
4852
4853 #. type: TP
4854 #: build/C/man8/ld.so.8:170
4855 #, no-wrap
4856 msgid "B<LD_BIND_NOW>"
4857 msgstr ""
4858
4859 #. type: Plain text
4860 #: build/C/man8/ld.so.8:178
4861 msgid ""
4862 "(libc5; glibc since 2.1.1)  If set to a nonempty string, causes the dynamic "
4863 "linker to resolve all symbols at program startup instead of deferring "
4864 "function call resolution to the point when they are first referenced.  This "
4865 "is useful when using a debugger."
4866 msgstr ""
4867
4868 #. type: TP
4869 #: build/C/man8/ld.so.8:178
4870 #, no-wrap
4871 msgid "B<LD_LIBRARY_PATH>"
4872 msgstr ""
4873
4874 #. type: Plain text
4875 #: build/C/man8/ld.so.8:185
4876 msgid ""
4877 "A colon-separated list of directories in which to search for ELF libraries "
4878 "at execution-time.  Similar to the B<PATH> environment variable."
4879 msgstr ""
4880
4881 #. type: TP
4882 #: build/C/man8/ld.so.8:185
4883 #, no-wrap
4884 msgid "B<LD_PRELOAD>"
4885 msgstr ""
4886
4887 #. type: Plain text
4888 #: build/C/man8/ld.so.8:193
4889 msgid ""
4890 "A whitespace-separated list of additional, user-specified, ELF shared "
4891 "libraries to be loaded before all others.  This can be used to selectively "
4892 "override functions in other shared libraries.  For set-user-ID/set-group-ID "
4893 "ELF binaries, only libraries in the standard search directories that are "
4894 "also set-user-ID will be loaded."
4895 msgstr ""
4896
4897 #. type: TP
4898 #: build/C/man8/ld.so.8:193
4899 #, no-wrap
4900 msgid "B<LD_TRACE_LOADED_OBJECTS>"
4901 msgstr ""
4902
4903 #. type: Plain text
4904 #: build/C/man8/ld.so.8:200
4905 msgid ""
4906 "(ELF only)  If set to a nonempty string, causes the program to list its "
4907 "dynamic library dependencies, as if run by B<ldd>(1), instead of running "
4908 "normally."
4909 msgstr ""
4910
4911 #. type: Plain text
4912 #: build/C/man8/ld.so.8:203
4913 msgid ""
4914 "Then there are lots of more or less obscure variables, many obsolete or only "
4915 "for internal use."
4916 msgstr ""
4917
4918 #. type: TP
4919 #: build/C/man8/ld.so.8:203
4920 #, no-wrap
4921 msgid "B<LD_AOUT_LIBRARY_PATH>"
4922 msgstr ""
4923
4924 #. type: Plain text
4925 #: build/C/man8/ld.so.8:211
4926 msgid ""
4927 "(libc5)  Version of B<LD_LIBRARY_PATH> for a.out binaries only.  Old "
4928 "versions of ld-linux.so.1 also supported B<LD_ELF_LIBRARY_PATH>."
4929 msgstr ""
4930
4931 #. type: TP
4932 #: build/C/man8/ld.so.8:211
4933 #, no-wrap
4934 msgid "B<LD_AOUT_PRELOAD>"
4935 msgstr ""
4936
4937 #. type: Plain text
4938 #: build/C/man8/ld.so.8:219
4939 msgid ""
4940 "(libc5)  Version of B<LD_PRELOAD> for a.out binaries only.  Old versions of "
4941 "ld-linux.so.1 also supported B<LD_ELF_PRELOAD>."
4942 msgstr ""
4943
4944 #. type: TP
4945 #: build/C/man8/ld.so.8:219
4946 #, no-wrap
4947 msgid "B<LD_AUDIT>"
4948 msgstr ""
4949
4950 #. type: Plain text
4951 #: build/C/man8/ld.so.8:229
4952 msgid ""
4953 "(glibc since 2.4)  A colon-separated list of user-specified, ELF shared "
4954 "objects to be loaded before all others in a separate linker namespace (i.e., "
4955 "one that does not intrude upon the normal symbol bindings that would occur "
4956 "in the process).  These libraries can be used to audit the operation of the "
4957 "dynamic linker.  B<LD_AUDIT> is ignored for set-user-ID/set-group-ID "
4958 "binaries."
4959 msgstr ""
4960
4961 #. type: Plain text
4962 #: build/C/man8/ld.so.8:242
4963 msgid ""
4964 "The dynamic linker will notify the audit libraries at so-called auditing "
4965 "checkpoints\\(emfor example, loading a new library, resolving a symbol, or "
4966 "calling a symbol from another shared object\\(emby calling an appropriate "
4967 "function within the audit library.  For details, see B<rtld-audit>(7).  The "
4968 "auditing interface is largely compatible with that provided on Solaris, as "
4969 "described in its I<Linker and Libraries Guide>, in the chapter I<Runtime "
4970 "Linker Auditing Interface>."
4971 msgstr ""
4972
4973 #. type: TP
4974 #: build/C/man8/ld.so.8:242
4975 #, no-wrap
4976 msgid "B<LD_BIND_NOT>"
4977 msgstr ""
4978
4979 #. type: Plain text
4980 #: build/C/man8/ld.so.8:247
4981 msgid ""
4982 "(glibc since 2.1.95)  Do not update the GOT (global offset table) and PLT "
4983 "(procedure linkage table)  after resolving a symbol."
4984 msgstr ""
4985
4986 #. type: TP
4987 #: build/C/man8/ld.so.8:247
4988 #, no-wrap
4989 msgid "B<LD_DEBUG>"
4990 msgstr ""
4991
4992 #. type: Plain text
4993 #: build/C/man8/ld.so.8:260
4994 msgid ""
4995 "(glibc since 2.1)  Output verbose debugging information about the dynamic "
4996 "linker.  If set to B<all> prints all debugging information it has, if set to "
4997 "B<help> prints a help message about which categories can be specified in "
4998 "this environment variable.  Since glibc 2.3.4, B<LD_DEBUG> is ignored for "
4999 "set-user-ID/set-group-ID binaries."
5000 msgstr ""
5001
5002 #. type: TP
5003 #: build/C/man8/ld.so.8:260
5004 #, no-wrap
5005 msgid "B<LD_DEBUG_OUTPUT>"
5006 msgstr ""
5007
5008 #. type: Plain text
5009 #: build/C/man8/ld.so.8:268
5010 msgid ""
5011 "(glibc since 2.1)  File where B<LD_DEBUG> output should be fed into, default "
5012 "is standard output.  B<LD_DEBUG_OUTPUT> is ignored for "
5013 "set-user-ID/set-group-ID binaries."
5014 msgstr ""
5015
5016 #. type: TP
5017 #: build/C/man8/ld.so.8:268
5018 #, no-wrap
5019 msgid "B<LD_DYNAMIC_WEAK>"
5020 msgstr ""
5021
5022 #. type: Plain text
5023 #: build/C/man8/ld.so.8:275
5024 msgid ""
5025 "(glibc since 2.1.91)  Allow weak symbols to be overridden (reverting to old "
5026 "glibc behavior).  For security reasons, since glibc 2.3.4, "
5027 "B<LD_DYNAMIC_WEAK> is ignored for set-user-ID/set-group-ID binaries."
5028 msgstr ""
5029
5030 #. type: TP
5031 #: build/C/man8/ld.so.8:275
5032 #, no-wrap
5033 msgid "B<LD_HWCAP_MASK>"
5034 msgstr ""
5035
5036 #. type: Plain text
5037 #: build/C/man8/ld.so.8:279
5038 msgid "(glibc since 2.1)  Mask for hardware capabilities."
5039 msgstr ""
5040
5041 #. type: TP
5042 #: build/C/man8/ld.so.8:279
5043 #, no-wrap
5044 msgid "B<LD_KEEPDIR>"
5045 msgstr ""
5046
5047 #. type: Plain text
5048 #: build/C/man8/ld.so.8:284
5049 msgid ""
5050 "(a.out only)(libc5)  Don't ignore the directory in the names of a.out "
5051 "libraries to be loaded.  Use of this option is strongly discouraged."
5052 msgstr ""
5053
5054 #. type: TP
5055 #: build/C/man8/ld.so.8:284
5056 #, no-wrap
5057 msgid "B<LD_NOWARN>"
5058 msgstr ""
5059
5060 #. type: Plain text
5061 #: build/C/man8/ld.so.8:289
5062 msgid ""
5063 "(a.out only)(libc5)  Suppress warnings about a.out libraries with "
5064 "incompatible minor version numbers."
5065 msgstr ""
5066
5067 #. type: TP
5068 #: build/C/man8/ld.so.8:289
5069 #, no-wrap
5070 msgid "B<LD_ORIGIN_PATH>"
5071 msgstr ""
5072
5073 #.  Only used if $ORIGIN can't be determined by normal means
5074 #.  (from the origin path saved at load time, or from /proc/self/exe)?
5075 #. type: Plain text
5076 #: build/C/man8/ld.so.8:298
5077 msgid ""
5078 "(glibc since 2.1)  Path where the binary is found (for non-set-user-ID "
5079 "programs).  For security reasons, since glibc 2.4, B<LD_ORIGIN_PATH> is "
5080 "ignored for set-user-ID/set-group-ID binaries."
5081 msgstr ""
5082
5083 #. type: TP
5084 #: build/C/man8/ld.so.8:298
5085 #, no-wrap
5086 msgid "B<LD_POINTER_GUARD>"
5087 msgstr ""
5088
5089 #. type: Plain text
5090 #: build/C/man8/ld.so.8:310
5091 msgid ""
5092 "(glibc since 2.4)  Set to 0 to disable pointer guarding.  Any other value "
5093 "enables pointer guarding, which is also the default.  Pointer guarding is a "
5094 "security mechanism whereby some pointers to code stored in writable program "
5095 "memory (return addresses saved by B<setjmp>(3)  or function pointers used by "
5096 "various glibc internals) are mangled semi-randomly to make it more difficult "
5097 "for an attacker to hijack the pointers for use in the event of a buffer "
5098 "overrun or stack-smashing attack."
5099 msgstr ""
5100
5101 #. type: TP
5102 #: build/C/man8/ld.so.8:310
5103 #, no-wrap
5104 msgid "B<LD_PROFILE>"
5105 msgstr ""
5106
5107 #. type: Plain text
5108 #: build/C/man8/ld.so.8:317
5109 msgid ""
5110 "(glibc since 2.1)  Shared object to be profiled, specified either as a "
5111 "pathname or a soname.  Profiling output is written to the file whose name "
5112 "is: \"I<$LD_PROFILE_OUTPUT>/I<$LD_PROFILE>.profile\"."
5113 msgstr ""
5114
5115 #. type: TP
5116 #: build/C/man8/ld.so.8:317
5117 #, no-wrap
5118 msgid "B<LD_PROFILE_OUTPUT>"
5119 msgstr ""
5120
5121 #. type: Plain text
5122 #: build/C/man8/ld.so.8:330
5123 msgid ""
5124 "(glibc since 2.1)  Directory where B<LD_PROFILE> output should be written.  "
5125 "If this variable is not defined, or is defined as an empty string, then the "
5126 "default is I</var/tmp>.  B<LD_PROFILE_OUTPUT> is ignored for set-user-ID and "
5127 "set-group-ID programs, which always use I</var/profile>."
5128 msgstr ""
5129
5130 #. type: TP
5131 #: build/C/man8/ld.so.8:330
5132 #, no-wrap
5133 msgid "B<LD_SHOW_AUXV>"
5134 msgstr ""
5135
5136 #.  FIXME
5137 #.  Document LD_TRACE_PRELINKING (e.g.: LD_TRACE_PRELINKING=libx1.so ./prog)
5138 #.  Since glibc 2.3
5139 #.  Also enables DL_DEBUG_PRELINK
5140 #. type: Plain text
5141 #: build/C/man8/ld.so.8:341
5142 msgid ""
5143 "(glibc since 2.1)  Show auxiliary array passed up from the kernel.  For "
5144 "security reasons, since glibc 2.3.5, B<LD_SHOW_AUXV> is ignored for "
5145 "set-user-ID/set-group-ID binaries."
5146 msgstr ""
5147
5148 #. type: TP
5149 #: build/C/man8/ld.so.8:341
5150 #, no-wrap
5151 msgid "B<LD_USE_LOAD_BIAS>"
5152 msgstr ""
5153
5154 #.  http://sources.redhat.com/ml/libc-hacker/2003-11/msg00127.html
5155 #.  Subject: [PATCH] Support LD_USE_LOAD_BIAS
5156 #.  Jakub Jelinek
5157 #. type: Plain text
5158 #: build/C/man8/ld.so.8:360
5159 msgid ""
5160 "By default (i.e., if this variable is not defined)  executables and "
5161 "prelinked shared objects will honor base addresses of their dependent "
5162 "libraries and (nonprelinked) position-independent executables (PIEs)  and "
5163 "other shared objects will not honor them.  If B<LD_USE_LOAD_BIAS> is defined "
5164 "wit the value, both executables and PIEs will honor the base addresses.  If "
5165 "B<LD_USE_LOAD_BIAS> is defined with the value 0, neither executables nor "
5166 "PIEs will honor the base addresses.  This variable is ignored by set-user-ID "
5167 "and set-group-ID programs."
5168 msgstr ""
5169
5170 #. type: TP
5171 #: build/C/man8/ld.so.8:360
5172 #, no-wrap
5173 msgid "B<LD_VERBOSE>"
5174 msgstr ""
5175
5176 #. type: Plain text
5177 #: build/C/man8/ld.so.8:372
5178 msgid ""
5179 "(glibc since 2.1)  If set to a nonempty string, output symbol versioning "
5180 "information about the program if querying information about the program "
5181 "(i.e., either B<LD_TRACE_LOADED_OBJECTS> has been set, or B<--list> or "
5182 "B<--verify> options have been given to the dynamic linker)."
5183 msgstr ""
5184
5185 #. type: TP
5186 #: build/C/man8/ld.so.8:372
5187 #, no-wrap
5188 msgid "B<LD_WARN>"
5189 msgstr ""
5190
5191 #. type: Plain text
5192 #: build/C/man8/ld.so.8:376
5193 msgid ""
5194 "(ELF only)(glibc since 2.1.3)  If set to a nonempty string, warn about "
5195 "unresolved symbols."
5196 msgstr ""
5197
5198 #. type: TP
5199 #: build/C/man8/ld.so.8:376
5200 #, no-wrap
5201 msgid "B<LDD_ARGV0>"
5202 msgstr ""
5203
5204 #. type: Plain text
5205 #: build/C/man8/ld.so.8:383
5206 msgid "(libc5)  I<argv>[0] to be used by B<ldd>(1)  when none is present."
5207 msgstr ""
5208
5209 #. type: SH
5210 #: build/C/man8/ld.so.8:383 build/C/man8/ldconfig.8:156
5211 #, no-wrap
5212 msgid "FILES"
5213 msgstr ""
5214
5215 #. type: TP
5216 #: build/C/man8/ld.so.8:385 build/C/man8/ldconfig.8:158
5217 #, no-wrap
5218 msgid "I</lib/ld.so>"
5219 msgstr ""
5220
5221 #. type: Plain text
5222 #: build/C/man8/ld.so.8:388
5223 msgid "a.out dynamic linker/loader"
5224 msgstr ""
5225
5226 #. type: TP
5227 #: build/C/man8/ld.so.8:388
5228 #, no-wrap
5229 msgid "I</lib/ld-linux.so.>{I<1>,I<2>}"
5230 msgstr ""
5231
5232 #. type: Plain text
5233 #: build/C/man8/ld.so.8:391
5234 msgid "ELF dynamic linker/loader"
5235 msgstr ""
5236
5237 #. type: TP
5238 #: build/C/man8/ld.so.8:391 build/C/man8/ldconfig.8:165
5239 #, no-wrap
5240 msgid "I</etc/ld.so.cache>"
5241 msgstr ""
5242
5243 #. type: Plain text
5244 #: build/C/man8/ld.so.8:395
5245 msgid ""
5246 "File containing a compiled list of directories in which to search for "
5247 "libraries and an ordered list of candidate libraries."
5248 msgstr ""
5249
5250 #. type: TP
5251 #: build/C/man8/ld.so.8:395
5252 #, no-wrap
5253 msgid "I</etc/ld.so.preload>"
5254 msgstr ""
5255
5256 #. type: Plain text
5257 #: build/C/man8/ld.so.8:399
5258 msgid ""
5259 "File containing a whitespace separated list of ELF shared libraries to be "
5260 "loaded before the program."
5261 msgstr ""
5262
5263 #. type: TP
5264 #: build/C/man8/ld.so.8:399
5265 #, no-wrap
5266 msgid "B<lib*.so*>"
5267 msgstr ""
5268
5269 #. type: Plain text
5270 #: build/C/man8/ld.so.8:402
5271 msgid "shared libraries"
5272 msgstr ""
5273
5274 #. type: Plain text
5275 #: build/C/man8/ld.so.8:409
5276 msgid ""
5277 "The B<ld.so> functionality is available for executables compiled using libc "
5278 "version 4.4.3 or greater.  ELF functionality is available since Linux 1.1.52 "
5279 "and libc5."
5280 msgstr ""
5281
5282 #.  .SH AUTHORS
5283 #.  ld.so: David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu, Linus
5284 #.   Torvalds, Lars Wirzenius and Mitch D'Souza
5285 #.  ld-linux.so: Roland McGrath, Ulrich Drepper and others.
5286 #
5287 #.  In the above, (libc5) stands for David Engel's ld.so/ld-linux.so.
5288 #. type: Plain text
5289 #: build/C/man8/ld.so.8:419
5290 msgid "B<ldd>(1), B<rtld-audit>(7), B<ldconfig>(8)"
5291 msgstr ""
5292
5293 #. type: TH
5294 #: build/C/man8/ldconfig.8:22
5295 #, no-wrap
5296 msgid "LDCONFIG"
5297 msgstr ""
5298
5299 #. type: TH
5300 #: build/C/man8/ldconfig.8:22
5301 #, no-wrap
5302 msgid "2012-05-10"
5303 msgstr ""
5304
5305 #. type: Plain text
5306 #: build/C/man8/ldconfig.8:25
5307 msgid "ldconfig - configure dynamic linker run-time bindings"
5308 msgstr ""
5309
5310 #. type: Plain text
5311 #: build/C/man8/ldconfig.8:40
5312 msgid ""
5313 "B</sbin/ldconfig> [ B<-nNvXV> ] [ B<-f\\ conf> ] [ B<-C\\ cache> ] [ B<-r\\ "
5314 "root> ] I<directory>\\ ..."
5315 msgstr ""
5316
5317 #. type: Plain text
5318 #: build/C/man8/ldconfig.8:49
5319 msgid "B</sbin/ldconfig> B<-l> [ B<-v> ] I<library>\\ ..."
5320 msgstr ""
5321
5322 #. type: Plain text
5323 #: build/C/man8/ldconfig.8:54
5324 msgid "B</sbin/ldconfig> B<-p>"
5325 msgstr ""
5326
5327 #. type: Plain text
5328 #: build/C/man8/ldconfig.8:71
5329 msgid ""
5330 "B<ldconfig> creates the necessary links and cache to the most recent shared "
5331 "libraries found in the directories specified on the command line, in the "
5332 "file I</etc/ld.so.conf>, and in the trusted directories (I</lib> and "
5333 "I</usr/lib>).  The cache is used by the run-time linker, I<ld.so> or "
5334 "I<ld-linux.so>.  B<ldconfig> checks the header and filenames of the "
5335 "libraries it encounters when determining which versions should have their "
5336 "links updated."
5337 msgstr ""
5338
5339 #.  The following sentence looks suspect
5340 #.  (perhaps historical cruft) -- MTK, Jul 2005
5341 #.  Therefore, when making dynamic libraries,
5342 #.  it is wise to explicitly link against libc (use \-lc).
5343 #. type: Plain text
5344 #: build/C/man8/ldconfig.8:79
5345 msgid ""
5346 "B<ldconfig> will attempt to deduce the type of ELF libs (i.e., libc5 or "
5347 "libc6/glibc)  based on what C libs, if any, the library was linked against."
5348 msgstr ""
5349
5350 #. type: Plain text
5351 #: build/C/man8/ldconfig.8:100
5352 msgid ""
5353 "Some existing libs do not contain enough information to allow the deduction "
5354 "of their type.  Therefore, the I</etc/ld.so.conf> file format allows the "
5355 "specification of an expected type.  This is I<only> used for those ELF libs "
5356 "which we can not work out.  The format is \"dirname=TYPE\", where TYPE can "
5357 "be libc4, libc5, or libc6.  (This syntax also works on the command line.)  "
5358 "Spaces are I<not> allowed.  Also see the B<-p> option.  B<ldconfig> should "
5359 "normally be run by the superuser as it may require write permission on some "
5360 "root owned directories and files."
5361 msgstr ""
5362
5363 #. type: TP
5364 #: build/C/man8/ldconfig.8:101
5365 #, no-wrap
5366 msgid "B<-v>"
5367 msgstr ""
5368
5369 #. type: Plain text
5370 #: build/C/man8/ldconfig.8:107
5371 msgid ""
5372 "Verbose mode.  Print current version number, the name of each directory as "
5373 "it is scanned, and any links that are created.  Overrides quiet mode."
5374 msgstr ""
5375
5376 #. type: TP
5377 #: build/C/man8/ldconfig.8:107
5378 #, no-wrap
5379 msgid "B<-n>"
5380 msgstr ""
5381
5382 #. type: Plain text
5383 #: build/C/man8/ldconfig.8:118
5384 msgid ""
5385 "Only process directories specified on the command line.  Don't process the "
5386 "trusted directories (I</lib> and I</usr/lib>)  nor those specified in "
5387 "I</etc/ld.so.conf>.  Implies B<-N>."
5388 msgstr ""
5389
5390 #. type: TP
5391 #: build/C/man8/ldconfig.8:118
5392 #, no-wrap
5393 msgid "B<-N>"
5394 msgstr ""
5395
5396 #. type: Plain text
5397 #: build/C/man8/ldconfig.8:124
5398 msgid ""
5399 "Don't rebuild the cache.  Unless B<-X> is also specified, links are still "
5400 "updated."
5401 msgstr ""
5402
5403 #. type: TP
5404 #: build/C/man8/ldconfig.8:124
5405 #, no-wrap
5406 msgid "B<-X>"
5407 msgstr ""
5408
5409 #. type: Plain text
5410 #: build/C/man8/ldconfig.8:130
5411 msgid ""
5412 "Don't update links.  Unless B<-N> is also specified, the cache is still "
5413 "rebuilt."
5414 msgstr ""
5415
5416 #. type: TP
5417 #: build/C/man8/ldconfig.8:130
5418 #, no-wrap
5419 msgid "B<-f conf>"
5420 msgstr ""
5421
5422 #. type: Plain text
5423 #: build/C/man8/ldconfig.8:136
5424 msgid "Use B<conf> instead of I</etc/ld.so.conf>."
5425 msgstr ""
5426
5427 #. type: TP
5428 #: build/C/man8/ldconfig.8:136
5429 #, no-wrap
5430 msgid "B<-C cache>"
5431 msgstr ""
5432
5433 #. type: Plain text
5434 #: build/C/man8/ldconfig.8:142
5435 msgid "Use B<cache> instead of I</etc/ld.so.cache>."
5436 msgstr ""
5437
5438 #. type: TP
5439 #: build/C/man8/ldconfig.8:142
5440 #, no-wrap
5441 msgid "B<-r root>"
5442 msgstr ""
5443
5444 #. type: Plain text
5445 #: build/C/man8/ldconfig.8:147
5446 msgid "Change to and use I<root> as the root directory."
5447 msgstr ""
5448
5449 #. type: TP
5450 #: build/C/man8/ldconfig.8:147
5451 #, no-wrap
5452 msgid "B<-l>"
5453 msgstr ""
5454
5455 #. type: Plain text
5456 #: build/C/man8/ldconfig.8:152
5457 msgid ""
5458 "Library mode.  Manually link individual libraries.  Intended for use by "
5459 "experts only."
5460 msgstr ""
5461
5462 #. type: TP
5463 #: build/C/man8/ldconfig.8:152
5464 #, no-wrap
5465 msgid "B<-p>"
5466 msgstr ""
5467
5468 #. type: Plain text
5469 #: build/C/man8/ldconfig.8:156
5470 msgid ""
5471 "Print the lists of directories and candidate libraries stored in the current "
5472 "cache."
5473 msgstr ""
5474
5475 #. type: Plain text
5476 #: build/C/man8/ldconfig.8:161
5477 msgid "run-time linker/loader"
5478 msgstr ""
5479
5480 #. type: TP
5481 #: build/C/man8/ldconfig.8:161
5482 #, no-wrap
5483 msgid "I</etc/ld.so.conf>"
5484 msgstr ""
5485
5486 #. type: Plain text
5487 #: build/C/man8/ldconfig.8:165
5488 msgid ""
5489 "File containing a list of colon, space, tab, newline, or comma-separated "
5490 "directories in which to search for libraries."
5491 msgstr ""
5492
5493 #. type: Plain text
5494 #: build/C/man8/ldconfig.8:174
5495 msgid ""
5496 "File containing an ordered list of libraries found in the directories "
5497 "specified in I</etc/ld.so.conf>, as well as those found in I</lib> and "
5498 "I</usr/lib>."
5499 msgstr ""
5500
5501 #. type: Plain text
5502 #: build/C/man8/ldconfig.8:178
5503 msgid "B<ldd>(1), B<ld.so>(8)"
5504 msgstr ""
5505
5506 #. type: TH
5507 #: build/C/man1/ldd.1:10
5508 #, no-wrap
5509 msgid "LDD"
5510 msgstr ""
5511
5512 #. type: TH
5513 #: build/C/man1/ldd.1:10
5514 #, no-wrap
5515 msgid "2000-10-30"
5516 msgstr ""
5517
5518 #. type: Plain text
5519 #: build/C/man1/ldd.1:13
5520 msgid "ldd - print shared library dependencies"
5521 msgstr ""
5522
5523 #. type: Plain text
5524 #: build/C/man1/ldd.1:15
5525 msgid "B<ldd> [OPTION]... FILE..."
5526 msgstr ""
5527
5528 #. type: Plain text
5529 #: build/C/man1/ldd.1:19
5530 msgid ""
5531 "B<ldd> prints the shared libraries required by each program or shared "
5532 "library specified on the command line."
5533 msgstr ""
5534
5535 #. type: TP
5536 #: build/C/man1/ldd.1:20
5537 #, no-wrap
5538 msgid "B<--version>"
5539 msgstr ""
5540
5541 #. type: Plain text
5542 #: build/C/man1/ldd.1:24
5543 msgid "Print the version number of B<ldd>."
5544 msgstr ""
5545
5546 #. type: TP
5547 #: build/C/man1/ldd.1:24
5548 #, no-wrap
5549 msgid "B<-v\\ --verbose>"
5550 msgstr ""
5551
5552 #. type: Plain text
5553 #: build/C/man1/ldd.1:28
5554 msgid ""
5555 "Print all information, including, for example, symbol versioning "
5556 "information."
5557 msgstr ""
5558
5559 #. type: TP
5560 #: build/C/man1/ldd.1:28
5561 #, no-wrap
5562 msgid "B<-u\\ --unused>"
5563 msgstr ""
5564
5565 #. type: Plain text
5566 #: build/C/man1/ldd.1:32
5567 msgid "Print unused direct dependencies.  (Since glibc 2.3.4.)"
5568 msgstr ""
5569
5570 #. type: TP
5571 #: build/C/man1/ldd.1:32
5572 #, no-wrap
5573 msgid "B<-d\\ --data-relocs>"
5574 msgstr ""
5575
5576 #. type: Plain text
5577 #: build/C/man1/ldd.1:35
5578 msgid "Perform relocations and report any missing objects (ELF only)."
5579 msgstr ""
5580
5581 #. type: TP
5582 #: build/C/man1/ldd.1:35
5583 #, no-wrap
5584 msgid "B<-r\\ --function-relocs>"
5585 msgstr ""
5586
5587 #. type: Plain text
5588 #: build/C/man1/ldd.1:39
5589 msgid ""
5590 "Perform relocations for both data objects and functions, and report any "
5591 "missing objects or functions (ELF only)."
5592 msgstr ""
5593
5594 #. type: TP
5595 #: build/C/man1/ldd.1:39
5596 #, no-wrap
5597 msgid "B<--help>"
5598 msgstr ""
5599
5600 #. type: Plain text
5601 #: build/C/man1/ldd.1:42
5602 msgid "Usage information."
5603 msgstr ""
5604
5605 #. type: Plain text
5606 #: build/C/man1/ldd.1:53
5607 msgid ""
5608 "The standard version of B<ldd> comes with glibc2.  Libc5 came with an older "
5609 "version, still present on some systems.  The long options are not supported "
5610 "by the libc5 version.  On the other hand, the glibc2 version does not "
5611 "support B<-V> and only has the equivalent B<--version>."
5612 msgstr ""
5613
5614 #. type: Plain text
5615 #: build/C/man1/ldd.1:59
5616 msgid ""
5617 "The libc5 version of this program will use the name of a library given on "
5618 "the command line as-is when it contains a \\(aq/\\(aq; otherwise it searches "
5619 "for the library in the standard locations.  To run it on a shared library in "
5620 "the current directory, prefix the name with \"./\"."
5621 msgstr ""
5622
5623 #. type: Plain text
5624 #: build/C/man1/ldd.1:62
5625 msgid "B<ldd> does not work on a.out shared libraries."
5626 msgstr ""
5627
5628 #.  .SH AUTHOR
5629 #.  David Engel.
5630 #.  Roland McGrath and Ulrich Drepper.
5631 #. type: Plain text
5632 #: build/C/man1/ldd.1:75
5633 msgid ""
5634 "B<ldd> does not work with some extremely old a.out programs which were built "
5635 "before B<ldd> support was added to the compiler releases.  If you use B<ldd> "
5636 "on one of these programs, the program will attempt to run with I<argc> = 0 "
5637 "and the results will be unpredictable."
5638 msgstr ""
5639
5640 #. type: Plain text
5641 #: build/C/man1/ldd.1:78
5642 msgid "B<ld.so>(8), B<ldconfig>(8)"
5643 msgstr ""
5644
5645 #. type: TH
5646 #: build/C/man7/rtld-audit.7:26
5647 #, no-wrap
5648 msgid "RTLD-AUDIT"
5649 msgstr ""
5650
5651 #. type: TH
5652 #: build/C/man7/rtld-audit.7:26
5653 #, no-wrap
5654 msgid "2010-09-10"
5655 msgstr ""
5656
5657 #. type: Plain text
5658 #: build/C/man7/rtld-audit.7:29
5659 msgid "rtld-audit - auditing API for the dynamic linker"
5660 msgstr ""
5661
5662 #. type: Plain text
5663 #: build/C/man7/rtld-audit.7:31
5664 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
5665 msgstr ""
5666
5667 #. type: Plain text
5668 #: build/C/man7/rtld-audit.7:33
5669 msgid "B<#include E<lt>link.hE<gt>>"
5670 msgstr ""
5671
5672 #. type: Plain text
5673 #: build/C/man7/rtld-audit.7:41
5674 msgid ""
5675 "The GNU dynamic linker (run-time linker)  provides an auditing API that "
5676 "allows an application to be notified when various dynamic linking events "
5677 "occur.  This API is very similar to the auditing interface provided by the "
5678 "Solaris run-time linker.  The necessary constants and prototypes are defined "
5679 "by including I<E<lt>link.hE<gt>>."
5680 msgstr ""
5681
5682 #. type: Plain text
5683 #: build/C/man7/rtld-audit.7:48
5684 msgid ""
5685 "To use this interface, the programmer creates a shared library that "
5686 "implements a standard set of function names.  Not all of the functions need "
5687 "to be implemented: in most cases, if the programmer is not interested in a "
5688 "particular class of auditing event, then no implementation needs to be "
5689 "provided for the corresponding auditing function."
5690 msgstr ""
5691
5692 #. type: Plain text
5693 #: build/C/man7/rtld-audit.7:56
5694 msgid ""
5695 "To employ the auditing interface, the environment variable B<LD_AUDIT> must "
5696 "be defined to contain a colon-separated list of shared libraries, each of "
5697 "which can implement (parts of) the auditing API.  When an auditable event "
5698 "occurs, the corresponding function is invoked in each library, in the order "
5699 "that the libraries are listed."
5700 msgstr ""
5701
5702 #. type: SS
5703 #: build/C/man7/rtld-audit.7:56
5704 #, no-wrap
5705 msgid "la_version()"
5706 msgstr ""
5707
5708 #. type: Plain text
5709 #: build/C/man7/rtld-audit.7:60
5710 #, no-wrap
5711 msgid "B<unsigned int la_version(unsigned int >I<version>B<);>\n"
5712 msgstr ""
5713
5714 #. type: Plain text
5715 #: build/C/man7/rtld-audit.7:72
5716 msgid ""
5717 "This is the only function that I<must> be defined by an auditing library: it "
5718 "performs the initial handshake between the dynamic linker and the auditing "
5719 "library.  When invoking this function, the dynamic linker passes, in "
5720 "I<version>, the highest version of the auditing interface that the linker "
5721 "supports.  If necessary, the auditing library can check that this version is "
5722 "sufficient for its requirements."
5723 msgstr ""
5724
5725 #. type: Plain text
5726 #: build/C/man7/rtld-audit.7:81
5727 msgid ""
5728 "As its function result, this function should return the version of the "
5729 "auditing interface that this auditing library expects to use (returning "
5730 "I<version> is acceptable).  If the returned value is 0, or a version that is "
5731 "greater than that supported by the dynamic linker, then the audit library is "
5732 "ignored."
5733 msgstr ""
5734
5735 #. type: SS
5736 #: build/C/man7/rtld-audit.7:81
5737 #, no-wrap
5738 msgid "la_objsearch()"
5739 msgstr ""
5740
5741 #. type: Plain text
5742 #: build/C/man7/rtld-audit.7:86
5743 #, no-wrap
5744 msgid ""
5745 "B<char *la_objsearch(const char *>I<name>B<, uintptr_t *>I<cookie>B<,>\n"
5746 "B<                   unsigned int >I<flag>B<);>\n"
5747 msgstr ""
5748
5749 #. type: Plain text
5750 #: build/C/man7/rtld-audit.7:97
5751 msgid ""
5752 "The dynamic linker invokes this function to inform the auditing library that "
5753 "it is about to search for a shared object.  The I<name> argument is the "
5754 "filename or pathname that is to be searched for.  I<cookie> identifies the "
5755 "shared object that initiated the search.  I<flag> is set to one of the "
5756 "following values:"
5757 msgstr ""
5758
5759 #. type: TP
5760 #: build/C/man7/rtld-audit.7:97
5761 #, no-wrap
5762 msgid "B<LA_SER_ORIG>"
5763 msgstr ""
5764
5765 #. type: Plain text
5766 #: build/C/man7/rtld-audit.7:106
5767 msgid ""
5768 "This is the original name that is being searched for.  Typically, this name "
5769 "comes from an ELF B<DT_NEEDED> entry, or is the I<filename> argument given "
5770 "to B<dlopen>(3)."
5771 msgstr ""
5772
5773 #. type: TP
5774 #: build/C/man7/rtld-audit.7:106
5775 #, no-wrap
5776 msgid "B<LA_SER_LIBPATH>"
5777 msgstr ""
5778
5779 #. type: Plain text
5780 #: build/C/man7/rtld-audit.7:111
5781 msgid "I<name> was created using a directory specified in B<LD_LIBRARY_PATH>."
5782 msgstr ""
5783
5784 #. type: TP
5785 #: build/C/man7/rtld-audit.7:111
5786 #, no-wrap
5787 msgid "B<LA_SER_RUNPATH>"
5788 msgstr ""
5789
5790 #. type: Plain text
5791 #: build/C/man7/rtld-audit.7:119
5792 msgid ""
5793 "I<name> was created using a directory specified in an ELF B<DT_RPATH> or "
5794 "B<DT_RUNPATH> list."
5795 msgstr ""
5796
5797 #. type: TP
5798 #: build/C/man7/rtld-audit.7:119
5799 #, no-wrap
5800 msgid "B<LA_SER_CONFIG>"
5801 msgstr ""
5802
5803 #. type: Plain text
5804 #: build/C/man7/rtld-audit.7:126
5805 msgid "I<name> was found via the B<ldconfig>(8)  cache (I</etc/ld.so.cache>)."
5806 msgstr ""
5807
5808 #. type: TP
5809 #: build/C/man7/rtld-audit.7:126
5810 #, no-wrap
5811 msgid "B<LA_SER_DEFAULT>"
5812 msgstr ""
5813
5814 #. type: Plain text
5815 #: build/C/man7/rtld-audit.7:130
5816 msgid "I<name> was found via a search of one of the default directories."
5817 msgstr ""
5818
5819 #. type: TP
5820 #: build/C/man7/rtld-audit.7:130
5821 #, no-wrap
5822 msgid "B<LA_SER_SECURE>"
5823 msgstr ""
5824
5825 #. type: Plain text
5826 #: build/C/man7/rtld-audit.7:134
5827 msgid "I<name> is specific to a secure object (unused on Linux)."
5828 msgstr ""
5829
5830 #. type: Plain text
5831 #: build/C/man7/rtld-audit.7:143
5832 msgid ""
5833 "As its function result, B<la_objsearch>()  returns the pathname that the "
5834 "dynamic linker should use for further processing.  If NULL is returned, then "
5835 "this pathname is ignored for further processing.  If this audit library "
5836 "simply intends to monitor search paths, then I<name> should be returned."
5837 msgstr ""
5838
5839 #. type: SS
5840 #: build/C/man7/rtld-audit.7:143
5841 #, no-wrap
5842 msgid "la_activity()"
5843 msgstr ""
5844
5845 #. type: Plain text
5846 #: build/C/man7/rtld-audit.7:147
5847 #, no-wrap
5848 msgid "B<void la_activity( uintptr_t *>I<cookie>B<, unsigned int >I<flag>B<);>\n"
5849 msgstr ""
5850
5851 #. type: Plain text
5852 #: build/C/man7/rtld-audit.7:156
5853 msgid ""
5854 "The dynamic linker calls this function to inform the auditing library that "
5855 "link-map activity is occurring.  I<cookie> identifies the object at the head "
5856 "of the link map.  When the dynamic linker invokes this function, I<flag> is "
5857 "set to one of the following values:"
5858 msgstr ""
5859
5860 #. type: TP
5861 #: build/C/man7/rtld-audit.7:156
5862 #, no-wrap
5863 msgid "B<LA_ACT_ADD>"
5864 msgstr ""
5865
5866 #. type: Plain text
5867 #: build/C/man7/rtld-audit.7:159
5868 msgid "New objects are being added to the link map."
5869 msgstr ""
5870
5871 #. type: TP
5872 #: build/C/man7/rtld-audit.7:159
5873 #, no-wrap
5874 msgid "B<LA_ACT_DELETE>"
5875 msgstr ""
5876
5877 #. type: Plain text
5878 #: build/C/man7/rtld-audit.7:162
5879 msgid "Objects are being removed from the link map."
5880 msgstr ""
5881
5882 #. type: TP
5883 #: build/C/man7/rtld-audit.7:162
5884 #, no-wrap
5885 msgid "B<LA_ACT_CONSISTENT>"
5886 msgstr ""
5887
5888 #. type: Plain text
5889 #: build/C/man7/rtld-audit.7:165
5890 msgid "Link-map activity has been completed: the map is once again consistent."
5891 msgstr ""
5892
5893 #. type: SS
5894 #: build/C/man7/rtld-audit.7:165
5895 #, no-wrap
5896 msgid "la_objopen()"
5897 msgstr ""
5898
5899 #. type: Plain text
5900 #: build/C/man7/rtld-audit.7:170
5901 #, no-wrap
5902 msgid ""
5903 "B<unsigned int la_objopen(struct link_map *>I<map>B<, Lmid_t >I<lmid>B<,>\n"
5904 "B<                        uintptr_t *>I<cookie>B<);>\n"
5905 msgstr ""
5906
5907 #. type: Plain text
5908 #: build/C/man7/rtld-audit.7:179
5909 msgid ""
5910 "The dynamic linker calls this function when a new shared object is loaded.  "
5911 "The I<map> argument is a pointer to a link-map structure that describes the "
5912 "object.  The I<lmid> field has one of the following values"
5913 msgstr ""
5914
5915 #. type: TP
5916 #: build/C/man7/rtld-audit.7:179
5917 #, no-wrap
5918 msgid "B<LM_ID_BASE>"
5919 msgstr ""
5920
5921 #. type: Plain text
5922 #: build/C/man7/rtld-audit.7:182
5923 msgid "Link map is part of the initial namespace."
5924 msgstr ""
5925
5926 #. type: TP
5927 #: build/C/man7/rtld-audit.7:182
5928 #, no-wrap
5929 msgid "B<LM_ID_NEWLM>"
5930 msgstr ""
5931
5932 #. type: Plain text
5933 #: build/C/man7/rtld-audit.7:186
5934 msgid "Link map is part of a new namespace requested via B<dlmopen>(3)."
5935 msgstr ""
5936
5937 #. type: Plain text
5938 #: build/C/man7/rtld-audit.7:194
5939 msgid ""
5940 "I<cookie> is a pointer to an identifier for this object.  The identifier is "
5941 "provided to later calls to functions in the auditing library in order to "
5942 "identify this object.  This identifier is initialized to point to object's "
5943 "link map, but the audit library can change the identifier to some other "
5944 "value that it may prefer to use to identify the object."
5945 msgstr ""
5946
5947 #. type: Plain text
5948 #: build/C/man7/rtld-audit.7:201
5949 msgid ""
5950 "As its return value, B<la_objopen>()  returns a bit mask created by ORing "
5951 "zero or more of the following constants, which allow the auditing library to "
5952 "select the objects to be monitored by B<la_symbind*>():"
5953 msgstr ""
5954
5955 #. type: TP
5956 #: build/C/man7/rtld-audit.7:201
5957 #, no-wrap
5958 msgid "B<LA_FLG_BINDTO>"
5959 msgstr ""
5960
5961 #. type: Plain text
5962 #: build/C/man7/rtld-audit.7:204
5963 msgid "Audit symbol bindings to this object."
5964 msgstr ""
5965
5966 #. type: TP
5967 #: build/C/man7/rtld-audit.7:204
5968 #, no-wrap
5969 msgid "B<LA_FLG_BINDFROM>"
5970 msgstr ""
5971
5972 #. type: Plain text
5973 #: build/C/man7/rtld-audit.7:207
5974 msgid "Audit symbol bindings from this object."
5975 msgstr ""
5976
5977 #. type: Plain text
5978 #: build/C/man7/rtld-audit.7:211
5979 msgid ""
5980 "A return value of 0 from B<la_objopen>()  indicates that no symbol bindings "
5981 "should be audited for this object."
5982 msgstr ""
5983
5984 #. type: SS
5985 #: build/C/man7/rtld-audit.7:211
5986 #, no-wrap
5987 msgid "la_objclose()"
5988 msgstr ""
5989
5990 #. type: Plain text
5991 #: build/C/man7/rtld-audit.7:215
5992 #, no-wrap
5993 msgid "B<unsigned int la_objclose(uintptr_t *>I<cookie);>\n"
5994 msgstr ""
5995
5996 #. type: Plain text
5997 #: build/C/man7/rtld-audit.7:224
5998 msgid ""
5999 "The dynamic linker invokes this function after any finalization code for the "
6000 "object has been executed, before the object is unloaded.  The I<cookie> "
6001 "argument is the identifier obtained from a previous invocation of "
6002 "B<la_objopen>()."
6003 msgstr ""
6004
6005 #. type: Plain text
6006 #: build/C/man7/rtld-audit.7:228
6007 msgid ""
6008 "In the current implementation, the value returned by B<la_objclose>()  is "
6009 "ignored."
6010 msgstr ""
6011
6012 #. type: SS
6013 #: build/C/man7/rtld-audit.7:228
6014 #, no-wrap
6015 msgid "la_preinit()"
6016 msgstr ""
6017
6018 #. type: Plain text
6019 #: build/C/man7/rtld-audit.7:232
6020 #, no-wrap
6021 msgid "B<void la_preinit(uintptr_t *>I<cookie>B<);>\n"
6022 msgstr ""
6023
6024 #. type: Plain text
6025 #: build/C/man7/rtld-audit.7:242
6026 msgid ""
6027 "The dynamic linker invokes this function after all shared objects have been "
6028 "loaded, before control is passed to the application (i.e., before calling "
6029 "I<main>()).  Note that I<main>()  may still later dynamically load objects "
6030 "using B<dlopen>(3)."
6031 msgstr ""
6032
6033 #. type: SS
6034 #: build/C/man7/rtld-audit.7:242
6035 #, no-wrap
6036 msgid "la_symbind*()"
6037 msgstr ""
6038
6039 #. type: Plain text
6040 #: build/C/man7/rtld-audit.7:251
6041 #, no-wrap
6042 msgid ""
6043 "B<uintptr_t la_symbind32(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
6044 "B<                       uintptr_t *>I<refcook>B<, uintptr_t "
6045 "*>I<defcook>B<,>\n"
6046 "B<                       unsigned int *>I<flags>B<, const char "
6047 "*>I<symname>B<);>\n"
6048 "B<uintptr_t la_symbind64(Elf64_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
6049 "B<                       uintptr_t *>I<refcook>B<, uintptr_t "
6050 "*>I<defcook>B<,>\n"
6051 "B<                       unsigned int *>I<flags>B<, const char "
6052 "*>I<symname>B<);>\n"
6053 msgstr ""
6054
6055 #. type: Plain text
6056 #: build/C/man7/rtld-audit.7:263
6057 msgid ""
6058 "The dynamic linker invokes one of these functions when a symbol binding "
6059 "occurs between two shared objects that have been marked for auditing "
6060 "notification by B<la_objopen>().  The B<la_symbind32>()  function is "
6061 "employed on 32-bit platforms; the B<la_symbind64>()  function is employed on "
6062 "64-bit platforms."
6063 msgstr ""
6064
6065 #. type: Plain text
6066 #: build/C/man7/rtld-audit.7:273
6067 msgid ""
6068 "The I<sym> argument is a pointer to a structure that provides information "
6069 "about the symbol being bound.  The structure definition is shown in "
6070 "I<E<lt>elf.hE<gt>>.  Among the fields of this structure, I<st_value> "
6071 "indicates the address to which the symbol is bound."
6072 msgstr ""
6073
6074 #. type: Plain text
6075 #: build/C/man7/rtld-audit.7:278
6076 msgid ""
6077 "The I<ndx> argument gives the index of the symbol in the symbol table of the "
6078 "bound shared object."
6079 msgstr ""
6080
6081 #. type: Plain text
6082 #: build/C/man7/rtld-audit.7:293
6083 msgid ""
6084 "The I<refcook> argument identifies the shared object that is making the "
6085 "symbol reference; this is the same identifier that is provided to the "
6086 "B<la_objopen>()  function that returned B<LA_FLG_BINDFROM>.  The I<defcook> "
6087 "argument identifies the shared object that defines the referenced symbol; "
6088 "this is the same identifier that is provided to the B<la_objopen>()  "
6089 "function that returned B<LA_FLG_BINDTO>."
6090 msgstr ""
6091
6092 #. type: Plain text
6093 #: build/C/man7/rtld-audit.7:297
6094 msgid "The I<symname> argument points a string containing the name of the symbol."
6095 msgstr ""
6096
6097 #.  LA_SYMB_STRUCTCALL appears to be unused
6098 #. type: Plain text
6099 #: build/C/man7/rtld-audit.7:305
6100 msgid ""
6101 "The I<flags> argument is a bit mask that both provides information about the "
6102 "symbol and can be used to modify further auditing of this PLT (Procedure "
6103 "Linkage Table) entry.  The dynamic linker may supply the following bit "
6104 "values in this argument:"
6105 msgstr ""
6106
6107 #. type: TP
6108 #: build/C/man7/rtld-audit.7:305
6109 #, no-wrap
6110 msgid "B<LA_SYMB_DLSYM>"
6111 msgstr ""
6112
6113 #. type: Plain text
6114 #: build/C/man7/rtld-audit.7:309
6115 msgid "The binding resulted from a call to B<dlsym>(3)."
6116 msgstr ""
6117
6118 #. type: TP
6119 #: build/C/man7/rtld-audit.7:309
6120 #, no-wrap
6121 msgid "B<LA_SYMB_ALTVALUE>"
6122 msgstr ""
6123
6124 #. type: Plain text
6125 #: build/C/man7/rtld-audit.7:314
6126 msgid ""
6127 "A previous B<la_symbind*>()  call returned an alternate value for this "
6128 "symbol."
6129 msgstr ""
6130
6131 #.  pltenter/pltexit are called for non-dynamically loaded libraries,
6132 #.  but don't seem to be called for dynamically loaded libs?
6133 #.  Is this the same on Solaris?
6134 #. type: Plain text
6135 #: build/C/man7/rtld-audit.7:328
6136 msgid ""
6137 "By default, if the auditing library implements B<la_pltenter>()  and "
6138 "B<la_pltexit>()  functions (see below), then these functions are invoked, "
6139 "after B<la_symbind>(), for PLT entries, each time the symbol is referenced.  "
6140 "The following flags can be ORed into I<*flags> to change this default "
6141 "behavior:"
6142 msgstr ""
6143
6144 #. type: TP
6145 #: build/C/man7/rtld-audit.7:328
6146 #, no-wrap
6147 msgid "B<LA_SYMB_NOPLTENTER>"
6148 msgstr ""
6149
6150 #. type: Plain text
6151 #: build/C/man7/rtld-audit.7:333
6152 msgid "Don't call B<la_pltenter>()  for this symbol."
6153 msgstr ""
6154
6155 #. type: TP
6156 #: build/C/man7/rtld-audit.7:333
6157 #, no-wrap
6158 msgid "B<LA_SYMB_NOPLTEXIT>"
6159 msgstr ""
6160
6161 #. type: Plain text
6162 #: build/C/man7/rtld-audit.7:338
6163 msgid "Don't call B<la_pltexit>()  for this symbol."
6164 msgstr ""
6165
6166 #. type: Plain text
6167 #: build/C/man7/rtld-audit.7:349
6168 msgid ""
6169 "The return value of B<la_symbind32>()  and B<la_symbind64>()  is the address "
6170 "to which control should be passed after the function returns.  If the "
6171 "auditing library is simply monitoring symbol bindings, then it should return "
6172 "I<sym-E<gt>st_name>.  A different value may be returned if the library "
6173 "wishes to direct control to an alternate location."
6174 msgstr ""
6175
6176 #. type: SS
6177 #: build/C/man7/rtld-audit.7:349
6178 #, no-wrap
6179 msgid "la_pltenter()"
6180 msgstr ""
6181
6182 #. type: Plain text
6183 #: build/C/man7/rtld-audit.7:355 build/C/man7/rtld-audit.7:415
6184 msgid ""
6185 "The precise name and argument types for this function depend on the hardware "
6186 "platform.  (The appropriate definition is supplied by I<E<lt>link.hE<gt>>.)  "
6187 "Here is the definition for x86-32:"
6188 msgstr ""
6189
6190 #. type: Plain text
6191 #: build/C/man7/rtld-audit.7:361
6192 #, no-wrap
6193 msgid ""
6194 "B<Elf32_Addr la_i86_gnu_pltenter(Elf32_Sym *>I<sym>B<, unsigned int "
6195 ">I<ndx>B<,>\n"
6196 "B<                 uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
6197 "B<                 La_i86_regs *>I<regs>B<, unsigned int *>I<flags>B<,>\n"
6198 "B<                 const char *>I<symname>B<, long int "
6199 "*>I<framesizep>B<);>\n"
6200 msgstr ""
6201
6202 #. type: Plain text
6203 #: build/C/man7/rtld-audit.7:365
6204 msgid ""
6205 "This function is invoked just before a PLT entry is called, between two "
6206 "shared objects that have been marked for binding notification."
6207 msgstr ""
6208
6209 #. type: Plain text
6210 #: build/C/man7/rtld-audit.7:375 build/C/man7/rtld-audit.7:438
6211 msgid ""
6212 "The I<sym>, I<ndx>, I<refcook>, I<defcook>, and I<symname> are as for "
6213 "B<la_symbind*>()."
6214 msgstr ""
6215
6216 #. type: Plain text
6217 #: build/C/man7/rtld-audit.7:382
6218 msgid ""
6219 "The I<regs> argument points to a structure (defined in I<E<lt>link.hE<gt>>)  "
6220 "containing the values of registers to be used for the call to this PLT "
6221 "entry."
6222 msgstr ""
6223
6224 #. type: Plain text
6225 #: build/C/man7/rtld-audit.7:388
6226 msgid ""
6227 "The I<flags> argument points to a bit mask that conveys information about, "
6228 "and can be used to modify subsequent auditing of, this PLT entry, as for "
6229 "B<la_symbind*>()."
6230 msgstr ""
6231
6232 #.  FIXME is the following correct?
6233 #. type: Plain text
6234 #: build/C/man7/rtld-audit.7:404
6235 msgid ""
6236 "The I<framesizep> argument points to a I<long\\ int> buffer that can be used "
6237 "to explicitly set the frame size used for the call to this PLT entry.  If "
6238 "different B<la_pltenter>()  invocations for this symbol return different "
6239 "values, then the maximum returned value is used.  The B<la_pltenter>()  "
6240 "function is only called if this buffer is explicitly set to a suitable "
6241 "value."
6242 msgstr ""
6243
6244 #. type: Plain text
6245 #: build/C/man7/rtld-audit.7:409
6246 msgid "The return value of B<la_pltenter>()  is as for B<la_symbind*>()."
6247 msgstr ""
6248
6249 #. type: SS
6250 #: build/C/man7/rtld-audit.7:409
6251 #, no-wrap
6252 msgid "la_pltexit()"
6253 msgstr ""
6254
6255 #. type: Plain text
6256 #: build/C/man7/rtld-audit.7:421
6257 #, no-wrap
6258 msgid ""
6259 "B<unsigned int la_i86_gnu_pltexit(Elf32_Sym *>I<sym>B<, unsigned int "
6260 ">I<ndx>B<,>\n"
6261 "B<                 uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
6262 "B<                 const La_i86_regs *>I<inregs>B<, La_i86_retval "
6263 "*>I<outregs>B<,>\n"
6264 "B<                 const char *>I<symname>B<);>\n"
6265 msgstr ""
6266
6267 #. type: Plain text
6268 #: build/C/man7/rtld-audit.7:428
6269 msgid ""
6270 "This function is called when a PLT entry, made between two shared objects "
6271 "that have been marked for binding notification, returns.  The function is "
6272 "called just before control returns to the caller of the PLT entry."
6273 msgstr ""
6274
6275 #. type: Plain text
6276 #: build/C/man7/rtld-audit.7:451
6277 msgid ""
6278 "The I<inregs> argument points to a structure (defined in "
6279 "I<E<lt>link.hE<gt>>)  containing the values of registers used for the call "
6280 "to this PLT entry.  The I<outregs> argument points to a structure (defined "
6281 "in I<E<lt>link.hE<gt>>)  containing return values for the call to this PLT "
6282 "entry.  These values can be modified by the caller, and the changes will be "
6283 "visible to the caller of the PLT entry."
6284 msgstr ""
6285
6286 #.  This differs from Solaris, where an audit library that monitors
6287 #.  symbol binding should return the value of the 'retval' argument
6288 #.  (not provided by GNU, but equivalent to returning outregs->lrv_eax
6289 #.  on (say) x86-32).
6290 #. type: Plain text
6291 #: build/C/man7/rtld-audit.7:459
6292 msgid ""
6293 "In the current GNU implementation, the return value of B<la_pltexit>()  is "
6294 "ignored."
6295 msgstr ""
6296
6297 #. type: Plain text
6298 #: build/C/man7/rtld-audit.7:465
6299 msgid ""
6300 "This API is nonstandard, but very similar to the Solaris API, described in "
6301 "the Solaris I<Linker and Libraries Guide>, in the chapter I<Runtime Linker "
6302 "Auditing Interface>."
6303 msgstr ""
6304
6305 #. type: Plain text
6306 #: build/C/man7/rtld-audit.7:468
6307 msgid "Note the following differences from the Solaris dynamic linker auditing API:"
6308 msgstr ""
6309
6310 #. type: IP
6311 #: build/C/man7/rtld-audit.7:468 build/C/man7/rtld-audit.7:472 build/C/man7/rtld-audit.7:480
6312 #, no-wrap
6313 msgid "*"
6314 msgstr ""
6315
6316 #. type: Plain text
6317 #: build/C/man7/rtld-audit.7:472
6318 msgid ""
6319 "The Solaris B<la_objfilter>()  interface is not supported by the GNU "
6320 "implementation."
6321 msgstr ""
6322
6323 #. type: Plain text
6324 #: build/C/man7/rtld-audit.7:480
6325 msgid ""
6326 "The Solaris B<la_symbind32>()  and B<la_pltexit>()  functions do not provide "
6327 "a I<symname> argument."
6328 msgstr ""
6329
6330 #. type: Plain text
6331 #: build/C/man7/rtld-audit.7:490
6332 msgid ""
6333 "The Solaris B<la_pltexit>()  function does not provide I<inregs> and "
6334 "I<outregs> arguments (but does provide a I<retval> argument with the "
6335 "function return value)."
6336 msgstr ""
6337
6338 #. type: Plain text
6339 #: build/C/man7/rtld-audit.7:494
6340 #, no-wrap
6341 msgid ""
6342 "#include E<lt>link.hE<gt>\n"
6343 "#include E<lt>stdio.hE<gt>\n"
6344 msgstr ""
6345
6346 #. type: Plain text
6347 #: build/C/man7/rtld-audit.7:499
6348 #, no-wrap
6349 msgid ""
6350 "unsigned int\n"
6351 "la_version(unsigned int version)\n"
6352 "{\n"
6353 "    printf(\"la_version(): %d\\en\", version);\n"
6354 msgstr ""
6355
6356 #. type: Plain text
6357 #: build/C/man7/rtld-audit.7:502
6358 #, no-wrap
6359 msgid ""
6360 "    return version;\n"
6361 "}\n"
6362 msgstr ""
6363
6364 #. type: Plain text
6365 #: build/C/man7/rtld-audit.7:515
6366 #, no-wrap
6367 msgid ""
6368 "char *\n"
6369 "la_objsearch(const char *name, uintptr_t *cookie, unsigned int flag)\n"
6370 "{\n"
6371 "    printf(\"la_objsearch(): name = %s; cookie = %x\", name, cookie);\n"
6372 "    printf(\"; flag = %s\\en\",\n"
6373 "            (flag == LA_SER_ORIG) ?    \"LA_SER_ORIG\" :\n"
6374 "            (flag == LA_SER_LIBPATH) ? \"LA_SER_LIBPATH\" :\n"
6375 "            (flag == LA_SER_RUNPATH) ? \"LA_SER_RUNPATH\" :\n"
6376 "            (flag == LA_SER_DEFAULT) ? \"LA_SER_DEFAULT\" :\n"
6377 "            (flag == LA_SER_CONFIG) ?  \"LA_SER_CONFIG\" :\n"
6378 "            (flag == LA_SER_SECURE) ?  \"LA_SER_SECURE\" :\n"
6379 "            \"???\");\n"
6380 msgstr ""
6381
6382 #. type: Plain text
6383 #: build/C/man7/rtld-audit.7:518
6384 #, no-wrap
6385 msgid ""
6386 "    return name;\n"
6387 "}\n"
6388 msgstr ""
6389
6390 #. type: Plain text
6391 #: build/C/man7/rtld-audit.7:528
6392 #, no-wrap
6393 msgid ""
6394 "void\n"
6395 "la_activity (uintptr_t *cookie, unsigned int flag)\n"
6396 "{\n"
6397 "    printf(\"la_activity(): cookie = %x; flag = %s\\en\", cookie,\n"
6398 "            (flag == LA_ACT_CONSISTENT) ? \"LA_ACT_CONSISTENT\" :\n"
6399 "            (flag == LA_ACT_ADD) ?        \"LA_ACT_ADD\" :\n"
6400 "            (flag == LA_ACT_DELETE) ?     \"LA_ACT_DELETE\" :\n"
6401 "            \"???\");\n"
6402 "}\n"
6403 msgstr ""
6404
6405 #. type: Plain text
6406 #: build/C/man7/rtld-audit.7:538
6407 #, no-wrap
6408 msgid ""
6409 "unsigned int\n"
6410 "la_objopen(struct link_map *map, Lmid_t lmid, uintptr_t *cookie)\n"
6411 "{\n"
6412 "    printf(\"la_objopen(): loading \\e\"%s\\e\"; lmid = %s; "
6413 "cookie=%x\\en\",\n"
6414 "            map-E<gt>l_name,\n"
6415 "            (lmid == LM_ID_BASE) ?  \"LM_ID_BASE\" :\n"
6416 "            (lmid == LM_ID_NEWLM) ? \"LM_ID_NEWLM\" :\n"
6417 "            \"???\",\n"
6418 "            cookie);\n"
6419 msgstr ""
6420
6421 #. type: Plain text
6422 #: build/C/man7/rtld-audit.7:541
6423 #, no-wrap
6424 msgid ""
6425 "    return LA_FLG_BINDTO | LA_FLG_BINDFROM;\n"
6426 "}\n"
6427 msgstr ""
6428
6429 #. type: Plain text
6430 #: build/C/man7/rtld-audit.7:546
6431 #, no-wrap
6432 msgid ""
6433 "unsigned int\n"
6434 "la_objclose (uintptr_t *cookie)\n"
6435 "{\n"
6436 "    printf(\"la_objclose(): %x\\en\", cookie);\n"
6437 msgstr ""
6438
6439 #. type: Plain text
6440 #: build/C/man7/rtld-audit.7:549
6441 #, no-wrap
6442 msgid ""
6443 "    return 0;\n"
6444 "}\n"
6445 msgstr ""
6446
6447 #. type: Plain text
6448 #: build/C/man7/rtld-audit.7:555
6449 #, no-wrap
6450 msgid ""
6451 "void\n"
6452 "la_preinit(uintptr_t *cookie)\n"
6453 "{\n"
6454 "    printf(\"la_preinit(): %x\\en\", cookie);\n"
6455 "}\n"
6456 msgstr ""
6457
6458 #. type: Plain text
6459 #: build/C/man7/rtld-audit.7:564
6460 #, no-wrap
6461 msgid ""
6462 "uintptr_t\n"
6463 "la_symbind32(Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
6464 "        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
6465 "{\n"
6466 "    printf(\"la_symbind32(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
6467 "            symname, sym-E<gt>st_value);\n"
6468 "    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
6469 "    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
6470 msgstr ""
6471
6472 #. type: Plain text
6473 #: build/C/man7/rtld-audit.7:567 build/C/man7/rtld-audit.7:579 build/C/man7/rtld-audit.7:589
6474 #, no-wrap
6475 msgid ""
6476 "    return sym-E<gt>st_value;\n"
6477 "}\n"
6478 msgstr ""
6479
6480 #. type: Plain text
6481 #: build/C/man7/rtld-audit.7:576
6482 #, no-wrap
6483 msgid ""
6484 "uintptr_t\n"
6485 "la_symbind64(Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
6486 "        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
6487 "{\n"
6488 "    printf(\"la_symbind64(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
6489 "            symname, sym-E<gt>st_value);\n"
6490 "    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
6491 "    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
6492 msgstr ""
6493
6494 #. type: Plain text
6495 #: build/C/man7/rtld-audit.7:586
6496 #, no-wrap
6497 msgid ""
6498 "Elf32_Addr\n"
6499 "la_i86_gnu_pltenter(Elf32_Sym *sym, unsigned int ndx,\n"
6500 "        uintptr_t *refcook, uintptr_t *defcook, La_i86_regs *regs,\n"
6501 "        unsigned int *flags, const char *symname, long int *framesizep)\n"
6502 "{\n"
6503 "    printf(\"la_i86_gnu_pltenter(): %s (%p)\\en\", symname, "
6504 "sym-E<gt>st_value);\n"
6505 msgstr ""
6506
6507 #.  FIXME Specifying multiple audit libraries doesn't work on GNU.
6508 #.  My simple tests on Solaris work okay, but not on Linux -- mtk, Jan 2009
6509 #.  glibc bug filed: http://sourceware.org/bugzilla/show_bug.cgi?id=9733
6510 #.  Reportedly, this is fixed on 16 Mar 2009 (i.e., for glibc 2.10)
6511 #. type: Plain text
6512 #: build/C/man7/rtld-audit.7:600
6513 msgid ""
6514 "In glibc versions up to and include 2.9, specifying more than one audit "
6515 "library in B<LD_AUDIT> results in a run-time crash.  This is reportedly "
6516 "fixed in glibc 2.10."
6517 msgstr ""
6518
6519 #. type: Plain text
6520 #: build/C/man7/rtld-audit.7:605
6521 msgid "B<ldd>(1), B<dlopen>(3), B<ld.so>(8), B<ldconfig>(8)"
6522 msgstr ""