[OpenAFS-devel] Re: JUAFS Makefile missing key defines?

Andrew Deason adeason@sinenomine.net
Wed, 10 Feb 2010 15:31:36 -0600


On Wed, 10 Feb 2010 13:06:30 -0800
Chaz Chandler <clc31@inbox.com> wrote:

> Which, when you look at the code, is because AFS_SGI_ENV is not
> defined and so the wrong bit of code is being compiled.  Yes, I
> checked, it's not because __c99 is not defined.

AFS_SGI_ENV is not 'supposed' to be defined for UAFS/JUAFS compiles.
Instead we define the AFS_USR_SGI_ENV symbol. (also, this is defined in
afs/param.h, not on the command line)

If you find this a bit confusing, so do I. But I'm not sure it's worth
the effort changing when you consider how many AFS_*_ENV tests there are
everywhere that would need to be checked...

Do you need the AFS_SGI_ENV part of the struct-label test? (!__c99 by
itself won't work?). Or, alternatively, do we really need the case for
defining that struct with the labels? Having them is nice, but won't it
work if we just always defined it without them?

> Now, with the addition of -DAFS_SGI_ENV to JUAFS/Makefile as:
> "DEFINES=-D_SGI_MP_SOURCE -DKERNEL -DUKERNEL -DAFS_SGI_ENV"
> I get:
[...]
> = /usr/people/clc31/src/openafs-git/src/afs/afs_prototypes.h, Line =
> 1166 The indicated declaration is not visible outside of the function.
> 
>                       struct pathname *pnp, int flags, struct vnode
> *rdir, ^

These might be caused by you defining AFS_SGI_ENV, which some
preprocessor goo may get tripped up on for UAFS compiles. Or it might be
due to nobody trying to compile IRIX on 1.5 in a long time. Try without
AFS_SGI_ENV first.

-- 
Andrew Deason
adeason@sinenomine.net