Fix stdio.h namespace for pre-threads POSIX (bug 20014).

stdio.h declares flockfile, ftrylockfile, funlockfile, getc_unlocked,
getchar_unlocked, putc_unlocked and putchar_unlocked if __USE_POSIX,
with comments "These are defined in POSIX.1:1996.".  But __USE_POSIX
is actually POSIX.1:1990, and these functions should not be declared
for 1990 / 1992 / 1993 POSIX, XPG3 or XPG4.  This patch fixes stdio.h
to use __USE_POSIX199506 instead for those conditionals, as that is
the correct conditional for the version of POSIX that introduced
threads, and with threads those functions.

Tested for x86_64 and x86 (testsuite, and that installed shared
libraries are unchanged by the patch).

	[BZ #20014]
	* libio/stdio.h (getc_unlocked): Declare if [__USE_POSIX199506],
	not [__USE_POSIX].
	(getchar_unlocked): Likewise.
	(putc_unlocked): Likewise.
	(putchar_unlocked): Likewise.
	(flockfile): Likewise.
	(ftrylockfile): Likewise.
	(funlockfile): Likewise.
	* conform/Makefile (test-xfail-XPG3/stdio.h/conform): Remove
	variable.
	(test-xfail-XPG4/stdio.h/conform): Likewise.
This commit is contained in:
Joseph Myers 2016-04-28 22:01:04 +00:00
parent 022d239b5d
commit a7657f3012
3 changed files with 16 additions and 5 deletions

View file

@ -1,5 +1,18 @@
2016-04-28 Joseph Myers <joseph@codesourcery.com>
[BZ #20014]
* libio/stdio.h (getc_unlocked): Declare if [__USE_POSIX199506],
not [__USE_POSIX].
(getchar_unlocked): Likewise.
(putc_unlocked): Likewise.
(putchar_unlocked): Likewise.
(flockfile): Likewise.
(ftrylockfile): Likewise.
(funlockfile): Likewise.
* conform/Makefile (test-xfail-XPG3/stdio.h/conform): Remove
variable.
(test-xfail-XPG4/stdio.h/conform): Likewise.
* conform/data/langinfo.h-data [XPG3 || XPG4 || UNIX98] (YESSTR):
Expect constant.
[XPG3 || XPG4 || UNIX98] (NOSTR): Likewise.

View file

@ -169,7 +169,6 @@ test-xfail-XPG3/limits.h/conform = yes
test-xfail-XPG3/pwd.h/conform = yes
test-xfail-XPG3/search.h/conform = yes
test-xfail-XPG3/signal.h/conform = yes
test-xfail-XPG3/stdio.h/conform = yes
test-xfail-XPG3/stdlib.h/conform = yes
test-xfail-XPG3/string.h/conform = yes
test-xfail-XPG3/sys/stat.h/conform = yes
@ -183,7 +182,6 @@ test-xfail-XPG4/fcntl.h/conform = yes
test-xfail-XPG4/netdb.h/conform = yes
test-xfail-XPG4/netinet/in.h/conform = yes
test-xfail-XPG4/signal.h/conform = yes
test-xfail-XPG4/stdio.h/conform = yes
test-xfail-XPG4/stdlib.h/conform = yes
test-xfail-XPG4/sys/stat.h/conform = yes
test-xfail-XPG4/sys/time.h/conform = yes

View file

@ -544,7 +544,7 @@ __END_NAMESPACE_STD
optimization for it. */
#define getc(_fp) _IO_getc (_fp)
#ifdef __USE_POSIX
#ifdef __USE_POSIX199506
/* These are defined in POSIX.1:1996.
These functions are possible cancellation points and therefore not
@ -596,7 +596,7 @@ __END_NAMESPACE_STD
extern int fputc_unlocked (int __c, FILE *__stream);
#endif /* Use MISC. */
#ifdef __USE_POSIX
#ifdef __USE_POSIX199506
/* These are defined in POSIX.1:1996.
These functions are possible cancellation points and therefore not
@ -907,7 +907,7 @@ extern int obstack_vprintf (struct obstack *__restrict __obstack,
#endif /* Use GNU. */
#ifdef __USE_POSIX
#ifdef __USE_POSIX199506
/* These are defined in POSIX.1:1996. */
/* Acquire ownership of STREAM. */