--- /dev/null
+--- a/arch/arm/bits/alltypes.h.sh
++++ b/arch/arm/bits/alltypes.h.sh
+@@ -21,6 +21,7 @@ TYPEDEF int ssize_t;
+ TYPEDEF int ptrdiff_t;
+
+ TYPEDEF __builtin_va_list va_list;
++#define __gnuc_va_list va_list
+
+ #ifndef __cplusplus
+ TYPEDEF unsigned wchar_t;
+--- a/arch/i386/bits/alltypes.h.sh
++++ b/arch/i386/bits/alltypes.h.sh
+@@ -25,6 +25,7 @@ TYPEDEF __builtin_va_list va_list;
+ #else
+ TYPEDEF struct __va_list * va_list;
+ #endif
++#define __gnuc_va_list va_list
+
+ #ifndef __cplusplus
+ #ifdef __WCHAR_TYPE__
+--- a/arch/microblaze/bits/alltypes.h.sh
++++ b/arch/microblaze/bits/alltypes.h.sh
+@@ -21,6 +21,7 @@ TYPEDEF int ssize_t;
+ TYPEDEF int ptrdiff_t;
+
+ TYPEDEF __builtin_va_list va_list;
++#define __gnuc_va_list va_list
+
+ #ifndef __cplusplus
+ TYPEDEF int wchar_t;
+--- a/arch/mips/bits/alltypes.h.sh
++++ b/arch/mips/bits/alltypes.h.sh
+@@ -21,6 +21,7 @@ TYPEDEF int ssize_t;
+ TYPEDEF int ptrdiff_t;
+
+ TYPEDEF __builtin_va_list va_list;
++#define __gnuc_va_list va_list
+
+ #ifndef __cplusplus
+ TYPEDEF int wchar_t;
+--- a/arch/powerpc/bits/alltypes.h.sh
++++ b/arch/powerpc/bits/alltypes.h.sh
+@@ -21,6 +21,7 @@ TYPEDEF int ssize_t;
+ TYPEDEF int ptrdiff_t;
+
+ TYPEDEF __builtin_va_list va_list;
++#define __gnuc_va_list va_list
+
+ #ifndef __cplusplus
+ TYPEDEF long wchar_t;
+--- a/arch/x86_64/bits/alltypes.h.sh
++++ b/arch/x86_64/bits/alltypes.h.sh
+@@ -20,6 +20,7 @@ TYPEDEF unsigned long size_t;
+ TYPEDEF long ssize_t;
+ TYPEDEF long ptrdiff_t;
+ TYPEDEF __builtin_va_list va_list;
++#define __gnuc_va_list va_list
+
+ #ifndef __cplusplus
+ TYPEDEF int wchar_t;
--- /dev/null
+--- a/arch/arm/bits/alltypes.h.sh
++++ b/arch/arm/bits/alltypes.h.sh
+@@ -21,6 +21,7 @@ TYPEDEF int ssize_t;
+ TYPEDEF int ptrdiff_t;
+
+ TYPEDEF __builtin_va_list va_list;
++#define __gnuc_va_list va_list
+
+ #ifndef __cplusplus
+ TYPEDEF unsigned wchar_t;
+--- a/arch/i386/bits/alltypes.h.sh
++++ b/arch/i386/bits/alltypes.h.sh
+@@ -25,6 +25,7 @@ TYPEDEF __builtin_va_list va_list;
+ #else
+ TYPEDEF struct __va_list * va_list;
+ #endif
++#define __gnuc_va_list va_list
+
+ #ifndef __cplusplus
+ #ifdef __WCHAR_TYPE__
+--- a/arch/microblaze/bits/alltypes.h.sh
++++ b/arch/microblaze/bits/alltypes.h.sh
+@@ -21,6 +21,7 @@ TYPEDEF int ssize_t;
+ TYPEDEF int ptrdiff_t;
+
+ TYPEDEF __builtin_va_list va_list;
++#define __gnuc_va_list va_list
+
+ #ifndef __cplusplus
+ TYPEDEF int wchar_t;
+--- a/arch/mips/bits/alltypes.h.sh
++++ b/arch/mips/bits/alltypes.h.sh
+@@ -21,6 +21,7 @@ TYPEDEF int ssize_t;
+ TYPEDEF int ptrdiff_t;
+
+ TYPEDEF __builtin_va_list va_list;
++#define __gnuc_va_list va_list
+
+ #ifndef __cplusplus
+ TYPEDEF int wchar_t;
+--- a/arch/powerpc/bits/alltypes.h.sh
++++ b/arch/powerpc/bits/alltypes.h.sh
+@@ -21,6 +21,7 @@ TYPEDEF int ssize_t;
+ TYPEDEF int ptrdiff_t;
+
+ TYPEDEF __builtin_va_list va_list;
++#define __gnuc_va_list va_list
+
+ #ifndef __cplusplus
+ TYPEDEF long wchar_t;
+--- a/arch/x86_64/bits/alltypes.h.sh
++++ b/arch/x86_64/bits/alltypes.h.sh
+@@ -20,6 +20,7 @@ TYPEDEF unsigned long size_t;
+ TYPEDEF long ssize_t;
+ TYPEDEF long ptrdiff_t;
+ TYPEDEF __builtin_va_list va_list;
++#define __gnuc_va_list va_list
+
+ #ifndef __cplusplus
+ TYPEDEF int wchar_t;