[Pvfs2-developers] Tree doesn't build (at least for gcc 4.3)

Bradley Settlemyer bradles at parl.clemson.edu
Mon Dec 15 14:47:13 EST 2008


Btw, the kernel module in the tree works correctly with Fedora 9's latest
Kernel.

Cheers,
brad


On Mon, Dec 15, 2008 at 2:33 PM, Kyle Schochenmaier <kschoche at gmail.com>wrote:

> I noticed this also this morning, pcarns mentioned to me that you can
> back out the following patch to get it to build if that is necessary.
>
> http://www.pvfs.org/fisheye/rdiff/PVFS?csid=MAIN:slang:20081212171229&u&N
>
> ~Kyle
>
> Kyle Schochenmaier
>
>
>
> On Mon, Dec 15, 2008 at 1:31 PM, Bradley Settlemyer
> <bradles at parl.clemson.edu> wrote:
> > Hello,
> >
> >   I am having trouble building the tree due to the layout types (newer
> stuff
> > I'm not familiar with) -- probably due to the recent compiler I am using,
> > though I don't think you wanted what you had anyway.  I am seeing the
> > following errors:
> >
> >   CC        src/apps/admin/pvfs2-touch.o
> > src/apps/admin/pvfs2-touch.c: In function 'main':
> > src/apps/admin/pvfs2-touch.c:48: error: incompatible types in assignment
> > src/apps/admin/pvfs2-touch.c:77: error: incompatible types in assignment
> > make: *** [src/apps/admin/pvfs2-touch.o] Error 1
> >
> >
> > Which boils down to this line in pvfs2-touch:
> >
> >     layout.algorithm = PVFS_SYS_LAYOUT_DEFAULT;
> >
> > The accompanying enum is this:
> >
> > /* Layout algorithm for converting from server lists in the config
> >  * to a list of servers to use to store datafiles for a file.
> >  */
> > enum PVFS_sys_layout_algorithm
> > {
> >     /* order the datafiles according to the server list */
> >     PVFS_SYS_LAYOUT_NONE = 1,
> >
> >     /* choose the first datafile randomly, and then round-robin in-order
> */
> >     PVFS_SYS_LAYOUT_ROUND_ROBIN = 2,
> >
> >     /* choose each datafile randomly */
> >     PVFS_SYS_LAYOUT_RANDOM = 3,
> >
> >     /* order the datafiles based on the list specified */
> >     PVFS_SYS_LAYOUT_LIST = 4
> > };
> > #define PVFS_SYS_LAYOUT_DEFAULT NULL
> >
> > (So obviously, default points to an invalid enum value -- namely 0).
> >
> > My guess is you wanted something more like this:
> >
> > enum PVFS_sys_layout_algorithm
> > {
> >    /* First enum value is the invalid case */
> >    PVFS_SYS_LAYOUT_INVALID = 0;
> >
> >     PVFS_SYS_LAYOUT_NONE = 1,
> >
> >     /* choose the first datafile randomly, and then round-robin in-order
> */
> >     PVFS_SYS_LAYOUT_ROUND_ROBIN = 2,
> >
> >     /* choose each datafile randomly */
> >     PVFS_SYS_LAYOUT_RANDOM = 3,
> >
> >     /* order the datafiles based on the list specified */
> >     PVFS_SYS_LAYOUT_LIST = 4
> > };
> >
> > #define PVFS_SYS_LAYOUT_DEFAULT PVFS_SYS_LAYOUT_NONE
> >
> > Then you have the assert that the layout is not 0, and you have a safe
> > initialization value if you need to set the enum type to some default
> > initial value for an outbound parameter that won't pass the assert if it
> > isn't set (due to an error) or if someone just memsets the thing by
> > accident.
> >
> > I changed the call in pvfs2-touch.c to simply use PVFS_SYS_LAYOUT_NONE in
> my
> > tree.
> >
> > Cheers,
> > Brad
> >
> > _______________________________________________
> > Pvfs2-developers mailing list
> > Pvfs2-developers at beowulf-underground.org
> > http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.beowulf-underground.org/pipermail/pvfs2-developers/attachments/20081215/76211aed/attachment.htm


More information about the Pvfs2-developers mailing list