[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Condor-users] Building Condor on SLES10

Jan Ploski wrote:

An attempt to build Condor 7.0.1 from source on SLES10 SP1 fails with the following error:

gcc -I.. -I../.. -I../h -I../condor_includes -I../condor_c++_util -I../condor_daemon_client -DHAVE_CONFIG_H -DX86_64=X86_64 -DLINUX=LINUX -I/data/jploski/condor-7.0.1/externals/install/krb5-1.4.3/include -I/data/jploski/condor-7.0.1/externals/install/globus-4.0.5/include/gcc64dbg -DWANT_QUILL -DWANT_TT -I/data/jploski/condor-7.0.1/externals/install/gcb-1.5.5/include -g -g -Wall -W -Wextra -Wfloat-equal -Wshadow -Wendif-labels -Wpointer-arith -Wcast-qual -Wcast-align -Wvolatile-register-var -fstack-protector -DGLIBC=GLIBC -DGLIBC24=GLIBC24 -DC_COMP_KIND_GCC -DC_COMP_MAJOR_GCC_4 -DC_COMP_MINOR_GCC_4_1 -DC_COMP_PATCH_GCC_4_1_2 -DWITH_OPENSSL -DCOMPILE_SOAP_SSL -I/data/jploski/condor-7.0.1/externals/install/pcre-7.6/include -I/data/jploski/condor-7.0.1/externals/install/coredumper-0.2/include -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -c -o fs_util.o fs_util.c
In file included from /usr/include/linux/nfs4.h:17,
                 from /usr/include/linux/nfsd/const.h:15,
                 from fs_util.c:68:
/usr/include/linux/list.h:814:2: warning: #warning "don't include kernel headers in userspace"
In file included from /usr/include/linux/nfsd/const.h:15,
                 from fs_util.c:68:
/usr/include/linux/nfs4.h:106: error: field 'l_ace' has incomplete type
/usr/include/linux/nfs4.h:111: error: field 'ace_head' has incomplete type
fs_util.c:210:3: warning: #warning "No valid fs type detection"
fs_util.c:201: warning: unused parameter 'path'
make[1]: *** [fs_util.o] Error 1
make[1]: Leaving directory `/data/jploski/condor-7.0.1/src/condor_util_lib'
make: *** [util_lib] Error 2

Any idea what is wrong?

Here is the explanation and solution I found:

fs_util.c:68 includes linux/nfsd/const.h which in turn includes linux/nfs4.h. linux/nfs4.h includes linux/list.h and refers to the structure list_head, normally defined there. However, linux/list.h does not define this structure when included from "user space" (i.e., without a defined preprocessor macro __KERNEL__). It just emits the warning "don't include kernel headers in userspace". That's why "incomplete type" errors in nfs4.h are reported next.

To work around this problem, I simply commented out the inclusion of linux/nfsd/const.h in fs_util.c:68. Perhaps Condor developers could also fix this, possibly conditional on some additional information.

Jan Ploski