Changeset de28837 for chapter08/strippingagain.xml
- Timestamp:
- 07/26/2021 11:34:27 AM (3 years ago)
- Branches:
- 11.0, 11.0-rc1, 11.0-rc2, 11.0-rc3, 11.1, 11.1-rc1, 11.2, 11.2-rc1, 11.3, 11.3-rc1, 12.0, 12.0-rc1, 12.1, 12.1-rc1, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, xry111/arm64, xry111/arm64-12.0, xry111/clfs-ng, xry111/lfs-next, xry111/loongarch, xry111/loongarch-12.0, xry111/loongarch-12.1, xry111/mips64el, xry111/pip3, xry111/rust-wip-20221008, xry111/update-glibc
- Children:
- 6d6f242
- Parents:
- ff96923
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter08/strippingagain.xml
rff96923 rde28837 24 24 backup of the LFS system in its current state.</para> 25 25 26 <para> First place the debugging symbols for selected libraries27 in separate files. Th isdebugging information is needed if running26 <para>The debugging symbols for selected libraries are placed 27 in separate files. These debugging information is needed if running 28 28 regression tests that use <ulink 29 29 url='&blfs-book;/general/valgrind.html'>valgrind</ulink> or <ulink … … 31 31 </para> 32 32 33 <para>And, <command>strip</command> will overwrite the binary or library 34 file. This may crash the processes using code or data from the file. If 35 the process running <command>strip</command> itself is affected, the 36 binary or library being stripped may be destroyed. This may make the 37 system completely unusable. To avoid it, we'll copy some libraries and 38 binaries into <filename class="directory">/tmp</filename>, strip them 39 there, and install them back with the <command>install</command> command. 40 Read the related entry in <xref linkend="pkgmgmt-upgrade-issues"/> for the 41 rationale to use the <command>install</command> command here.</para> 42 33 43 <!-- also of interest are libgfortan, libgo, libgomp, and libobjc from GCC --> 34 44 35 45 <!--<screen><userinput>save_lib="ld-2.25.so libc-2.25.so libpthread-2.25.so libthread_db-1.0.so"--> 36 46 <screen><userinput>save_usrlib="ld-&glibc-version;.so libc-&glibc-version;.so libpthread-&glibc-version;.so libthread_db-&libthread_db-version;.so 37 libquadmath.so.&libquadmath-version; libstdc++.so.&libstdcpp-version; libz.so.&zlib-version;47 libquadmath.so.&libquadmath-version; libstdc++.so.&libstdcpp-version; 38 48 libitm.so.&libitm-version; libatomic.so.&libatomic-version;" <!-- libcilkrts.so.&libcilkrts-version;--> 39 49 … … 49 59 done 50 60 51 unset LIB save_usrlib</userinput></screen> 61 online_usrbin="bash find strip" 62 online_usrlib="libbfd-&binutils-version;.so libdl-&glibc-version;.so 63 libhistory.so.&readline-version; libncursesw.so.&ncurses-version; 64 libm-&glibc-version;.so libreadline.so.&readline-version; 65 libz.so.&zlib-version;" 52 66 53 <!-- <para>Before performing the stripping, take special care to ensure that 54 none of the binaries that are about to be stripped are running:</para> 67 for BIN in $online_usrbin; do 68 cp /usr/bin/$BIN /tmp/$BIN 69 strip --strip-all /tmp/$BIN 70 install -vm755 /tmp/$BIN /usr/bin 71 rm /tmp/$BIN 72 done 55 73 56 <screen role="nodump"><userinput>exec /tools/bin/bash</userinput></screen> 57 58 <para>Now the binaries and libraries can be safely stripped:</para> 59 --> 60 <para>Now the binaries and libraries can be stripped:</para> 61 <screen><userinput>find /usr/lib -type f -name \*.a \ 74 for LIB in $online_usrlib; do 75 cp /usr/lib/$LIB /tmp/$LIB 76 strip --strip-unneeded /tmp/$LIB 77 install -vm755 /tmp/$LIB /usr/lib 78 rm /tmp/$LIB 79 done 80 81 find /usr/lib -type f -name \*.a \ 62 82 -exec strip --strip-debug {} ';' 63 83 64 find /usr/lib -type f -name \*.so* ! -name \*dbg ! -name libz.so* \ 65 -exec strip --strip-unneeded {} ';' 84 for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg); do 85 case "$online_usrlib $save_usrlib" in 86 *$(basename $i)* ) ;; 87 * ) strip --strip-unneeded $i ;; 88 esac 89 done 66 90 67 find /usr/{bin,sbin,libexec} -type f \ 68 -exec strip --strip-all {} ';'</userinput></screen> 91 for i in $(find /usr/bin -type f); do 92 case "$online_usrbin" in 93 *$(basename $i)* ) ;; 94 * ) strip --strip-all $i ;; 95 esac 96 done 97 98 find /usr/{sbin,libexec} -type f \ 99 -exec strip --strip-all {} ';' 100 101 unset BIN LIB save_usrlib online_usrbin online_usrlib 102 </userinput></screen> 69 103 70 104 <para>A large number of files will be reported as having their file
Note:
See TracChangeset
for help on using the changeset viewer.