On Fri, Mar 27, 2009 at 05:25:44PM -0400, Brian J. Murrell wrote: > I'm trying to build Lustre with OFED 1.4.1-rc2 and RHEL5.3's > 2.6.18-128.1.1.el5 kernel and getting the following error: > > gcc > -Wp,-MD,/mnt/lustre/brian/lustre/OFED-1.4.1-rc2/build/b1_8/lustre/llite/.lloop.o.d > -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.3.2/include -D__KERNEL__ > -I/mnt/lustre/brian/lustre/OFED-1.4.1-rc2/build/b1_8/foo > -I/usr/src/ofa_kernel/kernel_addons/backport/2.6.18-EL5.3/include/ > -I/usr/src/ofa_kernel/include -Iinclude -include include/linux/autoconf.h > -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing > -fno-common -Wstrict-prototypes -Wundef -Werror-implicit-function-declaration > -Os -pipe -msoft-float -fno-builtin-sprintf -fno-builtin-log2 > -fno-builtin-puts -mpreferred-stack-boundary=2 -march=i686 -mtune=generic > -mtune=generic -mregparm=3 -ffreestanding -Iinclude/asm-i386/mach-generic > -Iinclude/asm-i386/mach-default -fomit-frame-pointer -g -fno-stack-protector > -Wdeclaration-after-statement -Wno-pointer-sign -include > /mnt/lustre/brian/lustre/OFED-1.4.1-rc2/build/b1_8/config.h -g > -I/mnt/lustre/brian/lustre/OFED-1.4.1-rc2/build/b1_8/lnet/include > -I/mnt/lustre/brian/lustre/OFED-1.4.1-rc2/build/b1_8/lnet/include > -I/mnt/lustre/brian/lustre/OFED-1.4.1-rc2/build/b1_8/lustre/include -g -O2 > -I/opt/mpich/include -DMODULE -D"KBUILD_STR(s)=#s" > -D"KBUILD_BASENAME=KBUILD_STR(lloop)" > -D"KBUILD_MODNAME=KBUILD_STR(llite_lloop)" -c -o > /mnt/lustre/brian/lustre/OFED-1.4.1-rc2/build/b1_8/lustre/llite/.tmp_lloop.o > /mnt/lustre/brian/lustre/OFED-1.4.1-rc2/build/b1_8/lustre/llite/lloop.c > In file included > from > /mnt/lustre/brian/lustre/OFED-1.4.1-rc2/build/b1_8/lustre/include/linux/lustre_compat25.h:337, > > from > /mnt/lustre/brian/lustre/OFED-1.4.1-rc2/build/b1_8/lustre/include/linux/lvfs.h:49, > > from > /mnt/lustre/brian/lustre/OFED-1.4.1-rc2/build/b1_8/lustre/include/lvfs.h:48, > > from > /mnt/lustre/brian/lustre/OFED-1.4.1-rc2/build/b1_8/lustre/include/obd_support.h:41, > > from > /mnt/lustre/brian/lustre/OFED-1.4.1-rc2/build/b1_8/lustre/include/lustre_cfg.h:211, > > from > /mnt/lustre/brian/lustre/OFED-1.4.1-rc2/build/b1_8/lustre/include/lustre_lib.h:47, > > from > /mnt/lustre/brian/lustre/OFED-1.4.1-rc2/build/b1_8/lustre/llite/lloop.c:111: > include/linux/mpage.h:45: error: conflicting types for > ‘backport_write_cache_pages’ > /usr/src/ofa_kernel/kernel_addons/backport/2.6.18-EL5.3/include/linux/writeback.h:10: > error: previous declaration of ‘backport_write_cache_pages’ was here > > Looks like there is some conflict in the re-definition of > write_cache_pages() in the backport?
Yes, the NFS-RDMA backport redefined write_cache_pages, because it was defined in a header file but the symbol was not exported. The error is mostly likely caused by some kind of circular #include. If you have writeback.h and mpage.h included in lustre_compat25.h (or one of the other files), the it could be causing this. > > My kernel's mpage.h is defining it as: > > int > write_cache_pages(struct address_space *mapping, int range_cont, > struct writeback_control *wbc, writepage_data_t writepage, > void *data); > > Shall I file a bug on this? Any thoughts on how to resolve? Feel free to file a bug. I would recommend looking for the dual includes I mentioned above. One way to resolve it would be to move kernel_addons/backport/2.6.18-EL5.3/include/linux/writeback.h to kernel_addons/backport/2.6.18-EL5.3/include/linux/mpage.h I can send you a quick patch to try out, if you are interested. Thanks, Jon > > b. > > _______________________________________________ > ewg mailing list > [email protected] > http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg _______________________________________________ ewg mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
