[2.5.15] NTFS does not compile. (with gcc3.1)
Dear kernel developers,
I know, I know, I am not supposed to use gcc 3.x with linux kernel build, but maybe someone can just give me a hint what gcc option to add to NTFS build to get it to work?
I just tried to build 2.5.15 and it stops during compilation of fs/ntfs/aops.c because of included header file layout.h:
gcc -D__KERNEL__ -I/usr/src/linux-2.5.15/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DNTFS_VERSION=\"2.0.6\" -DDEBUG -DKBUILD_BASENAME=aops -c -o aops.o aops.c
In file included from attrib.h:31,
from debug.h:31,
from ntfs.h:43,
from aops.c:30:layout.h:299: unnamed fields of type other than struct or union are not allowed
layout.h:1450: unnamed fields of type other than struct or union are not allowed
layout.h:1466: unnamed fields of type other than struct or union are not allowed
layout.h:1715: unnamed fields of type other than struct or union are not allowed
layout.h:1892: unnamed fields of type other than struct or union are not allowed
layout.h:2052: unnamed fields of type other than struct or union are not allowed
layout.h:2064: unnamed fields of type other than struct or union are not allowed
make[3]: *** [aops.o] Error 1
make[3]: Leaving directory /usr/src/linux-2.5.15/fs/ntfs' make[2]: *** [first_rule] Error 2
make[2]: Leaving directory /usr/src/linux-2.5.15/fs/ntfs' make[1]: *** [_subdir_ntfs] Error 2
make[1]: Leaving directory /usr/src/linux-2.5.15/fs'
make: *** [_dir_fs] Error 2
Regards,
Axel
Hi,
This is a known issue with gcc-3.1. It fails to realize that the unnamed fields are typedef-ed structs/unions. And I really cannot understand why gcc-3.1 is barfing like that. I consider it a gcc-3.1 bug.
I have been meaning to contact the gcc developers about this for a while... Thanks for the reminder!
For the moment you can probably bypass this problem by making the driver work the gcc-2.95 way by editing fs/ntfs/types.h where it says
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 96)
just change that to say:
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 96) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
Note this is a kludge and should NOT be applied to the main tree! I want gcc fixed not kludges added to ntfs...
Best regards,
Anton
Quoted 47 lines · Axel H. Siebenwirth
Dear kernel developers,
I know, I know, I am not supposed to use gcc 3.x with linux kernel build, but maybe someone can just give me a hint what gcc option to add to NTFS build to get it to work?
I just tried to build 2.5.15 and it stops during compilation offs/ntfs/aops.cbecause of included header filelayout.h:gcc -D__KERNEL__ -I/usr/src/linux-2.5.15/include -Wall -Wstrict-prototypes
(quoted diff) +0
-3-Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DNTFS_VERSION=\"2.0.6\" -DDEBUG -DKBUILD_BASENAME=aops -c -o aops.o aops.cIn file included from attrib.h:31,
from debug.h:31, from ntfs.h:43, from aops.c:30:layout.h:299: unnamed fields of type other than struct or union are not allowed
layout.h:1450: unnamed fields of type other than struct or union are not allowed
layout.h:1466: unnamed fields of type other than struct or union are not allowed
layout.h:1715: unnamed fields of type other than struct or union are not allowed
layout.h:1892: unnamed fields of type other than struct or union are not allowed
layout.h:2052: unnamed fields of type other than struct or union are not allowed
layout.h:2064: unnamed fields of type other than struct or union are not allowed
make[3]: *** [aops.o] Error 1
make[3]: Leaving directory/usr/src/linux-2.5.15/fs/ntfs' make[2]: *** [first_rule] Error 2
make[2]: Leaving directory/usr/src/linux-2.5.15/fs/ntfs' make[1]: *** [_subdir_ntfs] Error 2
make[1]: Leaving directory/usr/src/linux-2.5.15/fs'
make: *** [_dir_fs] Error 2Regards,
Axel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Signature · 5 lines
"I've not lost my mind. It's backed up on tape somewhere." - Unknown -- Anton Altaparmakov <aia21 at cantab.net> (replace at with @) Linux NTFS Maintainer / IRC: #ntfs on irc.openprojects.net WWW: http://linux-ntfs.sf.net/ & http://www-stu.christs.cam.ac.uk/~aia21/