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