Details
-
Bug
-
Resolution: Duplicate
-
Major
-
None
-
Lustre 2.5.3
-
None
-
e2fsprogs-devel 1.42.11.wc2
-
3
-
15348
Description
Some lustre code uses #include files coming from the e2fsprogs rpms, in particular the #include files in /usr/include/ext2fs. With the new version #include files from the latest v1.42.11.wc2 e2fsprogs some strictly user level code that uses those #incudes fail. The only thing that stops this bug from being a Blocker is that it isn't seen when building lustre in master. I think that's due to some of the restructuring of lustre #include that have happened lately in master. It is seen when building in b2_5 and earlier branches.
Pretty sure this is due to changes in e2fsprogs #includes as it is only seen when the new 1.42.11 is installed, not seen with 1.42.9 and earlier. example errors:
gcc -DHAVE_CONFIG_H -I. -I../.. -D__arch_lib__ -D_LARGEFILE64_SOURCE=1 -DLUSTRE _UTILS=1 -D_FILE_OFFSET_BITS=64 -include /home/bogl/other-lustre/config.h -I/hom e/bogl/other-lustre/libcfs/include -I/home/bogl/other-lustre/lnet/include -I/hom e/bogl/other-lustre/lustre/include -g -Wall -fPIC -D_GNU_SOURCE -g -O2 -Werror -MT llverfs.o -MD -MP -MF .deps/llverfs.Tpo -c -o llverfs.o llverfs.c In file included from /usr/include/e2p/e2p.h:14, from llverfs.c:97: /usr/include/ext2fs/ext2_fs.h:129: error: expected specifier-qualifier-list before ‘__u32’ /usr/include/ext2fs/ext2_fs.h:137: error: expected specifier-qualifier-list before ‘__u32’ /usr/include/ext2fs/ext2_fs.h:151: error: expected specifier-qualifier-list before ‘__u32’ /usr/include/ext2fs/ext2_fs.h:170: error: expected specifier-qualifier-list before ‘__u32’
For some reason that's not entirely clear to me generic typedefs like __u32 aren't getting pulled in correctly when building strictly userspace code, like in lustre/utils, when #includes from /usr/include/ext2fs are used.