| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | <sect1 id="ch06-aboutdebug"><title>About debugging symbols</title><para>Most programs and libraries by default are compiled with debuggingsymbols and optimizing level 2 (gcc options -g and -O2) and are compiledfor a specific CPU. On Intel platforms software is compiled for i386processors by default. If you don't wish to run software on othermachines other than your own, you might want to change the defaultcompiler options so that they will be compiled with a higheroptimization level, no debugging symbols and generate code for yourspecific architecture. Let me first explain what debugging symbolsare.</para><para>A program compiled with debugging symbols means you can run a program or library through a debugger and the debugger's output will be user friendlier. These debugging symbols also  enlarge the program or library significantly. </para><para>To remove debugging symbols from a binary (must be an a.out or ELF binary)run <userinput>strip --strip-debug filename</userinput> You can use wild cardsif you need to strip debugging symbols from multiple files (use something likestrip --strip-debug $LFS/usr/bin/*). Another, easier, options is justnot to compile programs with debugging symbols. Most people will probablynever use a debugger on software, so by leaving those symbols out youcan save a lot of diskspace.</para><para>Before you wonder if these debugging symbols would make a big difference, here are some statistics:</para><itemizedlist><listitem><para>        A dynamic Bash binary with debugging symbols: 1.2MB</para></listitem><listitem><para>        A dynamic Bash binary without debugging symbols: 478KB</para></listitem><listitem><para>        /lib and /usr/lib (glibc and gcc files) with debugging                symbols: 87MB</para></listitem><listitem><para>        /lib and /usr/lib (glibc and gcc files) without                debugging symbols: 16MB</para></listitem></itemizedlist><para>Sizes may vary depending on which compiler was used and which C libraryversion was used to link dynamic programs against, but your results will besimilar if you compare programs with and without debugging symbols. AfterI was done with this chapter and stripped all debugging symbols from all LFSbinaries and libraries I regained a little over 102 MB of disk space. Quitethe difference.</para></sect1>
 |