source: chapter08/glibc.xml@ d58da4b

xry111/clfs-ng
Last change on this file since d58da4b was d58da4b, checked in by Xi Ruoyao <xry111@…>, 12 months ago

Merge branch 'trunk' into xry111/clfs-ng

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