Hello,

I want to try out orangefs-2.8.5 on Gentoo, vanilla kernel 3.1.10.
I have problems during the build process.

Default configure status is:

***** Displaying PVFS Configuration Information *****
------------------------------------------------------
PVFS2 configured to build karma gui               : yes
PVFS2 configured to perform coverage analysis     :  no
PVFS2 configured for aio threaded callbacks       : yes
PVFS2 configured to use FUSE                      :  no
PVFS2 configured for the 2.6/3 kernel module      :  no
PVFS2 configured for the 2.4.x kernel module      :  no
PVFS2 configured for using the mmap-ra-cache      :  no
PVFS2 will use workaround for redhat 2.4 kernels  :  no
PVFS2 will use workaround for buggy NPTL          :  no
PVFS2 server will be built                        : yes

PVFS2 version string: 2.8.5-orangefs

Compressed config.log file is attached to this mail.

First of all, build of apps/vis failes:

  CC            src/apps/vis/simple.o
src/apps/vis/simple.c: In function ‘main’:
src/apps/vis/simple.c:62:2: error: invalid use of undefined type ‘struct 
PVFS_mgmt_perf_stat’
src/apps/vis/simple.c:62:2: error: invalid use of undefined type ‘struct 
PVFS_mgmt_perf_stat’
src/apps/vis/simple.c:62:64: error: dereferencing pointer to incomplete type
make: *** [src/apps/vis/simple.o] Error 1

configuring with --disable-karma changes nothing.

1) After some look at vis code I'm wondering is this code dead or
whatever? Code at src/apps/karma/comm.c says:

/* this struct is now only used by karma */
/* perf numbers are returned as an array of int64_t */
 
struct PVFS_mgmt_perf_stat
{
    int32_t valid_flag;
    int64_t start_time_ms;
    int64_t read;
    int64_t write;
    int64_t metadata_read;
    int64_t metadata_write;
};

So why this structure is still used by outside code?
I tried to add its declaration at src/apps/vis/pvfs2-vis.h as
follows in the attached orangefs-2.8.5-vis-header.patch.
It fixes a problem with simple.c, but reveals further and more grave
issues:

  CC            src/apps/vis/pvfs2-vis.o
src/apps/vis/pvfs2-vis.c: In function ‘pvfs2_vis_start’:
src/apps/vis/pvfs2-vis.c:182:11: warning: passing argument 3 of 
‘PVFS_mgmt_perf_mon_list’ from incompatible pointer type
./include/pvfs2-mgmt.h:240:12: note: expected ‘int64_t **’ but argument is of 
type ‘struct PVFS_mgmt_perf_stat **’
src/apps/vis/pvfs2-vis.c:182:11: warning: passing argument 8 of 
‘PVFS_mgmt_perf_mon_list’ makes pointer from integer without a cast
./include/pvfs2-mgmt.h:240:12: note: expected ‘int *’ but argument is of type 
‘int’
src/apps/vis/pvfs2-vis.c:182:11: warning: passing argument 9 of 
‘PVFS_mgmt_perf_mon_list’ makes integer from pointer without a cast
./include/pvfs2-mgmt.h:240:12: note: expected ‘int’ but argument is of type 
‘void *’
src/apps/vis/pvfs2-vis.c:182:11: error: too few arguments to function 
‘PVFS_mgmt_perf_mon_list’
./include/pvfs2-mgmt.h:240:12: note: declared here
src/apps/vis/pvfs2-vis.c: In function ‘poll_for_updates’:
src/apps/vis/pvfs2-vis.c:297:11: warning: passing argument 3 of 
‘PVFS_mgmt_perf_mon_list’ from incompatible pointer type
./include/pvfs2-mgmt.h:240:12: note: expected ‘int64_t **’ but argument is of 
type ‘struct PVFS_mgmt_perf_stat **’
src/apps/vis/pvfs2-vis.c:297:11: warning: passing argument 8 of 
‘PVFS_mgmt_perf_mon_list’ makes pointer from integer without a cast
./include/pvfs2-mgmt.h:240:12: note: expected ‘int *’ but argument is of type 
‘int’
src/apps/vis/pvfs2-vis.c:297:11: warning: passing argument 9 of 
‘PVFS_mgmt_perf_mon_list’ makes integer from pointer without a cast
./include/pvfs2-mgmt.h:240:12: note: expected ‘int’ but argument is of type 
‘void *’
src/apps/vis/pvfs2-vis.c:297:11: error: too few arguments to function 
‘PVFS_mgmt_perf_mon_list’
./include/pvfs2-mgmt.h:240:12: note: declared here
make: *** [src/apps/vis/pvfs2-vis.o] Error 1

It looks like PVFS_mgmt_perf_mon_list API was completely changed: 
different types and even number of arguments and I should note that
int64_t and struct PVFS_mgmt_perf_stat looks like completely
incompatible types.

Also currently vis there is no way to control from configure script
whether vis code should be built or not: if SDL headers and libraries
are present, vis will be built unconditionally, which results in huge
problems on my systems. This is very bad, because all optional 
dependencies must be controllable from configure. I'll look for an 
appropriate change to the build system later.

One more note: I have noticed that prepare script uses aclocal-1.7
call. Why this is needed? It looks like it works well with just
aclocal which on my system results into aclocal-1.11 call.

Best regards,
Andrew Savchenko

Attachment: config.log.xz
Description: Binary data

Attachment: orangefs-2.8.5-vis-header.patch
Description: Binary data

Attachment: pgpEyd5R4x8UF.pgp
Description: PGP signature

_______________________________________________
Pvfs2-users mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users

Reply via email to