source: chapter06/glibc-exp.xml@ 46f5461

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 46f5461 was 671561b, checked in by Gerard Beekmans <gerard@…>, 23 years ago

Added the missing command explanations

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

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