[OpenAFS-devel] Re: OpenAFS CVS Commit: openafs/src/rxgen by shadow

Neulinger, Nathan nneul@umr.edu
Wed, 13 Feb 2002 12:56:46 -0600


> > Sounds great to me! Standard prototypes or using _P()?
> >=20
> > Worst case scenario can hardwire _P() to blank when doing kernel
> > compiles on affected systems.
>=20
> If there are no systems which need _P() now there's not much point in
> using it; We're not likely to port to old crufty systems, we=20
> already have
> ports for all of them. The only port I can't check is HPUX 11.

Have builds worked ok on all the systems since that rxgen change?

Actually, I can test that one easily enough, just not a full kernel
compile. As far as I know, on hpux 11, the compile that is used is fully
ansi and prototype capable. It's using the -Ae option, and usually on
HP-UX when -Ae or -Aa are used, they are a halfway reasonable compiler.

> > What about ANSI v. K&R on the routines themselves?
>=20
> presumably ansi, if we can do it safely. K&R is dead.
>=20
> > I'll definately dig in on this when you're ready to move on=20
> it, cause
> > it's the type of cleanup/rework stuff I usually enjoy working on.=20
>=20
> no time like the present. let's figure out what we're doing and do it.

What about the:

int x(void)
vs.
int x()

issue? Should void be used, or should a blank parameter list be used?

I'd say that your list, w/ a little editing and expansion, could just be
added to README.DEVEL, and then we can start with the changes just in
the afs/libafs dirs as you mention as a starting point.

It might also be worth suggesting that each C file document where it's
prototypes should be located somewhere near the top of the file. I'm not
sure if the prototype list should indicate the file the prototype is
for, but that might not be a bad idea. i.e.

/* Prototypes */
/* afs_osi.c */
void osi_Init();
...

/* afs_util.c */
char *afs_cv2string(char *, afs_uint32);
...

/* End of prototypes */

I need to look at cfunc again. If we segment out the block of prototypes
with distinct marker strings, we might be able to leverage cfunc to do
some of the initial work on generating the prototypes. Wouldn't be
necessary initially, but might make auditting the whole source for
completeness easier.

Is there a gcc option to absolutely require prototypes? I guess -Wall
-Werror might be a reasonable check, but liable to be more trouble than
it's worth.

-- Nathan

------------------------------------------------------------
Nathan Neulinger                       EMail:  nneul@umr.edu
University of Missouri - Rolla         Phone: (573) 341-4841
Computing Services                       Fax: (573) 341-4216