source: chapter06/glibc-exp.xml@ 11d0032

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 v3_0 v3_1 v3_2 v3_3 v4_0 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 11d0032 was 166f15a, checked in by Gerard Beekmans <gerard@…>, 23 years ago

Fixed --libexecdir to /usr/bin

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

  • Property mode set to 100644
File size: 3.2 KB
Line 
1<sect2>
2<title>Command explanations</title>
3
4<para><userinput>mknod -m 0666 /dev/null c 1 3:</userinput> Glibc needs a
5null device to compile properly. All other devices will be created in the
6next section.</para>
7
8<para><userinput>touch /etc/ld.so.conf</userinput> One of the final steps
9of the Glibc installation is running ldconfig to update the dynamic loader
10cache. If this file doesn't exist, the installation will abort with an error
11that it can't read the file, so we simply create an empty file (the empty file
12will have Glibc default to using /lib and /usr/lib which is fine).</para>
13
14<para><userinput>sed 's%\$(PERL)%/usr/bin/perl%'
15malloc/Makefile &gt; tmp~:</userinput> This sed command
16searches through <filename>malloc/Makefile</filename> and
17converts all occurances of <filename>$(PERL)</filename> to
18<filename>/usr/bin/perl</filename>. The output is then written to the
19file <filename>tmp~</filename>. This is done because Glibc can't
20autodetect perl since it's not installed yet at the time when we install
21Glibc.</para>
22
23<para><userinput>mv tmp~ malloc/Makefile:</userinput> The file
24<filename>tmp~</filename> is now moved back to
25<filename>malloc/Makefile</filename>. We do this because
26when using sed, we can't write straight back to this file so we need to
27use a temporary file in between.</para>
28
29<para><userinput>sed 's/root/0' login/Makefile &gt;
30tmp~:</userinput> This sed command replaces all occurances of
31<filename>root</filename> in
32<filename>login/Makefile</filename> with 0. This is
33because as we don't have glibc on the LFS system yet, usernames can't
34be resolved to their user id's. Therefore, we replace the username
35root with the id 0. </para>
36
37<para><userinput>mv tmp~ login/Makefile:</userinput> As above, we are using
38a temporary file (<filename>tmp~</filename>) to store the
39edited Makefile and then copying it back over the original.</para>
40
41<para><userinput>--enable-add-ons:</userinput> This enables the add-on that
42we install with Glibc: linuxthreads</para>
43
44<para><userinput>--libexecdir=/usr/bin:</userinput> This will cause the
45pt_chown program to be installed in the /usr/bin directory.</para>
46
47<para><userinput>sed 's/cross-compiling = yes/cross-compiling = no/'
48config.make &gt; config.make~:</userinput> This time, we're replacing
49<filename>cross-compiling = yes</filename> with
50<filename>cross-compiling = no</filename>. We do this because we are
51only building for our own system. Cross-compiling is used, for
52instance, to build a package for an Apple Power PC on an Intel system.
53The reason Glibc thinks we're cross-compiling is that it can't compile a
54test program to determine this, so it automatically defaults to a
55cross-compiler. The reason for the failed program is because Glibc
56hasn't been installed yet.</para>
57
58<para><userinput>mv config.make~ config.make:</userinput> Again, we are moving
59the temporary file over the original.</para>
60
61<para><userinput>exec /bin/bash:</userinput>This command will
62start a new bash shell which will replace the current shell. This is
63done to get rid of the "I have no name!" message in the command
64prompt, which was caused by bash's inability to resolve a userid to
65a username (which in turn was caused by the missing Glibc
66installation).</para>
67
68</sect2>
69
Note: See TracBrowser for help on using the repository browser.