OSDN Git Service

Update README
[linuxjm/LDP_man-pages.git] / po4a / ld / po / ld.pot
index 313727d..fba8b42 100644 (file)
@@ -7,58 +7,58 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2012-05-28 07:16+0900\n"
+"POT-Creation-Date: 2015-02-04 23:32+0900\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: \n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. type: TH
-#: build/C/man3/dl_iterate_phdr.3:24
+#: build/C/man3/dl_iterate_phdr.3:25
 #, no-wrap
 msgid "DL_ITERATE_PHDR"
 msgstr ""
 
 #. type: TH
-#: build/C/man3/dl_iterate_phdr.3:24
+#: build/C/man3/dl_iterate_phdr.3:25
 #, no-wrap
 msgid "2007-05-18"
 msgstr ""
 
 #. type: TH
-#: build/C/man3/dl_iterate_phdr.3:24 build/C/man3/end.3:25 build/C/man8/ld.so.8:2 build/C/man8/ldconfig.8:22
+#: 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/man1/memusage.1:24 build/C/man1/memusagestat.1:23 build/C/man1/mtrace.1:23 build/C/man1/pldd.1:25 build/C/man8/sln.8:25
 #, no-wrap
 msgid "GNU"
 msgstr ""
 
 #. type: TH
-#: build/C/man3/dl_iterate_phdr.3:24 build/C/man3/dlopen.3:35 build/C/man5/elf.5:33 build/C/man3/end.3:25 build/C/man8/ld.so.8:2 build/C/man8/ldconfig.8:22 build/C/man1/ldd.1:10 build/C/man7/rtld-audit.7:26
+#: 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
 #, no-wrap
 msgid "Linux Programmer's Manual"
 msgstr ""
 
 #. type: SH
-#: build/C/man3/dl_iterate_phdr.3:25 build/C/man3/dlopen.3:36 build/C/man5/elf.5:34 build/C/man3/end.3:26 build/C/man8/ld.so.8:3 build/C/man8/ldconfig.8:23 build/C/man1/ldd.1:11 build/C/man7/rtld-audit.7:27
+#: 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/man1/memusage.1:25 build/C/man1/memusagestat.1:24 build/C/man1/mtrace.1:24 build/C/man1/pldd.1:26 build/C/man7/rtld-audit.7:29 build/C/man8/sln.8:26 build/C/man1/sprof.1:26
 #, no-wrap
 msgid "NAME"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/dl_iterate_phdr.3:27
+#: build/C/man3/dl_iterate_phdr.3:28
 msgid "dl_iterate_phdr - walk through list of shared objects"
 msgstr ""
 
 #. type: SH
-#: build/C/man3/dl_iterate_phdr.3:27 build/C/man3/dlopen.3:39 build/C/man5/elf.5:36 build/C/man3/end.3:28 build/C/man8/ld.so.8:5 build/C/man8/ldconfig.8:25 build/C/man1/ldd.1:13 build/C/man7/rtld-audit.7:29
+#: 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/man1/memusage.1:27 build/C/man1/memusagestat.1:26 build/C/man1/mtrace.1:26 build/C/man1/pldd.1:28 build/C/man7/rtld-audit.7:31 build/C/man8/sln.8:28 build/C/man1/sprof.1:28
 #, no-wrap
 msgid "SYNOPSIS"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/dl_iterate_phdr.3:31
+#: build/C/man3/dl_iterate_phdr.3:32
 #, no-wrap
 msgid ""
 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
@@ -70,13 +70,13 @@ msgstr ""
 #, no-wrap
 msgid ""
 "B<int dl_iterate_phdr(>\n"
-"          B<int (*>callbackB<) (struct dl_phdr_info *>infoB<,>\n"
-"                           B<size_t> sizeB<, void *>dataB<),>\n"
-"          B<void *>dataB<);>\n"
+"B<          int (*>I<callback>B<) (struct dl_phdr_info *>I<info>B<,>\n"
+"B<                           size_t >I<size>B<, void *>I<data>B<),>\n"
+"B<          void *>I<data>B<);>\n"
 msgstr ""
 
 #. type: SH
-#: build/C/man3/dl_iterate_phdr.3:38 build/C/man3/dlopen.3:51 build/C/man5/elf.5:41 build/C/man3/end.3:34 build/C/man8/ld.so.8:15 build/C/man8/ldconfig.8:54 build/C/man1/ldd.1:15 build/C/man7/rtld-audit.7:33
+#: build/C/man3/dl_iterate_phdr.3:38 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/man1/memusage.1:29 build/C/man1/memusagestat.1:28 build/C/man1/mtrace.1:28 build/C/man1/pldd.1:33 build/C/man7/rtld-audit.7:35 build/C/man8/sln.8:32 build/C/man1/sprof.1:33
 #, no-wrap
 msgid "DESCRIPTION"
 msgstr ""
@@ -207,7 +207,7 @@ msgid ""
 msgstr ""
 
 #. type: SH
-#: build/C/man3/dl_iterate_phdr.3:154
+#: build/C/man3/dl_iterate_phdr.3:154 build/C/man1/pldd.1:50
 #, no-wrap
 msgid "VERSIONS"
 msgstr ""
@@ -218,7 +218,7 @@ msgid "B<dl_iterate_phdr>()  has been supported in glibc since version 2.2.4."
 msgstr ""
 
 #. type: SH
-#: build/C/man3/dl_iterate_phdr.3:157 build/C/man3/dlopen.3:381 build/C/man3/end.3:49 build/C/man7/rtld-audit.7:459
+#: build/C/man3/dl_iterate_phdr.3:157 build/C/man3/dlopen.3:381 build/C/man3/end.3:50 build/C/man1/pldd.1:53 build/C/man7/rtld-audit.7:461 build/C/man1/sprof.1:75
 #, no-wrap
 msgid "CONFORMING TO"
 msgstr ""
@@ -231,7 +231,7 @@ msgid ""
 msgstr ""
 
 #. type: SH
-#: build/C/man3/dl_iterate_phdr.3:161 build/C/man3/dlopen.3:446 build/C/man3/end.3:75 build/C/man7/rtld-audit.7:490
+#: build/C/man3/dl_iterate_phdr.3:161 build/C/man3/dlopen.3:446 build/C/man3/end.3:76 build/C/man1/memusage.1:201 build/C/man1/memusagestat.1:81 build/C/man1/pldd.1:71 build/C/man7/rtld-audit.7:502 build/C/man1/sprof.1:79
 #, no-wrap
 msgid "EXAMPLE"
 msgstr ""
@@ -295,7 +295,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/dl_iterate_phdr.3:194 build/C/man3/end.3:106
+#: build/C/man3/dl_iterate_phdr.3:194 build/C/man3/end.3:107
 #, no-wrap
 msgid ""
 "    exit(EXIT_SUCCESS);\n"
@@ -303,31 +303,38 @@ msgid ""
 msgstr ""
 
 #. type: SH
-#: build/C/man3/dl_iterate_phdr.3:195 build/C/man3/dlopen.3:507 build/C/man5/elf.5:1937 build/C/man3/end.3:107 build/C/man8/ld.so.8:409 build/C/man8/ldconfig.8:175 build/C/man1/ldd.1:75 build/C/man7/rtld-audit.7:600
+#: build/C/man3/dl_iterate_phdr.3:195 build/C/man3/dlopen.3:521 build/C/man5/elf.5:1939 build/C/man3/end.3:108 build/C/man8/ld.so.8:489 build/C/man8/ldconfig.8:175 build/C/man1/ldd.1:108 build/C/man1/memusage.1:271 build/C/man1/memusagestat.1:88 build/C/man1/mtrace.1:61 build/C/man1/pldd.1:91 build/C/man7/rtld-audit.7:602 build/C/man8/sln.8:60 build/C/man1/sprof.1:299
 #, no-wrap
 msgid "SEE ALSO"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/dl_iterate_phdr.3:205
+#: build/C/man3/dl_iterate_phdr.3:202
 msgid ""
 "B<ldd>(1), B<objdump>(1), B<readelf>(1), B<dlopen>(3), B<elf>(5), "
-"B<ld.so>(8), and the I<Executable and Linking Format Specification> "
-"available at various locations online."
+"B<ld.so>(8)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/dl_iterate_phdr.3:205
+msgid ""
+"I<Executable and Linking Format Specification>, available at various "
+"locations online."
 msgstr ""
 
 #. type: SH
-#: build/C/man3/dl_iterate_phdr.3:205 build/C/man3/dlopen.3:515 build/C/man5/elf.5:1961 build/C/man3/end.3:112 build/C/man8/ld.so.8:419 build/C/man8/ldconfig.8:178 build/C/man1/ldd.1:78 build/C/man7/rtld-audit.7:605
+#: build/C/man3/dl_iterate_phdr.3:205 build/C/man3/dlopen.3:531 build/C/man5/elf.5:1963 build/C/man3/end.3:113 build/C/man8/ld.so.8:505 build/C/man8/ldconfig.8:178 build/C/man1/ldd.1:113 build/C/man1/memusage.1:275 build/C/man1/memusagestat.1:91 build/C/man1/mtrace.1:64 build/C/man1/pldd.1:96 build/C/man7/rtld-audit.7:607 build/C/man8/sln.8:64 build/C/man1/sprof.1:303
 #, no-wrap
 msgid "COLOPHON"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/dl_iterate_phdr.3:212 build/C/man3/dlopen.3:522 build/C/man5/elf.5:1968 build/C/man3/end.3:119 build/C/man8/ld.so.8:426 build/C/man8/ldconfig.8:185 build/C/man1/ldd.1:85 build/C/man7/rtld-audit.7:612
+#: build/C/man3/dl_iterate_phdr.3:213 build/C/man3/dlopen.3:539 build/C/man5/elf.5:1971 build/C/man3/end.3:121 build/C/man8/ld.so.8:513 build/C/man8/ldconfig.8:186 build/C/man1/ldd.1:121 build/C/man1/memusage.1:283 build/C/man1/memusagestat.1:99 build/C/man1/mtrace.1:72 build/C/man1/pldd.1:104 build/C/man7/rtld-audit.7:615 build/C/man8/sln.8:72 build/C/man1/sprof.1:311
 msgid ""
-"This page is part of release 3.41 of the Linux I<man-pages> project.  A "
-"description of the project, and information about reporting bugs, can be "
-"found at http://www.kernel.org/doc/man-pages/."
+"This page is part of release 3.79 of the Linux I<man-pages> project.  A "
+"description of the project, information about reporting bugs, and the latest "
+"version of this page, can be found at "
+"\\%http://www.kernel.org/doc/man-pages/."
 msgstr ""
 
 #. type: TH
@@ -337,13 +344,13 @@ msgid "DLOPEN"
 msgstr ""
 
 #. type: TH
-#: build/C/man3/dlopen.3:35
+#: build/C/man3/dlopen.3:35 build/C/man1/ldd.1:14
 #, no-wrap
-msgid "2008-12-06"
+msgid "2014-10-02"
 msgstr ""
 
 #. type: TH
-#: build/C/man3/dlopen.3:35 build/C/man5/elf.5:33 build/C/man7/rtld-audit.7:26
+#: build/C/man3/dlopen.3:35 build/C/man5/elf.5:35 build/C/man7/rtld-audit.7:28 build/C/man1/sprof.1:25
 #, no-wrap
 msgid "Linux"
 msgstr ""
@@ -401,7 +408,7 @@ msgstr ""
 #. type: Plain text
 #: build/C/man3/dlopen.3:71
 msgid ""
-"The function B<dlerror>()  returns a human readable string describing the "
+"The function B<dlerror>()  returns a human-readable string describing the "
 "most recent error that occurred from B<dlopen>(), B<dlsym>()  or "
 "B<dlclose>()  since the last call to B<dlerror>().  It returns NULL if no "
 "errors have occurred since initialization or since it was last called."
@@ -426,7 +433,7 @@ msgid ""
 msgstr ""
 
 #. type: IP
-#: build/C/man3/dlopen.3:89 build/C/man3/dlopen.3:93 build/C/man3/dlopen.3:100 build/C/man3/dlopen.3:104 build/C/man3/dlopen.3:111 build/C/man8/ld.so.8:45 build/C/man8/ld.so.8:50 build/C/man8/ld.so.8:55 build/C/man8/ld.so.8:59 build/C/man8/ld.so.8:69
+#: 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
 #, no-wrap
 msgid "o"
 msgstr ""
@@ -492,7 +499,7 @@ msgstr ""
 msgid ""
 "Perform lazy binding.  Only resolve symbols as the code that references them "
 "is executed.  If the symbol is never referenced, then it is never resolved.  "
-"(Lazy binding is only performed for function references; references to "
+"(Lazy binding is performed only for function references; references to "
 "variables are always immediately bound when the library is loaded.)"
 msgstr ""
 
@@ -595,10 +602,10 @@ msgstr ""
 #. type: Plain text
 #: build/C/man3/dlopen.3:204
 msgid ""
-"If I<filename> is a NULL pointer, then the returned handle is for the main "
-"program.  When given to B<dlsym>(), this handle causes a search for a symbol "
-"in the main program, followed by all shared libraries loaded at program "
-"startup, and then all shared libraries loaded by B<dlopen>()  with the flag "
+"If I<filename> is NULL, then the returned handle is for the main program.  "
+"When given to B<dlsym>(), this handle causes a search for a symbol in the "
+"main program, followed by all shared libraries loaded at program startup, "
+"and then all shared libraries loaded by B<dlopen>()  with the flag "
 "B<RTLD_GLOBAL>."
 msgstr ""
 
@@ -616,13 +623,13 @@ msgstr ""
 #. type: Plain text
 #: build/C/man3/dlopen.3:232
 msgid ""
-"If the same library is loaded again with B<dlopen>(), the same file handle "
-"is returned.  The dl library maintains reference counts for library handles, "
-"so a dynamic library is not deallocated until B<dlclose>()  has been called "
-"on it as many times as B<dlopen>()  has succeeded on it.  The B<_init>()  "
-"routine, if present, is only called once.  But a subsequent call with "
-"B<RTLD_NOW> may force symbol resolution for a library earlier loaded with "
-"B<RTLD_LAZY>."
+"If the same library is loaded again with B<dlopen>(), the same library "
+"handle is returned.  The dl library maintains reference counts for library "
+"handles, so a dynamic library is not deallocated until B<dlclose>()  has "
+"been called on it as many times as B<dlopen>()  has succeeded on it.  The "
+"B<_init>()  routine, if present, is called only once.  But a subsequent call "
+"with B<RTLD_NOW> may force symbol resolution for a library earlier loaded "
+"with B<RTLD_LAZY>."
 msgstr ""
 
 #. type: Plain text
@@ -771,8 +778,8 @@ msgid ""
 "                               contains address */\n"
 "    void       *dli_fbase;  /* Address at which shared object\n"
 "                               is loaded */\n"
-"    const char *dli_sname;  /* Name of nearest symbol with address\n"
-"                               lower than I<addr> */\n"
+"    const char *dli_sname;  /* Name of symbol whose definition\n"
+"                               overlaps I<addr> */\n"
 "    void       *dli_saddr;  /* Exact address of symbol named\n"
 "                               in I<dli_sname> */\n"
 "} Dl_info;\n"
@@ -805,7 +812,7 @@ msgid ""
 msgstr ""
 
 #. type: SH
-#: build/C/man3/dlopen.3:388 build/C/man5/elf.5:1910 build/C/man3/end.3:52 build/C/man8/ld.so.8:403 build/C/man1/ldd.1:42 build/C/man7/rtld-audit.7:465
+#: build/C/man3/dlopen.3:388 build/C/man5/elf.5:1912 build/C/man3/end.3:53 build/C/man8/ld.so.8:483 build/C/man1/pldd.1:84 build/C/man7/rtld-audit.7:467
 #, no-wrap
 msgid "NOTES"
 msgstr ""
@@ -848,7 +855,7 @@ msgid ""
 msgstr ""
 
 #. type: SH
-#: build/C/man3/dlopen.3:418 build/C/man1/ldd.1:59 build/C/man7/rtld-audit.7:590
+#: build/C/man3/dlopen.3:418 build/C/man1/ldd.1:91 build/C/man1/memusage.1:267 build/C/man1/memusagestat.1:84 build/C/man1/mtrace.1:58 build/C/man7/rtld-audit.7:492
 #, no-wrap
 msgid "BUGS"
 msgstr ""
@@ -920,36 +927,62 @@ msgid "    dlerror();    /* Clear any existing error */\n"
 msgstr ""
 
 #. type: Plain text
+#: build/C/man3/dlopen.3:470
+#, no-wrap
+msgid "    cosine = (double (*)(double)) dlsym(handle, \"cos\");\n"
+msgstr ""
+
+#. type: Plain text
 #: build/C/man3/dlopen.3:475
 #, no-wrap
 msgid ""
-"    /* Writing: cosine = (double (*)(double)) dlsym(handle, \"cos\");\n"
-"       would seem more natural, but the C99 standard leaves\n"
-"       casting from \"void *\" to a function pointer undefined.\n"
-"       The assignment used below is the POSIX.1-2003 (Technical\n"
-"       Corrigendum 1) workaround; see the Rationale for the\n"
-"       POSIX specification of dlsym(). */\n"
+"    /* According to the ISO C standard, casting between function\n"
+"       pointers and 'void *', as done above, produces undefined results.\n"
+"       POSIX.1-2003 and POSIX.1-2008 accepted this state of affairs and\n"
+"       proposed the following workaround:\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/dlopen.3:477
+#, no-wrap
+msgid "           *(void **) (&cosine) = dlsym(handle, \"cos\");\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/dlopen.3:480
+#, no-wrap
+msgid ""
+"       This (clumsy) cast conforms with the ISO C standard and will\n"
+"       avoid any compiler warnings.\n"
 msgstr ""
 
-#.  But in fact "gcc -O2 -Wall" will complain about the preceding cast.
+#.  http://pubs.opengroup.org/onlinepubs/009695399/functions/dlsym.html#tag_03_112_08
+#.  http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlsym.html#tag_16_96_07
+#.  http://austingroupbugs.net/view.php?id=74
 #. type: Plain text
-#: build/C/man3/dlopen.3:478
+#: build/C/man3/dlopen.3:489
 #, no-wrap
-msgid "    *(void **) (&cosine) = dlsym(handle, \"cos\");\n"
+msgid ""
+"       The 2013 Technical Corrigendum to POSIX.1-2008 (a.k.a.\n"
+"       POSIX.1-2013) improved matters by requiring that conforming\n"
+"       implementations support casting 'void *' to a function pointer.\n"
+"       Nevertheless, some compilers (e.g., gcc with the '-pedantic'\n"
+"       option) may complain about the cast used in this program. */\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/dlopen.3:483
+#: build/C/man3/dlopen.3:495
 #, no-wrap
 msgid ""
-"    if ((error = dlerror()) != NULL)  {\n"
+"    error = dlerror();\n"
+"    if (error != NULL) {\n"
 "        fprintf(stderr, \"%s\\en\", error);\n"
 "        exit(EXIT_FAILURE);\n"
 "    }\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/dlopen.3:488
+#: build/C/man3/dlopen.3:500
 #, no-wrap
 msgid ""
 "    printf(\"%f\\en\", (*cosine)(2.0));\n"
@@ -959,64 +992,69 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/dlopen.3:492
+#: build/C/man3/dlopen.3:504
 msgid ""
 "If this program were in a file named \"foo.c\", you would build the program "
 "with the following command:"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/dlopen.3:495
+#: build/C/man3/dlopen.3:507
 #, no-wrap
 msgid "    gcc -rdynamic -o foo foo.c -ldl\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/dlopen.3:503
+#: build/C/man3/dlopen.3:517
 msgid ""
 "Libraries exporting B<_init>()  and B<_fini>()  will want to be compiled as "
 "follows, using I<bar.c> as the example name:"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/dlopen.3:506
+#: build/C/man3/dlopen.3:520
 #, no-wrap
 msgid "    gcc -shared -nostartfiles -o bar bar.c\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/dlopen.3:515
+#: build/C/man3/dlopen.3:529
 msgid ""
-"B<ld>(1), B<ldd>(1), B<dl_iterate_phdr>(3), B<rtld-audit>(7), B<ld.so>(8), "
-"B<ldconfig>(8), ld.so info pages, gcc info pages, ld info pages"
+"B<ld>(1), B<ldd>(1), B<pldd>(1), B<dl_iterate_phdr>(3), B<rtld-audit>(7), "
+"B<ld.so>(8), B<ldconfig>(8)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/dlopen.3:531
+msgid "ld.so info pages, gcc info pages, ld info pages"
 msgstr ""
 
 #. type: TH
-#: build/C/man5/elf.5:33
+#: build/C/man5/elf.5:35
 #, no-wrap
 msgid "ELF"
 msgstr ""
 
 #. type: TH
-#: build/C/man5/elf.5:33
+#: build/C/man5/elf.5:35
 #, no-wrap
-msgid "2010-06-19"
+msgid "2013-04-17"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:36
+#: build/C/man5/elf.5:38
 msgid "elf - format of Executable and Linking Format (ELF) files"
 msgstr ""
 
 #.  .B #include <elf_abi.h>
 #. type: Plain text
-#: build/C/man5/elf.5:40
+#: build/C/man5/elf.5:42
 #, no-wrap
 msgid "B<#include E<lt>elf.hE<gt>>\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:48
+#: build/C/man5/elf.5:50
 msgid ""
 "The header file I<E<lt>elf.hE<gt>> defines the format of ELF executable "
 "binary files.  Amongst these files are normal executable files, relocatable "
@@ -1024,7 +1062,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:57
+#: build/C/man5/elf.5:59
 msgid ""
 "An executable file using the ELF file format consists of an ELF header, "
 "followed by a program header table or a section header table, or both.  The "
@@ -1058,7 +1096,7 @@ msgstr ""
 #.  "ELF64_xxx".
 #.  .PP
 #. type: Plain text
-#: build/C/man5/elf.5:84
+#: build/C/man5/elf.5:86
 msgid ""
 "This header file describes the above mentioned headers as C structures and "
 "also includes structures for dynamic sections, relocation sections and "
@@ -1066,7 +1104,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:96
+#: build/C/man5/elf.5:98
 msgid ""
 "The following types are used for N-bit architectures (N=32,64, I<ElfN> "
 "stands for I<Elf32> or I<Elf64>, I<uintN_t> stands for I<uint32_t> or "
@@ -1075,7 +1113,7 @@ msgstr ""
 
 #.  Elf32_Size  Unsigned object size
 #. type: Plain text
-#: build/C/man5/elf.5:110
+#: build/C/man5/elf.5:112
 #, no-wrap
 msgid ""
 "ElfN_Addr       Unsigned program address, uintN_t\n"
@@ -1091,7 +1129,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:125
+#: build/C/man5/elf.5:127
 msgid ""
 "(Note: The *BSD terminology is a bit different.  There I<Elf64_Half> is "
 "twice as large as I<Elf32_Half>, and I<Elf64Quarter> is used for "
@@ -1100,27 +1138,27 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:132
+#: build/C/man5/elf.5:134
 msgid ""
 "All data structures that the file format defines follow the \"natural\" size "
 "and alignment guidelines for the relevant class.  If necessary, data "
 "structures contain explicit padding to ensure 4-byte alignment for 4-byte "
-"objects, to force structure sizes to a multiple of 4, etc."
+"objects, to force structure sizes to a multiple of 4, and so on."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:137
+#: build/C/man5/elf.5:139
 msgid "The ELF header is described by the type I<Elf32_Ehdr> or I<Elf64_Ehdr>:"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:141
+#: build/C/man5/elf.5:143
 #, no-wrap
 msgid "#define EI_NIDENT 16\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:158
+#: build/C/man5/elf.5:160
 #, no-wrap
 msgid ""
 "typedef struct {\n"
@@ -1143,18 +1181,18 @@ msgstr ""
 
 #.  .Bl -tag -width "e_phentsize"
 #. type: Plain text
-#: build/C/man5/elf.5:163
+#: build/C/man5/elf.5:165
 msgid "The fields have the following meanings:"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:163
+#: build/C/man5/elf.5:165
 #, no-wrap
 msgid "I<e_ident>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:173
+#: build/C/man5/elf.5:175
 msgid ""
 "This array of bytes specifies to interpret the file, independent of the "
 "processor or the file's remaining contents.  Within this array everything is "
@@ -1163,215 +1201,215 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:175
+#: build/C/man5/elf.5:177
 #, no-wrap
 msgid "B<EI_MAG0>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:181
+#: build/C/man5/elf.5:183
 msgid ""
 "The first byte of the magic number.  It must be filled with B<ELFMAG0>.  (0: "
 "0x7f)"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:181
+#: build/C/man5/elf.5:183
 #, no-wrap
 msgid "B<EI_MAG1>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:187
+#: build/C/man5/elf.5:189
 msgid ""
 "The second byte of the magic number.  It must be filled with B<ELFMAG1>.  "
 "(1: \\(aqE\\(aq)"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:187
+#: build/C/man5/elf.5:189
 #, no-wrap
 msgid "B<EI_MAG2>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:193
+#: build/C/man5/elf.5:195
 msgid ""
 "The third byte of the magic number.  It must be filled with B<ELFMAG2>.  (2: "
 "\\(aqL\\(aq)"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:193
+#: build/C/man5/elf.5:195
 #, no-wrap
 msgid "B<EI_MAG3>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:199
+#: build/C/man5/elf.5:201
 msgid ""
 "The fourth byte of the magic number.  It must be filled with B<ELFMAG3>.  "
 "(3: \\(aqF\\(aq)"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:199
+#: build/C/man5/elf.5:201
 #, no-wrap
 msgid "B<EI_CLASS>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:202
+#: build/C/man5/elf.5:204
 msgid "The fifth byte identifies the architecture for this binary:"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:204
+#: build/C/man5/elf.5:206
 #, no-wrap
 msgid "B<ELFCLASSNONE>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:208
+#: build/C/man5/elf.5:210
 msgid "This class is invalid."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:208
+#: build/C/man5/elf.5:210
 #, no-wrap
 msgid "B<ELFCLASS32>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:213
+#: build/C/man5/elf.5:215
 msgid ""
 "This defines the 32-bit architecture.  It supports machines with files and "
 "virtual address spaces up to 4 Gigabytes."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:213
+#: build/C/man5/elf.5:215
 #, no-wrap
 msgid "B<ELFCLASS64>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:216
+#: build/C/man5/elf.5:218
 msgid "This defines the 64-bit architecture."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:219
+#: build/C/man5/elf.5:221
 #, no-wrap
 msgid "B<EI_DATA>"
 msgstr ""
 
 #.  .Bl -tag -width "ELFDATA2LSB" -compact
 #. type: Plain text
-#: build/C/man5/elf.5:225
+#: build/C/man5/elf.5:227
 msgid ""
 "The sixth byte specifies the data encoding of the processor-specific data in "
 "the file.  Currently these encodings are supported:"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:226
+#: build/C/man5/elf.5:228
 #, no-wrap
 msgid "B<ELFDATANONE>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:230
+#: build/C/man5/elf.5:232
 msgid "Unknown data format."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:230
+#: build/C/man5/elf.5:232
 #, no-wrap
 msgid "B<ELFDATA2LSB>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:233
+#: build/C/man5/elf.5:235
 msgid "Two's complement, little-endian."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:233
+#: build/C/man5/elf.5:235
 #, no-wrap
 msgid "B<ELFDATA2MSB>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:236
+#: build/C/man5/elf.5:238
 msgid "Two's complement, big-endian."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:239
+#: build/C/man5/elf.5:241
 #, no-wrap
 msgid "B<EI_VERSION>"
 msgstr ""
 
 #.  .Bl -tag -width "EV_CURRENT" -compact
 #. type: Plain text
-#: build/C/man5/elf.5:244
-msgid "The version number of the ELF specification:"
+#: build/C/man5/elf.5:246
+msgid "The seventh byte is the version number of the ELF specification:"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:245 build/C/man5/elf.5:499
+#: build/C/man5/elf.5:247 build/C/man5/elf.5:501
 #, no-wrap
 msgid "B<EV_NONE>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:248 build/C/man5/elf.5:503
+#: build/C/man5/elf.5:250 build/C/man5/elf.5:505
 msgid "Invalid version."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:248 build/C/man5/elf.5:503
+#: build/C/man5/elf.5:250 build/C/man5/elf.5:505
 #, no-wrap
 msgid "B<EV_CURRENT>"
 msgstr ""
 
 #.  .El
 #. type: Plain text
-#: build/C/man5/elf.5:251 build/C/man5/elf.5:507
+#: build/C/man5/elf.5:253 build/C/man5/elf.5:509
 msgid "Current version."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:254
+#: build/C/man5/elf.5:256
 #, no-wrap
 msgid "B<EI_OSABI>"
 msgstr ""
 
 #.  .Bl -tag -width "ELFOSABI_STANDALONE" -compact
 #. type: Plain text
-#: build/C/man5/elf.5:263
+#: build/C/man5/elf.5:265
 msgid ""
-"This byte identifies the operating system and ABI to which the object is "
-"targeted.  Some fields in other ELF structures have flags and values that "
+"The eighth byte identifies the operating system and ABI to which the object "
+"is targeted.  Some fields in other ELF structures have flags and values that "
 "have platform-specific meanings; the interpretation of those fields is "
-"determined by the value of this byte.  E.g.:"
+"determined by the value of this byte.  For example:"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:264
+#: build/C/man5/elf.5:266
 #, no-wrap
 msgid "B<ELFOSABI_NONE>"
 msgstr ""
 
 #.  0
 #. type: Plain text
-#: build/C/man5/elf.5:269
+#: build/C/man5/elf.5:271
 msgid "Same as ELFOSABI_SYSV"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:269
+#: build/C/man5/elf.5:271
 #, no-wrap
 msgid "B<ELFOSABI_SYSV>"
 msgstr ""
@@ -1379,36 +1417,36 @@ msgstr ""
 #.  0
 #.  synonym: ELFOSABI_NONE
 #. type: Plain text
-#: build/C/man5/elf.5:274
+#: build/C/man5/elf.5:276
 msgid "UNIX System V ABI."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:274
+#: build/C/man5/elf.5:276
 #, no-wrap
 msgid "B<ELFOSABI_HPUX>"
 msgstr ""
 
 #.  1
 #. type: Plain text
-#: build/C/man5/elf.5:278
+#: build/C/man5/elf.5:280
 msgid "HP-UX ABI."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:278
+#: build/C/man5/elf.5:280
 #, no-wrap
 msgid "B<ELFOSABI_NETBSD>"
 msgstr ""
 
 #.  2
 #. type: Plain text
-#: build/C/man5/elf.5:282
+#: build/C/man5/elf.5:284
 msgid "NetBSD ABI."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:282
+#: build/C/man5/elf.5:284
 #, no-wrap
 msgid "B<ELFOSABI_LINUX>"
 msgstr ""
@@ -1423,12 +1461,12 @@ msgstr ""
 #.  86Open Common IA32 ABI.
 #.  5
 #. type: Plain text
-#: build/C/man5/elf.5:294
+#: build/C/man5/elf.5:296
 msgid "Linux ABI."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:294
+#: build/C/man5/elf.5:296
 #, no-wrap
 msgid "B<ELFOSABI_SOLARIS>"
 msgstr ""
@@ -1441,36 +1479,36 @@ msgstr ""
 #.  ELFOSABI_AIX
 #.  7
 #. type: Plain text
-#: build/C/man5/elf.5:304
+#: build/C/man5/elf.5:306
 msgid "Solaris ABI."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:304
+#: build/C/man5/elf.5:306
 #, no-wrap
 msgid "B<ELFOSABI_IRIX>"
 msgstr ""
 
 #.  8
 #. type: Plain text
-#: build/C/man5/elf.5:308
+#: build/C/man5/elf.5:310
 msgid "IRIX ABI."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:308
+#: build/C/man5/elf.5:310
 #, no-wrap
 msgid "B<ELFOSABI_FREEBSD>"
 msgstr ""
 
 #.  9
 #. type: Plain text
-#: build/C/man5/elf.5:312
+#: build/C/man5/elf.5:314
 msgid "FreeBSD ABI."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:312
+#: build/C/man5/elf.5:314
 #, no-wrap
 msgid "B<ELFOSABI_TRU64>"
 msgstr ""
@@ -1481,24 +1519,24 @@ msgstr ""
 #.  ELFOSABI_OPENBSD
 #.  12
 #. type: Plain text
-#: build/C/man5/elf.5:320
+#: build/C/man5/elf.5:322
 msgid "TRU64 UNIX ABI."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:320
+#: build/C/man5/elf.5:322
 #, no-wrap
 msgid "B<ELFOSABI_ARM>"
 msgstr ""
 
 #.  97
 #. type: Plain text
-#: build/C/man5/elf.5:324
+#: build/C/man5/elf.5:326
 msgid "ARM architecture ABI."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:324
+#: build/C/man5/elf.5:326
 #, no-wrap
 msgid "B<ELFOSABI_STANDALONE>"
 msgstr ""
@@ -1506,20 +1544,20 @@ msgstr ""
 #.  255
 #.  .El
 #. type: Plain text
-#: build/C/man5/elf.5:329
+#: build/C/man5/elf.5:331
 msgid "Stand-alone (embedded) ABI."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:331
+#: build/C/man5/elf.5:333
 #, no-wrap
 msgid "B<EI_ABIVERSION>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:341
+#: build/C/man5/elf.5:343
 msgid ""
-"This byte identifies the version of the ABI to which the object is "
+"The ninth byte identifies the version of the ABI to which the object is "
 "targeted.  This field is used to distinguish among incompatible versions of "
 "an ABI.  The interpretation of this version number is dependent on the ABI "
 "identified by the B<EI_OSABI> field.  Applications conforming to this "
@@ -1527,7 +1565,7 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:341
+#: build/C/man5/elf.5:343
 #, no-wrap
 msgid "B<EI_PAD>"
 msgstr ""
@@ -1539,7 +1577,7 @@ msgstr ""
 #.  .BR EI_BRAND
 #.  Start of architecture identification.
 #. type: Plain text
-#: build/C/man5/elf.5:357
+#: build/C/man5/elf.5:359
 msgid ""
 "Start of padding.  These bytes are reserved and set to zero.  Programs which "
 "read them should ignore them.  The value for B<EI_PAD> will change in the "
@@ -1547,158 +1585,158 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:357
+#: build/C/man5/elf.5:359
 #, no-wrap
 msgid "B<EI_NIDENT>"
 msgstr ""
 
 #.  .El
 #. type: Plain text
-#: build/C/man5/elf.5:363
+#: build/C/man5/elf.5:365
 msgid "The size of the I<e_ident> array."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:364
+#: build/C/man5/elf.5:366
 #, no-wrap
 msgid "I<e_type>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:367
+#: build/C/man5/elf.5:369
 msgid "This member of the structure identifies the object file type:"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:369
+#: build/C/man5/elf.5:371
 #, no-wrap
 msgid "B<ET_NONE>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:373
+#: build/C/man5/elf.5:375
 msgid "An unknown type."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:373
+#: build/C/man5/elf.5:375
 #, no-wrap
 msgid "B<ET_REL>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:376
+#: build/C/man5/elf.5:378
 msgid "A relocatable file."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:376
+#: build/C/man5/elf.5:378
 #, no-wrap
 msgid "B<ET_EXEC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:379
+#: build/C/man5/elf.5:381
 msgid "An executable file."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:379
+#: build/C/man5/elf.5:381
 #, no-wrap
 msgid "B<ET_DYN>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:382
+#: build/C/man5/elf.5:384
 msgid "A shared object."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:382
+#: build/C/man5/elf.5:384
 #, no-wrap
 msgid "B<ET_CORE>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:385
+#: build/C/man5/elf.5:387
 msgid "A core file."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:388
+#: build/C/man5/elf.5:390
 #, no-wrap
 msgid "I<e_machine>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:392
+#: build/C/man5/elf.5:394
 msgid ""
-"This member specifies the required architecture for an individual file.  "
-"E.g.:"
+"This member specifies the required architecture for an individual file.  For "
+"example:"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:394
+#: build/C/man5/elf.5:396
 #, no-wrap
 msgid "B<EM_NONE>"
 msgstr ""
 
 #.  0
 #. type: Plain text
-#: build/C/man5/elf.5:399
+#: build/C/man5/elf.5:401
 msgid "An unknown machine."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:399
+#: build/C/man5/elf.5:401
 #, no-wrap
 msgid "B<EM_M32>"
 msgstr ""
 
 #.  1
 #. type: Plain text
-#: build/C/man5/elf.5:403
+#: build/C/man5/elf.5:405
 msgid "AT&T WE 32100."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:403
+#: build/C/man5/elf.5:405
 #, no-wrap
 msgid "B<EM_SPARC>"
 msgstr ""
 
 #.  2
 #. type: Plain text
-#: build/C/man5/elf.5:407
+#: build/C/man5/elf.5:409
 msgid "Sun Microsystems SPARC."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:407
+#: build/C/man5/elf.5:409
 #, no-wrap
 msgid "B<EM_386>"
 msgstr ""
 
 #.  3
 #. type: Plain text
-#: build/C/man5/elf.5:411
+#: build/C/man5/elf.5:413
 msgid "Intel 80386."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:411
+#: build/C/man5/elf.5:413
 #, no-wrap
 msgid "B<EM_68K>"
 msgstr ""
 
 #.  4
 #. type: Plain text
-#: build/C/man5/elf.5:415
+#: build/C/man5/elf.5:417
 msgid "Motorola 68000."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:415
+#: build/C/man5/elf.5:417
 #, no-wrap
 msgid "B<EM_88K>"
 msgstr ""
@@ -1709,24 +1747,24 @@ msgstr ""
 #.  Intel 80486.
 #.  6
 #. type: Plain text
-#: build/C/man5/elf.5:423
+#: build/C/man5/elf.5:425
 msgid "Motorola 88000."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:423
+#: build/C/man5/elf.5:425
 #, no-wrap
 msgid "B<EM_860>"
 msgstr ""
 
 #.  7
 #. type: Plain text
-#: build/C/man5/elf.5:427
+#: build/C/man5/elf.5:429
 msgid "Intel 80860."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:427
+#: build/C/man5/elf.5:429
 #, no-wrap
 msgid "B<EM_MIPS>"
 msgstr ""
@@ -1741,132 +1779,132 @@ msgstr ""
 #.  EM_MIPS_RS3_LE (MIPS R3000 little-endian)
 #.  10
 #. type: Plain text
-#: build/C/man5/elf.5:439
+#: build/C/man5/elf.5:441
 msgid "MIPS RS3000 (big-endian only)."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:439
+#: build/C/man5/elf.5:441
 #, no-wrap
 msgid "B<EM_PARISC>"
 msgstr ""
 
 #.  15
 #. type: Plain text
-#: build/C/man5/elf.5:443
+#: build/C/man5/elf.5:445
 msgid "HP/PA."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:443
+#: build/C/man5/elf.5:445
 #, no-wrap
 msgid "B<EM_SPARC32PLUS>"
 msgstr ""
 
 #.  18
 #. type: Plain text
-#: build/C/man5/elf.5:447
+#: build/C/man5/elf.5:449
 msgid "SPARC with enhanced instruction set."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:447
+#: build/C/man5/elf.5:449
 #, no-wrap
 msgid "B<EM_PPC>"
 msgstr ""
 
 #.  20
 #. type: Plain text
-#: build/C/man5/elf.5:451
+#: build/C/man5/elf.5:453
 msgid "PowerPC."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:451
+#: build/C/man5/elf.5:453
 #, no-wrap
 msgid "B<EM_PPC64>"
 msgstr ""
 
 #.  21
 #. type: Plain text
-#: build/C/man5/elf.5:455
+#: build/C/man5/elf.5:457
 msgid "PowerPC 64-bit."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:455
+#: build/C/man5/elf.5:457
 #, no-wrap
 msgid "B<EM_S390>"
 msgstr ""
 
 #.  22
 #. type: Plain text
-#: build/C/man5/elf.5:459
+#: build/C/man5/elf.5:461
 msgid "IBM S/390"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:459
+#: build/C/man5/elf.5:461
 #, no-wrap
 msgid "B<EM_ARM>"
 msgstr ""
 
 #.  40
 #. type: Plain text
-#: build/C/man5/elf.5:463
+#: build/C/man5/elf.5:465
 msgid "Advanced RISC Machines"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:463
+#: build/C/man5/elf.5:465
 #, no-wrap
 msgid "B<EM_SH>"
 msgstr ""
 
 #.  42
 #. type: Plain text
-#: build/C/man5/elf.5:467
+#: build/C/man5/elf.5:469
 msgid "Renesas SuperH"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:467
+#: build/C/man5/elf.5:469
 #, no-wrap
 msgid "B<EM_SPARCV9>"
 msgstr ""
 
 #.  43
 #. type: Plain text
-#: build/C/man5/elf.5:471
+#: build/C/man5/elf.5:473
 msgid "SPARC v9 64-bit."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:471
+#: build/C/man5/elf.5:473
 #, no-wrap
 msgid "B<EM_IA_64>"
 msgstr ""
 
 #.  50
 #. type: Plain text
-#: build/C/man5/elf.5:475
+#: build/C/man5/elf.5:477
 msgid "Intel Itanium"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:475
+#: build/C/man5/elf.5:477
 #, no-wrap
 msgid "B<EM_X86_64>"
 msgstr ""
 
 #.  62
 #. type: Plain text
-#: build/C/man5/elf.5:479
+#: build/C/man5/elf.5:481
 msgid "AMD x86-64"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:479
+#: build/C/man5/elf.5:481
 #, no-wrap
 msgid "B<EM_VAX>"
 msgstr ""
@@ -1881,30 +1919,30 @@ msgstr ""
 #.  .BR EM_ALPHA_EXP
 #.  Compaq [DEC] Alpha with enhanced instruction set.
 #. type: Plain text
-#: build/C/man5/elf.5:491
+#: build/C/man5/elf.5:493
 msgid "DEC Vax."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:494
+#: build/C/man5/elf.5:496
 #, no-wrap
 msgid "I<e_version>"
 msgstr ""
 
 #.  .Bl -tag -width "EV_CURRENT" -compact
 #. type: Plain text
-#: build/C/man5/elf.5:498
+#: build/C/man5/elf.5:500
 msgid "This member identifies the file version:"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:509
+#: build/C/man5/elf.5:511
 #, no-wrap
 msgid "I<e_entry>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:515
+#: build/C/man5/elf.5:517
 msgid ""
 "This member gives the virtual address to which the system first transfers "
 "control, thus starting the process.  If the file has no associated entry "
@@ -1912,39 +1950,39 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:515
+#: build/C/man5/elf.5:517
 #, no-wrap
 msgid "I<e_phoff>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:520
+#: build/C/man5/elf.5:522
 msgid ""
 "This member holds the program header table's file offset in bytes.  If the "
 "file has no program header table, this member holds zero."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:520
+#: build/C/man5/elf.5:522
 #, no-wrap
 msgid "I<e_shoff>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:525
+#: build/C/man5/elf.5:527
 msgid ""
 "This member holds the section header table's file offset in bytes.  If the "
-"file has no section header table this member holds zero."
+"file has no section header table, this member holds zero."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:525
+#: build/C/man5/elf.5:527
 #, no-wrap
 msgid "I<e_flags>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:530
+#: build/C/man5/elf.5:532
 msgid ""
 "This member holds processor-specific flags associated with the file.  Flag "
 "names take the form EF_`machine_flag'.  Currently no flags have been "
@@ -1952,37 +1990,37 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:530
+#: build/C/man5/elf.5:532
 #, no-wrap
 msgid "I<e_ehsize>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:533
+#: build/C/man5/elf.5:535
 msgid "This member holds the ELF header's size in bytes."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:533
+#: build/C/man5/elf.5:535
 #, no-wrap
 msgid "I<e_phentsize>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:537
+#: build/C/man5/elf.5:539
 msgid ""
 "This member holds the size in bytes of one entry in the file's program "
 "header table; all entries are the same size."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:537
+#: build/C/man5/elf.5:539
 #, no-wrap
 msgid "I<e_phnum>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:550
+#: build/C/man5/elf.5:552
 msgid ""
 "This member holds the number of entries in the program header table.  Thus "
 "the product of I<e_phentsize> and I<e_phnum> gives the table's size in "
@@ -1992,7 +2030,7 @@ msgstr ""
 #.  This is a Linux extension, added in Linux 2.6.34.
 #.  .Bl -tag -width "PN_XNUM"
 #. type: Plain text
-#: build/C/man5/elf.5:564
+#: build/C/man5/elf.5:566
 msgid ""
 "If the number of entries in the program header table is larger than or equal "
 "to B<PN_XNUM> (0xffff), this member holds B<PN_XNUM> (0xffff) and the real "
@@ -2002,39 +2040,39 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:565
+#: build/C/man5/elf.5:567
 #, no-wrap
 msgid "B<PN_XNUM>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:570
+#: build/C/man5/elf.5:572
 msgid ""
 "This is defined as 0xffff, the largest number I<e_phnum> can have, "
 "specifying where the actual number of program headers is assigned."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:574
+#: build/C/man5/elf.5:576
 #, no-wrap
 msgid "I<e_shentsize>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:579
+#: build/C/man5/elf.5:581
 msgid ""
 "This member holds a sections header's size in bytes.  A section header is "
 "one entry in the section header table; all entries are the same size."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:579
+#: build/C/man5/elf.5:581
 #, no-wrap
 msgid "I<e_shnum>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:592
+#: build/C/man5/elf.5:594
 msgid ""
 "This member holds the number of entries in the section header table.  Thus "
 "the product of I<e_shentsize> and I<e_shnum> gives the section header "
@@ -2043,7 +2081,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:604
+#: build/C/man5/elf.5:606
 msgid ""
 "If the number of entries in the section header table is larger than or equal "
 "to B<SHN_LORESERVE> (0xff00), I<e_shnum> holds the value zero and the real "
@@ -2054,13 +2092,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:604
+#: build/C/man5/elf.5:606
 #, no-wrap
 msgid "I<e_shstrndx>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:611
+#: build/C/man5/elf.5:613
 msgid ""
 "This member holds the section header table index of the entry associated "
 "with the section name string table.  If the file has no section name string "
@@ -2068,7 +2106,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:623
+#: build/C/man5/elf.5:625
 msgid ""
 "If the index of section name string table section is larger than or equal to "
 "B<SHN_LORESERVE> (0xff00), this member holds B<SHN_XINDEX> (0xffff) and the "
@@ -2079,13 +2117,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:625 build/C/man5/elf.5:912
+#: build/C/man5/elf.5:627 build/C/man5/elf.5:914
 #, no-wrap
 msgid "B<SHN_UNDEF>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:634
+#: build/C/man5/elf.5:636
 msgid ""
 "This value marks an undefined, missing, irrelevant, or otherwise meaningless "
 "section reference.  For example, a symbol \"defined\" relative to section "
@@ -2093,50 +2131,50 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:634 build/C/man5/elf.5:916
+#: build/C/man5/elf.5:636 build/C/man5/elf.5:918
 #, no-wrap
 msgid "B<SHN_LORESERVE>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:637 build/C/man5/elf.5:919
+#: build/C/man5/elf.5:639 build/C/man5/elf.5:921
 msgid "This value specifies the lower bound of the range of reserved indices."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:637 build/C/man5/elf.5:919
+#: build/C/man5/elf.5:639 build/C/man5/elf.5:921
 #, no-wrap
 msgid "B<SHN_LOPROC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:642 build/C/man5/elf.5:924
+#: build/C/man5/elf.5:644 build/C/man5/elf.5:926
 msgid ""
 "Values greater than or equal to B<SHN_HIPROC> are reserved for "
 "processor-specific semantics."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:642 build/C/man5/elf.5:924
+#: build/C/man5/elf.5:644 build/C/man5/elf.5:926
 #, no-wrap
 msgid "B<SHN_HIPROC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:647 build/C/man5/elf.5:929
+#: build/C/man5/elf.5:649 build/C/man5/elf.5:931
 msgid ""
 "Values less than or equal to B<SHN_LOPROC> are reserved for "
 "processor-specific semantics."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:647 build/C/man5/elf.5:929
+#: build/C/man5/elf.5:649 build/C/man5/elf.5:931
 #, no-wrap
 msgid "B<SHN_ABS>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:654
+#: build/C/man5/elf.5:656
 msgid ""
 "This value specifies absolute values for the corresponding reference.  For "
 "example, symbols defined relative to section number B<SHN_ABS> have absolute "
@@ -2144,26 +2182,26 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:654 build/C/man5/elf.5:936
+#: build/C/man5/elf.5:656 build/C/man5/elf.5:938
 #, no-wrap
 msgid "B<SHN_COMMON>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:658
+#: build/C/man5/elf.5:660
 msgid ""
 "Symbols defined relative to this section are common symbols, such as Fortran "
 "COMMON or unallocated C external variables."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:658 build/C/man5/elf.5:940
+#: build/C/man5/elf.5:660 build/C/man5/elf.5:942
 #, no-wrap
 msgid "B<SHN_HIRESERVE>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:671
+#: build/C/man5/elf.5:673
 msgid ""
 "This value specifies the upper bound of the range of reserved indices "
 "between B<SHN_LORESERVE> and B<SHN_HIRESERVE>, inclusive; the values do not "
@@ -2172,7 +2210,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:693
+#: build/C/man5/elf.5:695
 msgid ""
 "An executable or shared object file's program header table is an array of "
 "structures, each describing a segment or other information the system needs "
@@ -2185,7 +2223,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:706
+#: build/C/man5/elf.5:708
 #, no-wrap
 msgid ""
 "typedef struct {\n"
@@ -2201,7 +2239,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:721
+#: build/C/man5/elf.5:723
 #, no-wrap
 msgid ""
 "typedef struct {\n"
@@ -2218,47 +2256,47 @@ msgstr ""
 
 #.  .Bl -tag -width "p_offset"
 #. type: Plain text
-#: build/C/man5/elf.5:729
+#: build/C/man5/elf.5:731
 msgid ""
 "The main difference between the 32-bit and the 64-bit program header lies in "
 "the location of the I<p_flags> member in the total struct."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:729
+#: build/C/man5/elf.5:731
 #, no-wrap
 msgid "I<p_type>"
 msgstr ""
 
 #.  .Bl -tag -width "PT_DYNAMIC"
 #. type: Plain text
-#: build/C/man5/elf.5:734
+#: build/C/man5/elf.5:736
 msgid ""
 "This member of the Phdr struct tells what kind of segment this array element "
 "describes or how to interpret the array element's information."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:735
+#: build/C/man5/elf.5:737
 #, no-wrap
 msgid "B<PT_NULL>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:739
+#: build/C/man5/elf.5:741
 msgid ""
 "The array element is unused and the other members' values are undefined.  "
 "This lets the program header have ignored entries."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:739
+#: build/C/man5/elf.5:741
 #, no-wrap
 msgid "B<PT_LOAD>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:760
+#: build/C/man5/elf.5:762
 msgid ""
 "The array element specifies a loadable segment, described by I<p_filesz> and "
 "I<p_memsz>.  The bytes from the file are mapped to the beginning of the "
@@ -2270,24 +2308,24 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:760
+#: build/C/man5/elf.5:762
 #, no-wrap
 msgid "B<PT_DYNAMIC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:763
+#: build/C/man5/elf.5:765
 msgid "The array element specifies dynamic linking information."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:763
+#: build/C/man5/elf.5:765
 #, no-wrap
 msgid "B<PT_INTERP>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:771
+#: build/C/man5/elf.5:773
 msgid ""
 "The array element specifies the location and size of a null-terminated "
 "pathname to invoke as an interpreter.  This segment type is meaningful only "
@@ -2297,120 +2335,120 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:771
+#: build/C/man5/elf.5:773
 #, no-wrap
 msgid "B<PT_NOTE>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:774
+#: build/C/man5/elf.5:776
 msgid "The array element specifies the location and size for auxiliary information."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:774
+#: build/C/man5/elf.5:776
 #, no-wrap
 msgid "B<PT_SHLIB>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:779
+#: build/C/man5/elf.5:781
 msgid ""
 "This segment type is reserved but has unspecified semantics.  Programs that "
 "contain an array element of this type do not conform to the ABI."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:779
+#: build/C/man5/elf.5:781
 #, no-wrap
 msgid "B<PT_PHDR>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:788
+#: build/C/man5/elf.5:790
 msgid ""
 "The array element, if present, specifies the location and size of the "
 "program header table itself, both in the file and in the memory image of the "
 "program.  This segment type may not occur more than once in a file.  "
-"Moreover, it may only occur if the program header table is part of the "
+"Moreover, it may occur only if the program header table is part of the "
 "memory image of the program.  If it is present, it must precede any loadable "
 "segment entry."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:788
+#: build/C/man5/elf.5:790
 #, no-wrap
 msgid "B<PT_LOPROC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:793
+#: build/C/man5/elf.5:795
 msgid ""
 "Values greater than or equal to B<PT_HIPROC> are reserved for "
 "processor-specific semantics."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:793
+#: build/C/man5/elf.5:795
 #, no-wrap
 msgid "B<PT_HIPROC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:798
+#: build/C/man5/elf.5:800
 msgid ""
 "Values less than or equal to B<PT_LOPROC> are reserved for "
 "processor-specific semantics."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:798
+#: build/C/man5/elf.5:800
 #, no-wrap
 msgid "B<PT_GNU_STACK>"
 msgstr ""
 
 #.  .El
 #. type: Plain text
-#: build/C/man5/elf.5:805
+#: build/C/man5/elf.5:807
 msgid ""
 "GNU extension which is used by the Linux kernel to control the state of the "
 "stack via the flags set in the I<p_flags> member."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:806
+#: build/C/man5/elf.5:808
 #, no-wrap
 msgid "I<p_offset>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:810
+#: build/C/man5/elf.5:812
 msgid ""
 "This member holds the offset from the beginning of the file at which the "
 "first byte of the segment resides."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:810
+#: build/C/man5/elf.5:812
 #, no-wrap
 msgid "I<p_vaddr>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:814
+#: build/C/man5/elf.5:816
 msgid ""
 "This member holds the virtual address at which the first byte of the segment "
 "resides in memory."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:814
+#: build/C/man5/elf.5:816
 #, no-wrap
 msgid "I<p_paddr>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:822
+#: build/C/man5/elf.5:824
 msgid ""
 "On systems for which physical addressing is relevant, this member is "
 "reserved for the segment's physical address.  Under BSD this member is not "
@@ -2418,92 +2456,92 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:822
+#: build/C/man5/elf.5:824
 #, no-wrap
 msgid "I<p_filesz>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:826
+#: build/C/man5/elf.5:828
 msgid ""
 "This member holds the number of bytes in the file image of the segment.  It "
 "may be zero."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:826
+#: build/C/man5/elf.5:828
 #, no-wrap
 msgid "I<p_memsz>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:830
+#: build/C/man5/elf.5:832
 msgid ""
 "This member holds the number of bytes in the memory image of the segment.  "
 "It may be zero."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:830
+#: build/C/man5/elf.5:832
 #, no-wrap
 msgid "I<p_flags>"
 msgstr ""
 
 #.  .Bl -tag -width "PF_X" -compact
 #. type: Plain text
-#: build/C/man5/elf.5:834
-msgid "This member holds a bitmask of flags relevant to the segment:"
+#: build/C/man5/elf.5:836
+msgid "This member holds a bit mask of flags relevant to the segment:"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:835
+#: build/C/man5/elf.5:837
 #, no-wrap
 msgid "B<PF_X>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:839
+#: build/C/man5/elf.5:841
 msgid "An executable segment."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:839
+#: build/C/man5/elf.5:841
 #, no-wrap
 msgid "B<PF_W>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:842
+#: build/C/man5/elf.5:844
 msgid "A writable segment."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:842
+#: build/C/man5/elf.5:844
 #, no-wrap
 msgid "B<PF_R>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:845
+#: build/C/man5/elf.5:847
 msgid "A readable segment."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:858
+#: build/C/man5/elf.5:860
 msgid ""
 "A text segment commonly has the flags B<PF_X> and B<PF_R>.  A data segment "
 "commonly has B<PF_X>, B<PF_W> and B<PF_R>."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:858
+#: build/C/man5/elf.5:860
 #, no-wrap
 msgid "I<p_align>"
 msgstr ""
 
 #.  .El
 #. type: Plain text
-#: build/C/man5/elf.5:877
+#: build/C/man5/elf.5:879
 msgid ""
 "This member holds the value to which the segments are aligned in memory and "
 "in the file.  Loadable process segments must have congruent values for "
@@ -2514,7 +2552,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:894
+#: build/C/man5/elf.5:896
 msgid ""
 "A file's section header table lets one locate all the file's sections.  The "
 "section header table is an array of I<Elf32_Shdr> or I<Elf64_Shdr> "
@@ -2526,7 +2564,7 @@ msgstr ""
 
 #.  .Bl -tag -width "SHN_LORESERVE"
 #. type: Plain text
-#: build/C/man5/elf.5:911
+#: build/C/man5/elf.5:913
 msgid ""
 "A section header table index is a subscript into this array.  Some section "
 "header table indices are reserved: the initial entry and the indices between "
@@ -2537,14 +2575,14 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:916
+#: build/C/man5/elf.5:918
 msgid ""
-"This value marks an undefined, missing, irrelevant or otherwise meaningless "
+"This value marks an undefined, missing, irrelevant, or otherwise meaningless "
 "section reference."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:936
+#: build/C/man5/elf.5:938
 msgid ""
 "This value specifies the absolute value for the corresponding reference.  "
 "For example, a symbol defined relative to section number B<SHN_ABS> has an "
@@ -2552,14 +2590,14 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:940
+#: build/C/man5/elf.5:942
 msgid ""
 "Symbols defined relative to this section are common symbols, such as FORTRAN "
 "COMMON or unallocated C external variables."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:951
+#: build/C/man5/elf.5:953
 msgid ""
 "This value specifies the upper bound of the range of reserved indices.  The "
 "system reserves indices between B<SHN_LORESERVE> and B<SHN_HIRESERVE>, "
@@ -2568,12 +2606,12 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:955
+#: build/C/man5/elf.5:957
 msgid "The section header has the following structure:"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:970
+#: build/C/man5/elf.5:972
 #, no-wrap
 msgid ""
 "typedef struct {\n"
@@ -2591,7 +2629,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:987
+#: build/C/man5/elf.5:989
 #, no-wrap
 msgid ""
 "typedef struct {\n"
@@ -2610,18 +2648,18 @@ msgstr ""
 
 #.  .Bl -tag -width "sh_addralign"
 #. type: Plain text
-#: build/C/man5/elf.5:992
+#: build/C/man5/elf.5:994
 msgid "No real differences exist between the 32-bit and 64-bit section headers."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:992
+#: build/C/man5/elf.5:994
 #, no-wrap
 msgid "I<sh_name>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:998
+#: build/C/man5/elf.5:1000
 msgid ""
 "This member specifies the name of the section.  Its value is an index into "
 "the section header string table section, giving the location of a "
@@ -2629,25 +2667,25 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:998
+#: build/C/man5/elf.5:1000
 #, no-wrap
 msgid "I<sh_type>"
 msgstr ""
 
 #.  .Bl -tag -width "SHT_PROGBITS"
 #. type: Plain text
-#: build/C/man5/elf.5:1002
+#: build/C/man5/elf.5:1004
 msgid "This member categorizes the section's contents and semantics."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1003
+#: build/C/man5/elf.5:1005
 #, no-wrap
 msgid "B<SHT_NULL>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1010
+#: build/C/man5/elf.5:1012
 msgid ""
 "This value marks the section header as inactive.  It does not have an "
 "associated section.  Other members of the section header have undefined "
@@ -2655,26 +2693,26 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1010
+#: build/C/man5/elf.5:1012
 #, no-wrap
 msgid "B<SHT_PROGBITS>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1014
+#: build/C/man5/elf.5:1016
 msgid ""
 "This section holds information defined by the program, whose format and "
 "meaning are determined solely by the program."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1014
+#: build/C/man5/elf.5:1016
 #, no-wrap
 msgid "B<SHT_SYMTAB>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1027
+#: build/C/man5/elf.5:1029
 msgid ""
 "This section holds a symbol table.  Typically, B<SHT_SYMTAB> provides "
 "symbols for link editing, though it may also be used for dynamic linking.  "
@@ -2683,26 +2721,26 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1027
+#: build/C/man5/elf.5:1029
 #, no-wrap
 msgid "B<SHT_STRTAB>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1032
+#: build/C/man5/elf.5:1034
 msgid ""
 "This section holds a string table.  An object file may have multiple string "
 "table sections."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1032
+#: build/C/man5/elf.5:1034
 #, no-wrap
 msgid "B<SHT_RELA>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1040
+#: build/C/man5/elf.5:1042
 msgid ""
 "This section holds relocation entries with explicit addends, such as type "
 "I<Elf32_Rela> for the 32-bit class of object files.  An object may have "
@@ -2710,13 +2748,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1040
+#: build/C/man5/elf.5:1042
 #, no-wrap
 msgid "B<SHT_HASH>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1047
+#: build/C/man5/elf.5:1049
 msgid ""
 "This section holds a symbol hash table.  An object participating in dynamic "
 "linking must contain a symbol hash table.  An object file may have only one "
@@ -2724,37 +2762,37 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1047
+#: build/C/man5/elf.5:1049
 #, no-wrap
 msgid "B<SHT_DYNAMIC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1052
+#: build/C/man5/elf.5:1054
 msgid ""
 "This section holds information for dynamic linking.  An object file may have "
 "only one dynamic section."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1052
+#: build/C/man5/elf.5:1054
 #, no-wrap
 msgid "B<SHT_NOTE>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1055
+#: build/C/man5/elf.5:1057
 msgid "This section holds information that marks the file in some way."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1055
+#: build/C/man5/elf.5:1057
 #, no-wrap
 msgid "B<SHT_NOBITS>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1063
+#: build/C/man5/elf.5:1065
 msgid ""
 "A section of this type occupies no space in the file but otherwise resembles "
 "B<SHT_PROGBITS>.  Although this section contains no bytes, the I<sh_offset> "
@@ -2762,13 +2800,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1063
+#: build/C/man5/elf.5:1065
 #, no-wrap
 msgid "B<SHT_REL>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1071
+#: build/C/man5/elf.5:1073
 msgid ""
 "This section holds relocation offsets without explicit addends, such as type "
 "I<Elf32_Rel> for the 32-bit class of object files.  An object file may have "
@@ -2776,77 +2814,77 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1071
+#: build/C/man5/elf.5:1073
 #, no-wrap
 msgid "B<SHT_SHLIB>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1074
+#: build/C/man5/elf.5:1076
 msgid "This section is reserved but has unspecified semantics."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1074
+#: build/C/man5/elf.5:1076
 #, no-wrap
 msgid "B<SHT_DYNSYM>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1081
+#: build/C/man5/elf.5:1083
 msgid ""
 "This section holds a minimal set of dynamic linking symbols.  An object file "
 "can also contain a B<SHT_SYMTAB> section."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1081
+#: build/C/man5/elf.5:1083
 #, no-wrap
 msgid "B<SHT_LOPROC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1086
+#: build/C/man5/elf.5:1088
 msgid ""
 "This value up to and including B<SHT_HIPROC> is reserved for "
 "processor-specific semantics."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1086
+#: build/C/man5/elf.5:1088
 #, no-wrap
 msgid "B<SHT_HIPROC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1091
+#: build/C/man5/elf.5:1093
 msgid ""
 "This value down to and including B<SHT_LOPROC> is reserved for "
 "processor-specific semantics."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1091
+#: build/C/man5/elf.5:1093
 #, no-wrap
 msgid "B<SHT_LOUSER>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1095
+#: build/C/man5/elf.5:1097
 msgid ""
 "This value specifies the lower bound of the range of indices reserved for "
 "application programs."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1095
+#: build/C/man5/elf.5:1097
 #, no-wrap
 msgid "B<SHT_HIUSER>"
 msgstr ""
 
 #.  .El
 #. type: Plain text
-#: build/C/man5/elf.5:1106
+#: build/C/man5/elf.5:1108
 msgid ""
 "This value specifies the upper bound of the range of indices reserved for "
 "application programs.  Section types between B<SHT_LOUSER> and B<SHT_HIUSER> "
@@ -2855,14 +2893,14 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1107
+#: build/C/man5/elf.5:1109
 #, no-wrap
 msgid "I<sh_flags>"
 msgstr ""
 
 #.  .Bl -tag -width "SHF_EXECINSTR" -compact
 #. type: Plain text
-#: build/C/man5/elf.5:1120
+#: build/C/man5/elf.5:1122
 msgid ""
 "Sections support one-bit flags that describe miscellaneous attributes.  If a "
 "flag bit is set in I<sh_flags>, the attribute is \"on\" for the section.  "
@@ -2871,24 +2909,24 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1121
+#: build/C/man5/elf.5:1123
 #, no-wrap
 msgid "B<SHF_WRITE>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1125
+#: build/C/man5/elf.5:1127
 msgid "This section contains data that should be writable during process execution."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1125
+#: build/C/man5/elf.5:1127
 #, no-wrap
 msgid "B<SHF_ALLOC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1132
+#: build/C/man5/elf.5:1134
 msgid ""
 "This section occupies memory during process execution.  Some control "
 "sections do not reside in the memory image of an object file.  This "
@@ -2896,37 +2934,37 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1132
+#: build/C/man5/elf.5:1134
 #, no-wrap
 msgid "B<SHF_EXECINSTR>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1135
+#: build/C/man5/elf.5:1137
 msgid "This section contains executable machine instructions."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1135
+#: build/C/man5/elf.5:1137
 #, no-wrap
 msgid "B<SHF_MASKPROC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1139
+#: build/C/man5/elf.5:1141
 msgid ""
 "All bits included in this mask are reserved for processor-specific "
 "semantics."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1141
+#: build/C/man5/elf.5:1143
 #, no-wrap
 msgid "I<sh_addr>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1146
+#: build/C/man5/elf.5:1148
 msgid ""
 "If this section appears in the memory image of a process, this member holds "
 "the address at which the section's first byte should reside.  Otherwise, the "
@@ -2934,13 +2972,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1146
+#: build/C/man5/elf.5:1148
 #, no-wrap
 msgid "I<sh_offset>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1155
+#: build/C/man5/elf.5:1157
 msgid ""
 "This member's value holds the byte offset from the beginning of the file to "
 "the first byte in the section.  One section type, B<SHT_NOBITS>, occupies no "
@@ -2949,13 +2987,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1155
+#: build/C/man5/elf.5:1157
 #, no-wrap
 msgid "I<sh_size>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1167
+#: build/C/man5/elf.5:1169
 msgid ""
 "This member holds the section's size in bytes.  Unless the section type is "
 "B<SHT_NOBITS>, the section occupies I<sh_size> bytes in the file.  A section "
@@ -2964,39 +3002,39 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1167
+#: build/C/man5/elf.5:1169
 #, no-wrap
 msgid "I<sh_link>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1171
+#: build/C/man5/elf.5:1173
 msgid ""
 "This member holds a section header table index link, whose interpretation "
 "depends on the section type."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1171
+#: build/C/man5/elf.5:1173
 #, no-wrap
 msgid "I<sh_info>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1175
+#: build/C/man5/elf.5:1177
 msgid ""
 "This member holds extra information, whose interpretation depends on the "
 "section type."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1175
+#: build/C/man5/elf.5:1177
 #, no-wrap
 msgid "I<sh_addralign>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1188
+#: build/C/man5/elf.5:1190
 msgid ""
 "Some sections have address alignment constraints.  If a section holds a "
 "doubleword, the system must ensure doubleword alignment for the entire "
@@ -3007,14 +3045,14 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1188
+#: build/C/man5/elf.5:1190
 #, no-wrap
 msgid "I<sh_entsize>"
 msgstr ""
 
 #.  .El
 #. type: Plain text
-#: build/C/man5/elf.5:1195
+#: build/C/man5/elf.5:1197
 msgid ""
 "Some sections hold a table of fixed-sized entries, such as a symbol table.  "
 "For such a section, this member gives the size in bytes for each entry.  "
@@ -3024,18 +3062,18 @@ msgstr ""
 
 #.  .Bl -tag -width ".shstrtab"
 #. type: Plain text
-#: build/C/man5/elf.5:1198
+#: build/C/man5/elf.5:1200
 msgid "Various sections hold program and control information:"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1198
+#: build/C/man5/elf.5:1200
 #, no-wrap
 msgid "I<.bss>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1210
+#: build/C/man5/elf.5:1212
 msgid ""
 "This section holds uninitialized data that contributes to the program's "
 "memory image.  By definition, the system initializes the data with zeros "
@@ -3044,26 +3082,26 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1210
+#: build/C/man5/elf.5:1212
 #, no-wrap
 msgid "I<.comment>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1216
+#: build/C/man5/elf.5:1218
 msgid ""
 "This section holds version control information.  This section is of type "
 "B<SHT_PROGBITS>.  No attribute types are used."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1216
+#: build/C/man5/elf.5:1218
 #, no-wrap
 msgid "I<.ctors>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1225
+#: build/C/man5/elf.5:1227
 msgid ""
 "This section holds initialized pointers to the C++ constructor functions.  "
 "This section is of type B<SHT_PROGBITS>.  The attribute types are "
@@ -3071,13 +3109,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1225
+#: build/C/man5/elf.5:1227
 #, no-wrap
 msgid "I<.data>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1235 build/C/man5/elf.5:1245
+#: build/C/man5/elf.5:1237 build/C/man5/elf.5:1247
 msgid ""
 "This section holds initialized data that contribute to the program's memory "
 "image.  This section is of type B<SHT_PROGBITS>.  The attribute types are "
@@ -3085,19 +3123,19 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1235
+#: build/C/man5/elf.5:1237
 #, no-wrap
 msgid "I<.data1>"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1245
+#: build/C/man5/elf.5:1247
 #, no-wrap
 msgid "I<.debug>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1253
+#: build/C/man5/elf.5:1255
 msgid ""
 "This section holds information for symbolic debugging.  The contents are "
 "unspecified.  This section is of type B<SHT_PROGBITS>.  No attribute types "
@@ -3105,13 +3143,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1253
+#: build/C/man5/elf.5:1255
 #, no-wrap
 msgid "I<.dtors>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1262
+#: build/C/man5/elf.5:1264
 msgid ""
 "This section holds initialized pointers to the C++ destructor functions.  "
 "This section is of type B<SHT_PROGBITS>.  The attribute types are "
@@ -3119,13 +3157,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1262
+#: build/C/man5/elf.5:1264
 #, no-wrap
 msgid "I<.dynamic>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1275
+#: build/C/man5/elf.5:1277
 msgid ""
 "This section holds dynamic linking information.  The section's attributes "
 "will include the B<SHF_ALLOC> bit.  Whether the B<SHF_WRITE> bit is set is "
@@ -3134,13 +3172,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1275
+#: build/C/man5/elf.5:1277
 #, no-wrap
 msgid "I<.dynstr>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1283
+#: build/C/man5/elf.5:1285
 msgid ""
 "This section holds strings needed for dynamic linking, most commonly the "
 "strings that represent the names associated with symbol table entries.  This "
@@ -3148,26 +3186,26 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1283
+#: build/C/man5/elf.5:1285
 #, no-wrap
 msgid "I<.dynsym>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1290
+#: build/C/man5/elf.5:1292
 msgid ""
 "This section holds the dynamic linking symbol table.  This section is of "
 "type B<SHT_DYNSYM>.  The attribute used is B<SHF_ALLOC>."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1290
+#: build/C/man5/elf.5:1292
 #, no-wrap
 msgid "I<.fini>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1302
+#: build/C/man5/elf.5:1304
 msgid ""
 "This section holds executable instructions that contribute to the process "
 "termination code.  When a program exits normally the system arranges to "
@@ -3176,13 +3214,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1302
+#: build/C/man5/elf.5:1304
 #, no-wrap
 msgid "I<.gnu.version>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1311
+#: build/C/man5/elf.5:1313
 msgid ""
 "This section holds the version symbol table, an array of I<ElfN_Half> "
 "elements.  This section is of type B<SHT_GNU_versym>.  The attribute type "
@@ -3190,13 +3228,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1311
+#: build/C/man5/elf.5:1313
 #, no-wrap
 msgid "I<.gnu.version_d>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1320
+#: build/C/man5/elf.5:1322
 msgid ""
 "This section holds the version symbol definitions, a table of I<ElfN_Verdef> "
 "structures.  This section is of type B<SHT_GNU_verdef>.  The attribute type "
@@ -3204,13 +3242,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1320
+#: build/C/man5/elf.5:1322
 #, no-wrap
 msgid "I<.gnu.version_r>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1330
+#: build/C/man5/elf.5:1332
 msgid ""
 "This section holds the version symbol needed elements, a table of "
 "I<ElfN_Verneed> structures.  This section is of type B<SHT_GNU_versym>.  The "
@@ -3218,39 +3256,39 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1330
+#: build/C/man5/elf.5:1332
 #, no-wrap
 msgid "I<.got>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1336
+#: build/C/man5/elf.5:1338
 msgid ""
 "This section holds the global offset table.  This section is of type "
-"B<SHT_PROGBITS>.  The attributes are processor specific."
+"B<SHT_PROGBITS>.  The attributes are processor-specific."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1336
+#: build/C/man5/elf.5:1338
 #, no-wrap
 msgid "I<.hash>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1343
+#: build/C/man5/elf.5:1345
 msgid ""
 "This section holds a symbol hash table.  This section is of type "
 "B<SHT_HASH>.  The attribute used is B<SHF_ALLOC>."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1343
+#: build/C/man5/elf.5:1345
 #, no-wrap
 msgid "I<.init>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1355
+#: build/C/man5/elf.5:1357
 msgid ""
 "This section holds executable instructions that contribute to the process "
 "initialization code.  When a program starts to run the system arranges to "
@@ -3260,13 +3298,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1355
+#: build/C/man5/elf.5:1357
 #, no-wrap
 msgid "I<.interp>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1366
+#: build/C/man5/elf.5:1368
 msgid ""
 "This section holds the pathname of a program interpreter.  If the file has a "
 "loadable segment that includes the section, the section's attributes will "
@@ -3275,13 +3313,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1366
+#: build/C/man5/elf.5:1368
 #, no-wrap
 msgid "I<.line>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1374
+#: build/C/man5/elf.5:1376
 msgid ""
 "This section holds line number information for symbolic debugging, which "
 "describes the correspondence between the program source and the machine "
@@ -3290,13 +3328,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1374
+#: build/C/man5/elf.5:1376
 #, no-wrap
 msgid "I<.note>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1387
+#: build/C/man5/elf.5:1389
 msgid ""
 "This section holds information in the \"Note Section\" format.  This section "
 "is of type B<SHT_NOTE>.  No attribute types are used.  OpenBSD native "
@@ -3306,13 +3344,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1387
+#: build/C/man5/elf.5:1389
 #, no-wrap
 msgid "I<.note.GNU-stack>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1396
+#: build/C/man5/elf.5:1398
 msgid ""
 "This section is used in Linux object files for declaring stack attributes.  "
 "This section is of type B<SHT_PROGBITS>.  The only attribute used is "
@@ -3321,60 +3359,60 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1396
+#: build/C/man5/elf.5:1398
 #, no-wrap
 msgid "I<.plt>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1402
+#: build/C/man5/elf.5:1404
 msgid ""
 "This section holds the procedure linkage table.  This section is of type "
-"B<SHT_PROGBITS>.  The attributes are processor specific."
+"B<SHT_PROGBITS>.  The attributes are processor-specific."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1402
+#: build/C/man5/elf.5:1404
 #, no-wrap
 msgid "I<.relNAME>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1421
+#: build/C/man5/elf.5:1423
 msgid ""
 "This section holds relocation information as described below.  If the file "
 "has a loadable segment that includes relocation, the section's attributes "
-"will include the B<SHF_ALLOC> bit.  Otherwise the bit will be off.  By "
+"will include the B<SHF_ALLOC> bit.  Otherwise, the bit will be off.  By "
 "convention, \"NAME\" is supplied by the section to which the relocations "
 "apply.  Thus a relocation section for B<.text> normally would have the name "
 "B<.rel.text>.  This section is of type B<SHT_REL>."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1421
+#: build/C/man5/elf.5:1423
 #, no-wrap
 msgid "I<.relaNAME>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1440
+#: build/C/man5/elf.5:1442
 msgid ""
 "This section holds relocation information as described below.  If the file "
 "has a loadable segment that includes relocation, the section's attributes "
-"will include the B<SHF_ALLOC> bit.  Otherwise the bit will be off.  By "
+"will include the B<SHF_ALLOC> bit.  Otherwise, the bit will be off.  By "
 "convention, \"NAME\" is supplied by the section to which the relocations "
 "apply.  Thus a relocation section for B<.text> normally would have the name "
 "B<.rela.text>.  This section is of type B<SHT_RELA>."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1440
+#: build/C/man5/elf.5:1442
 #, no-wrap
 msgid "I<.rodata>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1448 build/C/man5/elf.5:1456
+#: build/C/man5/elf.5:1450 build/C/man5/elf.5:1458
 msgid ""
 "This section holds read-only data that typically contributes to a "
 "nonwritable segment in the process image.  This section is of type "
@@ -3382,64 +3420,64 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1448
+#: build/C/man5/elf.5:1450
 #, no-wrap
 msgid "I<.rodata1>"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1456
+#: build/C/man5/elf.5:1458
 #, no-wrap
 msgid "I<.shstrtab>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1462
+#: build/C/man5/elf.5:1464
 msgid ""
 "This section holds section names.  This section is of type B<SHT_STRTAB>.  "
 "No attribute types are used."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1462
+#: build/C/man5/elf.5:1464
 #, no-wrap
 msgid "I<.strtab>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1474
+#: build/C/man5/elf.5:1476
 msgid ""
 "This section holds strings, most commonly the strings that represent the "
 "names associated with symbol table entries.  If the file has a loadable "
 "segment that includes the symbol string table, the section's attributes will "
-"include the B<SHF_ALLOC> bit.  Otherwise the bit will be off.  This section "
+"include the B<SHF_ALLOC> bit.  Otherwise, the bit will be off.  This section "
 "is of type B<SHT_STRTAB>."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1474
+#: build/C/man5/elf.5:1476
 #, no-wrap
 msgid "I<.symtab>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1485
+#: build/C/man5/elf.5:1487
 msgid ""
 "This section holds a symbol table.  If the file has a loadable segment that "
 "includes the symbol table, the section's attributes will include the "
-"B<SHF_ALLOC> bit.  Otherwise the bit will be off.  This section is of type "
+"B<SHF_ALLOC> bit.  Otherwise, the bit will be off.  This section is of type "
 "B<SHT_SYMTAB>."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1485
+#: build/C/man5/elf.5:1487
 #, no-wrap
 msgid "I<.text>"
 msgstr ""
 
 #.  .El
 #. type: Plain text
-#: build/C/man5/elf.5:1497
+#: build/C/man5/elf.5:1499
 msgid ""
 "This section holds the \"text\", or executable instructions, of a program.  "
 "This section is of type B<SHT_PROGBITS>.  The attributes used are "
@@ -3447,7 +3485,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1508
+#: build/C/man5/elf.5:1510
 msgid ""
 "String table sections hold null-terminated character sequences, commonly "
 "called strings.  The object file uses these strings to represent symbol and "
@@ -3458,7 +3496,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1513
+#: build/C/man5/elf.5:1515
 msgid ""
 "An object file's symbol table holds information needed to locate and "
 "relocate a program's symbolic definitions and references.  A symbol table "
@@ -3466,7 +3504,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1524
+#: build/C/man5/elf.5:1526
 #, no-wrap
 msgid ""
 "typedef struct {\n"
@@ -3480,7 +3518,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1537
+#: build/C/man5/elf.5:1539
 #, no-wrap
 msgid ""
 "typedef struct {\n"
@@ -3495,20 +3533,20 @@ msgstr ""
 
 #.  .Bl -tag -width "st_value"
 #. type: Plain text
-#: build/C/man5/elf.5:1543
+#: build/C/man5/elf.5:1545
 msgid ""
 "The 32-bit and 64-bit versions have the same members, just in a different "
 "order."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1543
+#: build/C/man5/elf.5:1545
 #, no-wrap
 msgid "I<st_name>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1551
+#: build/C/man5/elf.5:1553
 msgid ""
 "This member holds an index into the object file's symbol string table, which "
 "holds character representations of the symbol names.  If the value is "
@@ -3517,95 +3555,95 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1551
+#: build/C/man5/elf.5:1553
 #, no-wrap
 msgid "I<st_value>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1554
+#: build/C/man5/elf.5:1556
 msgid "This member gives the value of the associated symbol."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1554
+#: build/C/man5/elf.5:1556
 #, no-wrap
 msgid "I<st_size>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1559
+#: build/C/man5/elf.5:1561
 msgid ""
 "Many symbols have associated sizes.  This member holds zero if the symbol "
 "has no size or an unknown size."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1559
+#: build/C/man5/elf.5:1561
 #, no-wrap
 msgid "I<st_info>"
 msgstr ""
 
 #.  .Bl -tag -width "STT_SECTION"
 #. type: Plain text
-#: build/C/man5/elf.5:1563
+#: build/C/man5/elf.5:1565
 msgid "This member specifies the symbol's type and binding attributes:"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1564
+#: build/C/man5/elf.5:1566
 #, no-wrap
 msgid "B<STT_NOTYPE>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1567
+#: build/C/man5/elf.5:1569
 msgid "The symbol's type is not defined."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1567
+#: build/C/man5/elf.5:1569
 #, no-wrap
 msgid "B<STT_OBJECT>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1570
+#: build/C/man5/elf.5:1572
 msgid "The symbol is associated with a data object."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1570
+#: build/C/man5/elf.5:1572
 #, no-wrap
 msgid "B<STT_FUNC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1573
+#: build/C/man5/elf.5:1575
 msgid "The symbol is associated with a function or other executable code."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1573
+#: build/C/man5/elf.5:1575
 #, no-wrap
 msgid "B<STT_SECTION>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1580
+#: build/C/man5/elf.5:1582
 msgid ""
 "The symbol is associated with a section.  Symbol table entries of this type "
 "exist primarily for relocation and normally have B<STB_LOCAL> bindings."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1580
+#: build/C/man5/elf.5:1582
 #, no-wrap
 msgid "B<STT_FILE>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1591
+#: build/C/man5/elf.5:1593
 msgid ""
 "By convention, the symbol's name gives the name of the source file "
 "associated with the object file.  A file symbol has B<STB_LOCAL> bindings, "
@@ -3614,20 +3652,20 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1591
+#: build/C/man5/elf.5:1593
 #, no-wrap
 msgid "B<STT_LOPROC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1596
+#: build/C/man5/elf.5:1598
 msgid ""
 "This value up to and including B<STT_HIPROC> is reserved for "
 "processor-specific semantics."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1596
+#: build/C/man5/elf.5:1598
 #, no-wrap
 msgid "B<STT_HIPROC>"
 msgstr ""
@@ -3635,20 +3673,20 @@ msgstr ""
 #.  .El
 #.  .Bl -tag -width "STB_GLOBAL"
 #. type: Plain text
-#: build/C/man5/elf.5:1603
+#: build/C/man5/elf.5:1605
 msgid ""
 "This value down to and including B<STT_LOPROC> is reserved for "
 "processor-specific semantics."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1603
+#: build/C/man5/elf.5:1605
 #, no-wrap
 msgid "B<STB_LOCAL>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1609
+#: build/C/man5/elf.5:1611
 msgid ""
 "Local symbols are not visible outside the object file containing their "
 "definition.  Local symbols of the same name may exist in multiple files "
@@ -3656,13 +3694,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1609
+#: build/C/man5/elf.5:1611
 #, no-wrap
 msgid "B<STB_GLOBAL>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1615
+#: build/C/man5/elf.5:1617
 msgid ""
 "Global symbols are visible to all object files being combined.  One file's "
 "definition of a global symbol will satisfy another file's undefined "
@@ -3670,158 +3708,158 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1615
+#: build/C/man5/elf.5:1617
 #, no-wrap
 msgid "B<STB_WEAK>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1619
+#: build/C/man5/elf.5:1621
 msgid ""
 "Weak symbols resemble global symbols, but their definitions have lower "
 "precedence."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1619
+#: build/C/man5/elf.5:1621
 #, no-wrap
 msgid "B<STB_LOPROC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1624
+#: build/C/man5/elf.5:1626
 msgid ""
 "This value up to and including B<STB_HIPROC> is reserved for "
 "processor-specific semantics."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1624
+#: build/C/man5/elf.5:1626
 #, no-wrap
 msgid "B<STB_HIPROC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1629
+#: build/C/man5/elf.5:1631
 msgid ""
 "This value down to and including B<STB_LOPROC> is reserved for "
 "processor-specific semantics."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1631
+#: build/C/man5/elf.5:1633
 msgid "There are macros for packing and unpacking the binding and type fields:"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1638
+#: build/C/man5/elf.5:1640
 msgid ""
 "B<ELF32_ST_BIND>(info)  or B<ELF64_ST_BIND>(info)  extract a binding from an "
 "I<st_info> value."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1642
+#: build/C/man5/elf.5:1644
 msgid "B<ELF32_ST_TYPE>(info)  or B<ELF64_ST_TYPE>(info)"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1646
+#: build/C/man5/elf.5:1648
 msgid "extract a type from an I<st_info> value."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1650
+#: build/C/man5/elf.5:1652
 msgid "B<ELF32_ST_INFO>(bind, type)  or B<ELF64_ST_INFO>(bind, type)"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1654
+#: build/C/man5/elf.5:1656
 msgid "convert a binding and a type into an I<st_info> value."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1656
+#: build/C/man5/elf.5:1658
 #, no-wrap
 msgid "I<st_other>"
 msgstr ""
 
 #.  .Bl -tag -width "STV_PROTECTED"
 #. type: Plain text
-#: build/C/man5/elf.5:1660
+#: build/C/man5/elf.5:1662
 msgid "This member defines the symbol visibility."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1661
+#: build/C/man5/elf.5:1663
 #, no-wrap
 msgid "B<STV_DEFAULT>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1665
+#: build/C/man5/elf.5:1667
 msgid "Default symbol visibility rules."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1665
+#: build/C/man5/elf.5:1667
 #, no-wrap
 msgid "B<STV_INTERNAL>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1668
+#: build/C/man5/elf.5:1670
 msgid "Processor-specific hidden class."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1668
+#: build/C/man5/elf.5:1670
 #, no-wrap
 msgid "B<STV_HIDDEN>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1671
+#: build/C/man5/elf.5:1673
 msgid "Symbol is unavailable in other modules."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1671
+#: build/C/man5/elf.5:1673
 #, no-wrap
 msgid "B<STV_PROTECTED>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1674
+#: build/C/man5/elf.5:1676
 msgid "Not preemptible, not exported."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1677
+#: build/C/man5/elf.5:1679
 msgid "There are macros for extracting the visibility type:"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1681
+#: build/C/man5/elf.5:1683
 msgid "B<ELF32_ST_VISIBILITY>(other)  or B<ELF64_ST_VISIBILITY>(other)"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1683
+#: build/C/man5/elf.5:1685
 #, no-wrap
 msgid "I<st_shndx>"
 msgstr ""
 
 #.  .El
 #. type: Plain text
-#: build/C/man5/elf.5:1691
+#: build/C/man5/elf.5:1693
 msgid ""
 "Every symbol table entry is \"defined\" in relation to some section.  This "
 "member holds the relevant section header table index."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1699
+#: build/C/man5/elf.5:1701
 msgid ""
 "Relocation is the process of connecting symbolic references with symbolic "
 "definitions.  Relocatable files must have information that describes how to "
@@ -3831,12 +3869,12 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1701
+#: build/C/man5/elf.5:1703
 msgid "Relocation structures that do not need an addend:"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1708
+#: build/C/man5/elf.5:1710
 #, no-wrap
 msgid ""
 "typedef struct {\n"
@@ -3846,7 +3884,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1717
+#: build/C/man5/elf.5:1719
 #, no-wrap
 msgid ""
 "typedef struct {\n"
@@ -3856,12 +3894,12 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1721
+#: build/C/man5/elf.5:1723
 msgid "Relocation structures that need an addend:"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1729
+#: build/C/man5/elf.5:1731
 #, no-wrap
 msgid ""
 "typedef struct {\n"
@@ -3872,7 +3910,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1739
+#: build/C/man5/elf.5:1741
 #, no-wrap
 msgid ""
 "typedef struct {\n"
@@ -3883,13 +3921,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1742
+#: build/C/man5/elf.5:1744
 #, no-wrap
 msgid "I<r_offset>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1750
+#: build/C/man5/elf.5:1752
 msgid ""
 "This member gives the location at which to apply the relocation action.  For "
 "a relocatable file, the value is the byte offset from the beginning of the "
@@ -3899,38 +3937,38 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1750
+#: build/C/man5/elf.5:1752
 #, no-wrap
 msgid "I<r_info>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1765
+#: build/C/man5/elf.5:1767
 msgid ""
 "This member gives both the symbol table index with respect to which the "
 "relocation must be made and the type of relocation to apply.  Relocation "
-"types are processor specific.  When the text refers to a relocation entry's "
+"types are processor-specific.  When the text refers to a relocation entry's "
 "relocation type or symbol table index, it means the result of applying "
-"B<ELF_[32|64]_R_TYPE> or B<ELF[32|64]_R_SYM>, respectively, to the entry's "
+"B<ELF[32|64]_R_TYPE> or B<ELF[32|64]_R_SYM>, respectively, to the entry's "
 "I<r_info> member."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1765
+#: build/C/man5/elf.5:1767
 #, no-wrap
 msgid "I<r_addend>"
 msgstr ""
 
 #.  .El
 #. type: Plain text
-#: build/C/man5/elf.5:1770
+#: build/C/man5/elf.5:1772
 msgid ""
 "This member specifies a constant addend used to compute the value to be "
 "stored into the relocatable field."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1775
+#: build/C/man5/elf.5:1777
 msgid ""
 "The .dynamic section contains a series of structures that hold relevant "
 "dynamic linking information.  The d_tag member controls the interpretation "
@@ -3938,7 +3976,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1786
+#: build/C/man5/elf.5:1788
 #, no-wrap
 msgid ""
 "typedef struct {\n"
@@ -3952,7 +3990,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1799
+#: build/C/man5/elf.5:1801
 #, no-wrap
 msgid ""
 "typedef struct {\n"
@@ -3966,346 +4004,346 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1802
+#: build/C/man5/elf.5:1804
 #, no-wrap
 msgid "I<d_tag>"
 msgstr ""
 
 #.  .Bl -tag -width "DT_SYMBOLIC"
 #. type: Plain text
-#: build/C/man5/elf.5:1806
+#: build/C/man5/elf.5:1808
 msgid "This member may have any of the following values:"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1807
+#: build/C/man5/elf.5:1809
 #, no-wrap
 msgid "B<DT_NULL>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1810
+#: build/C/man5/elf.5:1812
 msgid "Marks end of dynamic section"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1810
+#: build/C/man5/elf.5:1812
 #, no-wrap
 msgid "B<DT_NEEDED>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1813
+#: build/C/man5/elf.5:1815
 msgid "String table offset to name of a needed library"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1813
+#: build/C/man5/elf.5:1815
 #, no-wrap
 msgid "B<DT_PLTRELSZ>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1816
+#: build/C/man5/elf.5:1818
 msgid "Size in bytes of PLT relocs"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1816
+#: build/C/man5/elf.5:1818
 #, no-wrap
 msgid "B<DT_PLTGOT>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1819
+#: build/C/man5/elf.5:1821
 msgid "Address of PLT and/or GOT"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1819
+#: build/C/man5/elf.5:1821
 #, no-wrap
 msgid "B<DT_HASH>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1822
+#: build/C/man5/elf.5:1824
 msgid "Address of symbol hash table"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1822
+#: build/C/man5/elf.5:1824
 #, no-wrap
 msgid "B<DT_STRTAB>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1825
+#: build/C/man5/elf.5:1827
 msgid "Address of string table"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1825
+#: build/C/man5/elf.5:1827
 #, no-wrap
 msgid "B<DT_SYMTAB>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1828
+#: build/C/man5/elf.5:1830
 msgid "Address of symbol table"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1828
+#: build/C/man5/elf.5:1830
 #, no-wrap
 msgid "B<DT_RELA>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1831
+#: build/C/man5/elf.5:1833
 msgid "Address of Rela relocs table"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1831
+#: build/C/man5/elf.5:1833
 #, no-wrap
 msgid "B<DT_RELASZ>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1834
+#: build/C/man5/elf.5:1836
 msgid "Size in bytes of Rela table"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1834
+#: build/C/man5/elf.5:1836
 #, no-wrap
 msgid "B<DT_RELAENT>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1837
+#: build/C/man5/elf.5:1839
 msgid "Size in bytes of a Rela table entry"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1837
+#: build/C/man5/elf.5:1839
 #, no-wrap
 msgid "B<DT_STRSZ>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1840
+#: build/C/man5/elf.5:1842
 msgid "Size in bytes of string table"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1840
+#: build/C/man5/elf.5:1842
 #, no-wrap
 msgid "B<DT_SYMENT>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1843
+#: build/C/man5/elf.5:1845
 msgid "Size in bytes of a symbol table entry"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1843
+#: build/C/man5/elf.5:1845
 #, no-wrap
 msgid "B<DT_INIT>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1846
+#: build/C/man5/elf.5:1848
 msgid "Address of the initialization function"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1846
+#: build/C/man5/elf.5:1848
 #, no-wrap
 msgid "B<DT_FINI>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1849
+#: build/C/man5/elf.5:1851
 msgid "Address of the termination function"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1849
+#: build/C/man5/elf.5:1851
 #, no-wrap
 msgid "B<DT_SONAME>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1852
+#: build/C/man5/elf.5:1854
 msgid "String table offset to name of shared object"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1852
+#: build/C/man5/elf.5:1854
 #, no-wrap
 msgid "B<DT_RPATH>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1855
+#: build/C/man5/elf.5:1857
 msgid "String table offset to library search path (deprecated)"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1855
+#: build/C/man5/elf.5:1857
 #, no-wrap
 msgid "B<DT_SYMBOLIC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1858
+#: build/C/man5/elf.5:1860
 msgid "Alert linker to search this shared object before the executable for symbols"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1858
+#: build/C/man5/elf.5:1860
 #, no-wrap
 msgid "B<DT_REL>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1861
+#: build/C/man5/elf.5:1863
 msgid "Address of Rel relocs table"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1861
+#: build/C/man5/elf.5:1863
 #, no-wrap
 msgid "B<DT_RELSZ>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1864
+#: build/C/man5/elf.5:1866
 msgid "Size in bytes of Rel table"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1864
+#: build/C/man5/elf.5:1866
 #, no-wrap
 msgid "B<DT_RELENT>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1867
+#: build/C/man5/elf.5:1869
 msgid "Size in bytes of a Rel table entry"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1867
+#: build/C/man5/elf.5:1869
 #, no-wrap
 msgid "B<DT_PLTREL>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1870
+#: build/C/man5/elf.5:1872
 msgid "Type of reloc the PLT refers (Rela or Rel)"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1870
+#: build/C/man5/elf.5:1872
 #, no-wrap
 msgid "B<DT_DEBUG>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1873
+#: build/C/man5/elf.5:1875
 msgid "Undefined use for debugging"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1873
+#: build/C/man5/elf.5:1875
 #, no-wrap
 msgid "B<DT_TEXTREL>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1876
+#: build/C/man5/elf.5:1878
 msgid "Absence of this indicates no relocs should apply to a nonwritable segment"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1876
+#: build/C/man5/elf.5:1878
 #, no-wrap
 msgid "B<DT_JMPREL>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1879
+#: build/C/man5/elf.5:1881
 msgid "Address of reloc entries solely for the PLT"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1879
+#: build/C/man5/elf.5:1881
 #, no-wrap
 msgid "B<DT_BIND_NOW>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1883
+#: build/C/man5/elf.5:1885
 msgid ""
 "Instruct dynamic linker to process all relocs before transferring control to "
 "the executable"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1883
+#: build/C/man5/elf.5:1885
 #, no-wrap
 msgid "B<DT_RUNPATH>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1886
+#: build/C/man5/elf.5:1888
 msgid "String table offset to library search path"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1886
+#: build/C/man5/elf.5:1888
 #, no-wrap
 msgid "B<DT_LOPROC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1889
+#: build/C/man5/elf.5:1891
 msgid "Start of processor-specific semantics"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1889
+#: build/C/man5/elf.5:1891
 #, no-wrap
 msgid "B<DT_HIPROC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1892
+#: build/C/man5/elf.5:1894
 msgid "End of processor-specific semantics"
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1894
+#: build/C/man5/elf.5:1896
 #, no-wrap
 msgid "I<d_val>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1897
+#: build/C/man5/elf.5:1899
 msgid "This member represents integer values with various interpretations."
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1897
+#: build/C/man5/elf.5:1899
 #, no-wrap
 msgid "I<d_ptr>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1905
+#: build/C/man5/elf.5:1907
 msgid ""
 "This member represents program virtual addresses.  When interpreting these "
 "addresses, the actual address should be computed based on the original file "
@@ -4314,14 +4352,14 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man5/elf.5:1905
+#: build/C/man5/elf.5:1907
 #, no-wrap
 msgid "I<_DYNAMIC>"
 msgstr ""
 
 #.  .El
 #. type: Plain text
-#: build/C/man5/elf.5:1910
+#: build/C/man5/elf.5:1912
 msgid ""
 "Array containing all the dynamic structures in the .dynamic section.  This "
 "is automatically populated by the linker."
@@ -4333,7 +4371,7 @@ msgstr ""
 #.  although not all supported platforms use it as the native
 #.  binary file format.
 #. type: Plain text
-#: build/C/man5/elf.5:1919
+#: build/C/man5/elf.5:1921
 msgid "ELF first appeared in System V.  The ELF format is an adopted standard."
 msgstr ""
 
@@ -4346,7 +4384,7 @@ msgstr ""
 #.  .Nm elf
 #.  man page.
 #. type: Plain text
-#: build/C/man5/elf.5:1937
+#: build/C/man5/elf.5:1939
 msgid ""
 "The extensions for I<e_phnum>, I<e_shnum> and I<e_strndx> respectively are "
 "Linux extensions.  Sun, BSD and AMD64 also support them; for further "
@@ -4354,58 +4392,58 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1944
+#: build/C/man5/elf.5:1946
 msgid "B<as>(1), B<gdb>(1), B<ld>(1), B<objdump>(1), B<execve>(2), B<core>(5)"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1947
+#: build/C/man5/elf.5:1949
 msgid "Hewlett-Packard, I<Elf-64 Object File Format>."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1950
+#: build/C/man5/elf.5:1952
 msgid "Santa Cruz Operation, I<System V Application Binary Interface>."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1954
+#: build/C/man5/elf.5:1956
 msgid ""
 "UNIX System Laboratories, \"Object Files\", I<Executable and Linking Format "
 "(ELF)>."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1957
+#: build/C/man5/elf.5:1959
 msgid "Sun Microsystems, I<Linker and Libraries Guide>."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man5/elf.5:1960
+#: build/C/man5/elf.5:1962
 msgid ""
 "AMD64 ABI Draft, I<System V Application Binary Interface AMD64 Architecture "
 "Processor Supplement>."
 msgstr ""
 
 #. type: TH
-#: build/C/man3/end.3:25
+#: build/C/man3/end.3:26
 #, no-wrap
 msgid "END"
 msgstr ""
 
 #. type: TH
-#: build/C/man3/end.3:25
+#: build/C/man3/end.3:26
 #, no-wrap
 msgid "2008-07-17"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:28
+#: build/C/man3/end.3:29
 msgid "etext, edata, end - end of program segments"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:33
+#: build/C/man3/end.3:34
 #, no-wrap
 msgid ""
 "B<extern>I< etext>B<;>\n"
@@ -4414,63 +4452,63 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:37
+#: build/C/man3/end.3:38
 msgid "The addresses of these symbols indicate the end of various program segments:"
 msgstr ""
 
 #. type: TP
-#: build/C/man3/end.3:37
+#: build/C/man3/end.3:38
 #, no-wrap
 msgid "I<etext>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:41
+#: build/C/man3/end.3:42
 msgid ""
 "This is the first address past the end of the text segment (the program "
 "code)."
 msgstr ""
 
 #. type: TP
-#: build/C/man3/end.3:41
+#: build/C/man3/end.3:42
 #, no-wrap
 msgid "I<edata>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:45
+#: build/C/man3/end.3:46
 msgid "This is the first address past the end of the initialized data segment."
 msgstr ""
 
 #. type: TP
-#: build/C/man3/end.3:45
+#: build/C/man3/end.3:46
 #, no-wrap
 msgid "I<end>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:49
+#: build/C/man3/end.3:50
 msgid ""
 "This is the first address past the end of the uninitialized data segment "
 "(also known as the BSS segment)."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:52
+#: build/C/man3/end.3:53
 msgid ""
 "Although these symbols have long been provided on most UNIX systems, they "
 "are not standardized; use with caution."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:55
+#: build/C/man3/end.3:56
 msgid ""
 "The program must explicitly declare these symbols; they are not defined in "
 "any header file."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:63
+#: build/C/man3/end.3:64
 msgid ""
 "On some systems the names of these symbols are preceded by underscores, "
 "thus: I<_etext>, I<_edata>, and I<_end>.  These symbols are also defined for "
@@ -4478,7 +4516,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:75
+#: build/C/man3/end.3:76
 msgid ""
 "At the start of program execution, the program break will be somewhere near "
 "I<&end> (perhaps at the start of the following page).  However, the break "
@@ -4488,12 +4526,12 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:77
+#: build/C/man3/end.3:78
 msgid "When run, the program below produces output such as the following:"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:85
+#: build/C/man3/end.3:86
 #, no-wrap
 msgid ""
 "$B< ./a.out>\n"
@@ -4504,13 +4542,13 @@ msgid ""
 msgstr ""
 
 #. type: SS
-#: build/C/man3/end.3:87
+#: build/C/man3/end.3:88 build/C/man1/memusage.1:234
 #, no-wrap
 msgid "Program source"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:92
+#: build/C/man3/end.3:93 build/C/man1/memusage.1:238
 #, no-wrap
 msgid ""
 "#include E<lt>stdio.hE<gt>\n"
@@ -4518,7 +4556,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:95
+#: build/C/man3/end.3:96
 #, no-wrap
 msgid ""
 "extern char etext, edata, end; /* The symbols must have some type,\n"
@@ -4526,7 +4564,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:103
+#: build/C/man3/end.3:104
 #, no-wrap
 msgid ""
 "int\n"
@@ -4539,29 +4577,29 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man3/end.3:112
+#: build/C/man3/end.3:113
 msgid "B<objdump>(1), B<readelf>(1), B<sbrk>(2), B<elf>(5)"
 msgstr ""
 
 #. type: TH
-#: build/C/man8/ld.so.8:2
+#: build/C/man8/ld.so.8:5
 #, no-wrap
 msgid "LD.SO"
 msgstr ""
 
 #. type: TH
-#: build/C/man8/ld.so.8:2
+#: build/C/man8/ld.so.8:5
 #, no-wrap
-msgid "2012-04-17"
+msgid "2014-12-31"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:5
+#: build/C/man8/ld.so.8:8
 msgid "ld.so, ld-linux.so* - dynamic linker/loader"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:12
+#: build/C/man8/ld.so.8:15
 msgid ""
 "The dynamic linker can be run either indirectly by running some dynamically "
 "linked program or library (in which case no command-line options to the "
@@ -4571,43 +4609,53 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:15
+#: build/C/man8/ld.so.8:18
 msgid "I</lib/ld-linux.so.*> [OPTIONS] [PROGRAM [ARGUMENTS]]"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:22
+#: build/C/man8/ld.so.8:25
 msgid ""
 "The programs B<ld.so> and B<ld-linux.so*> find and load the shared libraries "
 "needed by a program, prepare the program to run, and then run it."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:29
+#: build/C/man8/ld.so.8:32
 msgid ""
 "Linux binaries require dynamic linking (linking at run time)  unless the "
 "B<-static> option was given to B<ld>(1)  during compilation."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:42
+#: build/C/man8/ld.so.8:45
 msgid ""
 "The program B<ld.so> handles a.out binaries, a format used long ago; "
 "B<ld-linux.so*> handles ELF (I</lib/ld-linux.so.1> for libc5, "
 "I</lib/ld-linux.so.2> for glibc2), which everybody has been using for years "
-"now.  Otherwise both have the same behavior, and use the same support files "
-"and programs B<ldd>(1), B<ldconfig>(8)  and I</etc/ld.so.conf>."
+"now.  Otherwise, both have the same behavior, and use the same support files "
+"and programs B<ldd>(1), B<ldconfig>(8), and I</etc/ld.so.conf>."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:45
+#: build/C/man8/ld.so.8:53
+msgid ""
+"When resolving library dependencies, the dynamic linker first inspects each "
+"dependency string to see if it contains a slash (this can occur if a library "
+"pathname containing slashes was specified at link time).  If a slash is "
+"found, then the dependency string is interpreted as a (relative or absolute) "
+"pathname, and the library is loaded using that pathname."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/ld.so.8:56
 msgid ""
-"The shared libraries needed by the program are searched for in the following "
-"order:"
+"If a library dependency does not contain a slash, then it is searched for in "
+"the following order:"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:50
+#: build/C/man8/ld.so.8:61
 msgid ""
 "(ELF only) Using the directories specified in the DT_RPATH dynamic section "
 "attribute of the binary if present and DT_RUNPATH attribute does not exist.  "
@@ -4615,23 +4663,23 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:55
+#: build/C/man8/ld.so.8:66
 msgid ""
 "Using the environment variable B<LD_LIBRARY_PATH>.  Except if the executable "
 "is a set-user-ID/set-group-ID binary, in which case it is ignored."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:59
+#: build/C/man8/ld.so.8:70
 msgid ""
 "(ELF only) Using the directories specified in the DT_RUNPATH dynamic section "
 "attribute of the binary if present."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:69
+#: build/C/man8/ld.so.8:80
 msgid ""
-"From the cache file I</etc/ld.so.cache> which contains a compiled list of "
+"From the cache file I</etc/ld.so.cache>, which contains a compiled list of "
 "candidate libraries previously found in the augmented library path.  If, "
 "however, the binary was linked with the B<-z nodeflib> linker option, "
 "libraries in the default library paths are skipped.  Libraries installed in "
@@ -4640,121 +4688,177 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:77
+#: build/C/man8/ld.so.8:88
 msgid ""
 "In the default path I</lib>, and then I</usr/lib>.  If the binary was linked "
 "with the B<-z nodeflib> linker option, this step is skipped."
 msgstr ""
 
 #. type: SS
-#: build/C/man8/ld.so.8:77
+#: build/C/man8/ld.so.8:88
 #, no-wrap
-msgid "$ORIGIN and rpath"
+msgid "Rpath token expansion"
 msgstr ""
 
-#.  ld.so also understands $LIB, with the same meaning as $ORIGIN/lib,
-#.  it appears.
-#
-#.  There is also $PLATFORM.  This is a kind of wildcard
-#.  of directories related at AT_HWCAP.  To get an idea of the
-#.  places that $PLATFORM would match, look at the output of the
-#.  following:
+#. type: Plain text
+#: build/C/man8/ld.so.8:92
+msgid ""
+"B<ld.so> understands certain strings in an rpath specification (DT_RPATH or "
+"DT_RUNPATH); those strings are substituted as follows"
+msgstr ""
+
+#. type: TP
+#: build/C/man8/ld.so.8:92
+#, no-wrap
+msgid "I<$ORIGIN> (or equivalently I<${ORIGIN}>)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/ld.so.8:99
+msgid ""
+"This expands to the directory containing the program or shared library.  "
+"Thus, an application located in I<somedir/app> could be compiled with"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/ld.so.8:101
+#, no-wrap
+msgid "    gcc -Wl,-rpath,\\(aq$ORIGIN/../lib\\(aq\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/ld.so.8:111
+msgid ""
+"so that it finds an associated shared library in I<somedir/lib> no matter "
+"where I<somedir> is located in the directory hierarchy.  This facilitates "
+"the creation of \"turn-key\" applications that do not need to be installed "
+"into special directories, but can instead be unpacked into any directory and "
+"still find their own shared libraries."
+msgstr ""
+
+#. type: TP
+#: build/C/man8/ld.so.8:111
+#, no-wrap
+msgid "I<$LIB> (or equivalently I<${LIB}>)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/ld.so.8:123
+msgid ""
+"This expands to I<lib> or I<lib64> depending on the architecture (e.g., on "
+"x86-64, it expands to I<lib64> and on x86-32, it expands to I<lib>)."
+msgstr ""
+
+#. type: TP
+#: build/C/man8/ld.so.8:123
+#, no-wrap
+msgid "I<$PLATFORM> (or equivalently I<${PLATFORM}>)"
+msgstr ""
+
+#.  To get an idea of the places that $PLATFORM would match,
+#.  look at the output of the following:
 #
-#.  mkdir /tmp/d
-#.  LD_LIBRARY_PATH=/tmp/d strace -e open /bin/date 2>&1 | grep /tmp/d
+#.      mkdir /tmp/d
+#.      LD_LIBRARY_PATH=/tmp/d strace -e open /bin/date 2>&1 | grep /tmp/d
 #
 #.  ld.so lets names be abbreviated, so $O will work for $ORIGIN;
 #.  Don't do this!!
 #. type: Plain text
-#: build/C/man8/ld.so.8:112
-msgid ""
-"B<ld.so> understands the string I<$ORIGIN> (or equivalently I<${ORIGIN}>)  "
-"in an rpath specification (DT_RPATH or DT_RUNPATH) to mean the directory "
-"containing the application executable.  Thus, an application located in "
-"I<somedir/app> could be compiled with I<gcc "
-"-Wl,-rpath,\\(aq$ORIGIN/../lib\\(aq> so that it finds an associated shared "
-"library in I<somedir/lib> no matter where I<somedir> is located in the "
-"directory hierarchy.  This facilitates the creation of \"turn-key\" "
-"applications that do not need to be installed into special directories, but "
-"can instead be unpacked into any directory and still find their own shared "
-"libraries."
+#: build/C/man8/ld.so.8:141
+msgid ""
+"This expands to a string corresponding to the processor type of the host "
+"system (e.g., \"x86_64\").  On some architectures, the Linux kernel doesn't "
+"provide a platform string to the dynamic linker.  The value of this string "
+"is taken from the B<AT_PLATFORM> value in the auxiliary vector (see "
+"B<getauxval>(3))."
 msgstr ""
 
 #. type: SH
-#: build/C/man8/ld.so.8:112 build/C/man8/ldconfig.8:100 build/C/man1/ldd.1:19
+#: build/C/man8/ld.so.8:141 build/C/man8/ldconfig.8:100 build/C/man1/ldd.1:51 build/C/man1/memusage.1:135 build/C/man1/memusagestat.1:47 build/C/man1/mtrace.1:51 build/C/man1/pldd.1:40 build/C/man1/sprof.1:46
 #, no-wrap
 msgid "OPTIONS"
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:113
+#: build/C/man8/ld.so.8:142
 #, no-wrap
 msgid "B<--list>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:116
+#: build/C/man8/ld.so.8:145
 msgid "List all dependencies and how they are resolved."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:116
+#: build/C/man8/ld.so.8:145
 #, no-wrap
 msgid "B<--verify>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:120
+#: build/C/man8/ld.so.8:149
 msgid ""
 "Verify that program is dynamically linked and this dynamic linker can handle "
 "it."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:120
+#: build/C/man8/ld.so.8:149
+#, no-wrap
+msgid "B<--inhibit-cache>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/ld.so.8:152
+msgid "Do not use /etc/ld.so.cache."
+msgstr ""
+
+#. type: TP
+#: build/C/man8/ld.so.8:152
 #, no-wrap
 msgid "B<--library-path PATH>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:125
+#: build/C/man8/ld.so.8:157
 msgid ""
 "Use PATH instead of B<LD_LIBRARY_PATH> environment variable setting (see "
 "below)."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:125
+#: build/C/man8/ld.so.8:157
 #, no-wrap
 msgid "B<--inhibit-rpath LIST>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:131
+#: build/C/man8/ld.so.8:163
 msgid ""
 "Ignore RPATH and RUNPATH information in object names in LIST.  This option "
 "is ignored if B<ld.so> is set-user-ID or set-group-ID."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:131
+#: build/C/man8/ld.so.8:163
 #, no-wrap
 msgid "B<--audit LIST>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:134
+#: build/C/man8/ld.so.8:166
 msgid "Use objects named in LIST as auditors."
 msgstr ""
 
 #. type: SH
-#: build/C/man8/ld.so.8:134
+#: build/C/man8/ld.so.8:166
 #, no-wrap
 msgid "HARDWARE CAPABILITIES"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:145
+#: build/C/man8/ld.so.8:177
 msgid ""
 "Some libraries are compiled using hardware-specific instructions which do "
 "not exist on every CPU.  Such libraries should be installed in directories "
@@ -4767,35 +4871,35 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:145
+#: build/C/man8/ld.so.8:177
 #, no-wrap
 msgid "B<Alpha>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:148
+#: build/C/man8/ld.so.8:180
 msgid "ev4, ev5, ev56, ev6, ev67"
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:148
+#: build/C/man8/ld.so.8:180
 #, no-wrap
 msgid "B<MIPS>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:151
+#: build/C/man8/ld.so.8:183
 msgid "loongson2e, loongson2f, octeon, octeon2"
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:151
+#: build/C/man8/ld.so.8:183
 #, no-wrap
 msgid "B<PowerPC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:156
+#: build/C/man8/ld.so.8:188
 msgid ""
 "4xxmac, altivec, arch_2_05, arch_2_06, booke, cellbe, dfp, efpdouble, "
 "efpsingle, fpu, ic_snoop, mmu, notb, pa6t, power4, power5, power5+, power6x, "
@@ -4803,61 +4907,120 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:156
+#: build/C/man8/ld.so.8:188
 #, no-wrap
 msgid "B<SPARC>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:159
+#: build/C/man8/ld.so.8:191
 msgid "flush, muldiv, stbar, swap, ultra3, v9, v9v, v9v2"
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:159
+#: build/C/man8/ld.so.8:191
 #, no-wrap
 msgid "B<s390>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:163
+#: build/C/man8/ld.so.8:195
 msgid ""
 "dfp, eimm, esan3, etf3enh, g5, highgprs, hpage, ldisp, msa, stfle, z900, "
 "z990, z9-109, z10, zarch"
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:164
+#: build/C/man8/ld.so.8:195
 #, no-wrap
 msgid "B<x86 (32-bit only)>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:168
+#: build/C/man8/ld.so.8:199
 msgid ""
 "acpi, apic, clflush, cmov, cx8, dts, fxsr, ht, i386, i486, i586, i686, mca, "
 "mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm"
 msgstr ""
 
 #. type: SH
-#: build/C/man8/ld.so.8:168
+#: build/C/man8/ld.so.8:199
 #, no-wrap
 msgid "ENVIRONMENT"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:170
-msgid "There are four important environment variables."
+#: build/C/man8/ld.so.8:201
+msgid "Among the more important environment variables are the following:"
+msgstr ""
+
+#. type: TP
+#: build/C/man8/ld.so.8:201
+#, no-wrap
+msgid "B<LD_ASSUME_KERNEL>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/ld.so.8:214
+msgid ""
+"(glibc since 2.2.3)  Each shared library can inform the dynamic linker of "
+"the minimum kernel ABI version that it requires.  (This requirement is "
+"encoded in an ELF note section that is viewable via I<readelf\\ -n> as a "
+"section labeled B<NT_GNU_ABI_TAG>.)  At run time, the dynamic linker "
+"determines the ABI version of the running kernel and will reject loading "
+"shared libraries that specify minimum ABI versions that exceed that ABI "
+"version."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/ld.so.8:223
+msgid ""
+"B<LD_ASSUME_KERNEL> can be used to cause the dynamic linker to assume that "
+"it is running on a system with a different kernel ABI version.  For example, "
+"the following command line causes the dynamic linker to assume it is running "
+"on Linux 2.2.5 when loading the shared libraries required by I<myprog>:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/ld.so.8:227
+#, no-wrap
+msgid "$ B<LD_ASSUME_KERNEL=2.2.5 ./myprog>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/ld.so.8:244
+msgid ""
+"On systems that provide multiple versions of a shared library (in different "
+"directories in the search path) that have different minimum kernel ABI "
+"version requirements, B<LD_ASSUME_KERNEL> can be used to select the version "
+"of the library that is used (dependent on the directory search order).  "
+"Historically, the most common use of the B<LD_ASSUME_KERNEL> feature was to "
+"manually select the older LinuxThreads POSIX threads implementation on "
+"systems that provided both LinuxThreads and NPTL (which latter was typically "
+"the default on such systems); see B<pthreads>(7)."
+msgstr ""
+
+#. type: TP
+#: build/C/man8/ld.so.8:244 build/C/man8/ld.so.8:325
+#, no-wrap
+msgid "B<LD_BIND_NOT>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/ld.so.8:249
+msgid ""
+"(glibc since 2.2)  Don't update the Global Offset Table (GOT) and Procedure "
+"Linkage Table (PLT)  when resolving a symbol."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:170
+#: build/C/man8/ld.so.8:249
 #, no-wrap
 msgid "B<LD_BIND_NOW>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:178
+#: build/C/man8/ld.so.8:257
 msgid ""
 "(libc5; glibc since 2.1.1)  If set to a nonempty string, causes the dynamic "
 "linker to resolve all symbols at program startup instead of deferring "
@@ -4866,42 +5029,46 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:178
+#: build/C/man8/ld.so.8:257
 #, no-wrap
 msgid "B<LD_LIBRARY_PATH>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:185
+#: build/C/man8/ld.so.8:265
 msgid ""
 "A colon-separated list of directories in which to search for ELF libraries "
-"at execution-time.  Similar to the B<PATH> environment variable."
+"at execution-time.  Similar to the B<PATH> environment variable.  Ignored in "
+"set-user-ID and set-group-ID programs."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:185
+#: build/C/man8/ld.so.8:265
 #, no-wrap
 msgid "B<LD_PRELOAD>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:193
+#: build/C/man8/ld.so.8:276
 msgid ""
-"A whitespace-separated list of additional, user-specified, ELF shared "
-"libraries to be loaded before all others.  This can be used to selectively "
-"override functions in other shared libraries.  For set-user-ID/set-group-ID "
-"ELF binaries, only libraries in the standard search directories that are "
-"also set-user-ID will be loaded."
+"A list of additional, user-specified, ELF shared libraries to be loaded "
+"before all others.  The items of the list can be separated by spaces or "
+"colons.  This can be used to selectively override functions in other shared "
+"libraries.  The libraries are searched for using the rules given under "
+"DESCRIPTION.  For set-user-ID/set-group-ID ELF binaries, preload pathnames "
+"containing slashes are ignored, and libraries in the standard search "
+"directories are loaded only if the set-user-ID permission bit is enabled on "
+"the library file."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:193
+#: build/C/man8/ld.so.8:276
 #, no-wrap
 msgid "B<LD_TRACE_LOADED_OBJECTS>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:200
+#: build/C/man8/ld.so.8:283
 msgid ""
 "(ELF only)  If set to a nonempty string, causes the program to list its "
 "dynamic library dependencies, as if run by B<ldd>(1), instead of running "
@@ -4909,46 +5076,46 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:203
+#: build/C/man8/ld.so.8:286
 msgid ""
 "Then there are lots of more or less obscure variables, many obsolete or only "
 "for internal use."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:203
+#: build/C/man8/ld.so.8:286
 #, no-wrap
 msgid "B<LD_AOUT_LIBRARY_PATH>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:211
+#: build/C/man8/ld.so.8:294
 msgid ""
 "(libc5)  Version of B<LD_LIBRARY_PATH> for a.out binaries only.  Old "
 "versions of ld-linux.so.1 also supported B<LD_ELF_LIBRARY_PATH>."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:211
+#: build/C/man8/ld.so.8:294
 #, no-wrap
 msgid "B<LD_AOUT_PRELOAD>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:219
+#: build/C/man8/ld.so.8:302
 msgid ""
 "(libc5)  Version of B<LD_PRELOAD> for a.out binaries only.  Old versions of "
 "ld-linux.so.1 also supported B<LD_ELF_PRELOAD>."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:219
+#: build/C/man8/ld.so.8:302
 #, no-wrap
 msgid "B<LD_AUDIT>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:229
+#: build/C/man8/ld.so.8:312
 msgid ""
 "(glibc since 2.4)  A colon-separated list of user-specified, ELF shared "
 "objects to be loaded before all others in a separate linker namespace (i.e., "
@@ -4959,7 +5126,7 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:242
+#: build/C/man8/ld.so.8:325
 msgid ""
 "The dynamic linker will notify the audit libraries at so-called auditing "
 "checkpoints\\(emfor example, loading a new library, resolving a symbol, or "
@@ -4970,27 +5137,21 @@ msgid ""
 "Linker Auditing Interface>."
 msgstr ""
 
-#. type: TP
-#: build/C/man8/ld.so.8:242
-#, no-wrap
-msgid "B<LD_BIND_NOT>"
-msgstr ""
-
 #. type: Plain text
-#: build/C/man8/ld.so.8:247
+#: build/C/man8/ld.so.8:330
 msgid ""
 "(glibc since 2.1.95)  Do not update the GOT (global offset table) and PLT "
 "(procedure linkage table)  after resolving a symbol."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:247
+#: build/C/man8/ld.so.8:330
 #, no-wrap
 msgid "B<LD_DEBUG>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:260
+#: build/C/man8/ld.so.8:343
 msgid ""
 "(glibc since 2.1)  Output verbose debugging information about the dynamic "
 "linker.  If set to B<all> prints all debugging information it has, if set to "
@@ -5000,27 +5161,27 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:260
+#: build/C/man8/ld.so.8:343
 #, no-wrap
 msgid "B<LD_DEBUG_OUTPUT>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:268
+#: build/C/man8/ld.so.8:352
 msgid ""
-"(glibc since 2.1)  File where B<LD_DEBUG> output should be fed into, default "
-"is standard output.  B<LD_DEBUG_OUTPUT> is ignored for "
+"(glibc since 2.1)  File in which B<LD_DEBUG> output should be written.  The "
+"default is standard error.  B<LD_DEBUG_OUTPUT> is ignored for "
 "set-user-ID/set-group-ID binaries."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:268
+#: build/C/man8/ld.so.8:352
 #, no-wrap
 msgid "B<LD_DYNAMIC_WEAK>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:275
+#: build/C/man8/ld.so.8:359
 msgid ""
 "(glibc since 2.1.91)  Allow weak symbols to be overridden (reverting to old "
 "glibc behavior).  For security reasons, since glibc 2.3.4, "
@@ -5028,44 +5189,44 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:275
+#: build/C/man8/ld.so.8:359
 #, no-wrap
 msgid "B<LD_HWCAP_MASK>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:279
+#: build/C/man8/ld.so.8:363
 msgid "(glibc since 2.1)  Mask for hardware capabilities."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:279
+#: build/C/man8/ld.so.8:363
 #, no-wrap
 msgid "B<LD_KEEPDIR>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:284
+#: build/C/man8/ld.so.8:368
 msgid ""
 "(a.out only)(libc5)  Don't ignore the directory in the names of a.out "
 "libraries to be loaded.  Use of this option is strongly discouraged."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:284
+#: build/C/man8/ld.so.8:368
 #, no-wrap
 msgid "B<LD_NOWARN>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:289
+#: build/C/man8/ld.so.8:373
 msgid ""
 "(a.out only)(libc5)  Suppress warnings about a.out libraries with "
 "incompatible minor version numbers."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:289
+#: build/C/man8/ld.so.8:373
 #, no-wrap
 msgid "B<LD_ORIGIN_PATH>"
 msgstr ""
@@ -5073,7 +5234,7 @@ msgstr ""
 #.  Only used if $ORIGIN can't be determined by normal means
 #.  (from the origin path saved at load time, or from /proc/self/exe)?
 #. type: Plain text
-#: build/C/man8/ld.so.8:298
+#: build/C/man8/ld.so.8:382
 msgid ""
 "(glibc since 2.1)  Path where the binary is found (for non-set-user-ID "
 "programs).  For security reasons, since glibc 2.4, B<LD_ORIGIN_PATH> is "
@@ -5081,13 +5242,13 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:298
+#: build/C/man8/ld.so.8:382
 #, no-wrap
 msgid "B<LD_POINTER_GUARD>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:310
+#: build/C/man8/ld.so.8:394
 msgid ""
 "(glibc since 2.4)  Set to 0 to disable pointer guarding.  Any other value "
 "enables pointer guarding, which is also the default.  Pointer guarding is a "
@@ -5099,27 +5260,27 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:310
+#: build/C/man8/ld.so.8:394
 #, no-wrap
 msgid "B<LD_PROFILE>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:317
+#: build/C/man8/ld.so.8:401
 msgid ""
-"(glibc since 2.1)  Shared object to be profiled, specified either as a "
-"pathname or a soname.  Profiling output is written to the file whose name "
-"is: \"I<$LD_PROFILE_OUTPUT>/I<$LD_PROFILE>.profile\"."
+"(glibc since 2.1)  The name of a (single) shared object to be profiled, "
+"specified either as a pathname or a soname.  Profiling output is appended to "
+"the file whose name is: \"I<$LD_PROFILE_OUTPUT>/I<$LD_PROFILE>.profile\"."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:317
+#: build/C/man8/ld.so.8:401
 #, no-wrap
 msgid "B<LD_PROFILE_OUTPUT>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:330
+#: build/C/man8/ld.so.8:414
 msgid ""
 "(glibc since 2.1)  Directory where B<LD_PROFILE> output should be written.  "
 "If this variable is not defined, or is defined as an empty string, then the "
@@ -5128,17 +5289,17 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:330
+#: build/C/man8/ld.so.8:414
 #, no-wrap
 msgid "B<LD_SHOW_AUXV>"
 msgstr ""
 
 #.  FIXME
 #.  Document LD_TRACE_PRELINKING (e.g.: LD_TRACE_PRELINKING=libx1.so ./prog)
-#.  Since glibc 2.3
-#.  Also enables DL_DEBUG_PRELINK
+#.     Available since glibc 2.3
+#.     Also enables DL_DEBUG_PRELINK
 #. type: Plain text
-#: build/C/man8/ld.so.8:341
+#: build/C/man8/ld.so.8:425
 msgid ""
 "(glibc since 2.1)  Show auxiliary array passed up from the kernel.  For "
 "security reasons, since glibc 2.3.5, B<LD_SHOW_AUXV> is ignored for "
@@ -5146,7 +5307,7 @@ msgid ""
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:341
+#: build/C/man8/ld.so.8:425
 #, no-wrap
 msgid "B<LD_USE_LOAD_BIAS>"
 msgstr ""
@@ -5155,124 +5316,123 @@ msgstr ""
 #.  Subject: [PATCH] Support LD_USE_LOAD_BIAS
 #.  Jakub Jelinek
 #. type: Plain text
-#: build/C/man8/ld.so.8:360
+#: build/C/man8/ld.so.8:444
 msgid ""
 "By default (i.e., if this variable is not defined)  executables and "
 "prelinked shared objects will honor base addresses of their dependent "
 "libraries and (nonprelinked) position-independent executables (PIEs)  and "
 "other shared objects will not honor them.  If B<LD_USE_LOAD_BIAS> is defined "
-"wit the value, both executables and PIEs will honor the base addresses.  If "
-"B<LD_USE_LOAD_BIAS> is defined with the value 0, neither executables nor "
+"with the value 1, both executables and PIEs will honor the base addresses.  "
+"If B<LD_USE_LOAD_BIAS> is defined with the value 0, neither executables nor "
 "PIEs will honor the base addresses.  This variable is ignored by set-user-ID "
 "and set-group-ID programs."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:360
+#: build/C/man8/ld.so.8:444
 #, no-wrap
 msgid "B<LD_VERBOSE>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:372
+#: build/C/man8/ld.so.8:452
 msgid ""
 "(glibc since 2.1)  If set to a nonempty string, output symbol versioning "
-"information about the program if querying information about the program "
-"(i.e., either B<LD_TRACE_LOADED_OBJECTS> has been set, or B<--list> or "
-"B<--verify> options have been given to the dynamic linker)."
+"information about the program if the B<LD_TRACE_LOADED_OBJECTS> environment "
+"variable has been set."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:372
+#: build/C/man8/ld.so.8:452
 #, no-wrap
 msgid "B<LD_WARN>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:376
+#: build/C/man8/ld.so.8:456
 msgid ""
 "(ELF only)(glibc since 2.1.3)  If set to a nonempty string, warn about "
 "unresolved symbols."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:376
+#: build/C/man8/ld.so.8:456
 #, no-wrap
 msgid "B<LDD_ARGV0>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:383
+#: build/C/man8/ld.so.8:463
 msgid "(libc5)  I<argv>[0] to be used by B<ldd>(1)  when none is present."
 msgstr ""
 
 #. type: SH
-#: build/C/man8/ld.so.8:383 build/C/man8/ldconfig.8:156
+#: build/C/man8/ld.so.8:463 build/C/man8/ldconfig.8:156
 #, no-wrap
 msgid "FILES"
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:385 build/C/man8/ldconfig.8:158
+#: build/C/man8/ld.so.8:465 build/C/man8/ldconfig.8:158
 #, no-wrap
 msgid "I</lib/ld.so>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:388
+#: build/C/man8/ld.so.8:468
 msgid "a.out dynamic linker/loader"
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:388
+#: build/C/man8/ld.so.8:468
 #, no-wrap
 msgid "I</lib/ld-linux.so.>{I<1>,I<2>}"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:391
+#: build/C/man8/ld.so.8:471
 msgid "ELF dynamic linker/loader"
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:391 build/C/man8/ldconfig.8:165
+#: build/C/man8/ld.so.8:471 build/C/man8/ldconfig.8:165
 #, no-wrap
 msgid "I</etc/ld.so.cache>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:395
+#: build/C/man8/ld.so.8:475
 msgid ""
 "File containing a compiled list of directories in which to search for "
 "libraries and an ordered list of candidate libraries."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:395
+#: build/C/man8/ld.so.8:475
 #, no-wrap
 msgid "I</etc/ld.so.preload>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:399
+#: build/C/man8/ld.so.8:479
 msgid ""
-"File containing a whitespace separated list of ELF shared libraries to be "
+"File containing a whitespace-separated list of ELF shared libraries to be "
 "loaded before the program."
 msgstr ""
 
 #. type: TP
-#: build/C/man8/ld.so.8:399
+#: build/C/man8/ld.so.8:479
 #, no-wrap
 msgid "B<lib*.so*>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:402
+#: build/C/man8/ld.so.8:482
 msgid "shared libraries"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man8/ld.so.8:409
+#: build/C/man8/ld.so.8:489
 msgid ""
 "The B<ld.so> functionality is available for executables compiled using libc "
 "version 4.4.3 or greater.  ELF functionality is available since Linux 1.1.52 "
@@ -5286,8 +5446,10 @@ msgstr ""
 #
 #.  In the above, (libc5) stands for David Engel's ld.so/ld-linux.so.
 #. type: Plain text
-#: build/C/man8/ld.so.8:419
-msgid "B<ldd>(1), B<rtld-audit>(7), B<ldconfig>(8)"
+#: build/C/man8/ld.so.8:505
+msgid ""
+"B<ld>(1), B<ldd>(1), B<pldd>(1), B<sprof>(1), B<dlopen>(3), B<getauxval>(3), "
+"B<rtld-audit>(7), B<ldconfig>(8), B<sln>(8)"
 msgstr ""
 
 #. type: TH
@@ -5352,7 +5514,7 @@ msgstr ""
 msgid ""
 "Some existing libs do not contain enough information to allow the deduction "
 "of their type.  Therefore, the I</etc/ld.so.conf> file format allows the "
-"specification of an expected type.  This is I<only> used for those ELF libs "
+"specification of an expected type.  This is used I<only> for those ELF libs "
 "which we can not work out.  The format is \"dirname=TYPE\", where TYPE can "
 "be libc4, libc5, or libc6.  (This syntax also works on the command line.)  "
 "Spaces are I<not> allowed.  Also see the B<-p> option.  B<ldconfig> should "
@@ -5504,124 +5666,146 @@ msgid "B<ldd>(1), B<ld.so>(8)"
 msgstr ""
 
 #. type: TH
-#: build/C/man1/ldd.1:10
+#: build/C/man1/ldd.1:14
 #, no-wrap
 msgid "LDD"
 msgstr ""
 
-#. type: TH
-#: build/C/man1/ldd.1:10
-#, no-wrap
-msgid "2000-10-30"
-msgstr ""
-
 #. type: Plain text
-#: build/C/man1/ldd.1:13
+#: build/C/man1/ldd.1:17
 msgid "ldd - print shared library dependencies"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man1/ldd.1:15
-msgid "B<ldd> [OPTION]... FILE..."
+#: build/C/man1/ldd.1:19
+msgid "B<ldd> [I<option>]... I<file>..."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man1/ldd.1:19
+#: build/C/man1/ldd.1:23
 msgid ""
 "B<ldd> prints the shared libraries required by each program or shared "
 "library specified on the command line."
 msgstr ""
 
+#. type: SS
+#: build/C/man1/ldd.1:23
+#, no-wrap
+msgid "Security"
+msgstr ""
+
+#.  Mainline glibc's ldd allows this possibility (the line
+#.       try_trace "$file"
+#.  in glibc 2.15, for example), but many distro versions of
+#.  ldd seem to remove that code path from the script.
+#. type: Plain text
+#: build/C/man1/ldd.1:49
+msgid ""
+"In the usual case, B<ldd> invokes the standard dynamic linker (see "
+"B<ld.so>(8))  with the B<LD_TRACE_LOADED_OBJECTS> environment variable set "
+"to 1, which causes the linker to display the library dependencies.  Be "
+"aware, however, that in some circumstances, some versions of B<ldd> may "
+"attempt to obtain the dependency information by directly executing the "
+"program.  Thus, you should I<never> employ B<ldd> on an untrusted "
+"executable, since this may result in the execution of arbitrary code.  A "
+"safer alternative when dealing with untrusted executables is:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/ldd.1:51
+#, no-wrap
+msgid "    $ objdump -p /path/to/program | grep NEEDED\n"
+msgstr ""
+
 #. type: TP
-#: build/C/man1/ldd.1:20
+#: build/C/man1/ldd.1:52 build/C/man1/mtrace.1:55
 #, no-wrap
 msgid "B<--version>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man1/ldd.1:24
+#: build/C/man1/ldd.1:56
 msgid "Print the version number of B<ldd>."
 msgstr ""
 
 #. type: TP
-#: build/C/man1/ldd.1:24
+#: build/C/man1/ldd.1:56
 #, no-wrap
 msgid "B<-v\\ --verbose>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man1/ldd.1:28
+#: build/C/man1/ldd.1:60
 msgid ""
 "Print all information, including, for example, symbol versioning "
 "information."
 msgstr ""
 
 #. type: TP
-#: build/C/man1/ldd.1:28
+#: build/C/man1/ldd.1:60
 #, no-wrap
 msgid "B<-u\\ --unused>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man1/ldd.1:32
+#: build/C/man1/ldd.1:64
 msgid "Print unused direct dependencies.  (Since glibc 2.3.4.)"
 msgstr ""
 
 #. type: TP
-#: build/C/man1/ldd.1:32
+#: build/C/man1/ldd.1:64
 #, no-wrap
 msgid "B<-d\\ --data-relocs>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man1/ldd.1:35
+#: build/C/man1/ldd.1:67
 msgid "Perform relocations and report any missing objects (ELF only)."
 msgstr ""
 
 #. type: TP
-#: build/C/man1/ldd.1:35
+#: build/C/man1/ldd.1:67
 #, no-wrap
 msgid "B<-r\\ --function-relocs>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man1/ldd.1:39
+#: build/C/man1/ldd.1:71
 msgid ""
 "Perform relocations for both data objects and functions, and report any "
 "missing objects or functions (ELF only)."
 msgstr ""
 
 #. type: TP
-#: build/C/man1/ldd.1:39
+#: build/C/man1/ldd.1:71 build/C/man1/mtrace.1:52
 #, no-wrap
 msgid "B<--help>"
 msgstr ""
 
+#.  .SH NOTES
+#.  The standard version of
+#.  .B ldd
+#.  comes with glibc2.
+#.  Libc5 came with an older version, still present
+#.  on some systems.
+#.  The long options are not supported by the libc5 version.
+#.  On the other hand, the glibc2 version does not support
+#.  .B \-V
+#.  and only has the equivalent
+#.  .BR \-\-version .
+#.  .LP
+#.  The libc5 version of this program will use the name of a library given
+#.  on the command line as-is when it contains a \(aq/\(aq; otherwise it
+#.  searches for the library in the standard locations.
+#.  To run it
+#.  on a shared library in the current directory, prefix the name with "./".
 #. type: Plain text
-#: build/C/man1/ldd.1:42
+#: build/C/man1/ldd.1:91
 msgid "Usage information."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man1/ldd.1:53
-msgid ""
-"The standard version of B<ldd> comes with glibc2.  Libc5 came with an older "
-"version, still present on some systems.  The long options are not supported "
-"by the libc5 version.  On the other hand, the glibc2 version does not "
-"support B<-V> and only has the equivalent B<--version>."
-msgstr ""
-
-#. type: Plain text
-#: build/C/man1/ldd.1:59
-msgid ""
-"The libc5 version of this program will use the name of a library given on "
-"the command line as-is when it contains a \\(aq/\\(aq; otherwise it searches "
-"for the library in the standard locations.  To run it on a shared library in "
-"the current directory, prefix the name with \"./\"."
-msgstr ""
-
-#. type: Plain text
-#: build/C/man1/ldd.1:62
+#: build/C/man1/ldd.1:94
 msgid "B<ldd> does not work on a.out shared libraries."
 msgstr ""
 
@@ -5629,7 +5813,7 @@ msgstr ""
 #.  David Engel.
 #.  Roland McGrath and Ulrich Drepper.
 #. type: Plain text
-#: build/C/man1/ldd.1:75
+#: build/C/man1/ldd.1:108
 msgid ""
 "B<ldd> does not work with some extremely old a.out programs which were built "
 "before B<ldd> support was added to the compiler releases.  If you use B<ldd> "
@@ -5638,885 +5822,2089 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: build/C/man1/ldd.1:78
-msgid "B<ld.so>(8), B<ldconfig>(8)"
+#: build/C/man1/ldd.1:113
+msgid "B<sprof>(1), B<pldd>(1), B<ld.so>(8), B<ldconfig>(8)"
 msgstr ""
 
 #. type: TH
-#: build/C/man7/rtld-audit.7:26
+#: build/C/man1/memusage.1:24
 #, no-wrap
-msgid "RTLD-AUDIT"
+msgid "MEMUSAGE"
 msgstr ""
 
 #. type: TH
-#: build/C/man7/rtld-audit.7:26
+#: build/C/man1/memusage.1:24 build/C/man1/memusagestat.1:23
 #, no-wrap
-msgid "2010-09-10"
-msgstr ""
-
-#. type: Plain text
-#: build/C/man7/rtld-audit.7:29
-msgid "rtld-audit - auditing API for the dynamic linker"
+msgid "2014-09-06"
 msgstr ""
 
-#. type: Plain text
-#: build/C/man7/rtld-audit.7:31
-msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
+#. type: TH
+#: build/C/man1/memusage.1:24 build/C/man1/mtrace.1:23
+#, no-wrap
+msgid "Linux user manual"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:33
-msgid "B<#include E<lt>link.hE<gt>>"
+#: build/C/man1/memusage.1:27
+msgid "memusage - profile memory usage of a program"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:41
-msgid ""
-"The GNU dynamic linker (run-time linker)  provides an auditing API that "
-"allows an application to be notified when various dynamic linking events "
-"occur.  This API is very similar to the auditing interface provided by the "
-"Solaris run-time linker.  The necessary constants and prototypes are defined "
-"by including I<E<lt>link.hE<gt>>."
+#: build/C/man1/memusage.1:29
+msgid "B<memusage> [I<option>]... I<program> [I<programoption>]..."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:48
+#: build/C/man1/memusage.1:53
 msgid ""
-"To use this interface, the programmer creates a shared library that "
-"implements a standard set of function names.  Not all of the functions need "
-"to be implemented: in most cases, if the programmer is not interested in a "
-"particular class of auditing event, then no implementation needs to be "
-"provided for the corresponding auditing function."
+"B<memusage> is a bash script which profiles memory usage of the program, "
+"I<program>.  It preloads the B<libmemusage.so> library into the caller's "
+"environment (via the B<LD_PRELOAD> environment variable; see B<ld.so>(8)).  "
+"The B<libmemusage.so> library traces memory allocation by intercepting calls "
+"to B<malloc>(3), B<calloc>(3), B<free>(3), and B<realloc>(3); optionally, "
+"calls to B<mmap>(2), B<mremap>(2), and B<munmap>(2)  can also be "
+"intercepted."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:56
+#: build/C/man1/memusage.1:62
 msgid ""
-"To employ the auditing interface, the environment variable B<LD_AUDIT> must "
-"be defined to contain a colon-separated list of shared libraries, each of "
-"which can implement (parts of) the auditing API.  When an auditable event "
-"occurs, the corresponding function is invoked in each library, in the order "
-"that the libraries are listed."
+"B<memusage> can output the collected data in textual form, or it can use "
+"B<memusagestat>(1)  (see the B<-p> option, below)  to create a PNG file "
+"containing graphical representation of the collected data."
 msgstr ""
 
 #. type: SS
-#: build/C/man7/rtld-audit.7:56
+#: build/C/man1/memusage.1:62
 #, no-wrap
-msgid "la_version()"
+msgid "Memory usage summary"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:60
+#: build/C/man1/memusage.1:66
+msgid ""
+"The \"Memory usage summary\" line output by B<memusage> contains three "
+"fields:"
+msgstr ""
+
+#. type: TP
+#: build/C/man1/memusage.1:67
 #, no-wrap
-msgid "B<unsigned int la_version(unsigned int >I<version>B<);>\n"
+msgid "B<heap total>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:72
+#: build/C/man1/memusage.1:84
 msgid ""
-"This is the only function that I<must> be defined by an auditing library: it "
-"performs the initial handshake between the dynamic linker and the auditing "
-"library.  When invoking this function, the dynamic linker passes, in "
-"I<version>, the highest version of the auditing interface that the linker "
-"supports.  If necessary, the auditing library can check that this version is "
-"sufficient for its requirements."
+"Sum of I<size> arguments of all B<malloc>(3)  calls, products of arguments "
+"(I<nmemb>*I<size>) of all B<calloc>(3)  calls, and sum of I<length> "
+"arguments of all B<mmap>(2)  calls.  In the case of B<realloc>(3)  and "
+"B<mremap>(2), if the new size of an allocation is larger than the previous "
+"size, the sum of all such differences (new size minus old size) is added."
+msgstr ""
+
+#. type: TP
+#: build/C/man1/memusage.1:84
+#, no-wrap
+msgid "B<heap peak>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:81
+#: build/C/man1/memusage.1:98
 msgid ""
-"As its function result, this function should return the version of the "
-"auditing interface that this auditing library expects to use (returning "
-"I<version> is acceptable).  If the returned value is 0, or a version that is "
-"greater than that supported by the dynamic linker, then the audit library is "
-"ignored."
+"Maximum of all I<size> arguments of B<malloc>(3), all products of "
+"I<nmemb>*I<size> of B<calloc>(3), all I<size> arguments of B<realloc>(3), "
+"I<length> arguments of B<mmap>(2), and I<new_size> arguments of "
+"B<mremap>(2)."
 msgstr ""
 
-#. type: SS
-#: build/C/man7/rtld-audit.7:81
+#. type: TP
+#: build/C/man1/memusage.1:98
 #, no-wrap
-msgid "la_objsearch()"
+msgid "B<stack peak>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:86
-#, no-wrap
+#: build/C/man1/memusage.1:105
 msgid ""
-"B<char *la_objsearch(const char *>I<name>B<, uintptr_t *>I<cookie>B<,>\n"
-"B<                   unsigned int >I<flag>B<);>\n"
+"Before the first call to any monitored function, the stack pointer address "
+"(base stack pointer) is saved.  After each function call, the actual stack "
+"pointer address is read and the difference from the base stack pointer "
+"computed.  The maximum of these differences is then the stack peak."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:97
+#: build/C/man1/memusage.1:122
 msgid ""
-"The dynamic linker invokes this function to inform the auditing library that "
-"it is about to search for a shared object.  The I<name> argument is the "
-"filename or pathname that is to be searched for.  I<cookie> identifies the "
-"shared object that initiated the search.  I<flag> is set to one of the "
-"following values:"
+"Immediately following this summary line, a table shows the number calls, "
+"total memory allocated or deallocated, and number of failed calls for each "
+"intercepted function.  For B<realloc>(3)  and B<mremap>(2), the additional "
+"field \"nomove\" shows reallocations that changed the address of a block, "
+"and the additional \"dec\" field shows reallocations that decreased the size "
+"of the block.  For B<realloc>(3), the additional field \"free\" shows "
+"reallocations that caused a block to be freed (i.e., the reallocated size "
+"was 0)."
 msgstr ""
 
-#. type: TP
-#: build/C/man7/rtld-audit.7:97
+#. type: Plain text
+#: build/C/man1/memusage.1:132
+msgid ""
+"The \"realloc/total memory\" of the table output by B<memusage> does not "
+"reflect cases where B<realloc>(3)  is used to reallocate a block of memory "
+"to have a smaller size than previously.  This can cause sum of all \"total "
+"memory\" cells (excluding \"free\")  to be larger than the \"free/total "
+"memory\" cell."
+msgstr ""
+
+#. type: SS
+#: build/C/man1/memusage.1:132
 #, no-wrap
-msgid "B<LA_SER_ORIG>"
+msgid "Histogram for block sizes"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:106
+#: build/C/man1/memusage.1:135
 msgid ""
-"This is the original name that is being searched for.  Typically, this name "
-"comes from an ELF B<DT_NEEDED> entry, or is the I<filename> argument given "
-"to B<dlopen>(3)."
+"The \"Histogram for block sizes\" provides a breakdown of memory allocations "
+"into various bucket sizes."
 msgstr ""
 
 #. type: TP
-#: build/C/man7/rtld-audit.7:106
+#: build/C/man1/memusage.1:136
 #, no-wrap
-msgid "B<LA_SER_LIBPATH>"
+msgid "B<-n\\ >I<name>,\\ B<--progname=>I<name>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:111
-msgid "I<name> was created using a directory specified in B<LD_LIBRARY_PATH>."
+#: build/C/man1/memusage.1:139
+msgid "Name of the program file to profile."
 msgstr ""
 
 #. type: TP
-#: build/C/man7/rtld-audit.7:111
+#: build/C/man1/memusage.1:139
 #, no-wrap
-msgid "B<LA_SER_RUNPATH>"
+msgid "B<-p\\ >I<file>,\\ B<--png=>I<file>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:119
-msgid ""
-"I<name> was created using a directory specified in an ELF B<DT_RPATH> or "
-"B<DT_RUNPATH> list."
+#: build/C/man1/memusage.1:143
+msgid "Generate PNG graphic and store it in I<file>."
 msgstr ""
 
 #. type: TP
-#: build/C/man7/rtld-audit.7:119
+#: build/C/man1/memusage.1:143
 #, no-wrap
-msgid "B<LA_SER_CONFIG>"
+msgid "B<-d\\ >I<file>,\\ B<--data=>I<file>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:126
-msgid "I<name> was found via the B<ldconfig>(8)  cache (I</etc/ld.so.cache>)."
+#: build/C/man1/memusage.1:147
+msgid "Generate binary data file and store it in I<file>."
 msgstr ""
 
 #. type: TP
-#: build/C/man7/rtld-audit.7:126
+#: build/C/man1/memusage.1:147
 #, no-wrap
-msgid "B<LA_SER_DEFAULT>"
+msgid "B<-u>,\\ B<--unbuffered>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:130
-msgid "I<name> was found via a search of one of the default directories."
+#: build/C/man1/memusage.1:150
+msgid "Do not buffer output."
 msgstr ""
 
 #. type: TP
-#: build/C/man7/rtld-audit.7:130
+#: build/C/man1/memusage.1:150
 #, no-wrap
-msgid "B<LA_SER_SECURE>"
-msgstr ""
-
-#. type: Plain text
-#: build/C/man7/rtld-audit.7:134
-msgid "I<name> is specific to a secure object (unused on Linux)."
+msgid "B<-b\\ >I<size>,\\ B<--buffer=>I<size>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:143
-msgid ""
-"As its function result, B<la_objsearch>()  returns the pathname that the "
-"dynamic linker should use for further processing.  If NULL is returned, then "
-"this pathname is ignored for further processing.  If this audit library "
-"simply intends to monitor search paths, then I<name> should be returned."
+#: build/C/man1/memusage.1:155
+msgid "Collect I<size> entries before writing them out."
 msgstr ""
 
-#. type: SS
-#: build/C/man7/rtld-audit.7:143
+#. type: TP
+#: build/C/man1/memusage.1:155
 #, no-wrap
-msgid "la_activity()"
+msgid "B<--no-timer>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:147
+#: build/C/man1/memusage.1:160
+msgid "Disable timer-based (B<SIGPROF>)  sampling of stack pointer value."
+msgstr ""
+
+#. type: TP
+#: build/C/man1/memusage.1:160
 #, no-wrap
-msgid "B<void la_activity( uintptr_t *>I<cookie>B<, unsigned int >I<flag>B<);>\n"
+msgid "B<-m>,\\ B<--mmap>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:156
-msgid ""
-"The dynamic linker calls this function to inform the auditing library that "
-"link-map activity is occurring.  I<cookie> identifies the object at the head "
-"of the link map.  When the dynamic linker invokes this function, I<flag> is "
-"set to one of the following values:"
+#: build/C/man1/memusage.1:167
+msgid "Also trace B<mmap>(2), B<mremap>(2), and B<mmap>(2)."
 msgstr ""
 
 #. type: TP
-#: build/C/man7/rtld-audit.7:156
+#: build/C/man1/memusage.1:167 build/C/man1/memusagestat.1:72
 #, no-wrap
-msgid "B<LA_ACT_ADD>"
+msgid "B<-?>,\\ B<--help>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:159
-msgid "New objects are being added to the link map."
+#: build/C/man1/memusage.1:170 build/C/man1/mtrace.1:55
+msgid "Print help and exit."
 msgstr ""
 
 #. type: TP
-#: build/C/man7/rtld-audit.7:159
+#: build/C/man1/memusage.1:170 build/C/man1/memusagestat.1:75 build/C/man1/pldd.1:44 build/C/man1/sprof.1:69
 #, no-wrap
-msgid "B<LA_ACT_DELETE>"
+msgid "B<--usage>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:162
-msgid "Objects are being removed from the link map."
+#: build/C/man1/memusage.1:173 build/C/man1/memusagestat.1:78
+msgid "Print a short usage message and exit."
 msgstr ""
 
 #. type: TP
-#: build/C/man7/rtld-audit.7:162
+#: build/C/man1/memusage.1:173 build/C/man1/memusagestat.1:78
 #, no-wrap
-msgid "B<LA_ACT_CONSISTENT>"
+msgid "B<-V>,\\ B<--version>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:165
-msgid "Link-map activity has been completed: the map is once again consistent."
+#: build/C/man1/memusage.1:176 build/C/man1/memusagestat.1:81 build/C/man1/mtrace.1:58
+msgid "Print version information and exit."
 msgstr ""
 
-#. type: SS
-#: build/C/man7/rtld-audit.7:165
+#. type: TP
+#: build/C/man1/memusage.1:176
 #, no-wrap
-msgid "la_objopen()"
+msgid "The following options apply only when generating graphical output:"
 msgstr ""
 
-#. type: Plain text
-#: build/C/man7/rtld-audit.7:170
+#. type: TP
+#: build/C/man1/memusage.1:178
 #, no-wrap
-msgid ""
-"B<unsigned int la_objopen(struct link_map *>I<map>B<, Lmid_t >I<lmid>B<,>\n"
-"B<                        uintptr_t *>I<cookie>B<);>\n"
+msgid "B<-t>,\\ B<--time-based>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:179
-msgid ""
-"The dynamic linker calls this function when a new shared object is loaded.  "
-"The I<map> argument is a pointer to a link-map structure that describes the "
-"object.  The I<lmid> field has one of the following values"
+#: build/C/man1/memusage.1:181 build/C/man1/memusagestat.1:59
+msgid "Use time (rather than number of function calls) as the scale for the X axis."
 msgstr ""
 
 #. type: TP
-#: build/C/man7/rtld-audit.7:179
+#: build/C/man1/memusage.1:181 build/C/man1/memusagestat.1:59
 #, no-wrap
-msgid "B<LM_ID_BASE>"
+msgid "B<-T>,\\ B<--total>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:182
-msgid "Link map is part of the initial namespace."
+#: build/C/man1/memusage.1:184
+msgid "Also draw a graph of total memory use."
 msgstr ""
 
 #. type: TP
-#: build/C/man7/rtld-audit.7:182
+#: build/C/man1/memusage.1:184
 #, no-wrap
-msgid "B<LM_ID_NEWLM>"
+msgid "B<--title=>I<name>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:186
-msgid "Link map is part of a new namespace requested via B<dlmopen>(3)."
+#: build/C/man1/memusage.1:189
+msgid "Use I<name> as the title of the graph."
 msgstr ""
 
-#. type: Plain text
-#: build/C/man7/rtld-audit.7:194
-msgid ""
-"I<cookie> is a pointer to an identifier for this object.  The identifier is "
-"provided to later calls to functions in the auditing library in order to "
-"identify this object.  This identifier is initialized to point to object's "
-"link map, but the audit library can change the identifier to some other "
-"value that it may prefer to use to identify the object."
+#. type: TP
+#: build/C/man1/memusage.1:189 build/C/man1/memusagestat.1:62
+#, no-wrap
+msgid "B<-x\\ >I<size>,\\ B<--x-size=>I<size>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:201
-msgid ""
-"As its return value, B<la_objopen>()  returns a bit mask created by ORing "
-"zero or more of the following constants, which allow the auditing library to "
-"select the objects to be monitored by B<la_symbind*>():"
+#: build/C/man1/memusage.1:194
+msgid "Make the graph I<size> pixels wide."
 msgstr ""
 
 #. type: TP
-#: build/C/man7/rtld-audit.7:201
+#: build/C/man1/memusage.1:194 build/C/man1/memusagestat.1:67
 #, no-wrap
-msgid "B<LA_FLG_BINDTO>"
+msgid "B<-y\\ >I<size>,\\ B<--y-size=>I<size>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:204
-msgid "Audit symbol bindings to this object."
+#: build/C/man1/memusage.1:199
+msgid "Make the graph I<size> pixels high."
 msgstr ""
 
-#. type: TP
-#: build/C/man7/rtld-audit.7:204
+#. type: SH
+#: build/C/man1/memusage.1:199 build/C/man1/pldd.1:60
 #, no-wrap
-msgid "B<LA_FLG_BINDFROM>"
+msgid "EXIT STATUS"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:207
-msgid "Audit symbol bindings from this object."
+#: build/C/man1/memusage.1:201
+msgid "Exit status is equal to the exit status of profiled program."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:211
+#: build/C/man1/memusage.1:208
 msgid ""
-"A return value of 0 from B<la_objopen>()  indicates that no symbol bindings "
-"should be audited for this object."
+"Below is a simple program that reallocates a block of memory in cycles that "
+"rise to a peak before then cyclically reallocating the memory in smaller "
+"blocks that return to zero.  After compiling the program and running the "
+"following commands, a graph of the memory usage of the program can be found "
+"in the file I<memusage.png>:"
 msgstr ""
 
-#. type: SS
-#: build/C/man7/rtld-audit.7:211
+#. type: Plain text
+#: build/C/man1/memusage.1:232
 #, no-wrap
-msgid "la_objclose()"
+msgid ""
+"$ B<memusage --data=memusage.dat ./a.out>\n"
+"\\&...\n"
+"Memory usage summary: heap total: 45200, heap peak: 6440, stack peak: 224\n"
+"        total calls  total memory  failed calls\n"
+" malloc|         1           400             0\n"
+"realloc|        40         44800             0  (nomove:40, dec:19, "
+"free:0)\n"
+" calloc|         0             0             0\n"
+"   free|         1           440\n"
+"Histogram for block sizes:\n"
+"  192-207             1   2% ================\n"
+"\\&...\n"
+" 2192-2207            1   2% ================\n"
+" 2240-2255            2   4% =================================\n"
+" 2832-2847            2   4% =================================\n"
+" 3440-3455            2   4% =================================\n"
+" 4032-4047            2   4% =================================\n"
+" 4640-4655            2   4% =================================\n"
+" 5232-5247            2   4% =================================\n"
+" 5840-5855            2   4% =================================\n"
+" 6432-6447            1   2% ================\n"
+"$ B<memusagestat memusage.dat memusage.png>\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:215
+#: build/C/man1/memusage.1:240
 #, no-wrap
-msgid "B<unsigned int la_objclose(uintptr_t *>I<cookie);>\n"
+msgid "#define CYCLES 20\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:224
+#: build/C/man1/memusage.1:246
+#, no-wrap
 msgid ""
-"The dynamic linker invokes this function after any finalization code for the "
-"object has been executed, before the object is unloaded.  The I<cookie> "
-"argument is the identifier obtained from a previous invocation of "
-"B<la_objopen>()."
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+"     int i, j;\n"
+"     int *p;\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:228
-msgid ""
-"In the current implementation, the value returned by B<la_objclose>()  is "
-"ignored."
-msgstr ""
-
-#. type: SS
-#: build/C/man7/rtld-audit.7:228
+#: build/C/man1/memusage.1:249
 #, no-wrap
-msgid "la_preinit()"
+msgid ""
+"     printf(\"malloc: %zd\\en\", sizeof(int) * 100);\n"
+"     p = malloc(sizeof(int) * 100);\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:232
+#: build/C/man1/memusage.1:255
 #, no-wrap
-msgid "B<void la_preinit(uintptr_t *>I<cookie>B<);>\n"
+msgid ""
+"     for (i = 0; i E<lt> CYCLES; i++) {\n"
+"         if (i E<lt> CYCLES / 2)\n"
+"             j = i;\n"
+"         else\n"
+"             j--;\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:242
+#: build/C/man1/memusage.1:258
+#, no-wrap
 msgid ""
-"The dynamic linker invokes this function after all shared objects have been "
-"loaded, before control is passed to the application (i.e., before calling "
-"I<main>()).  Note that I<main>()  may still later dynamically load objects "
-"using B<dlopen>(3)."
+"         printf(\"realloc: %zd\\en\", sizeof(int) * (j * 50 + 110));\n"
+"         p = realloc(p, sizeof(int) * (j * 50 + 100));\n"
 msgstr ""
 
-#. type: SS
-#: build/C/man7/rtld-audit.7:242
+#. type: Plain text
+#: build/C/man1/memusage.1:262
 #, no-wrap
-msgid "la_symbind*()"
+msgid ""
+"         printf(\"realloc: %zd\\en\", sizeof(int) * ((j+1) * 150 + 110));\n"
+"         p = realloc(p, sizeof(int) * ((j + 1) * 150 + 110));\n"
+"     }\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:251
+#: build/C/man1/memusage.1:266
 #, no-wrap
 msgid ""
-"B<uintptr_t la_symbind32(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
-"B<                       uintptr_t *>I<refcook>B<, uintptr_t "
-"*>I<defcook>B<,>\n"
-"B<                       unsigned int *>I<flags>B<, const char "
-"*>I<symname>B<);>\n"
-"B<uintptr_t la_symbind64(Elf64_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
-"B<                       uintptr_t *>I<refcook>B<, uintptr_t "
-"*>I<defcook>B<,>\n"
-"B<                       unsigned int *>I<flags>B<, const char "
-"*>I<symname>B<);>\n"
+"     free(p);\n"
+"     exit(EXIT_SUCCESS);\n"
+"}\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:263
-msgid ""
-"The dynamic linker invokes one of these functions when a symbol binding "
-"occurs between two shared objects that have been marked for auditing "
-"notification by B<la_objopen>().  The B<la_symbind32>()  function is "
-"employed on 32-bit platforms; the B<la_symbind64>()  function is employed on "
-"64-bit platforms."
+#: build/C/man1/memusage.1:271 build/C/man1/memusagestat.1:88
+msgid "To report bugs, see E<.UR http://www.gnu.org/software/libc/bugs.html> E<.UE>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:273
-msgid ""
-"The I<sym> argument is a pointer to a structure that provides information "
-"about the symbol being bound.  The structure definition is shown in "
-"I<E<lt>elf.hE<gt>>.  Among the fields of this structure, I<st_value> "
-"indicates the address to which the symbol is bound."
+#: build/C/man1/memusage.1:275
+msgid "B<memusagestat>(1), B<mtrace>(1)  B<ld.so>(8)"
+msgstr ""
+
+#. type: TH
+#: build/C/man1/memusagestat.1:23
+#, no-wrap
+msgid "MEMUSAGESTAT"
+msgstr ""
+
+#. type: TH
+#: build/C/man1/memusagestat.1:23
+#, no-wrap
+msgid "Linux programmer's manual"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:278
-msgid ""
-"The I<ndx> argument gives the index of the symbol in the symbol table of the "
-"bound shared object."
+#: build/C/man1/memusagestat.1:26
+msgid "memusagestat - generate graphic from memory profiling data"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:293
-msgid ""
-"The I<refcook> argument identifies the shared object that is making the "
-"symbol reference; this is the same identifier that is provided to the "
-"B<la_objopen>()  function that returned B<LA_FLG_BINDFROM>.  The I<defcook> "
-"argument identifies the shared object that defines the referenced symbol; "
-"this is the same identifier that is provided to the B<la_objopen>()  "
-"function that returned B<LA_FLG_BINDTO>."
+#: build/C/man1/memusagestat.1:28
+msgid "B<memusagestat> [I<option>]... I<datafile> [I<outfile>]"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:297
-msgid "The I<symname> argument points a string containing the name of the symbol."
+#: build/C/man1/memusagestat.1:39
+msgid ""
+"B<memusagestat> creates a PNG file containing a graphical representation of "
+"the memory profiling data in the file I<datafile>; that file is generated "
+"via the I<-d> (or I<--data>)  option of B<memusage>(1)."
 msgstr ""
 
-#.  LA_SYMB_STRUCTCALL appears to be unused
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:305
+#: build/C/man1/memusagestat.1:47
 msgid ""
-"The I<flags> argument is a bit mask that both provides information about the "
-"symbol and can be used to modify further auditing of this PLT (Procedure "
-"Linkage Table) entry.  The dynamic linker may supply the following bit "
-"values in this argument:"
+"The red line in the graph shows the heap usage (allocated memory)  and the "
+"green line shows the stack usage.  The x-scale is either the number of "
+"memory-handling function calls or (if the I<-t> option is specified)  time."
 msgstr ""
 
 #. type: TP
-#: build/C/man7/rtld-audit.7:305
+#: build/C/man1/memusagestat.1:48
 #, no-wrap
-msgid "B<LA_SYMB_DLSYM>"
+msgid "B<-o\\ >I<file>,\\ B<--output=>I<file>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:309
-msgid "The binding resulted from a call to B<dlsym>(3)."
+#: build/C/man1/memusagestat.1:51
+msgid "Name of the output file."
 msgstr ""
 
 #. type: TP
-#: build/C/man7/rtld-audit.7:309
+#: build/C/man1/memusagestat.1:51
 #, no-wrap
-msgid "B<LA_SYMB_ALTVALUE>"
-msgstr ""
-
-#. type: Plain text
-#: build/C/man7/rtld-audit.7:314
-msgid ""
-"A previous B<la_symbind*>()  call returned an alternate value for this "
-"symbol."
+msgid "B<-s\\ >I<string>,\\ B<--string=>I<string>"
 msgstr ""
 
-#.  pltenter/pltexit are called for non-dynamically loaded libraries,
-#.  but don't seem to be called for dynamically loaded libs?
-#.  Is this the same on Solaris?
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:328
-msgid ""
-"By default, if the auditing library implements B<la_pltenter>()  and "
-"B<la_pltexit>()  functions (see below), then these functions are invoked, "
-"after B<la_symbind>(), for PLT entries, each time the symbol is referenced.  "
-"The following flags can be ORed into I<*flags> to change this default "
-"behavior:"
+#: build/C/man1/memusagestat.1:56
+msgid "Use I<string> as the title inside the output graph."
 msgstr ""
 
 #. type: TP
-#: build/C/man7/rtld-audit.7:328
+#: build/C/man1/memusagestat.1:56
 #, no-wrap
-msgid "B<LA_SYMB_NOPLTENTER>"
+msgid "B<-t>,\\ B<--time>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:333
-msgid "Don't call B<la_pltenter>()  for this symbol."
+#: build/C/man1/memusagestat.1:62
+msgid "Also draw a graph of total memory consumption."
 msgstr ""
 
-#. type: TP
-#: build/C/man7/rtld-audit.7:333
-#, no-wrap
-msgid "B<LA_SYMB_NOPLTEXIT>"
+#. type: Plain text
+#: build/C/man1/memusagestat.1:67
+msgid "Make the output graph I<size> pixels wide."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:338
-msgid "Don't call B<la_pltexit>()  for this symbol."
+#: build/C/man1/memusagestat.1:72
+msgid "Make the output graph I<size> pixels high."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:349
-msgid ""
-"The return value of B<la_symbind32>()  and B<la_symbind64>()  is the address "
-"to which control should be passed after the function returns.  If the "
-"auditing library is simply monitoring symbol bindings, then it should return "
-"I<sym-E<gt>st_name>.  A different value may be returned if the library "
-"wishes to direct control to an alternate location."
+#: build/C/man1/memusagestat.1:75
+msgid "Print a help message and exit."
 msgstr ""
 
-#. type: SS
-#: build/C/man7/rtld-audit.7:349
-#, no-wrap
-msgid "la_pltenter()"
+#. type: Plain text
+#: build/C/man1/memusagestat.1:84
+msgid "See B<memusage>(1)."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:355 build/C/man7/rtld-audit.7:415
-msgid ""
-"The precise name and argument types for this function depend on the hardware "
-"platform.  (The appropriate definition is supplied by I<E<lt>link.hE<gt>>.)  "
-"Here is the definition for x86-32:"
+#: build/C/man1/memusagestat.1:91
+msgid "B<memusage>(1), B<mtrace>(1)"
 msgstr ""
 
-#. type: Plain text
-#: build/C/man7/rtld-audit.7:361
+#. type: TH
+#: build/C/man1/mtrace.1:23
 #, no-wrap
-msgid ""
-"B<Elf32_Addr la_i86_gnu_pltenter(Elf32_Sym *>I<sym>B<, unsigned int "
-">I<ndx>B<,>\n"
-"B<                 uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
-"B<                 La_i86_regs *>I<regs>B<, unsigned int *>I<flags>B<,>\n"
-"B<                 const char *>I<symname>B<, long int "
-"*>I<framesizep>B<);>\n"
+msgid "MTRACE"
+msgstr ""
+
+#. type: TH
+#: build/C/man1/mtrace.1:23
+#, no-wrap
+msgid "2014-09-01"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:365
-msgid ""
-"This function is invoked just before a PLT entry is called, between two "
-"shared objects that have been marked for binding notification."
+#: build/C/man1/mtrace.1:26
+msgid "mtrace - interpret the malloc trace log"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:375 build/C/man7/rtld-audit.7:438
-msgid ""
-"The I<sym>, I<ndx>, I<refcook>, I<defcook>, and I<symname> are as for "
-"B<la_symbind*>()."
+#: build/C/man1/mtrace.1:28
+msgid "B<mtrace> [I<option>]... [I<binary>] I<mtracedata>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:382
+#: build/C/man1/mtrace.1:44
 msgid ""
-"The I<regs> argument points to a structure (defined in I<E<lt>link.hE<gt>>)  "
-"containing the values of registers to be used for the call to this PLT "
-"entry."
+"B<mtrace> is a Perl script used to interpret and provide human readable "
+"output of the trace log contained in the file I<mtracedata>, whose contents "
+"were produced by B<mtrace>(3).  If I<binary> is provided, the output of "
+"B<mtrace> also contains the source file name with line number information "
+"for problem locations (assuming that I<binary> was compiled with debugging "
+"information)."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:388
+#: build/C/man1/mtrace.1:51
 msgid ""
-"The I<flags> argument points to a bit mask that conveys information about, "
-"and can be used to modify subsequent auditing of, this PLT entry, as for "
-"B<la_symbind*>()."
+"For more information about the B<mtrace>(3)  function and B<mtrace> script "
+"usage, see B<mtrace>(3)."
 msgstr ""
 
-#.  FIXME is the following correct?
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:404
+#: build/C/man1/mtrace.1:61
 msgid ""
-"The I<framesizep> argument points to a I<long\\ int> buffer that can be used "
-"to explicitly set the frame size used for the call to this PLT entry.  If "
-"different B<la_pltenter>()  invocations for this symbol return different "
-"values, then the maximum returned value is used.  The B<la_pltenter>()  "
-"function is only called if this buffer is explicitly set to a suitable "
-"value."
+"For bug reporting instructions, please see: "
+"E<lt>http://www.gnu.org/software/libc/bugs.htmlE<gt>."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:409
-msgid "The return value of B<la_pltenter>()  is as for B<la_symbind*>()."
+#: build/C/man1/mtrace.1:64
+msgid "B<memusage>(1), B<mtrace>(3)"
 msgstr ""
 
-#. type: SS
-#: build/C/man7/rtld-audit.7:409
+#. type: TH
+#: build/C/man1/pldd.1:25
 #, no-wrap
-msgid "la_pltexit()"
+msgid "PLDD"
 msgstr ""
 
-#. type: Plain text
-#: build/C/man7/rtld-audit.7:421
+#. type: TH
+#: build/C/man1/pldd.1:25
 #, no-wrap
-msgid ""
-"B<unsigned int la_i86_gnu_pltexit(Elf32_Sym *>I<sym>B<, unsigned int "
-">I<ndx>B<,>\n"
-"B<                 uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
-"B<                 const La_i86_regs *>I<inregs>B<, La_i86_retval "
-"*>I<outregs>B<,>\n"
-"B<                 const char *>I<symname>B<);>\n"
+msgid "2014-09-27"
 msgstr ""
 
-#. type: Plain text
-#: build/C/man7/rtld-audit.7:428
-msgid ""
-"This function is called when a PLT entry, made between two shared objects "
-"that have been marked for binding notification, returns.  The function is "
-"called just before control returns to the caller of the PLT entry."
+#. type: TH
+#: build/C/man1/pldd.1:25 build/C/man1/sprof.1:25
+#, no-wrap
+msgid "Linux User Manual"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:451
-msgid ""
-"The I<inregs> argument points to a structure (defined in "
-"I<E<lt>link.hE<gt>>)  containing the values of registers used for the call "
-"to this PLT entry.  The I<outregs> argument points to a structure (defined "
-"in I<E<lt>link.hE<gt>>)  containing return values for the call to this PLT "
-"entry.  These values can be modified by the caller, and the changes will be "
-"visible to the caller of the PLT entry."
+#: build/C/man1/pldd.1:28
+msgid "pldd - display dynamic shared objects linked into a process"
 msgstr ""
 
-#.  This differs from Solaris, where an audit library that monitors
-#.  symbol binding should return the value of the 'retval' argument
-#.  (not provided by GNU, but equivalent to returning outregs->lrv_eax
-#.  on (say) x86-32).
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:459
+#: build/C/man1/pldd.1:32
+#, no-wrap
 msgid ""
-"In the current GNU implementation, the return value of B<la_pltexit>()  is "
-"ignored."
+"B<pldd >I<PID>\n"
+"B<pldd> OPTION\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:465
+#: build/C/man1/pldd.1:40
 msgid ""
-"This API is nonstandard, but very similar to the Solaris API, described in "
-"the Solaris I<Linker and Libraries Guide>, in the chapter I<Runtime Linker "
-"Auditing Interface>."
+"The B<pldd> command displays a list of the dynamic shared objects that are "
+"linked into the process with the specified process ID.  The list includes "
+"the libraries that have been dynamically loaded using B<dlopen>(3)."
 msgstr ""
 
-#. type: Plain text
-#: build/C/man7/rtld-audit.7:468
-msgid "Note the following differences from the Solaris dynamic linker auditing API:"
+#. type: TP
+#: build/C/man1/pldd.1:41 build/C/man1/sprof.1:66
+#, no-wrap
+msgid "B<-?>, B<--help>"
 msgstr ""
 
-#. type: IP
-#: build/C/man7/rtld-audit.7:468 build/C/man7/rtld-audit.7:472 build/C/man7/rtld-audit.7:480
-#, no-wrap
-msgid "*"
+#. type: Plain text
+#: build/C/man1/pldd.1:44
+msgid "Display program help message."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:472
+#: build/C/man1/pldd.1:47
+msgid "Display a short usage message."
+msgstr ""
+
+#. type: TP
+#: build/C/man1/pldd.1:47 build/C/man1/sprof.1:72
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:50
+msgid "Display the program version."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:53
+msgid "B<pldd> is available since glibc 2.15."
+msgstr ""
+
+#.  There are man pages on Solaris and HP-UX.
+#. type: Plain text
+#: build/C/man1/pldd.1:60
+msgid ""
+"The B<pldd> command is not specified by POSIX.1.  Some other systems have a "
+"similar command."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:71
+msgid ""
+"On success, B<pldd> exits with the status 0.  If the specified process does "
+"not exist, the user does not have permission to access its dynamic shared "
+"object list, or no command-line arguments are supplied, B<pldd> exists with "
+"a status of 1.  If given an invalid option, it exits with the status 64."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:83
+#, no-wrap
+msgid ""
+"$ B<echo $$>               # Display PID of shell\n"
+"1143\n"
+"$ B<pldd $$>               # Display DSOs linked into the shell\n"
+"1143:\t/usr/bin/bash\n"
+"linux-vdso.so.1\n"
+"/lib64/libtinfo.so.5\n"
+"/lib64/libdl.so.2\n"
+"/lib64/libc.so.6\n"
+"/lib64/ld-linux-x86-64.so.2\n"
+"/lib64/libnss_files.so.2\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:86
+msgid "The command"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:88
+#, no-wrap
+msgid "     lsof -p PID\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:91
+msgid ""
+"also shows output that includes the dynamic shared objects that are linked "
+"into a process."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:96
+msgid "B<ldd>(1), B<lsof>(1), B<dlopen>(3), B<ld.so>(8)"
+msgstr ""
+
+#. type: TH
+#: build/C/man7/rtld-audit.7:28
+#, no-wrap
+msgid "RTLD-AUDIT"
+msgstr ""
+
+#. type: TH
+#: build/C/man7/rtld-audit.7:28
+#, no-wrap
+msgid "2012-07-07"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:31
+msgid "rtld-audit - auditing API for the dynamic linker"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:33
+msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:35
+msgid "B<#include E<lt>link.hE<gt>>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:43
+msgid ""
+"The GNU dynamic linker (run-time linker)  provides an auditing API that "
+"allows an application to be notified when various dynamic linking events "
+"occur.  This API is very similar to the auditing interface provided by the "
+"Solaris run-time linker.  The necessary constants and prototypes are defined "
+"by including I<E<lt>link.hE<gt>>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:50
+msgid ""
+"To use this interface, the programmer creates a shared library that "
+"implements a standard set of function names.  Not all of the functions need "
+"to be implemented: in most cases, if the programmer is not interested in a "
+"particular class of auditing event, then no implementation needs to be "
+"provided for the corresponding auditing function."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:58
+msgid ""
+"To employ the auditing interface, the environment variable B<LD_AUDIT> must "
+"be defined to contain a colon-separated list of shared libraries, each of "
+"which can implement (parts of) the auditing API.  When an auditable event "
+"occurs, the corresponding function is invoked in each library, in the order "
+"that the libraries are listed."
+msgstr ""
+
+#. type: SS
+#: build/C/man7/rtld-audit.7:58
+#, no-wrap
+msgid "la_version()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:62
+#, no-wrap
+msgid "B<unsigned int la_version(unsigned int >I<version>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:74
+msgid ""
+"This is the only function that I<must> be defined by an auditing library: it "
+"performs the initial handshake between the dynamic linker and the auditing "
+"library.  When invoking this function, the dynamic linker passes, in "
+"I<version>, the highest version of the auditing interface that the linker "
+"supports.  If necessary, the auditing library can check that this version is "
+"sufficient for its requirements."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:83
+msgid ""
+"As its function result, this function should return the version of the "
+"auditing interface that this auditing library expects to use (returning "
+"I<version> is acceptable).  If the returned value is 0, or a version that is "
+"greater than that supported by the dynamic linker, then the audit library is "
+"ignored."
+msgstr ""
+
+#. type: SS
+#: build/C/man7/rtld-audit.7:83
+#, no-wrap
+msgid "la_objsearch()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:88
+#, no-wrap
+msgid ""
+"B<char *la_objsearch(const char *>I<name>B<, uintptr_t *>I<cookie>B<,>\n"
+"B<                   unsigned int >I<flag>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:99
+msgid ""
+"The dynamic linker invokes this function to inform the auditing library that "
+"it is about to search for a shared object.  The I<name> argument is the "
+"filename or pathname that is to be searched for.  I<cookie> identifies the "
+"shared object that initiated the search.  I<flag> is set to one of the "
+"following values:"
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:99
+#, no-wrap
+msgid "B<LA_SER_ORIG>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:108
+msgid ""
+"This is the original name that is being searched for.  Typically, this name "
+"comes from an ELF B<DT_NEEDED> entry, or is the I<filename> argument given "
+"to B<dlopen>(3)."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:108
+#, no-wrap
+msgid "B<LA_SER_LIBPATH>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:113
+msgid "I<name> was created using a directory specified in B<LD_LIBRARY_PATH>."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:113
+#, no-wrap
+msgid "B<LA_SER_RUNPATH>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:121
+msgid ""
+"I<name> was created using a directory specified in an ELF B<DT_RPATH> or "
+"B<DT_RUNPATH> list."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:121
+#, no-wrap
+msgid "B<LA_SER_CONFIG>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:128
+msgid "I<name> was found via the B<ldconfig>(8)  cache (I</etc/ld.so.cache>)."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:128
+#, no-wrap
+msgid "B<LA_SER_DEFAULT>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:132
+msgid "I<name> was found via a search of one of the default directories."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:132
+#, no-wrap
+msgid "B<LA_SER_SECURE>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:136
+msgid "I<name> is specific to a secure object (unused on Linux)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:145
+msgid ""
+"As its function result, B<la_objsearch>()  returns the pathname that the "
+"dynamic linker should use for further processing.  If NULL is returned, then "
+"this pathname is ignored for further processing.  If this audit library "
+"simply intends to monitor search paths, then I<name> should be returned."
+msgstr ""
+
+#. type: SS
+#: build/C/man7/rtld-audit.7:145
+#, no-wrap
+msgid "la_activity()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:149
+#, no-wrap
+msgid "B<void la_activity( uintptr_t *>I<cookie>B<, unsigned int >I<flag>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:158
+msgid ""
+"The dynamic linker calls this function to inform the auditing library that "
+"link-map activity is occurring.  I<cookie> identifies the object at the head "
+"of the link map.  When the dynamic linker invokes this function, I<flag> is "
+"set to one of the following values:"
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:158
+#, no-wrap
+msgid "B<LA_ACT_ADD>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:161
+msgid "New objects are being added to the link map."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:161
+#, no-wrap
+msgid "B<LA_ACT_DELETE>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:164
+msgid "Objects are being removed from the link map."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:164
+#, no-wrap
+msgid "B<LA_ACT_CONSISTENT>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:167
+msgid "Link-map activity has been completed: the map is once again consistent."
+msgstr ""
+
+#. type: SS
+#: build/C/man7/rtld-audit.7:167
+#, no-wrap
+msgid "la_objopen()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:172
+#, no-wrap
+msgid ""
+"B<unsigned int la_objopen(struct link_map *>I<map>B<, Lmid_t >I<lmid>B<,>\n"
+"B<                        uintptr_t *>I<cookie>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:181
+msgid ""
+"The dynamic linker calls this function when a new shared object is loaded.  "
+"The I<map> argument is a pointer to a link-map structure that describes the "
+"object.  The I<lmid> field has one of the following values"
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:181
+#, no-wrap
+msgid "B<LM_ID_BASE>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:184
+msgid "Link map is part of the initial namespace."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:184
+#, no-wrap
+msgid "B<LM_ID_NEWLM>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:188
+msgid "Link map is part of a new namespace requested via B<dlmopen>(3)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:196
+msgid ""
+"I<cookie> is a pointer to an identifier for this object.  The identifier is "
+"provided to later calls to functions in the auditing library in order to "
+"identify this object.  This identifier is initialized to point to object's "
+"link map, but the audit library can change the identifier to some other "
+"value that it may prefer to use to identify the object."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:203
+msgid ""
+"As its return value, B<la_objopen>()  returns a bit mask created by ORing "
+"zero or more of the following constants, which allow the auditing library to "
+"select the objects to be monitored by B<la_symbind*>():"
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:203
+#, no-wrap
+msgid "B<LA_FLG_BINDTO>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:206
+msgid "Audit symbol bindings to this object."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:206
+#, no-wrap
+msgid "B<LA_FLG_BINDFROM>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:209
+msgid "Audit symbol bindings from this object."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:213
+msgid ""
+"A return value of 0 from B<la_objopen>()  indicates that no symbol bindings "
+"should be audited for this object."
+msgstr ""
+
+#. type: SS
+#: build/C/man7/rtld-audit.7:213
+#, no-wrap
+msgid "la_objclose()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:217
+#, no-wrap
+msgid "B<unsigned int la_objclose(uintptr_t *>I<cookie>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:226
+msgid ""
+"The dynamic linker invokes this function after any finalization code for the "
+"object has been executed, before the object is unloaded.  The I<cookie> "
+"argument is the identifier obtained from a previous invocation of "
+"B<la_objopen>()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:230
+msgid ""
+"In the current implementation, the value returned by B<la_objclose>()  is "
+"ignored."
+msgstr ""
+
+#. type: SS
+#: build/C/man7/rtld-audit.7:230
+#, no-wrap
+msgid "la_preinit()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:234
+#, no-wrap
+msgid "B<void la_preinit(uintptr_t *>I<cookie>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:244
+msgid ""
+"The dynamic linker invokes this function after all shared objects have been "
+"loaded, before control is passed to the application (i.e., before calling "
+"I<main>()).  Note that I<main>()  may still later dynamically load objects "
+"using B<dlopen>(3)."
+msgstr ""
+
+#. type: SS
+#: build/C/man7/rtld-audit.7:244
+#, no-wrap
+msgid "la_symbind*()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:253
+#, no-wrap
+msgid ""
+"B<uintptr_t la_symbind32(Elf32_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
+"B<                       uintptr_t *>I<refcook>B<, uintptr_t "
+"*>I<defcook>B<,>\n"
+"B<                       unsigned int *>I<flags>B<, const char "
+"*>I<symname>B<);>\n"
+"B<uintptr_t la_symbind64(Elf64_Sym *>I<sym>B<, unsigned int >I<ndx>B<,>\n"
+"B<                       uintptr_t *>I<refcook>B<, uintptr_t "
+"*>I<defcook>B<,>\n"
+"B<                       unsigned int *>I<flags>B<, const char "
+"*>I<symname>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:265
+msgid ""
+"The dynamic linker invokes one of these functions when a symbol binding "
+"occurs between two shared objects that have been marked for auditing "
+"notification by B<la_objopen>().  The B<la_symbind32>()  function is "
+"employed on 32-bit platforms; the B<la_symbind64>()  function is employed on "
+"64-bit platforms."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:275
+msgid ""
+"The I<sym> argument is a pointer to a structure that provides information "
+"about the symbol being bound.  The structure definition is shown in "
+"I<E<lt>elf.hE<gt>>.  Among the fields of this structure, I<st_value> "
+"indicates the address to which the symbol is bound."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:280
+msgid ""
+"The I<ndx> argument gives the index of the symbol in the symbol table of the "
+"bound shared object."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:295
+msgid ""
+"The I<refcook> argument identifies the shared object that is making the "
+"symbol reference; this is the same identifier that is provided to the "
+"B<la_objopen>()  function that returned B<LA_FLG_BINDFROM>.  The I<defcook> "
+"argument identifies the shared object that defines the referenced symbol; "
+"this is the same identifier that is provided to the B<la_objopen>()  "
+"function that returned B<LA_FLG_BINDTO>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:299
+msgid "The I<symname> argument points a string containing the name of the symbol."
+msgstr ""
+
+#.  LA_SYMB_STRUCTCALL appears to be unused
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:307
+msgid ""
+"The I<flags> argument is a bit mask that both provides information about the "
+"symbol and can be used to modify further auditing of this PLT (Procedure "
+"Linkage Table) entry.  The dynamic linker may supply the following bit "
+"values in this argument:"
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:307
+#, no-wrap
+msgid "B<LA_SYMB_DLSYM>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:311
+msgid "The binding resulted from a call to B<dlsym>(3)."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:311
+#, no-wrap
+msgid "B<LA_SYMB_ALTVALUE>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:316
+msgid ""
+"A previous B<la_symbind*>()  call returned an alternate value for this "
+"symbol."
+msgstr ""
+
+#.  pltenter/pltexit are called for non-dynamically loaded libraries,
+#.  but don't seem to be called for dynamically loaded libs?
+#.  Is this the same on Solaris?
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:330
+msgid ""
+"By default, if the auditing library implements B<la_pltenter>()  and "
+"B<la_pltexit>()  functions (see below), then these functions are invoked, "
+"after B<la_symbind>(), for PLT entries, each time the symbol is referenced.  "
+"The following flags can be ORed into I<*flags> to change this default "
+"behavior:"
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:330
+#, no-wrap
+msgid "B<LA_SYMB_NOPLTENTER>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:335
+msgid "Don't call B<la_pltenter>()  for this symbol."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:335
+#, no-wrap
+msgid "B<LA_SYMB_NOPLTEXIT>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:340
+msgid "Don't call B<la_pltexit>()  for this symbol."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:351
+msgid ""
+"The return value of B<la_symbind32>()  and B<la_symbind64>()  is the address "
+"to which control should be passed after the function returns.  If the "
+"auditing library is simply monitoring symbol bindings, then it should return "
+"I<sym-E<gt>st_value>.  A different value may be returned if the library "
+"wishes to direct control to an alternate location."
+msgstr ""
+
+#. type: SS
+#: build/C/man7/rtld-audit.7:351
+#, no-wrap
+msgid "la_pltenter()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:357 build/C/man7/rtld-audit.7:417
+msgid ""
+"The precise name and argument types for this function depend on the hardware "
+"platform.  (The appropriate definition is supplied by I<E<lt>link.hE<gt>>.)  "
+"Here is the definition for x86-32:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:363
+#, no-wrap
+msgid ""
+"B<Elf32_Addr la_i86_gnu_pltenter(Elf32_Sym *>I<sym>B<, unsigned int "
+">I<ndx>B<,>\n"
+"B<                 uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
+"B<                 La_i86_regs *>I<regs>B<, unsigned int *>I<flags>B<,>\n"
+"B<                 const char *>I<symname>B<, long int "
+"*>I<framesizep>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:367
+msgid ""
+"This function is invoked just before a PLT entry is called, between two "
+"shared objects that have been marked for binding notification."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:377 build/C/man7/rtld-audit.7:440
+msgid ""
+"The I<sym>, I<ndx>, I<refcook>, I<defcook>, and I<symname> are as for "
+"B<la_symbind*>()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:384
+msgid ""
+"The I<regs> argument points to a structure (defined in I<E<lt>link.hE<gt>>)  "
+"containing the values of registers to be used for the call to this PLT "
+"entry."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:390
+msgid ""
+"The I<flags> argument points to a bit mask that conveys information about, "
+"and can be used to modify subsequent auditing of, this PLT entry, as for "
+"B<la_symbind*>()."
+msgstr ""
+
+#.  FIXME . Is the following correct?
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:406
+msgid ""
+"The I<framesizep> argument points to a I<long\\ int> buffer that can be used "
+"to explicitly set the frame size used for the call to this PLT entry.  If "
+"different B<la_pltenter>()  invocations for this symbol return different "
+"values, then the maximum returned value is used.  The B<la_pltenter>()  "
+"function is called only if this buffer is explicitly set to a suitable "
+"value."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:411
+msgid "The return value of B<la_pltenter>()  is as for B<la_symbind*>()."
+msgstr ""
+
+#. type: SS
+#: build/C/man7/rtld-audit.7:411
+#, no-wrap
+msgid "la_pltexit()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:423
+#, no-wrap
+msgid ""
+"B<unsigned int la_i86_gnu_pltexit(Elf32_Sym *>I<sym>B<, unsigned int "
+">I<ndx>B<,>\n"
+"B<                 uintptr_t *>I<refcook>B<, uintptr_t *>I<defcook>B<,>\n"
+"B<                 const La_i86_regs *>I<inregs>B<, La_i86_retval "
+"*>I<outregs>B<,>\n"
+"B<                 const char *>I<symname>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:430
+msgid ""
+"This function is called when a PLT entry, made between two shared objects "
+"that have been marked for binding notification, returns.  The function is "
+"called just before control returns to the caller of the PLT entry."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:453
+msgid ""
+"The I<inregs> argument points to a structure (defined in "
+"I<E<lt>link.hE<gt>>)  containing the values of registers used for the call "
+"to this PLT entry.  The I<outregs> argument points to a structure (defined "
+"in I<E<lt>link.hE<gt>>)  containing return values for the call to this PLT "
+"entry.  These values can be modified by the caller, and the changes will be "
+"visible to the caller of the PLT entry."
+msgstr ""
+
+#.  This differs from Solaris, where an audit library that monitors
+#.  symbol binding should return the value of the 'retval' argument
+#.  (not provided by GNU, but equivalent to returning outregs->lrv_eax
+#.  on (say) x86-32).
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:461
+msgid ""
+"In the current GNU implementation, the return value of B<la_pltexit>()  is "
+"ignored."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:467
+msgid ""
+"This API is nonstandard, but very similar to the Solaris API, described in "
+"the Solaris I<Linker and Libraries Guide>, in the chapter I<Runtime Linker "
+"Auditing Interface>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:470
+msgid "Note the following differences from the Solaris dynamic linker auditing API:"
+msgstr ""
+
+#. type: IP
+#: build/C/man7/rtld-audit.7:470 build/C/man7/rtld-audit.7:474 build/C/man7/rtld-audit.7:482
+#, no-wrap
+msgid "*"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:474
 msgid ""
 "The Solaris B<la_objfilter>()  interface is not supported by the GNU "
 "implementation."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:480
+#: build/C/man7/rtld-audit.7:482
+msgid ""
+"The Solaris B<la_symbind32>()  and B<la_pltexit>()  functions do not provide "
+"a I<symname> argument."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:492
+msgid ""
+"The Solaris B<la_pltexit>()  function does not provide I<inregs> and "
+"I<outregs> arguments (but does provide a I<retval> argument with the "
+"function return value)."
+msgstr ""
+
+#.  FIXME . Specifying multiple audit libraries doesn't work on GNU.
+#.  My simple tests on Solaris work okay, but not on Linux -- mtk, Jan 2009
+#.  glibc bug filed: http://sourceware.org/bugzilla/show_bug.cgi?id=9733
+#.  Reportedly, this is fixed on 16 Mar 2009 (i.e., for glibc 2.10)
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:502
+msgid ""
+"In glibc versions up to and include 2.9, specifying more than one audit "
+"library in B<LD_AUDIT> results in a run-time crash.  This is reportedly "
+"fixed in glibc 2.10."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:506
+#, no-wrap
+msgid ""
+"#include E<lt>link.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:511
+#, no-wrap
+msgid ""
+"unsigned int\n"
+"la_version(unsigned int version)\n"
+"{\n"
+"    printf(\"la_version(): %d\\en\", version);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:514
+#, no-wrap
+msgid ""
+"    return version;\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:527
+#, no-wrap
+msgid ""
+"char *\n"
+"la_objsearch(const char *name, uintptr_t *cookie, unsigned int flag)\n"
+"{\n"
+"    printf(\"la_objsearch(): name = %s; cookie = %x\", name, cookie);\n"
+"    printf(\"; flag = %s\\en\",\n"
+"            (flag == LA_SER_ORIG) ?    \"LA_SER_ORIG\" :\n"
+"            (flag == LA_SER_LIBPATH) ? \"LA_SER_LIBPATH\" :\n"
+"            (flag == LA_SER_RUNPATH) ? \"LA_SER_RUNPATH\" :\n"
+"            (flag == LA_SER_DEFAULT) ? \"LA_SER_DEFAULT\" :\n"
+"            (flag == LA_SER_CONFIG) ?  \"LA_SER_CONFIG\" :\n"
+"            (flag == LA_SER_SECURE) ?  \"LA_SER_SECURE\" :\n"
+"            \"???\");\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:530
+#, no-wrap
+msgid ""
+"    return name;\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:540
+#, no-wrap
+msgid ""
+"void\n"
+"la_activity (uintptr_t *cookie, unsigned int flag)\n"
+"{\n"
+"    printf(\"la_activity(): cookie = %x; flag = %s\\en\", cookie,\n"
+"            (flag == LA_ACT_CONSISTENT) ? \"LA_ACT_CONSISTENT\" :\n"
+"            (flag == LA_ACT_ADD) ?        \"LA_ACT_ADD\" :\n"
+"            (flag == LA_ACT_DELETE) ?     \"LA_ACT_DELETE\" :\n"
+"            \"???\");\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:550
+#, no-wrap
+msgid ""
+"unsigned int\n"
+"la_objopen(struct link_map *map, Lmid_t lmid, uintptr_t *cookie)\n"
+"{\n"
+"    printf(\"la_objopen(): loading \\e\"%s\\e\"; lmid = %s; "
+"cookie=%x\\en\",\n"
+"            map-E<gt>l_name,\n"
+"            (lmid == LM_ID_BASE) ?  \"LM_ID_BASE\" :\n"
+"            (lmid == LM_ID_NEWLM) ? \"LM_ID_NEWLM\" :\n"
+"            \"???\",\n"
+"            cookie);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:553
+#, no-wrap
+msgid ""
+"    return LA_FLG_BINDTO | LA_FLG_BINDFROM;\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:558
+#, no-wrap
+msgid ""
+"unsigned int\n"
+"la_objclose (uintptr_t *cookie)\n"
+"{\n"
+"    printf(\"la_objclose(): %x\\en\", cookie);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:561
+#, no-wrap
+msgid ""
+"    return 0;\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:567
+#, no-wrap
+msgid ""
+"void\n"
+"la_preinit(uintptr_t *cookie)\n"
+"{\n"
+"    printf(\"la_preinit(): %x\\en\", cookie);\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:576
+#, no-wrap
+msgid ""
+"uintptr_t\n"
+"la_symbind32(Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
+"        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
+"{\n"
+"    printf(\"la_symbind32(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
+"            symname, sym-E<gt>st_value);\n"
+"    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
+"    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:579 build/C/man7/rtld-audit.7:591 build/C/man7/rtld-audit.7:601
+#, no-wrap
+msgid ""
+"    return sym-E<gt>st_value;\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:588
+#, no-wrap
+msgid ""
+"uintptr_t\n"
+"la_symbind64(Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
+"        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
+"{\n"
+"    printf(\"la_symbind64(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
+"            symname, sym-E<gt>st_value);\n"
+"    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
+"    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:598
+#, no-wrap
+msgid ""
+"Elf32_Addr\n"
+"la_i86_gnu_pltenter(Elf32_Sym *sym, unsigned int ndx,\n"
+"        uintptr_t *refcook, uintptr_t *defcook, La_i86_regs *regs,\n"
+"        unsigned int *flags, const char *symname, long int *framesizep)\n"
+"{\n"
+"    printf(\"la_i86_gnu_pltenter(): %s (%p)\\en\", symname, "
+"sym-E<gt>st_value);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:607
+msgid "B<ldd>(1), B<dlopen>(3), B<ld.so>(8), B<ldconfig>(8)"
+msgstr ""
+
+#. type: TH
+#: build/C/man8/sln.8:25
+#, no-wrap
+msgid "SLN"
+msgstr ""
+
+#. type: TH
+#: build/C/man8/sln.8:25
+#, no-wrap
+msgid "2013-02-10"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/sln.8:28
+msgid "sln - create symbolic links"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/sln.8:30
+msgid "B<sln>I< source dest>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/sln.8:32
+msgid "B<sln>I< filelist>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/sln.8:42
+msgid ""
+"The B<sln> program creates symbolic links.  Unlike the B<ln>(1)  program, it "
+"is statically linked.  This means that if for some reason the dynamic linker "
+"is not working, B<sln> can be used to make symbolic links to dynamic "
+"libraries."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/sln.8:48
 msgid ""
-"The Solaris B<la_symbind32>()  and B<la_pltexit>()  functions do not provide "
-"a I<symname> argument."
+"The command line has two forms.  In the first form, it creates I<dest> as a "
+"new symbolic link to I<source>."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:490
+#: build/C/man8/sln.8:56
 msgid ""
-"The Solaris B<la_pltexit>()  function does not provide I<inregs> and "
-"I<outregs> arguments (but does provide a I<retval> argument with the "
-"function return value)."
+"In the second form, I<filelist> is a list of space-separated pathname pairs, "
+"and the effect is as if B<sln> was executed once for each line of the file, "
+"with the two pathnames as the arguments."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/sln.8:60
+msgid "The B<sln> program supports no command-line options."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/sln.8:64
+msgid "B<ln>(1), B<ldconfig>(8), B<ld.so>(8)"
+msgstr ""
+
+#. type: TH
+#: build/C/man1/sprof.1:25
+#, no-wrap
+msgid "SPROF"
+msgstr ""
+
+#. type: TH
+#: build/C/man1/sprof.1:25
+#, no-wrap
+msgid "2014-06-24"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:28
+msgid "sprof - read and display shared object profiling data"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:494
+#: build/C/man1/sprof.1:32
 #, no-wrap
+msgid "B<sprof> [I<option>]... I<shared-object-path> [I<profile-data-path>]\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:46
 msgid ""
-"#include E<lt>link.hE<gt>\n"
-"#include E<lt>stdio.hE<gt>\n"
+"The B<sprof> command displays a profiling summary for the shared object "
+"specified as its first command-line argument.  The profiling summary is "
+"created using previously generated profiling data in the (optional) second "
+"command-line argument.  If the profiling data pathname is omitted, then "
+"B<sprof> will attempt to deduce it using the soname of the shared object, "
+"looking for a file with the name I<E<lt>sonameE<gt>.profile> in the current "
+"directory."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:499
+#: build/C/man1/sprof.1:49
+msgid ""
+"The following command-line options specify the profile output to be "
+"produced:"
+msgstr ""
+
+#. type: TP
+#: build/C/man1/sprof.1:49
 #, no-wrap
+msgid "B<-c>, B<--call-pairs>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:54
 msgid ""
-"unsigned int\n"
-"la_version(unsigned int version)\n"
-"{\n"
-"    printf(\"la_version(): %d\\en\", version);\n"
+"Print a list of pairs of call paths for the interfaces exported by the "
+"shared object, along with the number of times each path is used."
+msgstr ""
+
+#. type: TP
+#: build/C/man1/sprof.1:54
+#, no-wrap
+msgid "B<-p>, B<--flat-profile>"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:502
+#: build/C/man1/sprof.1:58
+msgid ""
+"Generate a flat profile of all of the functions in the monitored object, "
+"with counts and ticks."
+msgstr ""
+
+#. type: TP
+#: build/C/man1/sprof.1:58
 #, no-wrap
+msgid "B<-q>, B<--graph>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:61
+msgid "Generate a call graph."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:64
 msgid ""
-"    return version;\n"
-"}\n"
+"If none of the above options is specified, then the default behavior is to "
+"display a flat profile and a call graph."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:66
+msgid "The following additional command-line options are available:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:69
+msgid "Display a summary of command-line options and arguments and exit."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:72
+msgid "Display a short usage message and exit."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:75
+msgid "Display the program version and exit."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:79
+msgid "The B<sprof> command is a GNU extension, not present in POSIX.1."
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:515
+#: build/C/man1/sprof.1:85
+msgid ""
+"The following example demonstrates the use of B<sprof>.  The example "
+"consists of a main program that calls two functions in a shared library.  "
+"First, the code of the main program:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:90
 #, no-wrap
 msgid ""
-"char *\n"
-"la_objsearch(const char *name, uintptr_t *cookie, unsigned int flag)\n"
-"{\n"
-"    printf(\"la_objsearch(): name = %s; cookie = %x\", name, cookie);\n"
-"    printf(\"; flag = %s\\en\",\n"
-"            (flag == LA_SER_ORIG) ?    \"LA_SER_ORIG\" :\n"
-"            (flag == LA_SER_LIBPATH) ? \"LA_SER_LIBPATH\" :\n"
-"            (flag == LA_SER_RUNPATH) ? \"LA_SER_RUNPATH\" :\n"
-"            (flag == LA_SER_DEFAULT) ? \"LA_SER_DEFAULT\" :\n"
-"            (flag == LA_SER_CONFIG) ?  \"LA_SER_CONFIG\" :\n"
-"            (flag == LA_SER_SECURE) ?  \"LA_SER_SECURE\" :\n"
-"            \"???\");\n"
+"$ B<cat prog.c>\n"
+"#include E<lt>stdlib.hE<gt>\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:518
+#: build/C/man1/sprof.1:93
 #, no-wrap
 msgid ""
-"    return name;\n"
-"}\n"
+"void x1(void);\n"
+"void x2(void);\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:528
+#: build/C/man1/sprof.1:101
 #, no-wrap
 msgid ""
-"void\n"
-"la_activity (uintptr_t *cookie, unsigned int flag)\n"
+"int\n"
+"main(int argc, char *argv[])\n"
 "{\n"
-"    printf(\"la_activity(): cookie = %x; flag = %s\\en\", cookie,\n"
-"            (flag == LA_ACT_CONSISTENT) ? \"LA_ACT_CONSISTENT\" :\n"
-"            (flag == LA_ACT_ADD) ?        \"LA_ACT_ADD\" :\n"
-"            (flag == LA_ACT_DELETE) ?     \"LA_ACT_DELETE\" :\n"
-"            \"???\");\n"
+"    x1();\n"
+"    x2();\n"
+"    exit(EXIT_SUCCESS);\n"
 "}\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:538
+#: build/C/man1/sprof.1:110
+msgid ""
+"The functions I<x1()> and I<x2()> are defined in the following source file "
+"that is used to construct the shared library:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:115
 #, no-wrap
 msgid ""
-"unsigned int\n"
-"la_objopen(struct link_map *map, Lmid_t lmid, uintptr_t *cookie)\n"
+"$ B<cat libdemo.c>\n"
+"#include E<lt>unistd.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:120
+#, no-wrap
+msgid ""
+"void\n"
+"consumeCpu1(int lim)\n"
 "{\n"
-"    printf(\"la_objopen(): loading \\e\"%s\\e\"; lmid = %s; "
-"cookie=%x\\en\",\n"
-"            map-E<gt>l_name,\n"
-"            (lmid == LM_ID_BASE) ?  \"LM_ID_BASE\" :\n"
-"            (lmid == LM_ID_NEWLM) ? \"LM_ID_NEWLM\" :\n"
-"            \"???\",\n"
-"            cookie);\n"
+"    int j;\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:541
+#: build/C/man1/sprof.1:124 build/C/man1/sprof.1:141
 #, no-wrap
 msgid ""
-"    return LA_FLG_BINDTO | LA_FLG_BINDFROM;\n"
+"    for (j = 0; j E<lt> lim; j++)\n"
+"\tgetppid();\n"
 "}\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:546
+#: build/C/man1/sprof.1:128
 #, no-wrap
 msgid ""
-"unsigned int\n"
-"la_objclose (uintptr_t *cookie)\n"
-"{\n"
-"    printf(\"la_objclose(): %x\\en\", cookie);\n"
+"void\n"
+"x1(void) {\n"
+"    int j;\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:549
+#: build/C/man1/sprof.1:132
 #, no-wrap
 msgid ""
-"    return 0;\n"
+"    for (j = 0; j E<lt> 100; j++)\n"
+"\tconsumeCpu1(200000);\n"
 "}\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:555
+#: build/C/man1/sprof.1:137
 #, no-wrap
 msgid ""
 "void\n"
-"la_preinit(uintptr_t *cookie)\n"
+"consumeCpu2(int lim)\n"
 "{\n"
-"    printf(\"la_preinit(): %x\\en\", cookie);\n"
-"}\n"
+"    int j;\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:564
+#: build/C/man1/sprof.1:146
 #, no-wrap
 msgid ""
-"uintptr_t\n"
-"la_symbind32(Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
-"        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
+"void\n"
+"x2(void)\n"
 "{\n"
-"    printf(\"la_symbind32(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
-"            symname, sym-E<gt>st_value);\n"
-"    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
-"    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
+"    int j;\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:567 build/C/man7/rtld-audit.7:579 build/C/man7/rtld-audit.7:589
+#: build/C/man1/sprof.1:150
 #, no-wrap
 msgid ""
-"    return sym-E<gt>st_value;\n"
+"    for (j = 0; j E<lt> 1000; j++)\n"
+"\tconsumeCpu2(10000);\n"
 "}\n"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:576
+#: build/C/man1/sprof.1:157
+msgid ""
+"Now we construct the shared library with the real name I<libdemo.so.1.0.1>, "
+"and the soname I<libdemo.so.1>:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:162
 #, no-wrap
 msgid ""
-"uintptr_t\n"
-"la_symbind64(Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,\n"
-"        uintptr_t *defcook, unsigned int *flags, const char *symname)\n"
-"{\n"
-"    printf(\"la_symbind64(): symname = %s; sym-E<gt>st_value = %p\\en\",\n"
-"            symname, sym-E<gt>st_value);\n"
-"    printf(\"        ndx = %d; flags = 0x%x\", ndx, *flags);\n"
-"    printf(\"; refcook = %x; defcook = %x\\en\", refcook, defcook);\n"
+"$ B<cc -g -fPIC -shared -Wl,-soname,libdemo.so.1 \\e>\n"
+"        B<-o libdemo.so.1.0.1 libdemo.c>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:167
+msgid ""
+"Then we construct symbolic links for the library soname and the library "
+"linker name:"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:586
+#: build/C/man1/sprof.1:172
 #, no-wrap
 msgid ""
-"Elf32_Addr\n"
-"la_i86_gnu_pltenter(Elf32_Sym *sym, unsigned int ndx,\n"
-"        uintptr_t *refcook, uintptr_t *defcook, La_i86_regs *regs,\n"
-"        unsigned int *flags, const char *symname, long int *framesizep)\n"
-"{\n"
-"    printf(\"la_i86_gnu_pltenter(): %s (%p)\\en\", symname, "
-"sym-E<gt>st_value);\n"
+"$ B<ln -sf libdemo.so.1.0.1 libdemo.so.1>\n"
+"$ B<ln -sf libdemo.so.1 libdemo.so>\n"
 msgstr ""
 
-#.  FIXME Specifying multiple audit libraries doesn't work on GNU.
-#.  My simple tests on Solaris work okay, but not on Linux -- mtk, Jan 2009
-#.  glibc bug filed: http://sourceware.org/bugzilla/show_bug.cgi?id=9733
-#.  Reportedly, this is fixed on 16 Mar 2009 (i.e., for glibc 2.10)
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:600
+#: build/C/man1/sprof.1:177
 msgid ""
-"In glibc versions up to and include 2.9, specifying more than one audit "
-"library in B<LD_AUDIT> results in a run-time crash.  This is reportedly "
-"fixed in glibc 2.10."
+"Next, we compile the main program, linking it against the shared library, "
+"and then list the dynamic dependencies of the program:"
 msgstr ""
 
 #. type: Plain text
-#: build/C/man7/rtld-audit.7:605
-msgid "B<ldd>(1), B<dlopen>(3), B<ld.so>(8), B<ldconfig>(8)"
+#: build/C/man1/sprof.1:186
+#, no-wrap
+msgid ""
+"$ B<cc -g -o prog prog.c -L. -ldemo>\n"
+"$ B<ldd prog>\n"
+"\tlinux-vdso.so.1 =E<gt>  (0x00007fff86d66000)\n"
+"\tlibdemo.so.1 =E<gt> not found\n"
+"\tlibc.so.6 =E<gt> /lib64/libc.so.6 (0x00007fd4dc138000)\n"
+"\t/lib64/ld-linux-x86-64.so.2 (0x00007fd4dc51f000)\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:193
+msgid ""
+"In order to get profiling information for the shared library, we define the "
+"environment variable B<LD_PROFILE> with the soname of the library:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:197
+#, no-wrap
+msgid "$ B<export LD_PROFILE=libdemo.so.1>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:204
+msgid ""
+"We then define the environment variable B<LD_PROFILE_OUTPUT> with the "
+"pathname of the directory where profile output should be written, and create "
+"that directory if it does not exist already:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:209
+#, no-wrap
+msgid ""
+"$ B<export LD_PROFILE_OUTPUT=$(pwd)/prof_data>\n"
+"$ B<mkdir -p $LD_PROFILE_OUTPUT>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:217
+msgid ""
+"B<LD_PROFILE> causes profiling output to be I<appended> to the output file "
+"if it already exists, so we ensure that there is no preexisting profiling "
+"data:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:221
+#, no-wrap
+msgid "$ B<rm -f $LD_PROFILE_OUTPUT/$LD_PROFILE.profile>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:227
+msgid ""
+"We then run the program to produce the profiling output, which is written to "
+"a file in the directory specified in B<LD_PROFILE_OUTPUT>:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:233
+#, no-wrap
+msgid ""
+"$ B<LD_LIBRARY_PATH=. ./prog>\n"
+"$ B<ls prof_data>\n"
+"libdemo.so.1.profile\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:239
+msgid ""
+"We then use the B<sprof -p> option to generate a flat profile with counts "
+"and ticks:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:244
+#, no-wrap
+msgid ""
+"$ B<sprof -p libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile>\n"
+"Flat profile:\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:252
+#, no-wrap
+msgid ""
+"Each sample counts as 0.01 seconds.\n"
+"  %   cumulative   self              self     total\n"
+" time   seconds   seconds    calls  us/call  us/call  name\n"
+" 60.00      0.06     0.06      100   600.00           consumeCpu1\n"
+" 40.00      0.10     0.04     1000    40.00           consumeCpu2\n"
+"  0.00      0.10     0.00        1     0.00           x1\n"
+"  0.00      0.10     0.00        1     0.00           x2\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:258
+msgid "The B<sprof -q> option generates a call graph:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:262
+#, no-wrap
+msgid "$ B<sprof -q libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:264
+#, no-wrap
+msgid "index % time    self  children    called     name\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:279
+#, no-wrap
+msgid ""
+"                0.00    0.00      100/100         x1 [1]\n"
+"[0]    100.0    0.00    0.00      100         consumeCpu1 [0]\n"
+"-----------------------------------------------\n"
+"                0.00    0.00        1/1           E<lt>UNKNOWNE<gt>\n"
+"[1]      0.0    0.00    0.00        1         x1 [1]\n"
+"                0.00    0.00      100/100         consumeCpu1 [0]\n"
+"-----------------------------------------------\n"
+"                0.00    0.00     1000/1000        x2 [3]\n"
+"[2]      0.0    0.00    0.00     1000         consumeCpu2 [2]\n"
+"-----------------------------------------------\n"
+"                0.00    0.00        1/1           E<lt>UNKNOWNE<gt>\n"
+"[3]      0.0    0.00    0.00        1         x2 [3]\n"
+"                0.00    0.00     1000/1000        consumeCpu2 [2]\n"
+"-----------------------------------------------\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:285
+msgid ""
+"Above and below, the \"E<lt>UNKNOWNE<gt>\" strings represent identifiers "
+"that are outside of the profiled object (in this example, these are "
+"instances of I<main()>)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:289
+msgid ""
+"The B<sprof -c> option generates a list of call pairs and the number of "
+"their occurrences:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:297
+#, no-wrap
+msgid ""
+"$ B<sprof -c libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile>\n"
+"E<lt>UNKNOWNE<gt>                  x1                                 1\n"
+"x1                         consumeCpu1                      100\n"
+"E<lt>UNKNOWNE<gt>                  x2                                 1\n"
+"x2                         consumeCpu2                     1000\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:303
+msgid "B<gprof>(1), B<ldd>(1), B<ld.so>(8)"
 msgstr ""