Fix sys/stat.h fchmod namespace (bug 20073).

sys/stat.h declares fchmod if __USE_POSIX (i.e. POSIX.1:1990).  But it
was actually added in 1993 and also in XPG4.  This patch changes the
conditions to the correct __USE_POSIX199309 || __USE_XOPEN_EXTENDED.

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

	[BZ #20073]
	* io/sys/stat.h (fchmod): Declare for
	[__USE_POSIX199309 || __USE_XOPEN_EXTENDED], not [__USE_POSIX].
	* conform/Makefile (test-xfail-XPG3/sys/stat.h/conform): Remove
	variable.
This commit is contained in:
Joseph Myers 2016-05-10 21:52:08 +00:00
parent 23f3a3b5d4
commit 8da7d8f877
3 changed files with 7 additions and 2 deletions

View file

@ -1,5 +1,11 @@
2016-05-10 Joseph Myers <joseph@codesourcery.com>
[BZ #20073]
* io/sys/stat.h (fchmod): Declare for
[__USE_POSIX199309 || __USE_XOPEN_EXTENDED], not [__USE_POSIX].
* conform/Makefile (test-xfail-XPG3/sys/stat.h/conform): Remove
variable.
* conform/data/sys/stat.h-data [XPG3] (S_IFLNK): Do not expect.
[XPG3] (S_IFSOCK): Likewise.
[XPG3] (S_ISVTX): Likewise.

View file

@ -171,7 +171,6 @@ test-xfail-XPG3/search.h/conform = yes
test-xfail-XPG3/signal.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
test-xfail-XPG3/sys/wait.h/conform = yes
test-xfail-XPG3/termios.h/conform = yes
test-xfail-XPG3/time.h/conform = yes

View file

@ -292,7 +292,7 @@ extern int lchmod (const char *__file, __mode_t __mode)
#endif
/* Set file access permissions of the file FD is open on to MODE. */
#ifdef __USE_POSIX
#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
extern int fchmod (int __fd, __mode_t __mode) __THROW;
#endif