diff --git a/include/asm-arm/types.h b/include/asm-arm/types.h
index 13e9806bdc02c06a2f654bb0ea36cf182022b593..e56f19d29be1643bae1781438ff93af9e331b5ed 100644
--- a/include/asm-arm/types.h
+++ b/include/asm-arm/types.h
@@ -17,9 +17,9 @@ typedef unsigned short __u16;
 typedef __signed__ int __s32;
 typedef unsigned int __u32;
 
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-typedef __signed__ long long __s64;
-typedef unsigned long long __u64;
+#if defined(__GNUC__)
+__extension__ typedef __signed__ long long __s64;
+__extension__ typedef unsigned long long __u64;
 #endif
 
 /*
diff --git a/include/asm-avr32/types.h b/include/asm-avr32/types.h
index e6c65d9179b36aa958b43ad67a87191ef61c020f..2dbea4bad35a716f427eef66cccf92310a0ba2cd 100644
--- a/include/asm-avr32/types.h
+++ b/include/asm-avr32/types.h
@@ -39,9 +39,9 @@ typedef unsigned short __u16;
 typedef __signed__ int __s32;
 typedef unsigned int __u32;
 
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-typedef __signed__ long long __s64;
-typedef unsigned long long __u64;
+#if defined(__GNUC__)
+__extension__ typedef __signed__ long long __s64;
+__extension__ typedef unsigned long long __u64;
 #endif
 
 #endif /* __ASSEMBLY__ */
diff --git a/include/asm-blackfin/types.h b/include/asm-blackfin/types.h
index 665a419f2bcd0d51917894586dc849db37317229..9fd8e03360448b4c03eee8a5dde6190818728d37 100644
--- a/include/asm-blackfin/types.h
+++ b/include/asm-blackfin/types.h
@@ -50,9 +50,9 @@ typedef __signed__ int __s32;
 typedef unsigned int __u32;
 
 /* HK0617   -- Changes to unsigned long temporarily */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-typedef __signed__ long long __s64;
-typedef unsigned long long __u64;
+#if defined(__GNUC__)
+__extension__ typedef __signed__ long long __s64;
+__extension__ typedef unsigned long long __u64;
 #endif
 
 /*
diff --git a/include/asm-m68k/types.h b/include/asm-m68k/types.h
index e673cb085d053f9af1263b09047533475c45c4d3..e944d3fd19239ab022cd4a385b3239d1e2cda35d 100644
--- a/include/asm-m68k/types.h
+++ b/include/asm-m68k/types.h
@@ -14,9 +14,9 @@ typedef unsigned short __u16;
 typedef __signed__ int __s32;
 typedef unsigned int __u32;
 
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-typedef __signed__ long long __s64;
-typedef unsigned long long __u64;
+#if defined(__GNUC__)
+__extension__ typedef __signed__ long long __s64;
+__extension__ typedef unsigned long long __u64;
 #endif
 
 typedef struct {
diff --git a/include/asm-mips/types.h b/include/asm-mips/types.h
index e757e228ac23f15333f3880bef92c37948287719..707cbf42dc206516c3431edae9f04a1ec678a912 100644
--- a/include/asm-mips/types.h
+++ b/include/asm-mips/types.h
@@ -33,9 +33,9 @@ typedef unsigned long __u64;
 
 #else
 
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-typedef __signed__ long long __s64;
-typedef unsigned long long __u64;
+#if defined(__GNUC__)
+__extension__ typedef __signed__ long long __s64;
+__extension__ typedef unsigned long long __u64;
 #endif
 
 #endif
diff --git a/include/asm-ppc/types.h b/include/asm-ppc/types.h
index 4ebbb9e028b3116a52d243e671f56793c9ff343d..7adf1450f250f29c7ff473784e0518053f04fd1f 100644
--- a/include/asm-ppc/types.h
+++ b/include/asm-ppc/types.h
@@ -14,9 +14,9 @@ typedef unsigned short __u16;
 typedef __signed__ int __s32;
 typedef unsigned int __u32;
 
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-typedef __signed__ long long __s64;
-typedef unsigned long long __u64;
+#if defined(__GNUC__)
+__extension__ typedef __signed__ long long __s64;
+__extension__ typedef unsigned long long __u64;
 #endif
 
 typedef struct {
diff --git a/include/asm-sh/types.h b/include/asm-sh/types.h
index fd00dbb82f84ff8122784d663578dd5ca935d8fa..7ba69d9707eff7eecc876b345469ee81a8461866 100644
--- a/include/asm-sh/types.h
+++ b/include/asm-sh/types.h
@@ -19,9 +19,9 @@ typedef unsigned short __u16;
 typedef __signed__ int __s32;
 typedef unsigned int __u32;
 
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-typedef __signed__ long long __s64;
-typedef unsigned long long __u64;
+#if defined(__GNUC__)
+__extension__ typedef __signed__ long long __s64;
+__extension__ typedef unsigned long long __u64;
 #endif
 
 #endif /* __ASSEMBLY__ */