source: chapter06/glibc-exp.xml@ 9901b31e

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 v4_1 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 9901b31e was f4e03a1, checked in by Gerard Beekmans <gerard@…>, 22 years ago

upgraded to glibc-2.3.1

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

  • Property mode set to 100644
File size: 2.9 KB
Line 
1<sect2>
2<title>Command explanations</title>
3
4<para><userinput>patch -Np1 -i ../glibc-&glibc-patch-version;.patch:</userinput>
5This patch converts all occurrences of <filename>$(PERL)</filename> to
6<filename>/usr/bin/perl</filename> in the
7<filename>malloc/Makefile</filename> file. This is done because Glibc can't
8autodetect the location of perl because perl has yet to be installed. The
9patch also replaces all occurrences of <emphasis>root</emphasis> with
10<emphasis>0</emphasis> in the <filename>login/Makefile</filename> file.
11This is done because Glibc itself isn't installed yet and therefore
12username to userid resolving isn't working yet, so a <userinput>chown root
13file</userinput> will fail, however it'll work fine if you use the numeric
14IDs.</para>
15
16<para>Lastly, the patch also fixes a problem that causes statically linked
17binaries to crash that were linked against Glibc-2.2 libraries. This patch
18is only needed temporarily because we have static programs in <filename
19class="directory">/static/bin</filename> that might be linked against an
20older Glibc version (the one from the host distribution). We will install
21Glibc again at the end of this chapter to remove this patch so you'll have
22a pristine Glibc as the developers intended it.</para>
23
24<para><userinput>touch /etc/ld.so.conf:</userinput> One of the final steps
25of the Glibc installation is running ldconfig to update the dynamic loader
26cache. If this file doesn't exist, the installation will abort with an error
27that it can't read the file, so we simply create an empty file (the empty
28file will have Glibc default to using /lib and /usr/lib which is fine).</para>
29
30<para><userinput>--disable-profile:</userinput> This disables the building
31of libraries with profiling information. This command may be omitted if
32you plan to do profiling.</para>
33
34<para><userinput>--enable-add-ons:</userinput> This enables the add-on that
35we install with Glibc, linuxthreads</para>
36
37<para><userinput>--libexecdir=/usr/bin:</userinput> This will cause the
38pt_chown program to be installed in the /usr/bin directory.</para>
39
40<para><userinput>echo "cross-compiling = no" &gt; configparms:</userinput>
41We do this because we are only building for our own system. Cross-compiling
42is used, for instance, to build a package for an Apple Power PC on an
43Intel system. The reason Glibc thinks we're cross-compiling is that it
44can't compile a test program to determine this, so it automatically defaults
45to a cross-compiler. Compiling the test program fails because Glibc hasn't
46been installed yet.</para>
47
48<para><userinput>exec /static/bin/bash --login:</userinput> This command will
49start a new bash shell which will replace the current shell. This is
50done to get rid of the "I have no name!" message in the command
51prompt, which was caused by bash's inability to resolve a user ID to
52a user name (which in turn was caused by the absence of Glibc).</para>
53
54</sect2>
55
Note: See TracBrowser for help on using the repository browser.