From 72416330e803df3e2b445d408fc9dec35d351a74 Mon Sep 17 00:00:00 2001 From: Aditya Date: Sat, 14 Jan 2023 21:29:19 +0530 Subject: [PATCH] Add 8.78 - Remove debug symbols --- scripts/chapter8/8.78-stripping.sh | 56 ++++++++++++++++++++++++++++++ scripts/main.sh | 12 +++++++ 2 files changed, 68 insertions(+) create mode 100644 scripts/chapter8/8.78-stripping.sh diff --git a/scripts/chapter8/8.78-stripping.sh b/scripts/chapter8/8.78-stripping.sh new file mode 100644 index 0000000..c789437 --- /dev/null +++ b/scripts/chapter8/8.78-stripping.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +save_usrlib="$(cd /usr/lib; ls ld-linux*[^g]) + libc.so.6 + libthread_db.so.1 + libquadmath.so.0.0.0 + libstdc++.so.6.0.30 + libitm.so.1.0.0 + libatomic.so.1.2.0" + +cd /usr/lib + +for LIB in $save_usrlib; do + objcopy --only-keep-debug $LIB $LIB.dbg + cp $LIB /tmp/$LIB + strip --strip-unneeded /tmp/$LIB + objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB + install -vm755 /tmp/$LIB /usr/lib + rm /tmp/$LIB +done + +online_usrbin="bash find strip" +online_usrlib="libbfd-2.39.so + libhistory.so.8.1 + libncursesw.so.6.3 + libm.so.6 + libreadline.so.8.1 + libz.so.1.2.12 + $(cd /usr/lib; find libnss*.so* -type f)" + +for BIN in $online_usrbin; do + cp /usr/bin/$BIN /tmp/$BIN + strip --strip-unneeded /tmp/$BIN + install -vm755 /tmp/$BIN /usr/bin + rm /tmp/$BIN +done + +for LIB in $online_usrlib; do + cp /usr/lib/$LIB /tmp/$LIB + strip --strip-unneeded /tmp/$LIB + install -vm755 /tmp/$LIB /usr/lib + rm /tmp/$LIB +done + +for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ + $(find /usr/lib -type f -name \*.a) \ + $(find /usr/{bin,sbin,libexec} -type f); do + case "$online_usrbin $online_usrlib $save_usrlib" in + *$(basename $i)* ) + ;; + * ) strip --strip-unneeded $i + ;; + esac +done + +unset BIN LIB save_usrlib online_usrbin online_usrlib diff --git a/scripts/main.sh b/scripts/main.sh index 7c3d50f..43922f2 100644 --- a/scripts/main.sh +++ b/scripts/main.sh @@ -1462,3 +1462,15 @@ then stop_script "chapter8/8.76-sysvinit.sh" fi +# Chapter 8.78 +# ============ +echo "Stripping debug symbols" +su -c "bash $SCRIPT/chapter8/8.78-stripping.sh" + +# Exit on error +check_exit_code +if [ $exit_status -ne 0 ] +then + stop_script "chapter8/8.78-stripping.sh" +fi +