From fcc027677da55c41dcaea045f5b9ff8b088e6495 Mon Sep 17 00:00:00 2001 From: Bruce Dubbs Date: Sun, 7 Jun 2020 20:16:00 +0000 Subject: Initial commit of alternative cross LFS git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11897 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689 --- chapter08/strippingagain.xml | 81 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 chapter08/strippingagain.xml (limited to 'chapter08/strippingagain.xml') diff --git a/chapter08/strippingagain.xml b/chapter08/strippingagain.xml new file mode 100644 index 000000000..fb2a1b55f --- /dev/null +++ b/chapter08/strippingagain.xml @@ -0,0 +1,81 @@ + + + %general-entities; +]> + + + + + Stripping Again + + 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 90 MB by removing the debugging symbols from binaries and + libraries. This causes no inconvenience other than not being able to + debug the software fully anymore. + + 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 + strip commands, it is a good idea to make a + backup of the LFS system in its current state. + + First place the debugging symbols for selected libraries + in separate files. This debugging information is needed if running + regression tests that use valgrind or gdb later in BLFS. + + + + + +save_lib="ld-&glibc-version;.so libc-&glibc-version;.so libpthread-&glibc-version;.so libthread_db-&libthread_db-version;.so" + +cd /lib + +for LIB in $save_lib; do + objcopy --only-keep-debug $LIB $LIB.dbg + strip --strip-unneeded $LIB + objcopy --add-gnu-debuglink=$LIB.dbg $LIB +done + +save_usrlib="libquadmath.so.&libquadmath-version; libstdc++.so.&libstdcpp-version; + libitm.so.&libitm-version; libatomic.so.&libatomic-version;" + +cd /usr/lib + +for LIB in $save_usrlib; do + objcopy --only-keep-debug $LIB $LIB.dbg + strip --strip-unneeded $LIB + objcopy --add-gnu-debuglink=$LIB.dbg $LIB +done + +unset LIB save_lib save_usrlib + + + Now the binaries and libraries can be stripped: +find /usr/lib -type f -name \*.a \ + -exec strip --strip-debug {} ';' + +find /lib /usr/lib -type f -name \*.so* ! -name \*dbg \ + -exec strip --strip-unneeded {} ';' + +find /{bin,sbin} /usr/{bin,sbin,libexec} -type f \ + -exec strip --strip-all {} ';' + + A large number of files will be reported as having their file + format not recognized. These warnings can be safely ignored. These + warnings indicate that those files are scripts instead of + binaries. + + -- cgit v1.2.3-54-g00ecf