aboutsummaryrefslogtreecommitdiffstats
path: root/chapter8/cleanup.sh
blob: 8d78f03bd5b6247025e91264700923351f124907 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash

if [ -f "${LFS}/sources/chapter8/cleanup" ]; then
	printf "%b" "  ${IGRN}Cleanup already performed${RST}\n"
else

	printf "%b" "${GRN}Cleaning up ${YLW}${LFS}${RST}... "

	{

	sudo rm -rfv "${LFS}"/tmp/*
	sudo rm -rfv "${LFS}"/tools

	sudo find "${LFS}"/usr/lib -name \*.la -delete
	sudo find "${LFS}"/usr/libexec -name \*.la -delete

	sudo find "${LFS}"/usr -depth -name "$(uname -m)"-lfs-linux-gnu\* | xargs sudo rm -rfv

	sudo sed '/tester/d' -i "${LFS}"/etc/group
	sudo sed '/tester/d' -i "${LFS}"/etc/passwd
	sudo rm -rfv "${LFS}"/home/tester

	#sudo rm -rfv "${LFS}"/usr/share/doc
	#sudo rm -rfv "${LFS}"/usr/share/info
	#sudo rm -rfv "${LFS}"/usr/share/man

	# Place debugging symbols for selected libraries in seprate files
	save_lib="ld-2.33.so libc-2.33.so libpthread-2.33.so libthread_db-1.0.so"
	pushd "${LFS}"/lib || exit 1

	for LIB in $save_lib; do
		sudo objcopy --only-keep-debug "${LIB}" "${LIB}".dbg
		sudo strip --strip-unneeded "${LIB}"
		sudo objcopy --add-gnu-debuglink="${LIB}".dbg "${LIB}"
	done

	popd || exit 1

	save_usrlib="libquadmath.so.0.0.0 libstdc++.so.6.0.28 libitm.so.1.0.0 libatomic.so.1.2.0"

	pushd "${LFS}"/usr/lib || exit 1

	for LIB in $save_usrlib; do
		sudo objcopy --only-keep-debug "${LIB}" "${LIB}".dbg
		sudo strip --strip-unneeded "${LIB}"
		sudo objcopy --add-gnu-debuglink="${LIB}".dbg "${LIB}"
	done

	popd || exit 1

	sudo find "${LFS}"/usr/lib -type f -name \*.a -exec strip --strip-debug {} ';'
	sudo find "${LFS}"/lib -type f -name \*.so* ! -name \*dbg -exec strip --strip-unneeded {} ';'
	sudo find "${LFS}"/usr/lib -type f -name \*.so* ! -name \*dbg -exec strip --strip-unneeded {} ';'


	sudo find "${LFS}"/bin -type f -exec strip --strip-all {} ';'
	sudo find "${LFS}"/sbin -type f -exec strip --strip-all {} ';'
	sudo find "${LFS}"/usr/bin -type f -exec strip --strip-all {} ';'
	sudo find "${LFS}"/usr/sbin -type f -exec strip --strip-all {} ';'
	sudo find "${LFS}"/usr/libexec -type f -exec strip --strip-all {} ';'


} >"${LFS}"/sources/log/chapter8/cleanup.log 2>&1

	printf "%b" "${IGRN}OK${RST}\n"
	sudo touch "${LFS}"/sources/chapter8/cleanup >/dev/null 2>&1
fi