[Pvfs2-developers] Tree doesn't build (at least for gcc 4.3)
Sam Lang
slang at mcs.anl.gov
Mon Dec 15 14:36:06 EST 2008
Brad,
This was laziness on my part. Should be fixed now.
-sam
On Dec 15, 2008, at 1:31 PM, Bradley Settlemyer 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
More information about the Pvfs2-developers
mailing list