source: chapter08/glibc.xml@ c500323

11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 bdubbs/gcc13 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since c500323 was c500323, checked in by Xi Ruoyao <xry111@…>, 22 months ago

document some newly reported test failures

  • Property mode set to 100644
File size: 36.4 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="ch-system-glibc" role="wrap">
9 <?dbhtml filename="glibc.html"?>
10
11 <sect1info condition="script">
12 <productname>glibc</productname>
13 <productnumber>&glibc-version;</productnumber>
14 <address>&glibc-url;</address>
15 </sect1info>
16
17 <title>Glibc-&glibc-version;</title>
18
19 <indexterm zone="ch-system-glibc">
20 <primary sortas="a-Glibc">Glibc</primary>
21 </indexterm>
22
23 <sect2 role="package">
24 <title/>
25
26 <para>The Glibc package contains the main C library. This library provides
27 the basic routines for allocating memory, searching directories, opening and
28 closing files, reading and writing files, string handling, pattern matching,
29 arithmetic, and so on.</para>
30
31 <segmentedlist>
32 <segtitle>&buildtime;</segtitle>
33 <segtitle>&diskspace;</segtitle>
34
35 <seglistitem>
36 <seg>&glibc-fin-sbu;</seg>
37 <seg>&glibc-fin-du;</seg>
38 </seglistitem>
39 </segmentedlist>
40
41 </sect2>
42
43 <sect2 role="installation">
44 <title>Installation of Glibc</title>
45
46<!-- applied in 2.35 (commit b805aebd42364fe696e417808a700fdb9800c9e8)
47 <para>First, fix a security problem identified upstream:</para>
48
49 <screen><userinput remap="pre">sed -e '/NOTIFY_REMOVED)/s/)/ \&amp;\&amp; data.attr != NULL)/' \
50 -i sysdeps/unix/sysv/linux/mq_notify.c</userinput></screen>
51-->
52 <para>Some of the Glibc programs use the non-FHS compliant
53 <filename class="directory">/var/db</filename> directory to store
54 their runtime data. Apply the following patch to make such programs
55 store their runtime data in the FHS-compliant locations:</para>
56
57<screen><userinput remap="pre">patch -Np1 -i ../&glibc-fhs-patch;</userinput></screen>
58
59 <para>The Glibc documentation recommends building Glibc
60 in a dedicated build directory:</para>
61
62<screen><userinput remap="pre">mkdir -v build
63cd build</userinput></screen>
64
65 <para>Ensure that the <command>ldconfig</command> and <command>sln</command>
66 utilities will be installed into
67 <filename class="directory">/usr/sbin</filename>:</para>
68
69<screen><userinput remap="pre">echo "rootsbindir=/usr/sbin" &gt; configparms</userinput></screen>
70
71 <para>Prepare Glibc for compilation:</para>
72
73<screen><userinput remap="configure">../configure --prefix=/usr \
74 --disable-werror \
75 --enable-kernel=&min-kernel; \
76 --enable-stack-protector=strong \
77 --with-headers=/usr/include \
78 libc_cv_slibdir=/usr/lib</userinput></screen>
79
80 <variablelist>
81 <title>The meaning of the configure options:</title>
82
83 <varlistentry>
84 <term><parameter>--disable-werror</parameter></term>
85 <listitem>
86 <para>This option disables the -Werror option passed to
87 GCC. This is necessary for running the test suite.</para>
88 </listitem>
89 </varlistentry>
90
91 <varlistentry>
92 <term><parameter>--enable-kernel=&min-kernel;</parameter></term>
93 <listitem>
94 <para>This option tells the build system that this glibc may
95 be used with kernels as old as &min-kernel;. This means generating
96 workarounds in case a system call introduced in a later version
97 cannot be used.</para>
98 </listitem>
99 </varlistentry>
100
101 <varlistentry>
102 <term><parameter>--enable-stack-protector=strong</parameter></term>
103 <listitem>
104 <para>This option increases system security by adding
105 extra code to check for buffer overflows, such as stack
106 smashing attacks.</para>
107 </listitem>
108 </varlistentry>
109<!-- do we need this one? -->
110 <varlistentry>
111 <term><parameter>--with-headers=/usr/include</parameter></term>
112 <listitem>
113 <para>This option tells the build system where to find the
114 kernel API headers.</para>
115 </listitem>
116 </varlistentry>
117
118 <varlistentry>
119 <term><parameter>libc_cv_slibdir=/usr/lib</parameter></term>
120 <listitem>
121 <para>This variable sets the correct library for all
122 systems. We do not want lib64 to be used.</para>
123 </listitem>
124 </varlistentry>
125
126 </variablelist>
127
128 <para>Compile the package:</para>
129
130<screen><userinput remap="make">make</userinput></screen>
131
132 <important>
133 <para>In this section, the test suite for Glibc is considered critical.
134 Do not skip it under any circumstance.</para>
135 </important>
136
137 <para>Generally a few tests do not pass. The test failures listed below
138 are usually safe to ignore.</para>
139
140<!-- Use remap="make" here to work around a jhalfs issue. -->
141<!--<screen><userinput remap="make">case $(uname -m) in
142 i?86) ln -sfnv $PWD/elf/ld-linux.so.2 /lib ;;
143 x86_64) ln -sfnv $PWD/elf/ld-linux-x86-64.so.2 /lib ;;
144esac</userinput></screen>
145
146 <note><para>The symbolic link above is needed to run the tests at this
147 stage of building in the chroot environment. It will be overwritten
148 in the install phase below.</para></note>
149-->
150<screen><userinput remap="test">make check</userinput></screen>
151
152 <para>You may see some test failures. The Glibc test suite is
153 somewhat dependent on the host system. A few failures out of
154 over 4200 tests can generally be ignored. This is a list of the
155 most common issues seen for recent versions of LFS:</para>
156
157 <itemizedlist>
158
159 <listitem>
160 <para><emphasis>io/tst-lchmod</emphasis>
161 is known to fail in the LFS chroot environment.</para>
162 </listitem>
163
164 <listitem>
165 <para><emphasis>misc/tst-ttyname</emphasis>
166 is known to fail in the LFS chroot environment.</para>
167 </listitem>
168
169 <listitem>
170 <para>The <emphasis>nss/tst-nss-files-hosts-long</emphasis>
171 test is known to fail if the system has no non-loopback IP
172 addresses.</para> <!-- PR 24816 -->
173 </listitem>
174
175 <listitem>
176 <para>Some tests, for example
177 <emphasis>nss/tst-nss-files-hosts-multi</emphasis>,
178 are known to fail on relatively slow systems due to an internal
179 timeout.</para>
180 </listitem>
181
182 <!--
183 https://lists.linuxfromscratch.org/sympa/arc/lfs-support/2022-06/msg00022.html
184 https://sourceware.org/pipermail/libc-alpha/2022-June/139839.html
185 -->
186 <listitem>
187 <para>About 27 tests, for example <emphasis>elf/tst-pldd</emphasis>,
188 are known to fail if the kernel supports namespaces (see
189 <filename>namespaces(7)</filename> for details) but the host distro
190 has disabled them via sysctl.</para>
191 </listitem>
192<!--
193 <listitem>
194 <para>The <emphasis>rt/tst-cputimer{1,2,3}</emphasis> tests depend on
195 the host system kernel. Kernels 4.14.91&ndash;4.14.96,
196 4.19.13&ndash;4.19.18, and 4.20.0&ndash;4.20.5 are known to
197 cause these tests to fail.
198 </para>
199 </listitem>
200
201 <listitem>
202 <para>The math tests sometimes fail when running on
203 systems where the CPU is not a relatively new Intel or
204 AMD processor.</para>
205 </listitem>
206-->
207 </itemizedlist>
208
209 <para>Though it is a harmless message, the install stage of Glibc will
210 complain about the absence of <filename>/etc/ld.so.conf</filename>.
211 Prevent this warning with:</para>
212
213<screen><userinput remap="install">touch /etc/ld.so.conf</userinput></screen>
214
215 <para>Fix the Makefile to skip an unneeded sanity check
216 that fails in the LFS partial environment:
217 </para>
218
219<screen><userinput remap="install">sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile</userinput></screen>
220
221 <para>Install the package:</para>
222
223<screen><userinput remap="install">make install</userinput></screen>
224
225 <para>Fix hardcoded path to the executable loader in
226 <command>ldd</command> script:</para>
227
228<screen><userinput remap="install">sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd</userinput></screen>
229
230 <para>Install the configuration file and runtime directory for
231 <command>nscd</command>:</para>
232
233<screen><userinput remap="install">cp -v ../nscd/nscd.conf /etc/nscd.conf
234mkdir -pv /var/cache/nscd</userinput></screen>
235
236 <para revision="systemd">Install the systemd support files for
237 <command>nscd</command>:</para>
238
239 <screen revision="systemd"><userinput remap="install">install -v -Dm644 ../nscd/nscd.tmpfiles /usr/lib/tmpfiles.d/nscd.conf
240install -v -Dm644 ../nscd/nscd.service /usr/lib/systemd/system/nscd.service</userinput></screen>
241
242 <para>Next, install the locales that can make the system respond in a
243 different language. None of the locales are required, but if some of them
244 are missing, the test suites of future packages would skip important
245 testcases.</para>
246
247 <para>Individual locales can be installed using the
248 <command>localedef</command> program. E.g., the second
249 <command>localedef</command> command below combines the
250 <filename>/usr/share/i18n/locales/cs_CZ</filename>
251 charset-independent locale definition with the
252 <filename>/usr/share/i18n/charmaps/UTF-8.gz</filename>
253 charmap definition and appends the result to the
254 <filename>/usr/lib/locale/locale-archive</filename> file.
255 The following instructions will install the minimum set of
256 locales necessary for the optimal coverage of tests:</para>
257
258<screen role="nodump"><userinput remap="locale-test">mkdir -pv /usr/lib/locale
259localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true
260localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
261localedef -i de_DE -f ISO-8859-1 de_DE
262localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
263localedef -i de_DE -f UTF-8 de_DE.UTF-8
264localedef -i el_GR -f ISO-8859-7 el_GR
265localedef -i en_GB -f ISO-8859-1 en_GB
266localedef -i en_GB -f UTF-8 en_GB.UTF-8
267localedef -i en_HK -f ISO-8859-1 en_HK
268localedef -i en_PH -f ISO-8859-1 en_PH
269localedef -i en_US -f ISO-8859-1 en_US
270localedef -i en_US -f UTF-8 en_US.UTF-8
271localedef -i es_ES -f ISO-8859-15 es_ES@euro
272localedef -i es_MX -f ISO-8859-1 es_MX
273localedef -i fa_IR -f UTF-8 fa_IR
274localedef -i fr_FR -f ISO-8859-1 fr_FR
275localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
276localedef -i fr_FR -f UTF-8 fr_FR.UTF-8
277localedef -i is_IS -f ISO-8859-1 is_IS
278localedef -i is_IS -f UTF-8 is_IS.UTF-8
279localedef -i it_IT -f ISO-8859-1 it_IT
280localedef -i it_IT -f ISO-8859-15 it_IT@euro
281localedef -i it_IT -f UTF-8 it_IT.UTF-8
282localedef -i ja_JP -f EUC-JP ja_JP
283localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true
284localedef -i ja_JP -f UTF-8 ja_JP.UTF-8
285localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro
286localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R
287localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
288localedef -i se_NO -f UTF-8 se_NO.UTF-8
289localedef -i ta_IN -f UTF-8 ta_IN.UTF-8
290localedef -i tr_TR -f UTF-8 tr_TR.UTF-8
291localedef -i zh_CN -f GB18030 zh_CN.GB18030
292localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS
293localedef -i zh_TW -f UTF-8 zh_TW.UTF-8</userinput></screen>
294
295 <para>In addition, install the locale for your own country, language and
296 character set.</para>
297
298 <para>Alternatively, install all locales listed in the
299 <filename>glibc-&glibc-version;/localedata/SUPPORTED</filename> file
300 (it includes every locale listed above and many more) at once with the
301 following time-consuming command:</para>
302
303<screen><userinput remap="locale-full">make localedata/install-locales</userinput></screen>
304
305 <para>Then use the <command>localedef</command> command to create and
306 install locales not listed in the
307 <filename>glibc-&glibc-version;/localedata/SUPPORTED</filename> file
308 when you need them. For instance, the following two locales are
309 needed for some tests later in this chapter:</para>
310
311<screen role="nodump"><userinput remap="locale-full">localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true
312localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true</userinput></screen>
313
314 <note><para>Glibc now uses libidn2 when resolving internationalized
315 domain names. This is a run time dependency. If this capability
316 is needed, the instructions for installing libidn2 are in the
317 <ulink url="&blfs-book;general/libidn2.html">BLFS libidn2 page</ulink>.
318 </para></note>
319
320 </sect2>
321
322 <sect2 id="conf-glibc" role="configuration">
323 <title>Configuring Glibc</title>
324
325 <indexterm zone="conf-glibc">
326 <primary sortas="e-/etc/nsswitch.conf">/etc/nsswitch.conf</primary>
327 </indexterm>
328
329 <indexterm zone="conf-glibc">
330 <primary sortas="e-/etc/localtime">/etc/localtime</primary>
331 </indexterm>
332
333 <sect3>
334 <title>Adding nsswitch.conf</title>
335
336 <para>The <filename>/etc/nsswitch.conf</filename> file needs to be created
337 because the Glibc defaults do not work well in a networked environment.
338 </para>
339
340 <para>Create a new file <filename>/etc/nsswitch.conf</filename> by running the
341 following:</para>
342
343<screen><userinput>cat &gt; /etc/nsswitch.conf &lt;&lt; "EOF"
344<literal># Begin /etc/nsswitch.conf
345
346passwd: files
347group: files
348shadow: files
349
350hosts: files dns
351networks: files
352
353protocols: files
354services: files
355ethers: files
356rpc: files
357
358# End /etc/nsswitch.conf</literal>
359EOF</userinput></screen>
360
361 </sect3>
362
363 <sect3>
364 <title>Adding time zone data</title>
365
366 <para>Install and set up the time zone data with the following:</para>
367<screen><userinput>tar -xf ../../tzdata&tzdata-version;.tar.gz
368
369ZONEINFO=/usr/share/zoneinfo
370mkdir -pv $ZONEINFO/{posix,right}
371
372for tz in etcetera southamerica northamerica europe africa antarctica \
373 asia australasia backward; do
374 zic -L /dev/null -d $ZONEINFO ${tz}
375 zic -L /dev/null -d $ZONEINFO/posix ${tz}
376 zic -L leapseconds -d $ZONEINFO/right ${tz}
377done
378
379cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO
380zic -d $ZONEINFO -p America/New_York
381unset ZONEINFO</userinput></screen>
382
383 <variablelist>
384 <title>The meaning of the zic commands:</title>
385
386 <varlistentry>
387 <term><parameter>zic -L /dev/null ...</parameter></term>
388 <listitem>
389 <para>This creates posix time zones without any leap seconds. It is
390 conventional to put these in both
391 <filename class="directory">zoneinfo</filename> and
392 <filename class="directory">zoneinfo/posix</filename>. It is
393 necessary to put the POSIX time zones in
394 <filename class="directory">zoneinfo</filename>, otherwise various
395 test-suites will report errors. On an embedded system, where space is
396 tight and you do not intend to ever update the time zones, you could save
397 1.9 MB by not using the <filename class="directory">posix</filename>
398 directory, but some applications or test-suites might produce some
399 failures.</para>
400 </listitem>
401 </varlistentry>
402 <varlistentry>
403 <term><parameter>zic -L leapseconds ...</parameter></term>
404 <listitem>
405 <para>This creates right time zones, including leap seconds. On an
406 embedded system, where space is tight and you do not intend to
407 ever update the time zones, or care about the correct time, you could
408 save 1.9MB by omitting the <filename class="directory">right</filename>
409 directory.</para>
410 </listitem>
411 </varlistentry>
412 <varlistentry>
413 <term><parameter>zic ... -p ...</parameter></term>
414 <listitem>
415 <para>This creates the <filename>posixrules</filename> file. We use
416 New York because POSIX requires the daylight savings time rules
417 to be in accordance with US rules.</para>
418 </listitem>
419 </varlistentry>
420 </variablelist>
421
422
423 <para>One way to determine the local time zone is to run the following
424 script:</para>
425
426<screen role="nodump"><userinput>tzselect</userinput></screen>
427
428 <para>After answering a few questions about the location, the script will
429 output the name of the time zone (e.g.,
430 <emphasis>America/Edmonton</emphasis>). There are also some other possible
431 time zones listed in <filename
432 class='directory'>/usr/share/zoneinfo</filename> such as
433 <emphasis>Canada/Eastern</emphasis> or <emphasis>EST5EDT</emphasis> that
434 are not identified by the script but can be used.</para>
435
436 <para>Then create the <filename>/etc/localtime</filename> file by
437 running:</para>
438
439<screen><userinput>ln -sfv /usr/share/zoneinfo/<replaceable>&lt;xxx&gt;</replaceable> /etc/localtime</userinput></screen>
440
441 <para>Replace <replaceable>&lt;xxx&gt;</replaceable> with the name of the
442 time zone selected (e.g., Canada/Eastern).</para>
443
444 </sect3>
445
446 <sect3 id="conf-ld" role="configuration">
447 <title>Configuring the Dynamic Loader</title>
448
449 <indexterm zone="conf-ld">
450 <primary sortas="e-/etc/ld.so.conf">/etc/ld.so.conf</primary>
451 </indexterm>
452
453 <para>By default, the dynamic loader (<filename
454 class="libraryfile">/lib/ld-linux.so.2</filename>) searches through
455 <filename class="directory">/lib</filename> and <filename
456 class="directory">/usr/lib</filename> for dynamic libraries that are
457 needed by programs as they are run. However, if there are libraries in
458 directories other than <filename class="directory">/lib</filename> and
459 <filename class="directory">/usr/lib</filename>, these need to be added
460 to the <filename>/etc/ld.so.conf</filename> file in order for the
461 dynamic loader to find them. Two directories that are commonly known
462 to contain additional libraries are <filename
463 class="directory">/usr/local/lib</filename> and <filename
464 class="directory">/opt/lib</filename>, so add those directories to the
465 dynamic loader's search path.</para>
466
467 <para>Create a new file <filename>/etc/ld.so.conf</filename> by running the
468 following:</para>
469
470<screen><userinput>cat &gt; /etc/ld.so.conf &lt;&lt; "EOF"
471<literal># Begin /etc/ld.so.conf
472/usr/local/lib
473/opt/lib
474</literal>
475EOF</userinput></screen>
476
477 <para>If desired, the dynamic loader can also search a directory and
478 include the contents of files found there. Generally the files in
479 this include directory are one line specifying the desired library path.
480 To add this capability run the following commands:</para>
481
482<screen role="nodump"><userinput>cat &gt;&gt; /etc/ld.so.conf &lt;&lt; "EOF"
483<literal># Add an include directory
484include /etc/ld.so.conf.d/*.conf
485</literal>
486EOF
487mkdir -pv /etc/ld.so.conf.d</userinput></screen>
488
489 </sect3>
490 </sect2>
491
492 <sect2 id="contents-glibc" role="content">
493 <title>Contents of Glibc</title>
494
495 <segmentedlist>
496 <segtitle>Installed programs</segtitle>
497 <segtitle>Installed libraries</segtitle>
498 <segtitle>Installed directories</segtitle>
499
500 <seglistitem>
501 <seg>gencat, getconf, getent, iconv, iconvconfig, ldconfig,
502 ldd, lddlibc4,
503 ld.so (symlink to ld-linux-x86-64.so.2 or ld-linux.so.2),
504 locale, localedef, makedb, mtrace, nscd,
505 pcprofiledump, pldd, sln, sotruss, sprof, tzselect, xtrace,
506 zdump, and zic</seg>
507 <seg>ld-linux-x86-64.so.2, ld-linux.so.2,
508 libBrokenLocale.{a,so}, libanl.{a,so},
509 libc.{a,so}, libc_nonshared.a, libc_malloc_debug.so,
510 libcrypt.{a,so}, libdl.{a,so.2}, libg.a, libm.{a,so},
511 libmcheck.a, libmemusage.so, libmvec.{a,so}, libnsl.so.1,
512 libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so,
513 libpcprofile.so, libpthread.{a,so.0},
514 libresolv.{a,so}, librt.{a,so.1},
515 libthread_db.so, and libutil.{a,so.1}</seg>
516 <seg>/usr/include/arpa, /usr/include/bits, /usr/include/gnu,
517 /usr/include/net, /usr/include/netash, /usr/include/netatalk,
518 /usr/include/netax25, /usr/include/neteconet, /usr/include/netinet,
519 /usr/include/netipx, /usr/include/netiucv, /usr/include/netpacket,
520 /usr/include/netrom, /usr/include/netrose, /usr/include/nfs,
521 /usr/include/protocols, /usr/include/rpc,
522 /usr/include/sys, /usr/lib/audit, /usr/lib/gconv, /usr/lib/locale,
523 /usr/libexec/getconf, /usr/share/i18n, /usr/share/zoneinfo,
524 /var/cache/nscd, and /var/lib/nss_db</seg>
525 </seglistitem>
526 </segmentedlist>
527
528 <variablelist>
529 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
530 <?dbfo list-presentation="list"?>
531 <?dbhtml list-presentation="table"?>
532
533 <varlistentry id="gencat">
534 <term><command>gencat</command></term>
535 <listitem>
536 <para>Generates message catalogues</para>
537 <indexterm zone="ch-system-glibc gencat">
538 <primary sortas="b-gencat">gencat</primary>
539 </indexterm>
540 </listitem>
541 </varlistentry>
542
543 <varlistentry id="getconf">
544 <term><command>getconf</command></term>
545 <listitem>
546 <para>Displays the system configuration values for file system
547 specific variables</para>
548 <indexterm zone="ch-system-glibc getconf">
549 <primary sortas="b-getconf">getconf</primary>
550 </indexterm>
551 </listitem>
552 </varlistentry>
553
554 <varlistentry id="getent">
555 <term><command>getent</command></term>
556 <listitem>
557 <para>Gets entries from an administrative database</para>
558 <indexterm zone="ch-system-glibc getent">
559 <primary sortas="b-getent">getent</primary>
560 </indexterm>
561 </listitem>
562 </varlistentry>
563
564 <varlistentry id="iconv">
565 <term><command>iconv</command></term>
566 <listitem>
567 <para>Performs character set conversion</para>
568 <indexterm zone="ch-system-glibc iconv">
569 <primary sortas="b-iconv">iconv</primary>
570 </indexterm>
571 </listitem>
572 </varlistentry>
573
574 <varlistentry id="iconvconfig">
575 <term><command>iconvconfig</command></term>
576 <listitem>
577 <para>Creates fastloading <command>iconv</command> module configuration
578 files</para>
579 <indexterm zone="ch-system-glibc iconvconfig">
580 <primary sortas="b-iconvconfig">iconvconfig</primary>
581 </indexterm>
582 </listitem>
583 </varlistentry>
584
585 <varlistentry id="ldconfig">
586 <term><command>ldconfig</command></term>
587 <listitem>
588 <para>Configures the dynamic linker runtime bindings</para>
589 <indexterm zone="ch-system-glibc ldconfig">
590 <primary sortas="b-ldconfig">ldconfig</primary>
591 </indexterm>
592 </listitem>
593 </varlistentry>
594
595 <varlistentry id="ldd">
596 <term><command>ldd</command></term>
597 <listitem>
598 <para>Reports which shared libraries are required
599 by each given program or shared library</para>
600 <indexterm zone="ch-system-glibc ldd">
601 <primary sortas="b-ldd">ldd</primary>
602 </indexterm>
603 </listitem>
604 </varlistentry>
605
606 <varlistentry id="lddlibc4">
607 <term><command>lddlibc4</command></term>
608 <listitem>
609 <para>Assists <command>ldd</command> with object files.
610 It does not exist on newer architectures like x86_64</para>
611 <indexterm zone="ch-system-glibc lddlibc4">
612 <primary sortas="b-lddlibc4">lddlibc4</primary>
613 </indexterm>
614 </listitem>
615 </varlistentry>
616
617 <varlistentry id="locale">
618 <term><command>locale</command></term>
619 <listitem>
620 <para>Prints various information about the current locale</para>
621 <indexterm zone="ch-system-glibc locale">
622 <primary sortas="b-locale">locale</primary>
623 </indexterm>
624 </listitem>
625 </varlistentry>
626
627 <varlistentry id="localedef">
628 <term><command>localedef</command></term>
629 <listitem>
630 <para>Compiles locale specifications</para>
631 <indexterm zone="ch-system-glibc localedef">
632 <primary sortas="b-localedef">localedef</primary>
633 </indexterm>
634 </listitem>
635 </varlistentry>
636
637 <varlistentry id="makedb">
638 <term><command>makedb</command></term>
639 <listitem>
640 <para>Creates a simple database from textual input</para>
641 <indexterm zone="ch-system-glibc makedb">
642 <primary sortas="b-makedb">makedb</primary>
643 </indexterm>
644 </listitem>
645 </varlistentry>
646
647 <varlistentry id="mtrace">
648 <term><command>mtrace</command></term>
649 <listitem>
650 <para>Reads and interprets a memory trace file and displays a summary
651 in human-readable format</para>
652 <indexterm zone="ch-system-glibc mtrace">
653 <primary sortas="b-mtrace">mtrace</primary>
654 </indexterm>
655 </listitem>
656 </varlistentry>
657
658 <varlistentry id="nscd">
659 <term><command>nscd</command></term>
660 <listitem>
661 <para>A daemon that provides a cache for the most common name
662 service requests</para>
663 <indexterm zone="ch-system-glibc nscd">
664 <primary sortas="b-nscd">nscd</primary>
665 </indexterm>
666 </listitem>
667 </varlistentry>
668
669 <varlistentry id="pcprofiledump">
670 <term><command>pcprofiledump</command></term>
671 <listitem>
672 <para>Dump information generated by PC profiling</para>
673 <indexterm zone="ch-system-glibc pcprofiledump">
674 <primary sortas="b-pcprofiledump">pcprofiledump</primary>
675 </indexterm>
676 </listitem>
677 </varlistentry>
678
679 <varlistentry id="pldd">
680 <term><command>pldd</command></term>
681 <listitem>
682 <para>Lists dynamic shared objects used by running processes</para>
683 <indexterm zone="ch-system-glibc pldd">
684 <primary sortas="b-pldd">pldd</primary>
685 </indexterm>
686 </listitem>
687 </varlistentry>
688
689 <varlistentry id="sln">
690 <term><command>sln</command></term>
691 <listitem>
692 <para>A statically linked <command>ln</command> program</para>
693 <indexterm zone="ch-system-glibc sln">
694 <primary sortas="b-sln">sln</primary>
695 </indexterm>
696 </listitem>
697 </varlistentry>
698
699 <varlistentry id="sotruss">
700 <term><command>sotruss</command></term>
701 <listitem>
702 <para>Traces shared library procedure calls of a specified command</para>
703 <indexterm zone="ch-system-glibc sotruss">
704 <primary sortas="b-sotruss">sotruss</primary>
705 </indexterm>
706 </listitem>
707 </varlistentry>
708
709 <varlistentry id="sprof">
710 <term><command>sprof</command></term>
711 <listitem>
712 <para>Reads and displays shared object profiling data</para>
713 <indexterm zone="ch-system-glibc sprof">
714 <primary sortas="b-sprof">sprof</primary>
715 </indexterm>
716 </listitem>
717 </varlistentry>
718
719 <varlistentry id="tzselect">
720 <term><command>tzselect</command></term>
721 <listitem>
722 <para>Asks the user about the location of the system and reports
723 the corresponding time zone description</para>
724 <indexterm zone="ch-system-glibc tzselect">
725 <primary sortas="b-tzselect">tzselect</primary>
726 </indexterm>
727 </listitem>
728 </varlistentry>
729
730 <varlistentry id="xtrace">
731 <term><command>xtrace</command></term>
732 <listitem>
733 <para>Traces the execution of a program by printing the currently
734 executed function</para>
735 <indexterm zone="ch-system-glibc xtrace">
736 <primary sortas="b-xtrace">xtrace</primary>
737 </indexterm>
738 </listitem>
739 </varlistentry>
740
741 <varlistentry id="zdump">
742 <term><command>zdump</command></term>
743 <listitem>
744 <para>The time zone dumper</para>
745 <indexterm zone="ch-system-glibc zdump">
746 <primary sortas="b-zdump">zdump</primary>
747 </indexterm>
748 </listitem>
749 </varlistentry>
750
751 <varlistentry id="zic">
752 <term><command>zic</command></term>
753 <listitem>
754 <para>The time zone compiler</para>
755 <indexterm zone="ch-system-glibc zic">
756 <primary sortas="b-zic">zic</primary>
757 </indexterm>
758 </listitem>
759 </varlistentry>
760
761 <varlistentry id="ld.so">
762 <term><filename class="libraryfile">ld-*.so</filename></term>
763 <listitem>
764 <para>The helper program for shared library executables</para>
765 <indexterm zone="ch-system-glibc ld.so">
766 <primary sortas="c-ld.so">ld-&glibc-version;.so</primary>
767 </indexterm>
768 </listitem>
769 </varlistentry>
770
771 <varlistentry id="libBrokenLocale">
772 <term><filename class="libraryfile">libBrokenLocale</filename></term>
773 <listitem>
774 <para>Used internally by Glibc as a gross hack to get broken programs
775 (e.g., some Motif applications) running. See comments in
776 <filename>glibc-&glibc-version;/locale/broken_cur_max.c</filename>
777 for more information</para>
778 <indexterm zone="ch-system-glibc libBrokenLocale">
779 <primary sortas="c-libBrokenLocale">libBrokenLocale</primary>
780 </indexterm>
781 </listitem>
782 </varlistentry>
783
784 <varlistentry id="libanl">
785 <term><filename class="libraryfile">libanl</filename></term>
786 <listitem>
787 <para>An asynchronous name lookup library</para>
788 <indexterm zone="ch-system-glibc libanl">
789 <primary sortas="c-libanl">libanl</primary>
790 </indexterm>
791 </listitem>
792 </varlistentry>
793
794 <varlistentry id="libc">
795 <term><filename class="libraryfile">libc</filename></term>
796 <listitem>
797 <para>The main C library</para>
798 <indexterm zone="ch-system-glibc libc">
799 <primary sortas="c-libc">libc</primary>
800 </indexterm>
801 </listitem>
802 </varlistentry>
803
804 <varlistentry id="libc_malloc_debug">
805 <term><filename class="libraryfile">libc_malloc_debug</filename></term>
806 <listitem>
807 <para>Turns on memory allocation checking when preloaded</para>
808 <indexterm zone="ch-system-glibc libc_malloc_debug">
809 <primary sortas="c-libc_malloc_debug">libc_malloc_debug</primary>
810 </indexterm>
811 </listitem>
812 </varlistentry>
813
814 <varlistentry id="libcrypt">
815 <term><filename class="libraryfile">libcrypt</filename></term>
816 <listitem>
817 <para>The cryptography library</para>
818 <indexterm zone="ch-system-glibc libcrypt">
819 <primary sortas="c-libcrypt">libcrypt</primary>
820 </indexterm>
821 </listitem>
822 </varlistentry>
823
824 <varlistentry id="libdl">
825 <term><filename class="libraryfile">libdl</filename></term>
826 <listitem>
827 <para>Dummy library containing no functions. Previously was the
828 dynamic linking interface library, whose functions are now in
829 <filename class="libraryfile">libc</filename></para>
830 <indexterm zone="ch-system-glibc libdl">
831 <primary sortas="c-libdl">libdl</primary>
832 </indexterm>
833 </listitem>
834 </varlistentry>
835
836 <varlistentry id="libg">
837 <term><filename class="libraryfile">libg</filename></term>
838 <listitem>
839 <para>Dummy library containing no functions. Previously was a runtime
840 library for <command>g++</command></para>
841 <indexterm zone="ch-system-glibc libg">
842 <primary sortas="c-libg">libg</primary>
843 </indexterm>
844 </listitem>
845 </varlistentry>
846
847 <varlistentry id="libm">
848 <term><filename class="libraryfile">libm</filename></term>
849 <listitem>
850 <para>The mathematical library</para>
851 <indexterm zone="ch-system-glibc libm">
852 <primary sortas="c-libm">libm</primary>
853 </indexterm>
854 </listitem>
855 </varlistentry>
856
857 <varlistentry id="libmvec">
858 <term><filename class="libraryfile">libmvec</filename></term>
859 <listitem>
860 <para>The vector math library, linked in as needed
861 when <filename class='libraryfile'>libm</filename> is used</para>
862 <indexterm zone="ch-system-glibc libmvec">
863 <primary sortas="c-libmvec">libmvec</primary>
864 </indexterm>
865 </listitem>
866 </varlistentry>
867
868 <varlistentry id="libmcheck">
869 <term><filename class="libraryfile">libmcheck</filename></term>
870 <listitem>
871 <para>Turns on memory allocation checking when linked to</para>
872 <indexterm zone="ch-system-glibc libmcheck">
873 <primary sortas="c-libmcheck">libmcheck</primary>
874 </indexterm>
875 </listitem>
876 </varlistentry>
877
878 <varlistentry id="libmemusage">
879 <term><filename class="libraryfile">libmemusage</filename></term>
880 <listitem>
881 <para>Used by <command>memusage</command> to help collect
882 information about the memory usage of a program</para>
883 <indexterm zone="ch-system-glibc libmemusage">
884 <primary sortas="c-libmemusage">libmemusage</primary>
885 </indexterm>
886 </listitem>
887 </varlistentry>
888
889 <varlistentry id="libnsl">
890 <term><filename class="libraryfile">libnsl</filename></term>
891 <listitem>
892 <para>The network services library, now deprecated</para>
893 <indexterm zone="ch-system-glibc libnsl">
894 <primary sortas="c-libnsl">libnsl</primary>
895 </indexterm>
896 </listitem>
897 </varlistentry>
898
899 <varlistentry id="libnss">
900 <term><filename class="libraryfile">libnss_*</filename></term>
901 <listitem>
902 <para>The Name Service Switch modules, containing functions for
903 resolving host names, user names, group names, aliases, services,
904 protocols, etc. Loaded by
905 <filename class='libraryfile'>libc</filename> according to the
906 configuration in <filename>/etc/nsswitch.conf</filename></para>
907 <indexterm zone="ch-system-glibc libnss">
908 <primary sortas="c-libnss">libnss_*</primary>
909 </indexterm>
910 </listitem>
911 </varlistentry>
912
913 <varlistentry id="libpcprofile">
914 <term><filename class="libraryfile">libpcprofile</filename></term>
915 <listitem>
916 <para>Can be preloaded to PC profile an executable</para>
917 <indexterm zone="ch-system-glibc libpcprofile">
918 <primary sortas="c-libpcprofile">libpcprofile</primary>
919 </indexterm>
920 </listitem>
921 </varlistentry>
922
923 <varlistentry id="libpthread">
924 <term><filename class="libraryfile">libpthread</filename></term>
925 <listitem>
926 <para>Dummy library containing no functions. Previously contained
927 functions providing most of the interfaces specified
928 by the POSIX.1b Realtime Extension, now the functions are in
929 <filename class="libraryfile">libc</filename></para>
930 <indexterm zone="ch-system-glibc libpthread">
931 <primary sortas="c-libpthread">libpthread</primary>
932 </indexterm>
933 </listitem>
934 </varlistentry>
935
936 <varlistentry id="libresolv">
937 <term><filename class="libraryfile">libresolv</filename></term>
938 <listitem>
939 <para>Contains functions for creating, sending, and interpreting
940 packets to the Internet domain name servers</para>
941 <indexterm zone="ch-system-glibc libresolv">
942 <primary sortas="c-libresolv">libresolv</primary>
943 </indexterm>
944 </listitem>
945 </varlistentry>
946
947 <varlistentry id="librt">
948 <term><filename class="libraryfile">librt</filename></term>
949 <listitem>
950 <para>Contains functions providing most of the interfaces specified
951 by the POSIX.1b Realtime Extension</para>
952 <indexterm zone="ch-system-glibc librt">
953 <primary sortas="c-librt">librt</primary>
954 </indexterm>
955 </listitem>
956 </varlistentry>
957
958 <varlistentry id="libthread_db">
959 <term><filename class="libraryfile">libthread_db</filename></term>
960 <listitem>
961 <para>Contains functions useful for building debuggers for
962 multi-threaded programs</para>
963 <indexterm zone="ch-system-glibc libthread_db">
964 <primary sortas="c-libthread_db">libthread_db</primary>
965 </indexterm>
966 </listitem>
967 </varlistentry>
968
969 <varlistentry id="libutil">
970 <term><filename class="libraryfile">libutil</filename></term>
971 <listitem>
972 <para>Dummy library containing no functions. Previously contained
973 code for <quote>standard</quote> functions used in
974 many different Unix utilities. These functions are now in
975 <filename class="libraryfile">libc</filename></para>
976 <indexterm zone="ch-system-glibc libutil">
977 <primary sortas="c-libutil">libutil</primary>
978 </indexterm>
979 </listitem>
980 </varlistentry>
981
982 </variablelist>
983
984 </sect2>
985
986</sect1>
Note: See TracBrowser for help on using the repository browser.