Subject: Re: port-mac/1678: missing dependencies for COMPAT_SUNOS
To: Chris G Demetriou <Chris_G_Demetriou@BALVENIE.PDL.CS.CMU.EDU>
From: Christos Zoulas <>
List: netbsd-bugs
Date: 11/03/1995 09:49:02
On Nov 3,  1:04am, Chris_G_Demetriou@BALVENIE.PDL.CS.CMU.EDU (Chris G Demetriou) wrote:
-- Subject: Re: port-mac/1678: missing dependencies for COMPAT_SUNOS

| > People have suggested in the past to put every -DFOO flag in a
| > foo.h file that contains '#define FOO 1' and let the compiler to its thing.
| > This of course is a maintainance nightmare and will slow down compilation
| > a lot.
| Which is better: speed, or correctness?  To my mind, speed is
| worthless without correctness, and the current mechanism, though
| faster, is incorrect.
| I would actually suggest one "options.h", rather than lots of little
| foo.h files, which would then be included in every .c file in the
| kernel.
| in what way is it a "maintainence nightmare"?  I don't think that it
| causes any serious problems, other than a few extra recompilations.

If you have 50 or so more one line .h files in the kernel compile directory,
and you need to edit each c file to include a subset of them. Everytime
you add an ifdef to a c file, you must check if the appropriate .h file
is included.
| Looking at it another way:
| how often to you change your kernel config file?  i.e. how often would
| it hurt to recompile the world, if you have dependencies made?
| similarly: how often do you change <sys/types.h> or <sys/param.h>?  I
| know that when i do that, and i actually care whether the entire world
| is recompiled, i remove the .depend file and remove and make the .o's
| i want, individually.
| It seems to me that the default: normal build, with dependencies,
| should produce a correct kernel, even if that means recompiling a few
| extra .o's to get it.
| What is the cost of doing it each way?  Is it better to keep new
| end-users from running into this problem repeatedly, or to give
| developers very slightly quicker (on average) compilations?
| I'd say that the former is more important.  It also make sure that
| seasoned developers don't get accidentally burned by the same problem.

I agree that options.h is a good idea.