OSDN Git Service

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