aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06/glibc.xml
diff options
context:
space:
mode:
authorGerard Beekmans <gerard@linuxfromscratch.org>2005-02-19 22:16:42 +0000
committerGerard Beekmans <gerard@linuxfromscratch.org>2005-02-19 22:16:42 +0000
commit81fd230419b0cfd052b08fc1ed352bb7d49975df (patch)
tree24c98d2876e5b457dcb88d39e7cca4905f58691a /chapter06/glibc.xml
parent2f9131f8390243dbc350fe2eeb9e1d58f0264888 (diff)
Trunk is now identical to Testing
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@4648 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'chapter06/glibc.xml')
-rw-r--r--chapter06/glibc.xml587
1 files changed, 563 insertions, 24 deletions
diff --git a/chapter06/glibc.xml b/chapter06/glibc.xml
index c2bd6519c..8e7732795 100644
--- a/chapter06/glibc.xml
+++ b/chapter06/glibc.xml
@@ -3,13 +3,17 @@
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
-<sect1 id="ch-system-glibc" xreflabel="Glibc" role="wrap">
+<sect1 id="ch-system-glibc" role="wrap">
<title>Glibc-&glibc-version;</title>
<?dbhtml filename="glibc.html"?>
<indexterm zone="ch-system-glibc"><primary sortas="a-Glibc">Glibc</primary></indexterm>
<sect2 role="package"><title/>
+<para>The Glibc package contains the main C library. This library provides
+the basic routines for allocating memory, searching directories, opening and
+closing files, reading and writing files, string handling, pattern matching,
+arithmetic, and so on.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
@@ -17,56 +21,131 @@
<seglistitem><seg>12.3 SBU</seg><seg>784 MB</seg></seglistitem>
</segmentedlist>
+<segmentedlist>
+<segtitle>Glibc installation depends on</segtitle>
+<seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,
+Gawk, GCC, Gettext, Grep, Make, Perl, Sed, and Texinfo</seg></seglistitem>
+</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Installation of Glibc</title>
-<para>The linuxthreads tarball contains the man pages for the threading
-libraries installed by glibc. Unpack the tarball from within the glibc source
-directory:</para>
+<para>This package is known to have issues when its default
+optimization flags (including the <parameter>-march</parameter> and
+<parameter>-mcpu</parameter> options) are changed. If any environment
+variables that override default optimizations have been defined, such
+as <envar>CFLAGS</envar> and <envar>CXXFLAGS</envar>,
+unset them when building Glibc.</para>
+
+<para>The Glibc build system is self-contained and will install
+perfectly, even though the compiler specs file and linker are still
+pointing at <filename class="directory">/tools</filename>. The specs
+and linker cannot be adjusted before the Glibc install because the
+Glibc autoconf tests would give false results and defeat the goal
+of achieving a clean build.</para>
-<screen><userinput>tar xjvf ../glibc-linuxthreads-&glibc-version;.tar.bz2</userinput></screen>
+<para>The linuxthreads tarball contains the man pages for the
+threading libraries installed by glibc. Unpack the tarball from
+within the glibc source directory:</para>
-<para>Create a build directory:</para>
+<screen><userinput>tar xjvf /sources/glibc-linuxthreads-&glibc-version;.tar.bz2</userinput></screen>
+
+<para>The Glibc documentation recommends building Glibc outside of the source
+directory in a dedicated build directory:</para>
<screen><userinput>mkdir ../glibc-build
cd ../glibc-build</userinput></screen>
-<para>Now prepare Glibc for compilation:</para>
+<para>Prepare Glibc for compilation:</para>
<screen><userinput>../glibc-&glibc-version;/configure --prefix=/usr \
--disable-profile --enable-add-ons \
--enable-kernel=2.6.0 --without-cvs \
--libexecdir=/usr/lib/glibc</userinput></screen>
+<para>The meaning of the new configure option:</para>
+
+<variablelist>
+<varlistentry>
+<term><parameter>--libexecdir=/usr/lib/glibc</parameter></term>
+<listitem><para>This changes the location of the
+<command>pt_chown</command> program from its default of <filename
+class="directory">/usr/libexec</filename> to <filename
+class="directory">/usr/lib/glibc</filename>.</para></listitem>
+</varlistentry>
+</variablelist>
+
<para>Compile the package:</para>
<screen><userinput>make</userinput></screen>
+<important><para>In this section, the test suite for Glibc is
+considered critical. Do not skip it under any
+circumstance.</para></important>
+
<para>Test the results:</para>
<screen><userinput>make check</userinput></screen>
-<para>The Glibc test suite is highly dependent on certain functions of your host
-system. See testing for explanations.</para>
-
-<para>Fix an annoying little warning with:</para>
+<para>The Glibc test suite is highly dependent on certain functions of
+the host system, in particular the kernel. In general, the Glibc test
+suite is always expected to pass. However, in certain circumstances,
+some failures are unavoidable. This is a list of the most common
+issues:</para>
+
+<itemizedlist>
+<listitem><para>The <emphasis>math</emphasis> tests sometimes fail when running
+on systems where the CPU is not a relatively new genuine Intel or authentic AMD.
+Certain optimization settings are also known to be a factor here.</para></listitem>
+
+<listitem><para>The <emphasis>gettext</emphasis> test sometimes fails due to
+host system issues. The exact reasons are not yet clear.</para></listitem>
+
+<listitem><para>The <emphasis>atime</emphasis> test sometimes fails
+when the LFS partition is mounted with the
+<parameter>noatime</parameter> option.</para></listitem>
+
+<listitem><para>The <emphasis>shm</emphasis> test can fail when the
+host system is using the <systemitem
+class="filesystem">devfs</systemitem> file system but does not have
+the <systemitem class="filesystem">tmpfs</systemitem> file system
+mounted at <filename class="directory">/dev/shm</filename>. This
+occurs because of a lack of support for <systemitem
+class="filesystem">tmpfs</systemitem> in the
+kernel.</para></listitem>
+
+<listitem><para>When running on older and slower hardware, some tests
+can fail because of test timeouts being exceeded.</para></listitem>
+</itemizedlist>
+
+<para>Though it is a harmless message, the install stage of Glibc will
+complain about the absence of <filename>/etc/ld.so.conf</filename>.
+Prevent this warning with:</para>
<screen><userinput>touch /etc/ld.so.conf</userinput></screen>
-<para>And install the package:</para>
+<para>Install the package:</para>
<screen><userinput>make install</userinput></screen>
-<para>To install the Glibc locales, use the following
-command:</para>
+<para>The locales that can make the system respond in a different
+language were not installed by the above command. Install this
+with:</para>
<screen><userinput>make localedata/install-locales</userinput></screen>
-<para>An alternative to running the previous command is to install only those
-locales which you need or want. The following instructions, instead of the
-install-locales target above, will install the minimum set of locales necessary
+<para>To save time, an alternative to running the
+previous command (which generates and installs every locale Glibc is
+aware of) is to install only those locales that are wanted and needed.
+This can be achieved by using the <command>localedef</command>
+command. Information on this command is located in the
+<filename>INSTALL</filename> file in the Glibc source. However, there
+are a number of locales that are essential in order for the tests of
+future packages to pass, in particular, the
+<emphasis>libstdc++</emphasis> tests from GCC. The following
+instructions, instead of the <parameter>install-locales</parameter>
+target used above, will install the minimum set of locales necessary
for the tests to run successfully:</para>
<screen><userinput>mkdir -p /usr/lib/locale
@@ -82,18 +161,40 @@ localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
localedef -i it_IT -f ISO-8859-1 it_IT
localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen>
-<para>Build the linuxthreads man pages:</para>
+<para>Some locales installed by the <command>make
+localedata/install-locales</command> command above are not properly
+supported by some applications that are in the LFS and BLFS books.
+Because of the various problems that arise due to application
+programmers making assumptions that break in such locales, LFS should
+not be used in locales that utilize multibyte character sets
+(including UTF-8) or right-to-left writing order. Numerous unofficial
+and unstable patches are required to fix these problems, and it has
+been decided by the LFS developers not to support such complex locales. This applies to the
+ja_JP and fa_IR locales as well&mdash;they have been installed only for
+GCC and Gettext tests to pass, and the <command>watch</command> program
+(part of the Procps package) does not work properly in them. Various
+attempts to circumvent these restrictions are documented in
+internationalization-related hints.</para>
+
+<para>Build the linuxthreads man pages, which are a great reference
+on the threading API (applicable to NPTL as well):</para>
<screen><userinput>make -C ../glibc-&glibc-version;/linuxthreads/man</userinput></screen>
-<para>And install these pages:</para>
+<para>Install these pages:</para>
<screen><userinput>make -C ../glibc-&glibc-version;/linuxthreads/man install</userinput></screen>
</sect2>
-
<sect2 id="conf-glibc" role="configuration"><title>Configuring Glibc</title>
+<indexterm zone="conf-glibc"><primary sortas="e-/etc/nsswitch.conf">/etc/nsswitch.conf</primary></indexterm>
+<indexterm zone="conf-glibc"><primary sortas="e-/etc/localtime">/etc/localtime</primary></indexterm>
+
+<para>The <filename>/etc/nsswitch.conf</filename> file needs to be
+created because, although Glibc provides defaults when this file is
+missing or corrupt, the Glibc defaults do not work well with
+networking. The time zone also needs to be set up.</para>
<para>Create a new file <filename>/etc/nsswitch.conf</filename> by running the
following:</para>
@@ -116,20 +217,56 @@ rpc: files
# End /etc/nsswitch.conf</literal>
EOF</userinput></screen>
-<para>To find out what time zone you're in, run the following script:</para>
+<para>To determine the local time zone, run the following script:</para>
<screen><userinput>tzselect</userinput></screen>
-<para>Then create the <filename>/etc/localtime</filename> file by running:</para>
+<para>After answering a few questions about the location, the script
+will output the name of the time zone (e.g.,
+<emphasis>EST5EDT</emphasis> or <emphasis>Canada/Eastern</emphasis>).
+Then create the <filename>/etc/localtime</filename> file by
+running:</para>
<screen><userinput>cp --remove-destination /usr/share/zoneinfo/<replaceable>[xxx]</replaceable> \
/etc/localtime</userinput></screen>
+<para>Replace <replaceable>[xxx]</replaceable> with the name of the time zone that the
+<command>tzselect</command> provided (e.g., Canada/Eastern).</para>
+
+<para>The meaning of the cp option:</para>
+
+<variablelist>
+<varlistentry>
+<term><parameter>--remove-destination</parameter></term>
+<listitem><para>This is needed to force removal of the already
+existing symbolic link. The reason for copying the file instead of
+using a symlink is to cover the situation where <filename
+class="directory">/usr</filename> is on a separate partition. This
+could be important when booted into single user
+mode.</para></listitem>
+</varlistentry>
+</variablelist>
+
</sect2>
<sect2 id="conf-ld" role="configuration">
<title>Configuring Dynamic Loader</title>
+<indexterm zone="conf-ld"><primary sortas="e-/etc/ld.so.conf">/etc/ld.so.conf</primary></indexterm>
+
+<para>By default, the dynamic loader (<filename
+class="libraryfile">/lib/ld-linux.so.2</filename>) searches through
+<filename class="directory">/lib</filename> and <filename
+class="directory">/usr/lib</filename> for dynamic libraries that are
+needed by programs as they are run. However, if there are libraries in
+directories other than <filename class="directory">/lib</filename> and
+<filename class="directory">/usr/lib</filename>, these need to be
+added to the <filename>/etc/ld.so.conf</filename> file in order
+for the dynamic loader to find them. Two directories that are commonly
+known to contain additional libraries are <filename
+class="directory">/usr/local/lib</filename> and <filename
+class="directory">/opt/lib</filename>, so add those directories to the
+dynamic loader's search path.</para>
<para>Create a new file <filename>/etc/ld.so.conf</filename> by running the
following:</para>
@@ -145,11 +282,413 @@ EOF</userinput></screen>
</sect2>
-
<sect2 id="contents-glibc" role="content"><title>Contents of Glibc</title>
-<para>See testing</para>
+<segmentedlist>
+<segtitle>Installed programs</segtitle>
+<segtitle>Installed libraries</segtitle>
+<seglistitem><seg>catchsegv, gencat, getconf,
+getent, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale,
+localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen,
+rpcinfo, sln, sprof, tzselect, xtrace, zdump, and zic</seg>
+<seg>ld.so, libBrokenLocale.[a,so],
+libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so],
+libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a,
+libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so,
+libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so,
+libpthread.[a,so], libresolv.[a,so], librpcsvc.a, librt.[a,so],
+libthread_db.so, and libutil.[a,so]</seg></seglistitem>
+</segmentedlist>
+
+<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
+<?dbfo list-presentation="list"?>
+
+<varlistentry id="catchsegv">
+<term><command>catchsegv</command></term>
+<listitem>
+<para>Can be used to create a stack trace when a program
+terminates with a segmentation fault</para>
+<indexterm zone="ch-system-glibc catchsegv"><primary sortas="b-catchsegv">catchsegv</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="gencat">
+<term><command>gencat</command></term>
+<listitem>
+<para>Generates message catalogues</para>
+<indexterm zone="ch-system-glibc gencat"><primary sortas="b-gencat">gencat</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="getconf">
+<term><command>getconf</command></term>
+<listitem>
+<para>Displays the system configuration values for file system specific variables</para>
+<indexterm zone="ch-system-glibc getconf"><primary sortas="b-getconf">getconf</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="getent">
+<term><command>getent</command></term>
+<listitem>
+<para>Gets entries from an administrative database</para>
+<indexterm zone="ch-system-glibc getent"><primary sortas="b-getent">getent</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="iconv">
+<term><command>iconv</command></term>
+<listitem>
+<para>Performs character set conversion</para>
+<indexterm zone="ch-system-glibc iconv"><primary sortas="b-iconv">iconv</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="iconvconfig">
+<term><command>iconvconfig</command></term>
+<listitem>
+<para>Creates fastloading <command>iconv</command> module configuration files</para>
+<indexterm zone="ch-system-glibc iconvconfig"><primary sortas="b-iconvconfig">iconvconfig</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="ldconfig">
+<term><command>ldconfig</command></term>
+<listitem>
+<para>Configures the dynamic linker runtime bindings</para>
+<indexterm zone="ch-system-glibc ldconfig"><primary sortas="b-ldconfig">ldconfig</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="ldd">
+<term><command>ldd</command></term>
+<listitem>
+<para>Reports which shared libraries are required
+by each given program or shared library</para>
+<indexterm zone="ch-system-glibc ldd"><primary sortas="b-ldd">ldd</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="lddlibc4">
+<term><command>lddlibc4</command></term>
+<listitem>
+<para>Assists <command>ldd</command> with object files</para>
+<indexterm zone="ch-system-glibc lddlibc4"><primary sortas="b-lddlibc4">lddlibc4</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="locale">
+<term><command>locale</command></term>
+<listitem>
+<para>Tells the compiler to enable or disable the use of POSIX locales
+for built-in operations</para>
+<indexterm zone="ch-system-glibc locale"><primary sortas="b-locale">locale</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="localedef">
+<term><command>localedef</command></term>
+<listitem>
+<para>Compiles locale specifications</para>
+<indexterm zone="ch-system-glibc localedef"><primary sortas="b-localedef">localedef</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="mtrace">
+<term><command>mtrace</command></term>
+<listitem>
+<para>Reads and interprets a memory trace file and
+ouputs a summary in human-readable format</para>
+<indexterm zone="ch-system-glibc mtrace"><primary sortas="b-mtrace">mtrace</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="nscd">
+<term><command>nscd</command></term>
+<listitem>
+<para>A daemon that provides a cache for the most common name
+service requests</para>
+<indexterm zone="ch-system-glibc nscd"><primary sortas="b-nscd">nscd</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="nscd_nischeck">
+<term><command>nscd_nischeck</command></term>
+<listitem>
+<para>Checks whether or not secure mode is necessary for NIS+ lookup</para>
+<indexterm zone="ch-system-glibc nscd_nischeck"><primary sortas="b-nscd_nischeck">nscd_nischeck</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="pcprofiledump">
+<term><command>pcprofiledump</command></term>
+<listitem>
+<para>Dumps information generated by PC profiling</para>
+<indexterm zone="ch-system-glibc pcprofiledump"><primary sortas="b-pcprofiledump">pcprofiledump</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="pt_chown">
+<term><command>pt_chown</command></term>
+<listitem>
+<para>A helper program for <command>grantpt</command> to set
+the owner, group and access permissions of a slave pseudo terminal</para>
+<indexterm zone="ch-system-glibc pt_chown"><primary sortas="b-pt_chown">pt_chown</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="rpcgen">
+<term><command>rpcgen</command></term>
+<listitem>
+<para>Generates C code to implement the Remote Procecure Call (RPC) protocol</para>
+<indexterm zone="ch-system-glibc rpcgen"><primary sortas="b-rpcgen">rpcgen</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="rpcinfo">
+<term><command>rpcinfo</command></term>
+<listitem>
+<para>Makes an RPC call to an RPC server</para>
+<indexterm zone="ch-system-glibc rpcinfo"><primary sortas="b-rpcinfo">rpcinfo</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="sln">
+<term><command>sln</command></term>
+<listitem>
+<para>A statically linked <command>ln</command> program</para>
+<indexterm zone="ch-system-glibc sln"><primary sortas="b-sln">sln</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="sprof">
+<term><command>sprof</command></term>
+<listitem>
+<para>Reads and displays shared object profiling data</para>
+<indexterm zone="ch-system-glibc sprof"><primary sortas="b-sprof">sprof</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="tzselect">
+<term><command>tzselect</command></term>
+<listitem>
+<para>Asks the user about the location of the
+system and reports the corresponding time zone description</para>
+<indexterm zone="ch-system-glibc tzselect"><primary sortas="b-tzselect">tzselect</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="xtrace">
+<term><command>xtrace</command></term>
+<listitem>
+<para>Traces the execution of a program by
+printing the currently executed function</para>
+<indexterm zone="ch-system-glibc xtrace"><primary sortas="b-xtrace">xtrace</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="zdump">
+<term><command>zdump</command></term>
+<listitem>
+<para>The time zone dumper</para>
+<indexterm zone="ch-system-glibc zdump"><primary sortas="b-zdump">zdump</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="zic">
+<term><command>zic</command></term>
+<listitem>
+<para>The time zone compiler</para>
+<indexterm zone="ch-system-glibc zic"><primary sortas="b-zic">zic</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="ld.so">
+<term><filename class="libraryfile">ld.so</filename></term>
+<listitem>
+<para>The helper program for shared library executables</para>
+<indexterm zone="ch-system-glibc ld.so"><primary sortas="c-ld.so">ld.so</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libBrokenLocale">
+<term><filename class="libraryfile">libBrokenLocale</filename></term>
+<listitem>
+<para>Used by programs, such as Mozilla, to solve broken locales</para>
+<indexterm zone="ch-system-glibc libBrokenLocale"><primary sortas="c-libBrokenLocale">libBrokenLocale</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libSegFault">
+<term><filename class="libraryfile">libSegFault</filename></term>
+<listitem>
+<para>The segmentation fault signal handler</para>
+<indexterm zone="ch-system-glibc libSegFault"><primary sortas="c-libSegFault">libSegFault</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libanl">
+<term><filename class="libraryfile">libanl</filename></term>
+<listitem>
+<para>An asynchronous name lookup library</para>
+<indexterm zone="ch-system-glibc libanl"><primary sortas="c-libanl">libanl</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libbsd-compat">
+<term><filename class="libraryfile">libbsd-compat</filename></term>
+<listitem>
+<para>Provides the portability needed
+in order to run certain Berkey Software Distribution (BSD) programs under Linux</para>
+<indexterm zone="ch-system-glibc libbsd-compat"><primary sortas="c-libbsd-compat">libbsd-compat</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libc">
+<term><filename class="libraryfile">libc</filename></term>
+<listitem>
+<para>The main C library</para>
+<indexterm zone="ch-system-glibc libc"><primary sortas="c-libc">libc</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libcrypt">
+<term><filename class="libraryfile">libcrypt</filename></term>
+<listitem>
+<para>The cryptography library</para>
+<indexterm zone="ch-system-glibc libcrypt"><primary sortas="c-libcrypt">libcrypt</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libdl">
+<term><filename class="libraryfile">libdl</filename></term>
+<listitem>
+<para>The dynamic linking interface library</para>
+<indexterm zone="ch-system-glibc libdl"><primary sortas="c-libdl">libdl</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libg">
+<term><filename class="libraryfile">libg</filename></term>
+<listitem>
+<para>A runtime library for <command>g++</command></para>
+<indexterm zone="ch-system-glibc libg"><primary sortas="c-libg">libg</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libieee">
+<term><filename class="libraryfile">libieee</filename></term>
+<listitem>
+<para>The Institute of Electrical and Electronic Engineers (IEEE) floating point library</para>
+<indexterm zone="ch-system-glibc libieee"><primary sortas="c-libieee">libieee</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libm">
+<term><filename class="libraryfile">libm</filename></term>
+<listitem>
+<para>The mathematical library</para>
+<indexterm zone="ch-system-glibc libm"><primary sortas="c-libm">libm</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libmcheck">
+<term><filename class="libraryfile">libmcheck</filename></term>
+<listitem>
+<para>Contains code run at boot</para>
+<indexterm zone="ch-system-glibc libmcheck"><primary sortas="c-libmcheck">libmcheck</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libmemusage">
+<term><filename class="libraryfile">libmemusage</filename></term>
+<listitem>
+<para>Used by <command>memusage</command> to help collect
+information about the memory usage of a program</para>
+<indexterm zone="ch-system-glibc libmemusage"><primary sortas="c-libmemusage">libmemusage</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libnsl">
+<term><filename class="libraryfile">libnsl</filename></term>
+<listitem>
+<para>The network services library</para>
+<indexterm zone="ch-system-glibc libnsl"><primary sortas="c-libnsl">libnsl</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libnss">
+<term><filename class="libraryfile">libnss</filename></term>
+<listitem>
+<para>The Name Service Switch libraries,
+containing functions for resolving host names, user names, group names,
+aliases, services, protocols, etc</para>
+<indexterm zone="ch-system-glibc libnss"><primary sortas="c-libnss">libnss</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libpcprofile">
+<term><filename class="libraryfile">libpcprofile</filename></term>
+<listitem>
+<para>Contains profiling functions used
+to track the amount of CPU time spent in specific source code lines</para>
+<indexterm zone="ch-system-glibc libpcprofile"><primary sortas="c-libpcprofile">libpcprofile</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libpthread">
+<term><filename class="libraryfile">libpthread</filename></term>
+<listitem>
+<para>The POSIX threads library</para>
+<indexterm zone="ch-system-glibc libpthread"><primary sortas="c-libpthread">libpthread</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libresolv">
+<term><filename class="libraryfile">libresolv</filename></term>
+<listitem>
+<para>Contains functions for creating,
+sending, and interpreting packets to the Internet domain name servers</para>
+<indexterm zone="ch-system-glibc libresolv"><primary sortas="c-libresolv">libresolv</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="librpcsvc">
+<term><filename class="libraryfile">librpcsvc</filename></term>
+<listitem>
+<para>Contains functions providing miscellaneous RPC services</para>
+<indexterm zone="ch-system-glibc librpcsvc"><primary sortas="c-librpcsvc">librpcsvc</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="librt">
+<term><filename class="libraryfile">librt</filename></term>
+<listitem>
+<para>Contains functions providing most of the
+interfaces specified by the POSIX.1b Realtime Extension</para>
+<indexterm zone="ch-system-glibc librt"><primary sortas="c-librt">librt</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libthread_db">
+<term><filename class="libraryfile">libthread_db</filename></term>
+<listitem>
+<para>Contains functions useful for
+building debuggers for multi-threaded programs</para>
+<indexterm zone="ch-system-glibc libthread_db"><primary sortas="c-libthread_db">libthread_db</primary></indexterm>
+</listitem>
+</varlistentry>
+
+<varlistentry id="libutil">
+<term><filename class="libraryfile">libutil</filename></term>
+<listitem>
+<para>Contains code for <quote>standard</quote> functions used in many different Unix utilities</para>
+<indexterm zone="ch-system-glibc libutil"><primary sortas="c-libutil">libutil</primary></indexterm>
+</listitem>
+</varlistentry>
+</variablelist>
</sect2>
</sect1>
+