glibc-exp.xml 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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 straight
  13. IDs.</para>
  14. <para>The patch also contains a few bug fixes and security fixes. In
  15. particular it contains the "errlist", "dns resolver", "xdr_array", "calloc",
  16. "thread exit", "udivdi3", "math test", "restrict_arr" and "divbyzero" fixes
  17. which are documented at
  18. <ulink url="http://www.zipworld.com.au/~gschafer/lfs-tweaks.html"/>.</para>
  19. <para><userinput>touch /etc/ld.so.conf:</userinput> One of the final steps
  20. of the Glibc installation is running ldconfig to update the dynamic loader
  21. cache. If this file doesn't exist, the installation will abort with an error
  22. that it can't read the file, so we simply create an empty file (the empty
  23. file will have Glibc default to using /lib and /usr/lib which is fine).</para>
  24. <para><userinput>--disable-profile:</userinput> This disables the building
  25. of libraries with profiling information. This command may be omitted if
  26. you plan to do profiling.</para>
  27. <para><userinput>--enable-add-ons:</userinput> This enables the add-on that
  28. we install with Glibc, linuxthreads</para>
  29. <para><userinput>--libexecdir=/usr/bin:</userinput> This will cause the
  30. pt_chown program to be installed in the /usr/bin directory.</para>
  31. <para><userinput>echo "cross-compiling = no" &gt; configparms:</userinput>
  32. We do this because we are only building for our own system. Cross-compiling
  33. is used, for instance, to build a package for an Apple Power PC on an
  34. Intel system. The reason Glibc thinks we're cross-compiling is that it
  35. can't compile a test program to determine this, so it automatically defaults
  36. to a cross-compiler. Compiling the test program fails because Glibc hasn't
  37. been installed yet.</para>
  38. <para><userinput>exec /bin/bash:</userinput>This command will
  39. start a new bash shell which will replace the current shell. This is
  40. done to get rid of the "I have no name!" message in the command
  41. prompt, which was caused by bash's inability to resolve a user ID to
  42. a user name (which in turn was caused by the absence of Glibc).</para>
  43. </sect2>