From a613960c4be169277fa1192f2aa1d4a6c107e796 Mon Sep 17 00:00:00 2001 From: David Bryant Date: Tue, 20 Dec 2022 09:26:41 -0600 Subject: [PATCH 1/3] Removed redundant verbiage. Rewrote a very clumsy sentence. To speak of a difference (implying subtraction) and a factor (multiplication) as equivalent is confusing at best. --- chapter08/aboutdebug.xml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) 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. From 0785a5e6ddee48b499d6a19e9e17ca0eeea8c393 Mon Sep 17 00:00:00 2001 From: David Bryant Date: Tue, 20 Dec 2022 09:48:03 -0600 Subject: [PATCH 2/3] Remove redundant verbiage; improve English idiom. --- chapter08/cleanup.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/chapter08/cleanup.xml b/chapter08/cleanup.xml index c55b7af2f..daa38f597 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 From 9c753b58f1db4267ee47a990b118782773dedd96 Mon Sep 17 00:00:00 2001 From: David Bryant Date: Tue, 20 Dec 2022 13:57:22 -0600 Subject: [PATCH 3/3] Improve English idiom and make additional changes, for clarity. Rephrased a clumsy sentence. Broke a run-on sentence in two. Used adverbs, and the possessive case, where necessary. --- chapter08/stripping.xml | 44 ++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/chapter08/stripping.xml b/chapter08/stripping.xml index d82b72ac1..eaabab5b7 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 @@ -111,8 +111,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.