source: chapter06/glibc.xml@ 5763f675

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 5763f675 was 49f4dd5, checked in by Alex Gronenwoud <alex@…>, 21 years ago

Correcting several merging oversights.

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

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