[lustre-discuss] Lustre Client on Fedora 23

Dilger, Andreas andreas.dilger at intel.com
Fri Sep 30 18:51:08 PDT 2016


The current Lustre hasn't been updated to the 4.7 kernel yet.  As you
see the newer kernel replaced PAGE_CACHE_* with PAGE_*.  A patch to
fix that (basically simple search and replace) would be welcome.  You
should also add PAGE_CACHE_SHIFT and PAGE_CACHE_SIZE into
contrib/scripts/checkpatch.pl::dep_functions so that any future patches
trying to add them will be flagged.

See http://wiki.lustre.org/Submitting_Changes for details.  I've filed
LU-8661 to track patches needed for Linux 4.7 kernels so you can use
that for your patch submission.

Cheers, Andreas
-- 
Andreas Dilger

Lustre Principal Architect
Intel High Performance Data Division

On 2016/09/30, 13:03, "lustre-discuss on behalf of Michael Watters" <lustre-discuss-bounces at lists.lustre.org on behalf of wattersm at watters.ws> wrote:

    Looks like I may be stuck.  I went to the build directory and ran 
    ./configure manually which seemed to work but make fails to build.
    
     > 1081  ./configure --program-prefix= --disable-dependency-tracking 
    --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin 
    --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include 
    --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var 
    --sharedstatedir=/var/lib --mandir=/usr/share/man 
    --infodir=/usr/share/info --enable-tests --enable-utils --enable-modules 
    --without-zfs --disable-dlc --with-release=4.7.3_100.fc23.x86_64 
    --with-linux=/lib/modules/4.7.3-100.fc23.x86_64/source 
    --with-linux-obj=/lib/modules/4.7.3-100.fc23.x86_64/build 
    --with-kmp-moddir=extra --disable-server
    
    Here is the make output which appears to be an issue with the 
    libcfs_string.h file.
    
     > make[3]: Entering directory '/usr/src/kernels/4.7.3-100.fc23.x86_64'
       CC [M] 
    /root/rpmbuild/BUILD/lustre-2.8.0/libcfs/libcfs/linux/linux-tracefile.o
    In file included from 
    /root/rpmbuild/BUILD/lustre-2.8.0/libcfs/include/libcfs/libcfs.h:125:0,
                      from 
    /root/rpmbuild/BUILD/lustre-2.8.0/libcfs/libcfs/linux/linux-tracefile.c:40:
    /root/rpmbuild/BUILD/lustre-2.8.0/libcfs/include/libcfs/bitmap.h: In 
    function ‘CFS_ALLOCATE_BITMAP’:
    /root/rpmbuild/BUILD/lustre-2.8.0/libcfs/include/libcfs/bitmap.h:52:247: 
    error: ‘PAGE_CACHE_SHIFT’ undeclared (first use in this function)
    /root/rpmbuild/BUILD/lustre-2.8.0/libcfs/include/libcfs/bitmap.h:52:247: 
    note: each undeclared identifier is reported only once for each function 
    it appears in
    In file included from 
    /root/rpmbuild/BUILD/lustre-2.8.0/libcfs/include/libcfs/libcfs.h:132:0,
                      from 
    /root/rpmbuild/BUILD/lustre-2.8.0/libcfs/libcfs/linux/linux-tracefile.c:40:
    /root/rpmbuild/BUILD/lustre-2.8.0/libcfs/include/libcfs/libcfs_string.h: 
    In function ‘cfs_expr_list_values_free’:
    /root/rpmbuild/BUILD/lustre-2.8.0/libcfs/include/libcfs/libcfs_string.h:95:1364: 
    error: ‘PAGE_CACHE_SHIFT’ undeclared (first use in this function)
    scripts/Makefile.build:289: recipe for target 
    '/root/rpmbuild/BUILD/lustre-2.8.0/libcfs/libcfs/linux/linux-tracefile.o' 
    failed
    make[6]: *** 
    [/root/rpmbuild/BUILD/lustre-2.8.0/libcfs/libcfs/linux/linux-tracefile.o] 
    Error 1
    scripts/Makefile.build:440: recipe for target 
    '/root/rpmbuild/BUILD/lustre-2.8.0/libcfs/libcfs' failed
    make[5]: *** [/root/rpmbuild/BUILD/lustre-2.8.0/libcfs/libcfs] Error 2
    scripts/Makefile.build:440: recipe for target 
    '/root/rpmbuild/BUILD/lustre-2.8.0/libcfs' failed
    make[4]: *** [/root/rpmbuild/BUILD/lustre-2.8.0/libcfs] Error 2
    Makefile:1461: recipe for target 
    '_module_/root/rpmbuild/BUILD/lustre-2.8.0' failed
    make[3]: *** [_module_/root/rpmbuild/BUILD/lustre-2.8.0] Error 2
    make[3]: Leaving directory '/usr/src/kernels/4.7.3-100.fc23.x86_64'
    autoMakefile:1031: recipe for target 'modules' failed
    make[2]: *** [modules] Error 2
    make[2]: Leaving directory '/root/rpmbuild/BUILD/lustre-2.8.0'
    autoMakefile:578: recipe for target 'all-recursive' failed
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory '/root/rpmbuild/BUILD/lustre-2.8.0'
    autoMakefile:473: recipe for target 'all' failed
    make: *** [all] Error 2
    
    
    
    On 09/28/2016 02:13 PM, Patrick Farrell wrote:
    > Michael,
    >
    > I suspect a change in GCC/ld behavior as the cause for your original 
    > error.  I don't think setting PIC mode is the answer, since that 
    > doesn't work for kernel mode code.  I think you're probably compiling 
    > Lustre with an extremely new GCC/ld version, and some behavior change 
    > there is causing a failure.
    >
    > Since it's just in the configure check to see if we're doing cross 
    > compiling, perhaps you can short-circuit that check?  Find it and 
    > replace it with false (assuming you are not cross compiling...).
    >
    > Anyway, I think that error is where you should focus.  You could try 
    > rebuilding Lustre directly from source, but I bet you'll hit the same 
    > error in configure.
    >
    > - Patrick
    > On 09/28/2016 11:20 AM, Michael Watters wrote:
    >> Has anybody been able to build the lustre client on Fedora 23 or 24?  
    >> I'm getting a compile error when I attempt to build the SRPM for 
    >> 2.8.0 which is shown here.
    >>
    >> http://paste.fedoraproject.org/437345/77178147/
    >>
    >> Adding "-fPIC" to the optflags in the spec file also did not help, 
    >> the build then fails with a different error as follows.
    >>
    >> EXTRA_KCFLAGS: -include /root/rpmbuild/BUILD/lustre-2.8.0/undef.h 
    >> -include /root/rpmbuild/BUILD/lustre-2.8.0/config.h  -g 
    >> -I/root/rpmbuild/BUILD/lustre-2.8.0/libcfs/include 
    >> -I/root/rpmbuild/BUILD/lustre-2.8.0/lnet/include 
    >> -I/root/rpmbuild/BUILD/lustre-2.8.0/lustre/include
    >>
    >> Type 'make' to build Lustre.
    >>
    >> + make -j12 -s
    >>
    >> Making all in .
    >>
    >> /root/rpmbuild/BUILD/lustre-2.8.0/lnet/lnet/api-ni.c:1:0: error: code 
    >> model kernel does not support PIC mode
    >>
    >>  /*
    >>
    >>  ^
    >>
    >> /root/rpmbuild/BUILD/lustre-2.8.0/lustre/fid/fid_request.c:1:0: 
    >> error: code model kernel does not support PIC mode
    >>
    >>  /*
    >>
    >>  ^
    >>
    >> /root/rpmbuild/BUILD/lustre-2.8.0/lustre/fld/fld_request.c:1:0: 
    >> error: code model kernel does not support PIC mode
    >>
    >>  /*
    >>
    >>  ^
    >>
    >> scripts/Makefile.build:289: recipe for target 
    >> '/root/rpmbuild/BUILD/lustre-2.8.0/lnet/lnet/api-ni.o' failed
    >>
    >> make[6]: *** [/root/rpmbuild/BUILD/lustre-2.8.0/lnet/lnet/api-ni.o] 
    >> Error 1
    >>
    >> /root/rpmbuild/BUILD/lustre-2.8.0/lustre/llite/dcache.c:1:0: error: 
    >> code model kernel does not support PIC mode
    >>
    >>  /*
    >>
    >>
    >> Do I need to build the client from source or use a different lustre 
    >> version?  My servers are all running 2.8.0 on CentOS 7 however we run 
    >> Fedora on our workstations which doesn't have a native client package.
    >>
    >> _______________________________________________
    >> lustre-discuss mailing list
    >> lustre-discuss at lists.lustre.org
    >> http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org
    >
    > _______________________________________________
    > lustre-discuss mailing list
    > lustre-discuss at lists.lustre.org
    > http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org
    
    _______________________________________________
    lustre-discuss mailing list
    lustre-discuss at lists.lustre.org
    http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org
    



More information about the lustre-discuss mailing list