Changeset 85cd74c2 for chapter08/strippingagain.xml
- Timestamp:
- 07/27/2021 05:53:40 AM (3 years ago)
- Branches:
- ml-11.0, multilib
- Children:
- 64a306d
- Parents:
- 3388c22 (diff), 6d6f242 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter08/strippingagain.xml
r3388c22 r85cd74c2 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 … … 68 78 done</userinput><userinput> 69 79 70 unset LIB save_usrlib</userinput></screen> 80 online_usrbin="bash find strip" 81 online_usrlib="libbfd-&binutils-version;.so libdl-&glibc-version;.so 82 libhistory.so.&readline-version; libncursesw.so.&ncurses-version; 83 libm-&glibc-version;.so libreadline.so.&readline-version; 84 libz.so.&zlib-version;" 71 85 72 <!-- <para>Before performing the stripping, take special care to ensure that 73 none of the binaries that are about to be stripped are running:</para> 86 for BIN in $online_usrbin; do 87 cp /usr/bin/$BIN /tmp/$BIN 88 strip --strip-all /tmp/$BIN 89 install -vm755 /tmp/$BIN /usr/bin 90 rm /tmp/$BIN 91 done 74 92 75 <screen role="nodump"><userinput>exec /tools/bin/bash</userinput></screen> 76 77 <para>Now the binaries and libraries can be safely stripped:</para> 78 --> 79 <para>Now the binaries and libraries can be stripped:</para> 80 <screen><userinput>find /usr/lib -type f -name \*.a \ 81 -exec strip --strip-debug {} ';'</userinput> 82 <userinput arch="ml_32,ml_all">find /usr/lib32 -type f -name \*.a \ 83 -exec strip --strip-debug {} ';'</userinput> 84 <userinput arch="ml_x32,ml_all">find /usr/libx32 -type f -name \*.a \ 85 -exec strip --strip-debug {} ';'</userinput><userinput> 93 for LIB in $online_usrlib; do 94 cp /usr/lib/$LIB /tmp/$LIB 95 strip --strip-unneeded /tmp/$LIB 96 install -vm755 /tmp/$LIB /usr/lib 97 rm /tmp/$LIB 98 done</userinput><userinput arch="ml_32,ml_all"> 99 for LIB in $online_usrlib; do 100 cp /usr/lib32/$LIB /tmp/$LIB 101 strip --strip-unneeded /tmp/$LIB 102 install -vm755 /tmp/$LIB /usr/lib32 103 rm /tmp/$LIB 104 done</userinput><userinput arch="ml_x32,ml_all"> 105 for LIB in $online_usrlib; do 106 cp /usr/libx32/$LIB /tmp/$LIB 107 strip --strip-unneeded /tmp/$LIB 108 install -vm755 /tmp/$LIB /usr/libx32 109 rm /tmp/$LIB 110 done</userinput><userinput> 86 111 87 find /usr/lib -type f -name \*.so* ! -name \*dbg ! -name libz.so* \ 88 -exec strip --strip-unneeded {} ';'</userinput> 89 <userinput arch="ml_32,ml_all">find /usr/lib32 -type f -name \*.so* ! -name \*dbg ! -name libz.so* \ 90 -exec strip --strip-unneeded {} ';'</userinput> 91 <userinput arch="ml_x32,ml_all">find /usr/libx32 -type f -name \*.so* ! -name \*dbg ! -name libz.so* \ 92 -exec strip --strip-unneeded {} ';'</userinput><userinput> 112 find /usr/lib -type f -name \*.a \ 113 -exec strip --strip-debug {} ';' 93 114 94 find /usr/{bin,sbin,libexec} -type f \ 95 -exec strip --strip-all {} ';'</userinput></screen> 115 for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg); do 116 case "$online_usrlib $save_usrlib" in 117 *$(basename $i)* ) ;; 118 * ) strip --strip-unneeded $i ;; 119 esac 120 done</userinput><userinput arch="ml_32,ml_all"> 121 for i in $(find /usr/lib32 -type f -name \*.so* ! -name \*dbg); do 122 case "$online_usrlib $save_usrlib" in 123 *$(basename $i)* ) ;; 124 * ) strip --strip-unneeded $i ;; 125 esac 126 done</userinput><userinput arch="ml_x32,ml_all"> 127 for i in $(find /usr/libx32 -type f -name \*.so* ! -name \*dbg); do 128 case "$online_usrlib $save_usrlib" in 129 *$(basename $i)* ) ;; 130 * ) strip --strip-unneeded $i ;; 131 esac 132 done</userinput><userinput> 133 134 for i in $(find /usr/bin -type f); do 135 case "$online_usrbin" in 136 *$(basename $i)* ) ;; 137 * ) strip --strip-all $i ;; 138 esac 139 done 140 141 find /usr/{sbin,libexec} -type f \ 142 -exec strip --strip-all {} ';' 143 144 unset BIN LIB save_usrlib online_usrbin online_usrlib 145 </userinput></screen> 96 146 97 147 <para>A large number of files will be reported as having their file
Note:
See TracChangeset
for help on using the changeset viewer.