summaryrefslogtreecommitdiff
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
parentb3a810d0d3d5c6ce7ddfb61321cd7971808ca703 (diff)
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.
-rw-r--r--ChangeLog11
-rw-r--r--conform/Makefile2
-rw-r--r--posix/unistd.h3
-rw-r--r--stdlib/stdlib.h6
4 files changed, 18 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 95de597034..ead0766e30 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2016-05-17 Joseph Myers <joseph@codesourcery.com>
+
+ [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.
+
2016-05-17 Stefan Liebler <stli@linux.vnet.ibm.com>
* nptl/tst-cancel17.c (do_test): Wait for finishing aio_read(&a).
diff --git a/conform/Makefile b/conform/Makefile
index 0d610ad99f..ab9da786d9 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -178,13 +178,11 @@ test-xfail-XPG4/stdlib.h/conform = yes
test-xfail-XPG4/sys/stat.h/conform = yes
test-xfail-XPG4/sys/wait.h/conform = yes
test-xfail-XPG4/ucontext.h/conform = yes
-test-xfail-XPG4/unistd.h/conform = yes
test-xfail-POSIX/sys/wait.h/conform = yes
test-xfail-UNIX98/arpa/inet.h/conform = yes
test-xfail-UNIX98/netdb.h/conform = yes
test-xfail-UNIX98/netinet/in.h/conform = yes
test-xfail-UNIX98/signal.h/conform = yes
-test-xfail-UNIX98/stdlib.h/conform = yes
test-xfail-UNIX98/sys/wait.h/conform = yes
test-xfail-UNIX98/ucontext.h/conform = yes
test-xfail-XOPEN2K/semaphore.h/conform = yes
diff --git a/posix/unistd.h b/posix/unistd.h
index 98ffcea649..625ba77da7 100644
--- a/posix/unistd.h
+++ b/posix/unistd.h
@@ -781,8 +781,7 @@ extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
with a terminal, zero if not. */
extern int isatty (int __fd) __THROW;
-#if defined __USE_MISC \
- || (defined __USE_XOPEN_EXTENDED && !defined __USE_UNIX98)
+#ifdef __USE_MISC
/* Return the index into the active-logins file (utmp) for
the controlling terminal. */
extern int ttyslot (void) __THROW;
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. */