This is the mail archive of the
newlib-cvs@sourceware.org
mailing list for the newlib project.
[newlib-cygwin] stdio.h: Use __POSIX_VISIBLE etc. guards for POSIX 1003.1:2001 functions
- From: Corinna Vinschen <corinna at sourceware dot org>
- To: newlib-cvs at sourceware dot org
- Date: 8 Feb 2016 09:41:23 -0000
- Subject: [newlib-cygwin] stdio.h: Use __POSIX_VISIBLE etc. guards for POSIX 1003.1:2001 functions
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=c5fee55606ef77b1ec665e2903848cc9c504297c
commit c5fee55606ef77b1ec665e2903848cc9c504297c
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Thu Feb 4 17:07:44 2016 +0000
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 <jon.turney@dronecode.org.uk>
Diff:
---
newlib/libc/include/stdio.h | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h
index 9d8fd86..b7a9344 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.