diff --git a/chapter08/aboutdebug.xml b/chapter08/aboutdebug.xml
index d646b797e..e9b90d64b 100644
--- a/chapter08/aboutdebug.xml
+++ b/chapter08/aboutdebug.xml
@@ -17,8 +17,8 @@
the debugger can provide not only memory addresses, but also
the names of the routines and variables.
- However, the inclusion of these debugging symbols enlarges a
- program or library significantly. The following is an example of the
+ The inclusion of these debugging symbols enlarges a
+ program or library significantly. Here are two examples of the
amount of space these symbols occupy:
@@ -28,7 +28,7 @@
A bash binary without debugging symbols:
- 480 KB
+ 480 KB (60% smaller)
Glibc and GCC files (/lib
@@ -36,15 +36,14 @@
symbols: 87 MB
- Glibc and GCC files without debugging symbols: 16 MB
+ Glibc and GCC files without debugging symbols: 16 MB (82% smaller)
- Sizes may vary depending on which compiler and C library were used,
- but when comparing programs with and without debugging symbols, the
- difference will usually be a factor between two and five.
-
- Because most users will never use a debugger on their system software,
+ Sizes will vary depending on which compiler and C library were used,
+ but a program that has been stripped of debugging symbols is usually some
+ 50% to 80% smaller than its unstripped counterpart.
+ Because most users will never use a debugger on their system software,
a lot of disk space can be regained by removing these symbols. The next
section shows how to strip all debugging symbols from the programs and
libraries.
diff --git a/chapter08/cleanup.xml b/chapter08/cleanup.xml
index c5db3440d..fc3b55aef 100644
--- a/chapter08/cleanup.xml
+++ b/chapter08/cleanup.xml
@@ -10,16 +10,16 @@
Cleaning Up
- Finally, clean up some extra files left around from running tests:
+ Finally, clean up some extra files left over from running tests:
rm -rf /tmp/*
- There are also several files installed in the /usr/lib and /usr/libexec
+ There are also several files in the /usr/lib and /usr/libexec
directories with a file name extension of .la. These are "libtool archive"
- files. As already said, on a modern Linux system the libtool .la files are
+ files. On a modern Linux system the libtool .la files are
only useful for libltdl. No libraries in LFS are expected to be loaded
- by libltdl, and it's known that some .la files can cause BLFS packages
- fail to build. Remove those files now:
+ by libltdl, and it's known that some .la files can break BLFS package
+ builds. Remove those files now:
find /usr/lib /usr/libexec -name \*.la -delete
find /usr/lib32 -name \*.la -delete
diff --git a/chapter08/stripping.xml b/chapter08/stripping.xml
index ecd0ee671..bceb94a37 100644
--- a/chapter08/stripping.xml
+++ b/chapter08/stripping.xml
@@ -12,39 +12,39 @@
This section is optional. If the intended user is not a
programmer and does not plan to do
- any debugging on the system software, the system size can be decreased
- by about 2 GB by removing the debugging symbols and unneeded symbol table
- entries from binaries and libraries. This causes no inconvenience other
- than not being able to debug the software fully anymore.
+ any debugging of the system software, the system's size can be decreased
+ by some 2 GB by removing the debugging symbols, and some unnecessary symbol table
+ entries, from binaries and libraries. This causes no real inconvenience for
+ a typical Linux user.
Most people who use the commands mentioned below do not
- experience any difficulties. However, it is easy to make a typo and
- render the new system unusable, so before running the
+ experience any difficulties. However, it is easy to make a mistake and
+ render the new system unusable. So before running the
strip commands, it is a good idea to make a
backup of the LFS system in its current state.
- A strip command with
+ A strip command with the
--strip-unneeded option removes all debug symbols
- from a binary or library. And, it removes all symbol table entries not
+ from a binary or library. It also removes all symbol table entries not
needed by the linker (for static libraries) or dynamic linker (for
- dynamic-linked binaries and shared libraries).
+ dynamically linked binaries and shared libraries).
- The debugging symbols for selected libraries are placed
- in separate files. This debugging information is needed if running
- regression tests that use The debugging symbols from selected libraries are preserved
+ in separate files. That debugging information is needed to run
+ regression tests with valgrind or gdb later in BLFS.
+ url='&blfs-book;/general/gdb.html'>gdb later, in BLFS.
Note that strip will overwrite the binary or library
file it is processing. This can crash the processes using code or data from
- the file. If the process running strip itself is
- affected, the binary or library being stripped can be destroyed and can
- make the system completely unusable. To avoid it, we'll copy some libraries
+ the file. If the process running strip is
+ affected, the binary or library being stripped can be destroyed; this can
+ make the system completely unusable. To avoid this problem we copy some libraries
and binaries into /tmp, strip them
- there, and install them back with the install command.
- Read the related entry in for the
- rationale to use the install command here.
+ there, then reinstall them with the install command.
+ (The related entry in gives the
+ rationale for using the install command here.)
The ELF loader's name is ld-linux-x86-64.so.2 on 64-bit systems
and ld-linux.so.2 on 32-bit systems. The construct below selects the
@@ -160,8 +160,8 @@ done
unset BIN LIB save_usrlib online_usrbin online_usrlib
- A large number of files will be reported as having their file
- format not recognized. These warnings can be safely ignored. They
- indicate that those files are scripts instead of binaries.
+ A large number of files will be flagged as errors because their file
+ format is not recognized. These warnings can be safely ignored. They
+ indicate that those files are scripts, not binaries.