Skip to contentSkip to conversation

Compilation error in ntfs driver

PATCH Joachim Herb 2 participants 2 messages Aug 19, 2001 NTFS filesystem

lore
Share & tools
lore
#0 lore raw

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.c
unistr.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]
#1 lore raw

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 -o

unistr.o unistr.c
unistr.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
--
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/