glibc-exp.xml 2.9 KB

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