Subject: Re: port-mac/1678: missing dependencies for COMPAT_SUNOS
To: Christos Zoulas <christos@deshaw.com>
From: David Brownlee <david@city.ac.uk>
List: netbsd-bugs
Date: 11/03/1995 19:10:17
On Fri, 3 Nov 1995, Christos Zoulas wrote:

> 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.
>  
	Would an intermediate setup be viable?
	Have an number of option files (ie

	    net_opt.h	nfs_opt.h	ufs_opt.h
	    scsi_opt.h	vm_opt.h	compat_opt.h
	    fs_opt.h	m68k_opt.h	mac68k_opt.h

	(the last couple being machine dependant of course) and
	then include & depend against the appropriate ones...
	
	The other ways would be to start playing with something that takes
	files.nfs and conf files & determines what needs to be rebuilt
	dependant on the last build from that...  nasty :)

> | 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.
> 
> christos
> 


		David/abs

david@city.ac.uk +44 171 477 8186 (MIME) david@southern.com +44 181 888 8949
Network Analyst, UCS, City University   System Manager, Southern Studios Ltd
Northampton Square, London EC1V 0HB                PO Box 59, London N22 1AR

        <<< Monochrome - Largest UK Internet BBS - telnet mono.org >>>
>=- Microsoft: Abort and Retry Cancel -or- NetBSD: http://www.netbsd.org -=<
         (Apologies for long signature - in process of changing jobs)