[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