64 lines
2.1 KiB
Bash
Executable File
64 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# ============================================================================
|
|
# DarkForge Linux — Phase 3, Chapter 8: Strip Binaries and Clean Up
|
|
# ============================================================================
|
|
# Purpose: Remove debugging symbols from all installed binaries to reduce
|
|
# system size. This is the final cleanup step before boot testing.
|
|
# LFS §8.85-87 combined.
|
|
# Inputs: All installed binaries and libraries in /usr/
|
|
# Outputs: Stripped binaries, cleaned system
|
|
# Assumes: Running inside chroot, all Phase 3 packages built
|
|
# Ref: LFS 13.0 §8.85, §8.86, §8.87
|
|
# ============================================================================
|
|
|
|
set -euo pipefail
|
|
|
|
source /sources/toolchain-scripts/100-chroot-env.sh
|
|
|
|
echo "=== Stripping symbols from binaries and libraries ==="
|
|
|
|
# Strip unneeded symbols from all installed binaries and libraries
|
|
# This is safe to do (doesn't affect functionality) and saves disk space
|
|
strip --strip-all /usr/lib/* 2>/dev/null || true
|
|
strip --strip-all /usr/bin/* 2>/dev/null || true
|
|
strip --strip-all /usr/sbin/* 2>/dev/null || true
|
|
|
|
# Also strip libraries in standard lib directory
|
|
strip --strip-all /lib/* 2>/dev/null || true
|
|
strip --strip-all /sbin/* 2>/dev/null || true
|
|
|
|
echo ">>> Binaries stripped"
|
|
|
|
# Remove unnecessary files
|
|
echo ">>> Cleaning up unnecessary files..."
|
|
|
|
# Remove duplicate man pages if any
|
|
find /usr/share/man -type f -name "*.gz" | while read f; do
|
|
if [ -f "${f%.gz}" ]; then
|
|
rm -f "$f"
|
|
fi
|
|
done
|
|
|
|
# Remove empty directories
|
|
find /usr -type d -empty -delete 2>/dev/null || true
|
|
find /var -type d -empty -delete 2>/dev/null || true
|
|
|
|
echo ">>> Cleanup complete"
|
|
|
|
# Report final system size
|
|
echo ""
|
|
echo "=== System size report ==="
|
|
du -sh /usr 2>/dev/null || true
|
|
du -sh /lib 2>/dev/null || true
|
|
du -sh /bin 2>/dev/null || true
|
|
du -sh /sbin 2>/dev/null || true
|
|
du -sh /var 2>/dev/null || true
|
|
echo ""
|
|
echo "=== Stripping and cleanup complete ==="
|
|
echo ""
|
|
echo "System is ready for boot testing. Next steps:"
|
|
echo " 1. Exit chroot (exit or Ctrl+D)"
|
|
echo " 2. Build kernel (Phase 4)"
|
|
echo " 3. Configure init system (Phase 5)"
|
|
echo " 4. Test in QEMU"
|