Changeset 6dfcfecc for chapter08/strippingagain.xml
- Timestamp:
- 03/31/2021 10:41:39 AM (4 years ago)
- Branches:
- ml-11.0, multilib, xry111/multilib
- Children:
- 7610848
- Parents:
- 811b5a39
- git-author:
- Thomas Trepl <thomas@…> (06/29/2020 07:55:01 AM)
- git-committer:
- Xℹ Ruoyao <xry111@…> (03/31/2021 10:41:39 AM)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
chapter08/strippingagain.xml
r811b5a39 r6dfcfecc 14 14 programmer and does not plan to do 15 15 any debugging on the system software, the system size can be decreased 16 by about 90 MB by removing the debugging symbols from binaries and16 by about 2 GB by removing the debugging symbols from binaries and 17 17 libraries. This causes no inconvenience other than not being able to 18 18 debug the software fully anymore.</para> … … 31 31 </para> 32 32 33 <!-- also of interest are libgfortan, libgo, libgomp, and libobjc from gcc-->33 <!-- also of interest are libgfortan, libgo, libgomp, and libobjc from GCC --> 34 34 35 35 <!--<screen><userinput>save_lib="ld-2.25.so libc-2.25.so libpthread-2.25.so libthread_db-1.0.so"--> 36 <screen arch="default"><userinput>save_lib="ld-&glibc-version;.so libc-&glibc-version;.so libpthread-&glibc-version;.so libthread_db-&libthread_db-version;.so"36 <screen><userinput>save_lib="ld-&glibc-version;.so libc-&glibc-version;.so libpthread-&glibc-version;.so libthread_db-&libthread_db-version;.so" 37 37 38 38 cd /lib 39 40 39 for LIB in $save_lib; do 41 40 objcopy --only-keep-debug $LIB $LIB.dbg 42 41 strip --strip-unneeded $LIB 43 42 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 44 done 43 done</userinput> 44 <userinput arch="ml_32,ml_all"> 45 cd &lib-m32; 46 for LIB in $save_lib; do 47 objcopy --only-keep-debug $LIB $LIB.dbg 48 strip --strip-unneeded $LIB 49 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 50 done</userinput> 51 <userinput arch="ml_x32,ml_all"> 52 cd &lib-mx32; 53 for LIB in $save_lib; do 54 objcopy --only-keep-debug $LIB $LIB.dbg 55 strip --strip-unneeded $LIB 56 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 57 done</userinput><userinput> 45 58 46 59 save_usrlib="libquadmath.so.&libquadmath-version; libstdc++.so.&libstdcpp-version; … … 48 61 49 62 cd /usr/lib 50 51 63 for LIB in $save_usrlib; do 52 64 objcopy --only-keep-debug $LIB $LIB.dbg 53 65 strip --strip-unneeded $LIB 54 66 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 55 done 67 done</userinput> 68 <userinput arch="ml_32,ml_all"> 69 cd &usr-lib-m32; 70 for LIB in $save_usrlib; do 71 objcopy --only-keep-debug $LIB $LIB.dbg 72 strip --strip-unneeded $LIB 73 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 74 done</userinput> 75 <userinput arch="ml_x32,ml_all"> 76 cd &usr-lib-mx32; 77 for LIB in $save_usrlib; do 78 objcopy --only-keep-debug $LIB $LIB.dbg 79 strip --strip-unneeded $LIB 80 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 81 done</userinput><userinput> 56 82 57 83 unset LIB save_lib save_usrlib</userinput></screen> 58 84 59 <screen arch="ml_32,ml_x32,ml_all"><userinput>save_lib="ld-&glibc-version;.so libc-&glibc-version;.so libpthread-&glibc-version;.so libthread_db-&libthread_db-version;.so" 60 61 cd /lib 62 63 for LIB in $save_lib; do 64 objcopy --only-keep-debug $LIB $LIB.dbg 65 strip --strip-unneeded $LIB 66 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 67 done 68 69 save_usrlib="libquadmath.so.&libquadmath-version; libstdc++.so.&libstdcpp-version; 70 libitm.so.&libitm-version; libatomic.so.&libatomic-version;" <!-- libcilkrts.so.&libcilkrts-version;--> 71 72 for libdir in /usr/lib{,{,x}32}; do 73 cd $libdir 74 for LIB in $save_usrlib; do 75 objcopy --only-keep-debug $LIB $LIB.dbg 76 strip --strip-unneeded $LIB 77 objcopy --add-gnu-debuglink=$LIB.dbg $LIB 78 done 79 done 80 81 unset LIB save_lib save_usrlib</userinput></screen> 82 83 <para>Before performing the stripping, take special care to ensure that 85 <!-- <para>Before performing the stripping, take special care to ensure that 84 86 none of the binaries that are about to be stripped are running:</para> 85 87 86 88 <screen role="nodump"><userinput>exec /tools/bin/bash</userinput></screen> 87 89 88 <!-- 89 If 90 unsure whether the user entered chroot with the command given in 91 <xref linkend="ch-system-chroot" role=","/> first use the version 92 of bash we created in 93 chroot:</para> 90 <para>Now the binaries and libraries can be safely stripped:</para> 91 --> 92 <para>Now the binaries and libraries can be stripped:</para> 93 <screen><userinput>find /usr/lib -type f -name \*.a \ 94 -exec strip --strip-debug {} ';'</userinput> 95 <userinput arch="ml_32,ml_all">find &usr-lib-m32; -type f -name \*.a \ 96 -exec strip --strip-debug {} ';'</userinput> 97 <userinput arch="ml_x32,ml_all">find &usr-lib-mx32; -type f -name \*.a \ 98 -exec strip --strip-debug {} ';'</userinput><userinput> 94 99 95 <screen role="nodump"><userinput>logout</userinput></screen> 100 find /lib /usr/lib -type f -name \*.so* ! -name \*dbg \ 101 -exec strip --strip-unneeded {} ';'</userinput> 102 <userinput arch="ml_32,ml_all">find &lib-m32; &usr-lib-m32; -type f -name \*.so* ! -name \*dbg \ 103 -exec strip --strip-unneeded {} ';'</userinput> 104 <userinput arch="ml_x32,ml_all">find &lib-mx32; &usr-lib-mx32; -type f -name \*.so* ! -name \*dbg \ 105 -exec strip --strip-unneeded {} ';'</userinput><userinput> 96 106 97 <para>Then reenter it with:</para> 98 99 <screen role="nodump"><userinput>chroot $LFS /tools/bin/env -i \ 100 HOME=/root TERM=$TERM \ 101 PS1='(lfs chroot) \u:\w\$ ' \ 102 PATH=/bin:/usr/bin:/sbin:/usr/sbin \ 103 /tools/bin/bash - -login</userinput></screen>--> 104 105 <para>Now the binaries and libraries can be safely stripped:</para> 106 107 <screen arch="default"><userinput>/tools/bin/find /usr/lib -type f -name \*.a \ 108 -exec /tools/bin/strip --strip-debug {} ';' 109 110 /tools/bin/find /lib /usr/lib -type f \( -name \*.so* -a ! -name \*dbg \) \ 111 -exec /tools/bin/strip --strip-unneeded {} ';' 112 113 /tools/bin/find /{bin,sbin} /usr/{bin,sbin,libexec} -type f \ 114 -exec /tools/bin/strip --strip-all {} ';'</userinput></screen> 115 116 <screen arch="ml_32,ml_x32,ml_all"><userinput>/tools/bin/find /usr/lib{,{,x}32} -type f -name \*.a \ 117 -exec /tools/bin/strip --strip-debug {} ';' 118 119 /tools/bin/find /lib /usr/lib{,{,x}32} -type f \( -name \*.so* -a ! -name \*dbg \) \ 120 -exec /tools/bin/strip --strip-unneeded {} ';' 121 122 /tools/bin/find /{bin,sbin} /usr/{bin,sbin,libexec} -type f \ 123 -exec /tools/bin/strip --strip-all {} ';'</userinput></screen> 107 find /{bin,sbin} /usr/{bin,sbin,libexec} -type f \ 108 -exec strip --strip-all {} ';'</userinput></screen> 124 109 125 110 <para>A large number of files will be reported as having their file
Note:
See TracChangeset
for help on using the changeset viewer.