source: chapter05/glibc.xml@ f4f0cb4

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 6.1 6.1.1 6.3 6.4 6.5 6.6 6.7 6.8 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since f4f0cb4 was f4f0cb4, checked in by Jim Gifford <jim@…>, 20 years ago

Upgraded binutils. Corrected typos in glibc

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@4256 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 8.1 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
3 <!ENTITY % general-entities SYSTEM "../general.ent">
4 %general-entities;
5]>
6<sect1 id="ch-tools-glibc" role="wrap">
7<title>Glibc-&glibc-version;</title>
8<?dbhtml filename="glibc.html"?>
9
10<indexterm zone="ch-tools-glibc">
11<primary sortas="a-Glibc">Glibc</primary>
12<secondary>tools</secondary></indexterm>
13
14<sect2 role="package"><title/>
15<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/glibc.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
16
17<segmentedlist>
18<segtitle>&buildtime;</segtitle>
19<segtitle>&diskspace;</segtitle>
20<seglistitem><seg>11.8 SBU</seg><seg>800 MB</seg></seglistitem>
21</segmentedlist>
22
23<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/glibc.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
24
25</sect2>
26
27<sect2 role="installation">
28<title>Installation of Glibc</title>
29
30<para>This package is known to behave badly when you change its default
31optimization flags (including the <parameter>-march</parameter> and
32<parameter>-mcpu</parameter> options). Therefore, if you have defined any
33environment variables that override default optimizations, such as CFLAGS and
34CXXFLAGS, we recommend un-setting them when building Glibc.</para>
35
36<para>Basically, compiling Glibc in any other way than the book suggests
37is putting the stability of your system at risk.</para>
38
39<para>The Glibc documentation recommends building Glibc outside of the source
40directory in a dedicated build directory:</para>
41
42<screen><userinput>mkdir ../glibc-build
43cd ../glibc-build</userinput></screen>
44
45<para>Next, prepare Glibc for compilation:</para>
46
47<screen><userinput>../glibc-&glibc-version;/configure --prefix=/tools \
48 --disable-profile --enable-add-ons \
49 --enable-kernel=2.6.0 --with-binutils=/tools/bin \
50 --without-gd --without-cvs --with-headers=/tools/include</userinput></screen>
51
52<para>The meaning of the configure options:</para>
53
54<variablelist>
55<varlistentry>
56<term><parameter>--disable-profile</parameter></term>
57<listitem><para>This builds the
58libraries without profiling information. Omit this option if you plan to do
59profiling on the temporary tools.</para></listitem>
60</varlistentry>
61
62<varlistentry>
63<term><parameter>--enable-add-ons</parameter></term>
64<listitem><para>This tells Glibc to use the add-on' that it can use like NPTL
65as its threading library.</para></listitem>
66</varlistentry>
67
68<varlistentry>
69<term><parameter>--enable-kernel=2.6.0</parameter></term>
70<listitem><para>This tells Glibc to compile the library for support of
71linux 2.6.x kernels.
72</para></listitem>
73</varlistentry>
74
75<varlistentry>
76<term><parameter>--with-binutils=/tools/bin</parameter></term>
77<listitem><para>Strictly speaking this switch is not required. But it does ensure
78nothing can go wrong with regard to what Binutils programs get used during the
79Glibc build.</para></listitem>
80</varlistentry>
81
82<varlistentry>
83<term><parameter>--without-gd</parameter></term>
84<listitem><para>This prevents the build of the <command>memusagestat</command>
85program, which strangely enough insists on linking against the host's libraries
86(libgd, libpng, libz, and so forth). </para></listitem>
87</varlistentry>
88
89<varlistentry>
90<term><parameter>--without-cvs</parameter></term>
91<listitem><para>This is meant to prevent
92the Makefiles from attempting automatic CVS checkouts when using a CVS
93snapshot. But it's not actually needed these days. We use it because it
94suppresses an annoying but harmless warning about a missing
95<command>autoconf</command> program.</para></listitem>
96</varlistentry>
97
98<varlistentry>
99<term><parameter>--with-headers=/tools/include</parameter></term>
100<listitem><para>This forces glibc to use the linux-libc-headers installed
101in /tools/include, rather than those on the host, which may be too old to
102support needed functionality.</para></listitem>
103</varlistentry>
104
105</variablelist>
106
107<para>During this stage you might see the following warning:</para>
108
109<blockquote><screen><computeroutput>configure: WARNING:
110*** These auxiliary programs are missing or incompatible versions: msgfmt
111*** some features will be disabled.
112*** Check the INSTALL file for required versions.</computeroutput></screen></blockquote>
113
114<para>The missing or incompatible <command>msgfmt</command> program is
115generally harmless, but it's believed it can sometimes cause problems when
116running the test suite.</para>
117
118<para>Compile the package:</para>
119
120<screen><userinput>make</userinput></screen>
121
122<para>Compilation is now complete. As mentioned earlier, running the test suites
123for the temporary tools installed in this chapter is not mandatory. If you want
124to run the Glibc test suite though, the following command will do so:</para>
125
126<screen><userinput>make check</userinput></screen>
127
128<para>For a discussion of test failures that are of particular
129importance, please see <xref linkend="ch-system-glibc"/>.</para>
130
131<para>In this chapter, some tests can be adversely affected by existing tools or
132environmental issues on the host system. In short, don't worry too much if you
133see Glibc test suite failures in this chapter. The Glibc in
134<xref linkend="chapter-building-system"/> is the one we'll ultimately end up
135using, so that is the one we would really like to see pass the tests (but even
136there some failures could still occur -- the <emphasis>math</emphasis> tests,
137for example).</para>
138
139<para>When experiencing a failure, make a note of it, then continue by reissuing
140the <command>make check</command>. The test suite should pick up where it left
141off and continue. You can circumvent this stop-start sequence by issuing a
142<command>make -k check</command>. If you do that though, be sure to log the
143output so that you can later peruse the log file and examine the total number of
144failures.</para>
145
146<para>Though it is a harmless message, the install stage of Glibc will at the
147end complain about the absence of <filename>/tools/etc/ld.so.conf</filename>.
148Prevent this confusing little warning with:</para>
149
150<screen><userinput>mkdir /tools/etc
151touch /tools/etc/ld.so.conf</userinput></screen>
152
153<para>Now install the package:</para>
154
155<screen><userinput>make install</userinput></screen>
156
157<para>Different countries and cultures have varying conventions for how to
158communicate. These conventions range from very simple ones, such as the format
159for representing dates and times, to very complex ones, such as the language
160spoken. The <quote>internationalization</quote> of GNU programs works by means
161of <emphasis>locales</emphasis>.</para>
162
163<note><para>If you are not running the test suites here in this chapter as per
164our recommendation, there is little point in installing the locales now. We'll
165be installing the locales in the next chapter.</para></note>
166
167<para>If you still want to install the Glibc locales anyway, the following
168command will do so:</para>
169
170<screen><userinput>make localedata/install-locales</userinput></screen>
171
172<para>An alternative to running the previous command is to install only those
173locales which you need or want. This can be achieved by using the
174<command>localedef</command> command. Information on this can be found in
175the <filename>INSTALL</filename> file in the Glibc source. However, there are
176a number of locales that are essential for the tests of future packages to
177pass, in particular, the <emphasis>libstdc++</emphasis> tests from GCC. The
178following instructions, instead of the install-locales target above, will
179install the minimum set of locales necessary for the tests to run
180successfully:</para>
181
182<screen><userinput>mkdir -p /tools/lib/locale
183localedef -i de_DE -f ISO-8859-1 de_DE
184localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
185localedef -i en_HK -f ISO-8859-1 en_HK
186localedef -i en_PH -f ISO-8859-1 en_PH
187localedef -i en_US -f ISO-8859-1 en_US
188localedef -i es_MX -f ISO-8859-1 es_MX
189localedef -i fa_IR -f UTF-8 fa_IR
190localedef -i fr_FR -f ISO-8859-1 fr_FR
191localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
192localedef -i it_IT -f ISO-8859-1 it_IT
193localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen>
194
195</sect2>
196
197<sect2 role="content"><title/>
198<para>The details on this package are found in <xref linkend="contents-glibc"/>.</para>
199</sect2>
200
201</sect1>
Note: See TracBrowser for help on using the repository browser.