Got an error: Unknown option "DDB_CTF"

Dan Nelson dnelson at
Mon Nov 22 21:31:57 UTC 2010

In the last episode (Nov 22), Weihang Wang said:
> On Nov 22, 2010, at 12:08 PM, Dan Nelson wrote:
> > In the last episode (Nov 22), Weihang Wang said:
> >> I am a totally newbie to FreeBSD. I am building a custom kernel based
> >> on FreeBSD 6.0 kernel (I have to use this version cause I need to run
> >> an application which is only available for FreeBSD 6.0).  I conform to
> >> the handbook to add the following lines in kernel configuration file to
> >> enable DTrace support:
> >> 
> >> options	KDTRACE_FRAME
> >> options	KDTRACE_HOOKS
> >> options	DDB_CTF
> >> makeoptions WITH_CTF=1
> >> 
> >> Then I use the following commands to recompile my kernel and install
> >> this new kernel:
> >> 
> >> make buildkernel KERNCONF=KERNELNAME
> >> make installkernel KERNCONF=KERNELNAME
> >> 
> >> The compiling process encounters an error: Unknown option "DDB_CTF", I
> >> have no idea how to fix this?
> > 
> > Just remove all references to CTF; that's for Dtrace support, which doesn't
> > exist in the 6.* branch.
> > 
> > You might also want to try running your application on FreeBSD 8.1 after
> > installing the misc/compat6x package.  Backwards binary compatibility
> > support is very good.
> Thank you so much for your help. But I am still concerned about the
> backward compatibility.  First I have to use DTrace to instrument the
> kernel to do performance analysis.  At the same time, the program I need
> to build on the FreeBSD is a kind of transport protocol, which is based on
> the FreeBSD 6.0.  The transport protocol may change the network stack of
> the kernel networking system, so I do not know whether this would work. 
> Hope to hear from you.  Thank you very much.

If your program includes kernel modifications and the modifications only
apply cleanly to FreeBSD 6, then you may be stuck unless you can port the
changes to a newer version of FreeBSD.  DTrace support for the kernel went
into FreeBSD 7.1, and DTrace for user processes will be in 9.0 (with
backports to 8.2 and 7.4 later).

If your program implements its transport protocol completely in userland (by
opening raw sockets for example), then it will probably run on FreeBSD 8.1.

	Dan Nelson
	dnelson at

More information about the freebsd-questions mailing list