Fix linux/types.h for compiling with -ansi
PATCH 1/1 Fix linux/types.h for compiling with -ansi
I've got a symple little patch to apply:
when including <linux/types.h> in a program and compiling with 'gcc -ansi' gcc complains:
`In file included from test.c:1:/usr/include/linux/types.h:162: error: parse error before "__le64" /usr/include/linux/types.h:163: error: parse error before "__be64"`
These lines are:
typedef __u64 __bitwise __le64; typedef __u64 __bitwise __be64;
__u64 isn't defined in include/asm-386/types.h when __STRICT_ANSI__ is defined (as always when calling gcc -ansi):
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
typedef __signed__ long long __s64;
typedef unsigned long long __u64;
#endif
The following patch for linux-2.6.10-rc2 solves the problem:
(The patch wouldn't be needed for some 64Bit architectures, but i didn't find an easy way of sorting these out)
linux/types.h_new 2004-11-27 17:24:18.630386944 +0000 renamed from linux/types.h 2004-11-27 17:19:25.509948024 +0000 +0 -0
@@ -157,8 +157,10 @@ typedef __u16 __bitwise __le16;
typedef __u16 __bitwise __be16;
typedef __u32 __bitwise __le32;
typedef __u32 __bitwise __be32;
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__) typedef __u64 __bitwise __le64;
typedef __u64 __bitwise __be64;
+#endif
struct ustat {
__kernel_daddr_t f_tfree;