about summary refs log tree commit diff
path: root/stdlib
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2016-05-17 15:47:20 +0000
committerJoseph Myers <joseph@codesourcery.com>2016-05-17 15:47:20 +0000
commit4242d9683fef6e618b80ec939adc37ff25cd2d79 (patch)
tree7f4758ea048ed8417be3da45f1e1ce02b307ab7c /stdlib
parentb3a810d0d3d5c6ce7ddfb61321cd7971808ca703 (diff)
downloadglibc-4242d9683fef6e618b80ec939adc37ff25cd2d79.tar.gz
glibc-4242d9683fef6e618b80ec939adc37ff25cd2d79.tar.xz
glibc-4242d9683fef6e618b80ec939adc37ff25cd2d79.zip
Correct ttyslot header declaration conditions (bug 20051).
UNIX98 and XPG4 have ttyslot in <stdlib.h>.  glibc, however, has it in
<unistd.h>, for __USE_MISC || (__USE_XOPEN_EXTENDED && !__USE_UNIX98),
but no supported standard has it in <unistd.h>.

This patch adds a properly conditioned declaration to <stdlib.h> (only
enabled for the relevant standards, not for __USE_MISC or __USE_GNU).
The <unistd.h> declaration is restricted to __USE_MISC.  Some relevant
XFAILs are removed.

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

	[BZ #20051]
	* posix/unistd.h [__USE_XOPEN_EXTENDED && !__USE_UNIX98]
	(ttyslot): Do not declare.
	* stdlib/stdlib.h [__USE_XOPEN_EXTENDED && !__USE_XOPEN2K]
	(ttyslot): New prototype.
	* conform/Makefile (test-xfail-XPG4/unistd.h/conform): Remove
	variable.
	(test-xfail-UNIX98/stdlib.h/conform): Likewise.
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/stdlib.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
index d0c78facdd..5c0c982ccf 100644
--- a/stdlib/stdlib.h
+++ b/stdlib/stdlib.h
@@ -912,6 +912,12 @@ extern int getloadavg (double __loadavg[], int __nelem)
      __THROW __nonnull ((1));
 #endif
 
+#if defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K
+/* Return the index into the active-logins file (utmp) for
+   the controlling terminal.  */
+extern int ttyslot (void) __THROW;
+#endif
+
 #include <bits/stdlib-float.h>
 
 /* Define some macros helping to catch buffer overflows.  */