[PATCH 2.4] byteorder.h breaks with __STRICT_ANSI__ defined(trivial)

From: Martin Schlemmer
Date: Sat Nov 15 2003 - 08:13:01 EST


Hi Marcelo

This patch fixes include/asm-i386/types.h to define __s64 and __u64
even with -ansi passed to gcc, else we get breaks for userland that
may include include/asm-i386/byteorder.h through another header.

It is with help/comments from David S. Miller and H. Peter Anvin.


Thanks,

--
Martin Schlemmer
--- linux-2.4.22/include/asm-i386/types.h 2003-11-10 07:38:32.000000000 +0200
+++ linux-2.4.22.ext/include/asm-i386/types.h 2003-11-10 07:48:42.000000000 +0200
@@ -17,11 +17,15 @@
typedef __signed__ int __s32;
typedef unsigned int __u32;

-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-typedef __signed__ long long __s64;
-typedef unsigned long long __u64;
+#ifndef __GNUC__
+# ifndef __extension__
+# define __extension__
+# endif
#endif

+__extension__ typedef __signed__ long long __s64;
+__extension__ typedef unsigned long long __u64;
+
/*
* These aren't exported outside the kernel to avoid name space clashes
*/