Subject: Re: port-i386/2184: i386 boot blocks don't compile
To: None <banshee@gabriella.resort.com>
From: Gordon W. Ross <gwr@mc.com>
List: netbsd-bugs
Date: 03/07/1996 11:25:59
> Date: Thu, 7 Mar 1996 00:15:02 -0800
> From: John M Vinopal <banshee@gabriella.resort.com>

> >Number:         2184
> >Category:       port-i386
> >Synopsis:       i386 boot blocks don't compile

> >Description:
> 	include dependancies cause boot block compilation to abort due
> 	to multiple definition of the DIRSIZ macro.  The two definitions
> 	are in sys/dirent.h and ufs/ufs/dir.h -- the latter notes that its
> 	definition of DIRSIZ overrides the other via #undef.  However, to
> 	do this, <sys/dirent.h> must appear first, which is not the case
> 	in the boot block sys.c code.

> >Fix:
> Undef of _KERNEL removes the duplicate DIRSIZ macro.  This macro is
> the only thing presently enclosed in #ifdef _KERNEL -- but will this
> always be the case?  Perhaps a more burly set of #ifdefs are needed,
> relying on a specific order of #includes is ugly hackery.
> 

Hmmm...  I thought we had rules about what order kernel includes
should be in, but I can't find them right now.

Anyway, why not just put <sys/dirent.h> (and all other <sys/*.h>)
before the files you reach over into ufs to get?

Gordon