stripping.xml 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  3. "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  4. <!ENTITY % general-entities SYSTEM "../general.ent">
  5. %general-entities;
  6. ]>
  7. <sect1 id="ch-tools-stripping">
  8. <?dbhtml filename="stripping.html"?>
  9. <title>Stripping</title>
  10. <para>The steps in this section are optional, but if the LFS partition is
  11. rather small, it is beneficial to learn that unnecessary items can be removed.
  12. The executables and libraries built so far contain about 70 MB of unneeded
  13. debugging symbols. Remove those symbols with:</para>
  14. <screen arch="default"><userinput>strip --strip-debug /tools/lib/*
  15. /usr/bin/strip --strip-unneeded /tools/{,s}bin/*</userinput></screen>
  16. <screen arch="ml_32"><userinput>strip --strip-debug /tools/lib{,32}/*
  17. /usr/bin/strip --strip-unneeded /tools/{,s}bin/*</userinput></screen>
  18. <screen arch="ml_x32"><userinput>strip --strip-debug /tools/lib{,x32}/*
  19. /usr/bin/strip --strip-unneeded /tools/{,s}bin/*</userinput></screen>
  20. <screen arch="ml_all"><userinput>strip --strip-debug /tools/lib{,{,x}32}/*
  21. /usr/bin/strip --strip-unneeded /tools/{,s}bin/*</userinput></screen>
  22. <para>These commands will skip a number of files, reporting that it does not
  23. recognize their file format. Most of these are scripts instead of binaries.
  24. Also use the system strip command to include the strip binary in /tools.</para>
  25. <para>Take care <emphasis>not</emphasis> to use
  26. <parameter>--strip-unneeded</parameter> on the libraries. The static
  27. ones would be destroyed and the toolchain packages would need to be
  28. built all over again.</para>
  29. <para>To save more, remove the documentation:</para>
  30. <screen><userinput>rm -rf /tools/{,share}/{info,man,doc}</userinput></screen>
  31. <para>The libtool .la files are only useful when linking with static
  32. libraries. They are unneeded, and potentially harmful, when using dynamic
  33. shared libraries, specially when using also non-autotools build systems.
  34. Remove those files now:</para>
  35. <screen arch="default"><userinput>find /tools/{lib,libexec} -name \*.la -delete</userinput></screen>
  36. <screen arch="ml_32"><userinput>find /tools/{lib{,32},libexec} -name \*.la -delete</userinput></screen>
  37. <screen arch="ml_x32"><userinput>find /tools/{lib{,x32},libexec} -name \*.la -delete</userinput></screen>
  38. <screen arch="ml_all"><userinput>find /tools/{lib{,{,x}32},libexec} -name \*.la -delete</userinput></screen>
  39. <para>At this point, you should have at least 3 GB of free space in
  40. <envar>$LFS</envar> that can be used to build and install Glibc and Gcc in
  41. the next phase. If you can build and install Glibc, you can build and install
  42. the rest too.</para>
  43. </sect1>