public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* Correct ttyslot header declaration conditions (bug 20051)
@ 2016-05-05 23:36 Joseph Myers
  2016-05-10 14:55 ` Ping " Joseph Myers
  2016-05-12 17:07 ` Joseph Myers
  0 siblings, 2 replies; 4+ messages in thread
From: Joseph Myers @ 2016-05-05 23:36 UTC (permalink / raw)
  To: libc-alpha

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.  The
conformtest expectation is adjusted not to expect it for XPG3, only
for XPG4 and UNIX98.  The conformtest XFAIL for <stdlib.h> for UNIX98
is removed (other affected <stdlib.h> and <unistd.h> tests still have
other reasons for failure remaining so this patch doesn't by itself
enable those other XFAILs to be removed).

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

2016-05-05  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/data/stdlib.h-data (ttyslot): Do not expect for [XPG3].
	* conform/Makefile (test-xfail-UNIX98/stdlib.h/conform): Remove
	variable.

diff --git a/conform/Makefile b/conform/Makefile
index d5273c1..e68753f 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -194,7 +194,6 @@ 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-UNIX98/unistd.h/conform = yes
diff --git a/conform/data/stdlib.h-data b/conform/data/stdlib.h-data
index abe296a..423358d 100644
--- a/conform/data/stdlib.h-data
+++ b/conform/data/stdlib.h-data
@@ -162,7 +162,7 @@ function {long long int} strtoll (const char*, char**, int)
 function {unsigned long long int} strtoull (const char*, char**, int)
 #endif
 function int system (const char*)
-#if defined XPG3 || defined XPG4 || defined UNIX98
+#if defined XPG4 || defined UNIX98
 function int ttyslot (void)
 #endif
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
diff --git a/posix/unistd.h b/posix/unistd.h
index 405638c..261587b 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 d0c78fa..5c0c982 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.  */

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Ping Re: Correct ttyslot header declaration conditions (bug 20051)
  2016-05-05 23:36 Correct ttyslot header declaration conditions (bug 20051) Joseph Myers
@ 2016-05-10 14:55 ` Joseph Myers
  2016-05-12 17:07 ` Joseph Myers
  1 sibling, 0 replies; 4+ messages in thread
From: Joseph Myers @ 2016-05-10 14:55 UTC (permalink / raw)
  To: libc-alpha

Ping.  This patch 
<https://sourceware.org/ml/libc-alpha/2016-05/msg00093.html> is pending 
review.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Correct ttyslot header declaration conditions (bug 20051)
  2016-05-05 23:36 Correct ttyslot header declaration conditions (bug 20051) Joseph Myers
  2016-05-10 14:55 ` Ping " Joseph Myers
@ 2016-05-12 17:07 ` Joseph Myers
  2016-05-13 17:29   ` Joseph Myers
  1 sibling, 1 reply; 4+ messages in thread
From: Joseph Myers @ 2016-05-12 17:07 UTC (permalink / raw)
  To: libc-alpha

Here is an updated version of this patch, with an XFAIL removal moved here 
from the gethostname patch (which has been committed without the XFAIL 
removal that depended on this patch).


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.  The
conformtest expectation is adjusted not to expect it for XPG3, only
for XPG4 and UNIX98.  Some relevant XFAILs are removed.

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

2016-05-12  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/data/stdlib.h-data (ttyslot): Do not expect for [XPG3].
	* conform/Makefile (test-xfail-XPG4/unistd.h/conform): Remove
	variable.
	(test-xfail-UNIX98/stdlib.h/conform): Likewise.

diff --git a/conform/Makefile b/conform/Makefile
index b5a1ee8..a11642f 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -181,13 +181,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/conform/data/stdlib.h-data b/conform/data/stdlib.h-data
index abe296a..423358d 100644
--- a/conform/data/stdlib.h-data
+++ b/conform/data/stdlib.h-data
@@ -162,7 +162,7 @@ function {long long int} strtoll (const char*, char**, int)
 function {unsigned long long int} strtoull (const char*, char**, int)
 #endif
 function int system (const char*)
-#if defined XPG3 || defined XPG4 || defined UNIX98
+#if defined XPG4 || defined UNIX98
 function int ttyslot (void)
 #endif
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
diff --git a/posix/unistd.h b/posix/unistd.h
index 98ffcea..625ba77 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 d0c78fa..5c0c982 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.  */

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Correct ttyslot header declaration conditions (bug 20051)
  2016-05-12 17:07 ` Joseph Myers
@ 2016-05-13 17:29   ` Joseph Myers
  0 siblings, 0 replies; 4+ messages in thread
From: Joseph Myers @ 2016-05-13 17:29 UTC (permalink / raw)
  To: libc-alpha

Here is a further revised version of this patch, with a conformtest 
expectations fix for XPG3 removed now that has been committed as part of 
another patch.


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).

2016-05-12  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.

diff --git a/conform/Makefile b/conform/Makefile
index b5a1ee8..a11642f 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -181,13 +181,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 98ffcea..625ba77 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 d0c78fa..5c0c982 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.  */

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-05-13 17:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-05 23:36 Correct ttyslot header declaration conditions (bug 20051) Joseph Myers
2016-05-10 14:55 ` Ping " Joseph Myers
2016-05-12 17:07 ` Joseph Myers
2016-05-13 17:29   ` Joseph Myers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).