Subject: Re: kernel config options
To: Eivind Eklund <eivind@yes.no>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: tech-kern
Date: 04/19/1998 15:09:00
On Sun, 19 Apr 1998 23:50:57 +0200 
 Eivind Eklund <eivind@yes.no> wrote:

 > On Mon, Apr 20, 1998 at 07:39:53AM +1000, Robert Elz wrote:
 > > This source-changes mail reminded me of something I have been meaning to
 > > suggest for a while...
 > 
 > FreeBSD has this.  I'd suggest you snip our implementation, to avoid
 > (a) work, and (b) unnecessary differences.

NetBSD also has it.  I implemented it myself.

Snipping it from FreeBSD would have been pointless, since FreeBSD uses a
totally different config program (still based on the old BSD config).

 > Be aware that adding correct include files for all options is a lot of
 > work; probably way more than the modifications to config(8).

Yes, this is why, in NetBSD, it is possible to "defopt" an option
or set of options.  It's just a matter of getting all of them.

Take a look at the top of /sys/conf/files for an example:

# options understood by the machine-independent part of the kernel
# (note, these are case-sensitive)
defopt  KMEMSTATS
defopt  RTC_OFFSET
defopt  TCP_RECVSPACE
defopt  TCP_SENDSPACE
defopt  UCONSOLE

defopt  DEVPAGER
defopt  SWAPPAGER
defopt  VNODEPAGER

defopt  opt_nfs_boot.h  NFS_BOOT_BOOTP NFS_BOOT_BOOTPARAM NFS_BOOT_DHCP
                        NFS_BOOT_GATEWAY

defopt  MROUTING
defopt  TCP_COMPAT_42

defopt  opt_malloclog.h MALLOCLOG MALLOCLOGSIZE

[ etc. ]

Options that are NOT defopt'd still have -D... generated in the Makefile,
so that it's possible to have FOOBAR_DEBUG or whatever without cluttering
up unrelated stuff.

Jason R. Thorpe                                       thorpej@nas.nasa.gov
NASA Ames Research Center                            Home: +1 408 866 1912
NAS: M/S 258-5                                       Work: +1 650 604 0935
Moffett Field, CA 94035                             Pager: +1 415 428 6939