This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

conformtest: Clean up expectations for POSIX for sched.h


This patch cleans up the conformtest expectations for <sched.h> for
POSIX (1996), with incidental fixes for other standard versions.

The whole header isn't defined at all for XPG3/XPG4 so shouldn't be
tested for them.  POSIX (1996) and UNIX98 require all <time.h> symbols
to be provided by <sched.h>; this was relaxed in later versions to
make it optional (this testsuite change shows up that glibc is failing
to meeting this requirement of those old standard versions).  Certain
optional symbols aren't mentioned at all in older standard versions so
shouldn't be explicitly tested for in that case (they are still
permitted by the general permission for sched_* and SCHED_*).

This is independent of the similar patch for pthread.h expectations
<https://sourceware.org/ml/libc-alpha/2013-09/msg00436.html>, pending
review.

Tested x86_64.

2013-09-19  Joseph Myers  <joseph@codesourcery.com>

	* conform/data/sched.h-data [XPG3 || XPG4]: Disable whole file.
	[POSIX || UNIX98]: Require rather than permitting all symbols from
	<time.h>.
	[POSIX || UNIX98] (sched_ss_low_priority): Do not specify optional
	element of struct sched_param.
	[POSIX || UNIX98] (sched_ss_repl_period): Likewise.
	[POSIX || UNIX98] (sched_ss_init_budget): Likewise.
	[POSIX || UNIX98] (sched_ss_max_repl): Likewise.
	[POSIX || UNIX98] (SCHED_SPORADIC): Do not specify optional
	constant.

diff --git a/conform/data/sched.h-data b/conform/data/sched.h-data
index 78eb2e4..610406d 100644
--- a/conform/data/sched.h-data
+++ b/conform/data/sched.h-data
@@ -1,10 +1,18 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined XPG4
+# if defined POSIX || defined UNIX98
+#  include "time.h-data"
+# else
+allow-header time.h
+# endif
+
 type {struct sched_param}
 element {struct sched_param} int sched_priority
+# if !defined POSIX && !defined UNIX98
 optional-element {struct sched_param} int sched_ss_low_priority
 optional-element {struct sched_param} {struct timespec} sched_ss_repl_period
 optional-element {struct sched_param} {struct timespec} sched_ss_init_budget
 optional-element {struct sched_param} int sched_ss_max_repl
+# endif
 
 # if defined XOPEN2K8 || defined POSIX2008
 type pid_t
@@ -14,7 +22,9 @@ type {struct timespec}
 
 constant SCHED_FIFO
 constant SCHED_RR
+# if !defined POSIX && !defined UNIX98
 optional-constant SCHED_SPORADIC
+# endif
 constant SCHED_OTHER
 
 function int sched_get_priority_max (int)
@@ -26,8 +36,6 @@ function int sched_setparam (pid_t, const struct sched_param*)
 function int sched_setscheduler (pid_t, int, const struct sched_param*)
 function int sched_yield (void)
 
-allow-header time.h
-
 allow sched_*
 allow SCHED_*
 allow *_t

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]