[Pvfs2-developers] -ansi with mpicc now
Sam Lang
slang at mcs.anl.gov
Wed Sep 13 12:29:55 EDT 2006
On Sep 13, 2006, at 8:23 AM, Pete Wyckoff wrote:
> slang at mcs.anl.gov wrote on Wed, 13 Sep 2006 01:21 -0500:
>> I get the following error when building the test dir from trunk, and
>> with mpich2 from cvs (recent). It looks like mpich2's mpicc adds -
>> ansi to the gcc compile line now (you can't see it in the below
>> output, but I verified that its there, and the error goes away if I
>> remove it). Not sure why they added it, but its hard to argue that
>> our exported headers don't need to conform to ansi C. The problem is
>> that there are a number of function definitions in pvfs2-util.h that
>> are inline static. We do this I think because those functions are
>> used both by the kernel module and the user space pvfs2 code, so it
>> saves defining them twice in separate source files. I see two
>> alternatives at this point: we could make them macros (ew), or we
>> could move the function defs to source files in both user space code
>> and kernel module code and give up on not replicating them. Any
>> other good ideas? Once this is fixed, it looks like the -ansi causes
>> a plethora of other bugs to be expressed in our test code. The two
>> big ones: use of // instead of /* */. And apparently -ansi has some
>> issues with bzero, snprintf, strdup, getopt...not sure what the deal
>> is there yet...
>
> There's only two functions that the kernel sees in pvfs2-util.h and
> they're both too big to be inlined anyway. We don't have any
> shared user/kernel C files?
We don't appear to, no.
> If so, they could go in there. If not,
> why is the kernel even exposed to these functions in pvfs2-util.h?
It needs the PVFS2_translate_mode function at least (kernel/linux-2.6/
pvfs2-util.c calls it). Even though we don't have any shared source
files right now, I don't see any reason why we couldn't. Could the
makefile just list a relative path to a pvfs2-shared.c source file
in ../../common/misc?
-sam
> Otherwise I vote for duplication as needed.
>
> You can always use __inline__ to get around the -ansi warning, but
> rather those functions would just go elsewhere.
>
> Always good to get rid of //, bzero. The other missing functions
> probably just want the right headers included.
>
> You're right about all the other nitpicks, in my opinion.
>
> -- Pete
>
More information about the Pvfs2-developers
mailing list