6.0R GENERIC makeoptions DEBUG=-g

Robert Watson rwatson at FreeBSD.org
Mon Nov 14 11:49:42 GMT 2005

On Mon, 14 Nov 2005, Simon Ironside wrote:

> /sys/i386/conf/GENERIC has this line uncommented - is this on purpose? I 
> commented it out before building a new kernel.
> makeoptions DEBUG=-g

This was by accident, but actually isn't a bad idea.  We discovered the 
problem at the last minute, after the 6.0-R builds had completed, and as 
they were rsyncing to mirrors.  After thinking about it for a few minutes, 
we decided that actually, it has some nice benefits that made it worth not 
rebuilding and re-mirroring.  If we were earlier in the release cycle, we 
might have changed the setting, however.

We identified a few specific upsides and downsides:

Good: We now have debugging symbols easily available and widely accessible 
for the GENERIC kernel shipped with the release.  This makes it much 
easier for developers to debug problems using that kernel, as we no longer 
need to ask end-users to build a kernel with debugging symbols, etc, in 
order to debug a problem.  Especially for a .0 release, this is a very 
useful, and has presented a problem in previous releases.

Bad: Kernel build times are now significantly slower, and required space 
to build a kernel significantly larger by default.

We'll see how it settles out -- CPUs are a lot larger, and disks a lot 
bigger than they used to be.  The kernel is stripped of debugging symbols 
before it is installed, so this is only potentially a problem on systems 
that already have enough space to hold source, builds, etc, and doesn't 
affect systems where the kernel is installed but not built.  I.e., this 
doesn't affect the footprint for embedded systems, or systems where a 
kernel is built centrally and then distributed.

My recommendation would be to leave -g in unless you know that the added 
build time and disk space for the build process will be a problem for you. 
Hopefully you don't ever run into any problems requiring debug symbols, 
but if you do it will probably save you some time and hassle, especially 
if it's a problem that occurs once every six months, in which case 
rebooting with a kernel with known symbol layout will mean waiting six 
months to debug the problem. :-)

Robert N M Watson

More information about the freebsd-questions mailing list