Include all of <time.h> from <sched.h> for older standards (bug 16670)
Commit Message
This patch fixes one of the header namespace issues shown up by
conformtest, <sched.h> failing to expose all symbols from <time.h> as
required by older standards. The patch keeps the existing behavior if
__USE_XOPEN2K is defined (the default; POSIX.1-2001 was the version
that made it optional to expose these symbols), but ensures that all
the symbols from <time.h> are exposed if an older standard is
selected. Tested x86_64.
2014-03-07 Joseph Myers <joseph@codesourcery.com>
[BZ #16670]
* posix/sched.h [!__USE_XOPEN2K] (__need_time_t): Don't define
before #include of <time.h>.
[!__USE_XOPEN2K] (__need_timespec): Likewise.
* conform/Makefile (test-xfail-POSIX/sched.h/conform): Remove.
(test-xfail-UNIX98/sched.h/conform): Likewise.
Comments
"Joseph S. Myers" <joseph@codesourcery.com> writes:
> [BZ #16670]
> * posix/sched.h [!__USE_XOPEN2K] (__need_time_t): Don't define
> before #include of <time.h>.
> [!__USE_XOPEN2K] (__need_timespec): Likewise.
> * conform/Makefile (test-xfail-POSIX/sched.h/conform): Remove.
> (test-xfail-UNIX98/sched.h/conform): Likewise.
Looks good.
Andreas.
@@ -188,7 +188,6 @@ test-xfail-XPG4/termios.h/conform = yes
test-xfail-XPG4/ucontext.h/conform = yes
test-xfail-XPG4/unistd.h/conform = yes
test-xfail-XPG4/utmpx.h/conform = yes
-test-xfail-POSIX/sched.h/conform = yes
test-xfail-POSIX/signal.h/conform = yes
test-xfail-POSIX/sys/wait.h/conform = yes
test-xfail-POSIX/tar.h/conform = yes
@@ -197,7 +196,6 @@ test-xfail-UNIX98/fcntl.h/conform = yes
test-xfail-UNIX98/langinfo.h/conform = yes
test-xfail-UNIX98/netdb.h/conform = yes
test-xfail-UNIX98/netinet/in.h/conform = yes
-test-xfail-UNIX98/sched.h/conform = yes
test-xfail-UNIX98/signal.h/conform = yes
test-xfail-UNIX98/stdio.h/conform = yes
test-xfail-UNIX98/stdlib.h/conform = yes
@@ -27,8 +27,10 @@
#define __need_size_t
#include <stddef.h>
-#define __need_time_t
-#define __need_timespec
+#ifdef __USE_XOPEN2K
+# define __need_time_t
+# define __need_timespec
+#endif
#include <time.h>
#ifndef __pid_t_defined