Subject: Re: CATS breakage
To: None <rjs@fdy2.demon.co.uk>
From: Todd Whitesel <toddpw@best.com>
List: port-arm32
Date: 03/29/2001 22:24:16
> I guess nobody has tried building a CATS kernel for a couple of weeks.
I hadn't tried building one since last August. Since my i386-current builds
were going so well, I decided to fire up the CATS again this week.
> One or other of sys/arch/arm/include/isa_machdep.h and
> sys/arch/arm32/isa/isa_cats_machdep.c are incorrect.
Indeed.
> The first argument to isa_fillw() has been changed from u_short to u_int
> for the prototype but not for the implementation.
Yeah, and the log entry only talks about the VM typedef changes, not the
isa_fillw() change.
> I can't find anything that uses isa_fillw() so maybe it should just
> be deleted.
Nah, I'm changing the definition of isa_fillw() to follow the prototype.
Arguments smaller than int should not be used unless all of the following
are true:
1. Compiler is told to error on calls to unprototyped functions.
2. All functions with sub-int arguments declared with ANSI prototypes.
3. All functions with sub-int arguments defined using ANSI prototypes.
In the case of isa_cats_machdep.c, #3 is not true, it still uses K&R style.
The rationale for the above is that a K&R style declaration with a sub-int
argument causes that argument to be promoted via the "standard integral
promotions" and that may make it incompatible with a function call that used
full prototyping. I don't think this is an issue with GCC but it definitely
is with some compilers (HP/UX c89 comes to mind).
In any case, I'm cranking out a snapshot with my CATS this week and will
check this (and other fixes) in soon.
Todd Whitesel
toddpw @ best.com