Re: [Fwd: What do people think about not installing a stripped /kernel ?]

From: Maxim Sobolev <sobomax_at_portaone.com>
Date: Thu, 21 Oct 2004 01:30:53 +0300
Maxim Sobolev wrote:

> OK, I've just checked objcopy manpage and found that there is actually a 
> better way which combines best properties of both approach. In modern 
> GNU toolchain it is possible to split executable and debugging info into 
> two separate files, but put a reference into executable, so that you 
> don't have to worry about how to load debugging symbols:
> 
> --only-keep-debug
>    Strip  a  file,  removing  any  sections  that would be stripped by
>    --strip-debug and leaving the debugging sections.
> 
>    The intention is that this option will be used in conjunction  with
>    --add-gnu-debuglink  to  create  a  two  part  executable.   One  a
>    stripped binary which will occupy less space in RAM and in  a  dis-
>    tribution and the second a debugging information file which is only
>    needed if debugging abilities are required.  The  suggested  proce-
>    dure to create these files is as follows:
> 
>    1.<Link the executable as normal.  Assuming that is is called>
>    "foo" then...
> 
>    1.<Run "objcopy --only-keep-debug foo foo.dbg" to>
>    create a file containing the debugging info.
> 
>    1.<Run "objcopy --strip-debug foo" to create a>
>    stripped executable.
> 
>    1.<Run "objcopy --add-gnu-debuglink=foo.dbg foo">
>    to  add  a  link  to  the debugging info into the stripped exe-
>    cutable.
> 
> I checked, this works like a charm with our current toolchain/gdb. This 
> allows us to do the following clever trick WRT kernel debug:
> 
> 1. Compile kernel/modules with debugging symbols;
> 2. Split out executable and debugging pieces for each module;
> 3. Associate each executable file with appropriate debug file;
> 4. Install executable into /boot/kernel as usually;
> 5. Install real debugging into /var/something, put symlink to it into 
> /boot/kernel.
> 
> By the way, this approach can be extended to be an option of buildworld 
> as well! It can be good way to trade developers' time for some hdd 
> space, since with this option "on" you will always be able to debug 
> misbehaving application/library without the need to recompile/reinstall 
> everything!

BTW, it also allows us to do create separate "debug" distribution for 
release CDs. So that one can do binary install and then add  debugging 
symbols if necessary.

-Maxim
Received on Wed Oct 20 2004 - 20:31:14 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:18 UTC