source: chapter06/glibc-inst.xml@ e005067

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.0 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 v5_0 v5_1 v5_1_1 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 e005067 was 297d8ee0, checked in by Greg Schafer <greg@…>, 21 years ago

More toolchain textual adjustments.

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

  • Property mode set to 100644
File size: 4.6 KB
Line 
1<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
2
3<sect2>
4<title>Glibc installation</title>
5
6<para>The Glibc build system is very well self-contained and will install
7perfectly, even though our compiler specs file and linker are still pointing
8at <filename>/tools</filename>. We cannot adjust the specs and linker before
9the Glibc install, because the Glibc autoconf tests would then give bogus
10results and thus defeat our goal of achieving a clean build.</para>
11
12<note><para>The test suite for Glibc in this section is considered <emphasis>
13critical</emphasis>. Do not skip it under any circumstances.</para></note>
14
15<para>Before starting to build Glibc, remember to unpack the Glibc-linuxthreads
16again inside the <filename>glibc-&glibc-version;</filename> directory, and to
17unset any environment variables that override the default optimization
18flags.</para>
19
20<para>Then apply the same patch we used previously:</para>
21
22<para><screen><userinput>patch -Np1 -i ../glibc-2.3.2-sscanf-1.patch
23</userinput></screen></para>
24
25<para>The Glibc documentation recommends building Glibc outside of the source
26directory in a dedicated build directory:</para>
27
28<para><screen><userinput>mkdir ../glibc-build
29cd ../glibc-build</userinput></screen></para>
30
31<para>Now prepare Glibc for compilation:</para>
32
33<para><screen><userinput>../glibc-&glibc-version;/configure --prefix=/usr \
34&nbsp;&nbsp;&nbsp;&nbsp;--disable-profile --enable-add-ons \
35&nbsp;&nbsp;&nbsp;&nbsp;--libexecdir=/usr/bin --with-headers=/usr/include</userinput></screen></para>
36
37<para>The meaning of the configure options:</para>
38
39<itemizedlist>
40<listitem><para><userinput>--disable-profile</userinput>: This disables the
41building of the libraries with profiling information. Omit this option if you
42plan to do profiling.</para></listitem>
43
44<listitem><para><userinput>--enable-add-ons</userinput>: This enables any
45add-ons that we installed with Glibc, in our case Linuxthreads.</para></listitem>
46
47<listitem><para><userinput>--libexecdir=/usr/bin</userinput>: This will
48cause the <filename>pt_chown</filename> program to be installed in the
49<filename>/usr/bin</filename> directory.</para></listitem>
50
51<listitem><para><userinput>--with-headers=/usr/include</userinput>: This
52ensures that the kernel headers in <filename>/usr/include</filename> are used
53for this build. If you don't pass this switch then the headers from
54<filename>/tools/include</filename> are used which of course is not ideal
55(although they should be identical). Using the switch has the advantage
56that you will be informed immediately should you have forgotten to install the
57kernel headers into <filename>/usr/include</filename>.</para></listitem>
58</itemizedlist>
59
60<para>Compile the package:</para>
61
62<para><screen><userinput>make</userinput></screen></para>
63
64<para>Test the results:</para>
65
66<para><screen><userinput>make check</userinput></screen></para>
67
68<para>And install the package:</para>
69
70<para><screen><userinput>make install</userinput></screen></para>
71
72<para>The locales that can make your system respond in a different language
73weren't installed by the above command. Do it with this:</para>
74
75<para><screen><userinput>make localedata/install-locales</userinput></screen></para>
76
77<para>An alternative to running the previous command is to install only those
78locales which you need or want. This can be achieved using the
79<userinput>localedef</userinput> command. Information on this can be found in
80the <filename>INSTALL</filename> file in the
81<filename>glibc-&glibc-version;</filename> tree. However, there are a number
82of locales that are essential for the tests of future packages to pass
83correctly. The following instructions, in place of the install-locales
84command above, will install the minimum set of locales necessary for the
85tests to run successfully:</para>
86
87<para><screen><userinput>mkdir -p /usr/lib/locale
88localedef -i de_DE -f ISO-8859-1 de_DE
89localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
90localedef -i en_HK -f ISO-8859-1 en_HK
91localedef -i en_PH -f ISO-8859-1 en_PH
92localedef -i en_US -f ISO-8859-1 en_US
93localedef -i es_MX -f ISO-8859-1 es_MX
94localedef -i fr_FR -f ISO-8859-1 fr_FR
95localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
96localedef -i it_IT -f ISO-8859-1 it_IT
97localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen></para>
98
99<para>Finally, build the linuxthreads man pages:</para>
100
101<para><screen><userinput>make -C ../glibc-2.3.2/linuxthreads/man</userinput></screen></para>
102
103<para>And install these pages:</para>
104
105<para><screen><userinput>make -C ../glibc-2.3.2/linuxthreads/man install</userinput></screen></para>
106
107</sect2>
108
Note: See TracBrowser for help on using the repository browser.