diff -r 9a84303b600c xen/include/xen/stdarg.h --- a/xen/include/xen/stdarg.h Thu Jan 05 14:46:28 2012 +0100 +++ b/xen/include/xen/stdarg.h Thu Jan 05 16:15:47 2012 +0100 @@ -5,7 +5,17 @@ # include "/usr/include/stdarg.h" #elif defined (__NetBSD__) typedef __builtin_va_list va_list; -# define va_start(ap, last) __builtin_stdarg_start((ap), (last)) +# ifdef __GNUC__ +# define __GNUC_PREREQ__(x, y) \ + ((__GNUC__ == (x) && __GNUC_MINOR__ >= (y)) || \ + (__GNUC__ > (x))) +# else +# define __GNUC_PREREQ__(x, y) 0 +# endif +# if !__GNUC_PREREQ__(4, 5) +# define __builtin_va_start(ap, last) __builtin_stdarg_start((ap), (last)) +# endif +# define va_start(ap, last) __builtin_va_start((ap), (last)) # define va_end(ap) __builtin_va_end(ap) # define va_arg __builtin_va_arg #else