[ewg] error with RHEL 5.3 backports in 1.4.1-rc2

Jon Mason jon at opengridcomputing.com
Sun Mar 29 12:23:48 PDT 2009


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
> ewg at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg



More information about the ewg mailing list