From c5fee55606ef77b1ec665e2903848cc9c504297c Mon Sep 17 00:00:00 2001 From: Jon Turney Date: Thu, 4 Feb 2016 17:07:44 +0000 Subject: stdio.h: Use __POSIX_VISIBLE etc. guards for POSIX 1003.1:2001 functions Current mesa expects stdio.h to prototype fileno() when compiling with gcc -std=c99 -D_XOPEN_SOURCE Fix the 'POSIX 1003.1:2001' block in stdio.h to prototype functions if not __STRICT_ANSI__, or _BSD_SOURCE, _POSIX_C_SOURCE or _XOPEN_SOURCE are defined appropriately As far as I can tell, despite being in this block, setbuffer() and setlinebuf() are BSDisms which aren't in POSIX 1003.1:2001 Signed-off-by: Jon Turney --- newlib/libc/include/stdio.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'newlib/libc') diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h index 9d8fd862e..b7a934421 100644 --- a/newlib/libc/include/stdio.h +++ b/newlib/libc/include/stdio.h @@ -311,17 +311,23 @@ int _EXFUN(vsscanf, (const char *__restrict, const char *__restrict, __VALIST) * Routines in POSIX 1003.1:2001. */ -#ifndef __STRICT_ANSI__ +#if !defined(__STRICT_ANSI__) || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 #ifndef _REENT_ONLY FILE * _EXFUN(fdopen, (int, const char *)); #endif int _EXFUN(fileno, (FILE *)); -int _EXFUN(getw, (FILE *)); int _EXFUN(pclose, (FILE *)); FILE * _EXFUN(popen, (const char *, const char *)); -int _EXFUN(putw, (int, FILE *)); +#endif + +#if !defined(__STRICT_ANSI__) || __BSD_VISIBLE void _EXFUN(setbuffer, (FILE *, char *, int)); int _EXFUN(setlinebuf, (FILE *)); +#endif + +#if !defined(__STRICT_ANSI__) || __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 +int _EXFUN(getw, (FILE *)); +int _EXFUN(putw, (int, FILE *)); int _EXFUN(getc_unlocked, (FILE *)); int _EXFUN(getchar_unlocked, (void)); void _EXFUN(flockfile, (FILE *)); @@ -329,7 +335,7 @@ int _EXFUN(ftrylockfile, (FILE *)); void _EXFUN(funlockfile, (FILE *)); int _EXFUN(putc_unlocked, (int, FILE *)); int _EXFUN(putchar_unlocked, (int)); -#endif /* ! __STRICT_ANSI__ */ +#endif /* * Routines in POSIX 1003.1:200x. -- cgit v1.2.3