glibc-exp.xml 2.8 KB

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