diff --git a/xen/include/xen/stdarg.h b/xen/include/xen/stdarg.h index 57e2c0e3bf..8d9de51714 100644 --- a/xen/include/xen/stdarg.h +++ b/xen/include/xen/stdarg.h @@ -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