Compilation error in ntfs driver
Hello,
I think I have found a compilation error in the ntfs driver in file unistr.c:
make -C ntfs modules
make[2]: Entering directory `/usr/src/linux-2.4.7/fs/ntfs' gcc -D__KERNEL__ -I/usr/src/linux-2.4.7/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
-march=athlon -DMODULE -DNTFS_VERSION=\"1.1.16\" -c -o
unistr.o unistr.cunistr.c: In function `ntfs_collate_names':
unistr.c:99: warning: implicit declaration of function min' unistr.c:99: parse error before unsigned'
unistr.c:99: parse error before `)'
unistr.c:97: warning: `c1' might be used uninitialized in this function unistr.c: At top level:
unistr.c:118: parse error before `if'
unistr.c:123: warning: type defaults to int' in declaration of c1' unistr.c:123: name1' undeclared here (not in a function) unistr.c:123: warning: data definition has no type or storage class unistr.c:124: parse error before if'
The problem is the following part of the 2.4.9 patch:
diff -u --recursive --new-file v2.4.8/linux/fs/ntfs/unistr.c linux/fs/ntfs/unistr.c
fs/ntfs/unistr.c Wed Aug 15 01:22:17 2001 renamed from linux/fs/ntfs/unistr.c Wed Jul 25 17:10:24 2001 +2 -1
@@ -96,7 +96,7 @@ __u32 cnt; wchar_t c1, c2; - for (cnt = 0; cnt < min(name1_len, name2_len); ++cnt) + for (cnt = 0; cnt < min(unsigned int, name1_len, name2_len); ++cnt) { c1 = le16_to_cpu(*name1++);
c2 = le16_to_cpu(*name2++);
Simply remove it again, i.e. remove the "unsigned int, ", and the file compiles (with one warning).
Joachim
Signature · 2 lines
Joachim Herb mailto:[email protected]
Hello,
Yes, known problem, but wrong fix. Correct fix is to add the line:
#include <linux/kernel.h>
to the includes in fs/ntfs/unistr.c
Best regards,
Anton
Quoted 51 lines · Joachim Herb
Hello,
I think I have found a compilation error in the ntfs driver in file
unistr.c:
make -C ntfs modules
make[2]: Entering directory `/usr/src/linux-2.4.7/fs/ntfs' gcc -D__KERNEL__ -I/usr/src/linux-2.4.7/include -Wall(quoted diff) +0
-3-Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=athlon -DMODULE -DNTFS_VERSION=\"1.1.16\" -c -ounistr.o
unistr.cunistr.c: In function `ntfs_collate_names':
unistr.c:99: warning: implicit declaration of functionmin' unistr.c:99: parse error beforeunsigned'
unistr.c:99: parse error before `)'
unistr.c:97: warning: `c1' might be used uninitialized in this functionunistr.c: At top level:
unistr.c:118: parse error before `if'
unistr.c:123: warning: type defaults toint' in declaration ofc1' unistr.c:123:name1' undeclared here (not in a function) unistr.c:123: warning: data definition has no type or storage class unistr.c:124: parse error beforeif'The problem is the following part of the 2.4.9 patch:
diff -u --recursive --new-filev2.4.8/linux/fs/ntfs/unistr.clinux/fs/ntfs/unistr.cfs/ntfs/unistr.c Wed Aug 15 01:22:17 2001 renamed from linux/fs/ntfs/unistr.c Wed Jul 25 17:10:24 2001 +2
-1@@ -96,7 +96,7 @@ __u32 cnt; wchar_t c1, c2; - for (cnt = 0; cnt < min(name1_len, name2_len); ++cnt) + for (cnt = 0; cnt < min(unsigned int, name1_len, name2_len); ++cnt) { c1 = le16_to_cpu(*name1++); c2 = le16_to_cpu(*name2++);Simply remove it again, i.e. remove the "unsigned int, ", and the file compiles (with one warning).
Joachim
--
Joachim Herb
mailto:[email protected]
-
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
"Nothing succeeds like success." - Alexandre Dumas -- Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @) Linux NTFS Maintainer / WWW: http://linux-ntfs.sf.net/ ICQ: 8561279 / WWW: http://www-stu.christs.cam.ac.uk/~aia21/