Declare gethostname for XPG4 (bug 20054).

unistd.h declares gethostname for __USE_UNIX98 || __USE_XOPEN2K.  But
it's also in XPG4 (XNS volume - C438 - not the main definitions of
system interfaces and headers in C435).  This patch corrects the
condition.

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

	[BZ #20054]
	* posix/unistd.h (gethostname): Declare if [__USE_XOPEN_EXTENDED],
	not [__USE_UNIX98].
	* conform/data/unistd.h-data (gethostname): Do not expect for
	[XPG3].
This commit is contained in:
Joseph Myers 2016-05-12 16:50:43 +00:00
parent ca927ec4c2
commit 612fe43275
3 changed files with 8 additions and 2 deletions

View File

@ -1,5 +1,11 @@
2016-05-12 Joseph Myers <joseph@codesourcery.com>
[BZ #20054]
* posix/unistd.h (gethostname): Declare if [__USE_XOPEN_EXTENDED],
not [__USE_UNIX98].
* conform/data/unistd.h-data (gethostname): Do not expect for
[XPG3].
* conform/data/fcntl.h-data [!POSIX] (S_IFMT): Do not expect.
[!POSIX] (S_IFBLK): Likewise.
[!POSIX] (S_IFCHR): Likewise.

View File

@ -490,7 +490,7 @@ function int getgroups (int, gid_t[])
#if !defined POSIX && !defined POSIX2008
function long gethostid (void)
#endif
#if !defined POSIX
#if !defined POSIX && !defined XPG3
function int gethostname (char*, size_t)
#endif
function {char*} getlogin (void)

View File

@ -875,7 +875,7 @@ extern int setlogin (const char *__name) __THROW __nonnull ((1));
#endif
#if defined __USE_UNIX98 || defined __USE_XOPEN2K
#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K
/* Put the name of the current host in no more than LEN bytes of NAME.
The result is null-terminated if LEN is large enough for the full
name and the terminator. */