source: chapter08/glibc.xml@ 10a450c

xry111/update-glibc
Last change on this file since 10a450c was 10a450c, checked in by Xi Ruoyao <xry111@…>, 5 months ago

glibc: Slight reword in upgrading instruction

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