diff options
Diffstat (limited to 'newlib/libc/include/stdio.h')
-rw-r--r-- | newlib/libc/include/stdio.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h index 866d8167d..097b0f665 100644 --- a/newlib/libc/include/stdio.h +++ b/newlib/libc/include/stdio.h @@ -35,9 +35,22 @@ #include <sys/cdefs.h> #include <stddef.h> +/* typedef only __gnuc_va_list, used throughout the header */ #define __need___va_list #include <stdarg.h> +/* typedef va_list only when required */ +#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE +#ifdef __GNUC__ +#ifndef _VA_LIST_DEFINED +typedef __gnuc_va_list va_list; +#define _VA_LIST_DEFINED +#endif +#else /* !__GNUC__ */ +#include <stdarg.h> +#endif +#endif /* __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE */ + /* * <sys/reent.h> defines __FILE, _fpos_t. * They must be defined there because struct _reent needs them (and we don't |