summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2016-05-12 16:50:43 +0000
committerJoseph Myers <joseph@codesourcery.com>2016-05-12 16:50:43 +0000
commit612fe4327577f9afaf6f45b400a737683eef9d0c (patch)
treef494de06b230dcb0bc035033a69f37c8b643098d
parentca927ec4c23f47b559e8e2d493caaad9c13092f6 (diff)
downloadglibc-612fe4327577f9afaf6f45b400a737683eef9d0c.tar.gz
glibc-612fe4327577f9afaf6f45b400a737683eef9d0c.tar.xz
glibc-612fe4327577f9afaf6f45b400a737683eef9d0c.zip
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].
-rw-r--r--ChangeLog6
-rw-r--r--conform/data/unistd.h-data2
-rw-r--r--posix/unistd.h2
3 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index b85a2938ea..fe723a609b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/conform/data/unistd.h-data b/conform/data/unistd.h-data
index 9c00d44551..5958ff700c 100644
--- a/conform/data/unistd.h-data
+++ b/conform/data/unistd.h-data
@@ -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)
diff --git a/posix/unistd.h b/posix/unistd.h
index 7486ecf4a9..98ffcea649 100644
--- a/posix/unistd.h
+++ b/posix/unistd.h
@@ -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.  */