From owner-freebsd-hackers Mon Dec 8 02:27:54 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id CAA25338 for hackers-outgoing; Mon, 8 Dec 1997 02:27:54 -0800 (PST) (envelope-from owner-freebsd-hackers) Received: from ns1.yes.no (ns1.yes.no [195.119.24.10]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id CAA25325 for ; Mon, 8 Dec 1997 02:27:46 -0800 (PST) (envelope-from eivind@bitbox.follo.net) Received: from bitbox.follo.net (bitbox.follo.net [194.198.43.36]) by ns1.yes.no (8.8.7/8.8.7) with ESMTP id KAA13818 for ; Mon, 8 Dec 1997 10:27:38 GMT Received: (from eivind@localhost) by bitbox.follo.net (8.8.6/8.8.6) id LAA13318; Mon, 8 Dec 1997 11:27:07 +0100 (MET) X-To: Joerg Wunsch To: hackers@freebsd.org Subject: New option model (was Re: cvs commit: src/sys/kern kern_exit.c) References: <199712071816.KAA21840@freefall.freebsd.org> <19971208091729.40125@uriah.heep.sax.de> From: Eivind Eklund Date: 08 Dec 1997 11:27:06 +0100 In-Reply-To: J Wunsch's message of Mon, 8 Dec 1997 09:17:29 +0100 Message-ID: <863ek4p1tx.fsf_-_@bitbox.follo.net> Lines: 110 X-Mailer: Gnus v5.4.52/XEmacs 20.2 Sender: owner-freebsd-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk [J Wunsch ] > As Sean Eric Fagan wrote: > > > sef 1997/12/07 10:16:45 PST > > > > Modified files: > > sys/kern kern_exit.c > > Log: > > Surround the call to procfs_exit() by #ifdef PROCFS/#endif -- much to my > > surprise, procfs actually is optional, and some people truly do generate > > kernels without it. Wow. I built a kernel without 'options PROCFS' and > > it compiled and linked. > > Without reviewing this patch, i'm fearing it might have broken the LKM > case for procfs now. sef did a later commit that fixed this - it should be OK now. > There should be no #ifdef FOOFS anywhere in the > code unless one is very careful to account for the LKM cases. All > these #ifdef FOOFS are the major showstopper to not switch the entire > kernel to the new option model (and once and for all get rid of the > "Removing old compile directory" hack in config(8) again). We should > move the entire kernel to the new option model before 3.0 ships. > (#ifdef INET etc. is the second class of showstoppers.) "New option model" refers to the opt_* header files, I guess? Are there anything more that should be done here than the following two steps? (1) weeding LINT against /sys/conf/options and /sys/i386/conf/options.i386 to find what options are not currently handled. (2) Add these options one by one to either /sys/conf/options or /sys/i386/conf/options.i386 as appropriate, at the same time going through the source and adding the correct option include to the files that use the symbol. The following is a result of running a weed against LINT and the options files - if each of these are taken care of, we shouldn't have to allow non-specified options anymore. If no other enterprising soul step forward, I might have a look at it - I think it might be possible to fix automatically with a perl script. (The ones listed in LINT and not options are the interesting ones). /sys/conf/options:ARP_PROXYALL opt_defunct.h /sys/conf/options:CHILD_MAX opt_defunct.h /sys/conf/options:EXTRAVNODES opt_defunct.h /sys/conf/options:OPEN_MAX opt_defunct.h /sys/i386/conf/LINT: BOOTP /sys/i386/conf/LINT: BOOTP_COMPAT /sys/i386/conf/LINT: BOOTP_NFSROOT /sys/i386/conf/LINT: BOOTP_NFSV3 /sys/i386/conf/LINT: CLUSTERDEBUG /sys/i386/conf/LINT: COMPAT_43 /sys/i386/conf/LINT: DEBUG /sys/i386/conf/LINT: DEVFS /sys/i386/conf/LINT: DIAGNOSTIC /sys/i386/conf/LINT: EXT2FS /sys/i386/conf/LINT: FAILSAFE /sys/i386/conf/LINT: FDSEEKWAIT /sys/i386/conf/LINT: FFS /sys/i386/conf/LINT: INET /sys/i386/conf/LINT: IPTUNNEL /sys/i386/conf/LINT: IPX /sys/i386/conf/LINT: IPXIP /sys/i386/conf/LINT: LFS /sys/i386/conf/LINT: LINT_PCCARD_HACK /sys/i386/conf/LINT: LOCKF_DEBUG /sys/i386/conf/LINT: MD5 /sys/i386/conf/LINT: MFS_AUTOLOAD /sys/i386/conf/LINT: MFS_ROOT /sys/i386/conf/LINT: MSDOSFS /sys/i386/conf/LINT: NATM /sys/i386/conf/LINT: NETATALK /sys/i386/conf/LINT: NFS /sys/i386/conf/LINT: NPX_DEBUG /sys/i386/conf/LINT: NQNFS /sys/i386/conf/LINT: NSWAPDEV /sys/i386/conf/LINT: POWERFAIL_NMI /sys/i386/conf/LINT: SCSI_2_DEF /sys/i386/conf/LINT: SIMPLELOCK_DEBUG /sys/i386/conf/LINT: SI_DEBUG /sys/i386/conf/LINT: SPX_HACK /sys/i386/conf/LINT: SUIDDIR /sys/i386/conf/LINT: TCP_COMPAT_42 /sys/i386/conf/options.i386:AHC_SHARE_SCBS opt_aic7xxx.h /sys/i386/conf/options.i386:AUTO_EOI_2 opt_auto_eoi.h /sys/i386/conf/options.i386:BOUNCEPAGES opt_bounce.h /sys/i386/conf/options.i386:COMCONSOLE opt_defunct.h /sys/i386/conf/options.i386:CONADDR opt_defunct.h /sys/i386/conf/options.i386:CONUNIT opt_defunct.h /sys/i386/conf/options.i386:PANIC_REBOOT_WAIT_TIME opt_panic.h /sys/i386/conf/options.i386:PCVT_24LINESDEF opt_pcvt.h /sys/i386/conf/options.i386:PCVT_CTRL_ALT_DEL opt_pcvt.h /sys/i386/conf/options.i386:PCVT_EMU_MOUSE opt_pcvt.h /sys/i386/conf/options.i386:PCVT_FREEBSD opt_pcvt.h /sys/i386/conf/options.i386:PCVT_META_ESC opt_pcvt.h /sys/i386/conf/options.i386:PCVT_NSCREENS opt_pcvt.h /sys/i386/conf/options.i386:PCVT_PRETTYSCRNS opt_pcvt.h /sys/i386/conf/options.i386:PCVT_SCREENSAVER opt_pcvt.h /sys/i386/conf/options.i386:PCVT_USEKBDSEC opt_pcvt.h /sys/i386/conf/options.i386:PCVT_VT220KEYB opt_pcvt.h /sys/i386/conf/options.i386:SC_SPLASH_SCREEN opt_syscons.h Eivind.