From a00f522af84ac3f18ff97341858a6c91a7986ad8 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 7 Mar 2014 03:21:04 +0000 Subject: conformtest: clean up POSIX expectations for semaphore.h, signal.h, tar.h. Continuing the series of patches to clean up conformtest expectations for "POSIX" (1995/6) based on review of the expectations against the standard, this patch cleans up those for semaphore.h, signal.h and tar.h (including various corrections for other standards for the expectations affected by this patch). Tested x86_64. (Some of the failures for signal.h shown up by this patch correcting expectations for that header are among the reasons for posix/annexc being expected to fail. The goal is for conformtest eventually to replace posix/annexc and stdlib/isomac once it has all relevant functionality, and for the loop over standards and headers in conformtest to convert to separate makefile targets for each combination, so they can be run in parallel and so that xfails can be more specific than the present xfailing of the whole of conformtest.) * conform/conformtest.pl: Allow ' and \ in values given for constants. * conform/data/semaphore.h-data [POSIX] (fcntl.h): Allow header inclusion. [POSIX] (sys/types.h): Likewise. [POSIX2008 || XOPEN2K8] (sys/types.h): Don't allow header inclusion. [POSIX || UNIX98 || XOPEN2K] (time.h): Don't allow header inclusion. * conform/data/signal.h-data (SIGIO): Remove expectation. [XPG3] (SIGBUS): Do not expect. [POSIX || XPG3] (SIGPOLL): Likewise. [POSIX || XPG3] (SIGPROF): Likewise. [POSIX || XPG3] (SIGSYS): Likewise. [XPG3] (SIGTRAP): Likewise. [POSIX || XPG3] (SIGURG): Likewise. [POSIX || XPG3] (SIGVTALRM): Likewise. [POSIX || XPG3] (SIGXCPU): Likewise. [POSIX || XPG3] (SIGXFSZ): Likewise. [POSIX] (SA_SIGINFO): Expect. [XPG3] (siginfo_t): Do not expect type or contents. [POSIX] (si_pid): Do not expect element. [POSIX] (si_uid): Likewise. [POSIX] (si_addr): Likewise. [POSIX] (si_status): Likewise. [POSIX] (si_band): Likewise. [XPG4] (si_value): Likewise. [POSIX || XPG3] (ILL_ILLOPC): Do not expect. [POSIX || XPG3] (ILL_ILLOPN): Likewise. [POSIX || XPG3] (ILL_ILLADR): Likewise. [POSIX || XPG3] (ILL_ILLTRP): Likewise. [POSIX || XPG3] (ILL_PRVOPC): Likewise. [POSIX || XPG3] (ILL_PRVREG): Likewise. [POSIX || XPG3] (ILL_COPROC): Likewise. [POSIX || XPG3] (ILL_BADSTK): Likewise. [POSIX || XPG3] (FPE_INTDIV): Likewise. [POSIX || XPG3] (FPE_INTOVF): Likewise. [POSIX || XPG3] (FPE_FLTDIV): Likewise. [POSIX || XPG3] (FPE_FLTOVF): Likewise. [POSIX || XPG3] (FPE_FLTUND): Likewise. [POSIX || XPG3] (FPE_FLTRES): Likewise. [POSIX || XPG3] (FPE_FLTINV): Likewise. [POSIX || XPG3] (FPE_FLTSUB): Likewise. [POSIX || XPG3] (SEGV_MAPERR): Likewise. [POSIX || XPG3] (SEGV_ACCERR): Likewise. [POSIX || XPG3] (BUS_ADRALN): Likewise. [POSIX || XPG3] (BUS_ADRERR): Likewise. [POSIX || XPG3] (BUS_OBJERR): Likewise. [POSIX || XPG3] (CLD_EXITED): Likewise. [POSIX || XPG3] (CLD_KILLED): Likewise. [POSIX || XPG3] (CLD_DUMPED): Likewise. [POSIX || XPG3] (CLD_TRAPPED): Likewise. [POSIX || XPG3] (CLD_STOPPED): Likewise. [POSIX || XPG3] (CLD_CONTINUED): Likewise. [POSIX || XPG3] (POLL_IN): Likewise. [POSIX || XPG3] (POLL_OUT): Likewise. [POSIX || XPG3] (POLL_MSG): Likewise. [POSIX || XPG3] (POLL_ERR): Likewise. [POSIX || XPG3] (POLL_PRI): Likewise. [POSIX || XPG3] (POLL_HUP): Likewise. [POSIX || XPG3 || POSIX2008] (TRAP_BRKPT): Likewise. [POSIX || XPG3 || POSIX2008] (TRAP_TRACE): Likewise. (SIG*): Do not allow. [XPG3] (si_*): Likewise. [XPG3] (SI_*): Likewise. [XPG3 || XPG4] (sigev_*): Likewise. [XPG3 || XPG4] (SIGEV_*): Likewise. [XPG3 || XPG4] (sival_*): Likewise. [POSIX || XPG3 || XPG4] (uc_*): Likewise. [POSIX || XPG3] (BUS_*): Likewise. [POSIX || XPG3] (CLD_*): Likewise. [POSIX || XPG3] (FPE_*): Likewise. [POSIX || XPG3] (ILL_*): Likewise. [POSIX || XPG3] (POLL_*): Likewise. [POSIX || XPG3] (SEGV_*): Likewise. [POSIX || XPG3 || POSIX2008] (SS_*): Likewise. [POSIX || XPG3 || POSIX2008] (SV_*): Likewise. [POSIX || XPG3 || POSIX2008] (TRAP_*): Likewise. [POSIX || XPG3 || POSIX2008] (ss_*): Likewise. [POSIX || XPG3 || POSIX2008] (sv_*): Likewise. * conform/data/tar.h-data (TMAGLEN): Use macro-int-constant. Specify type and value. (TVERSLEN): Likewise. (REGTYPE): Likewise. (AREGTYPE): Likewise. (LNKTYPE): Likewise. (SYMTYPE): Likewise. (CHRTYPE): Likewise. (BLKTYPE): Likewise. (DIRTYPE): Likewise. (FIFOTYPE): Likewise. (CONTTYPE): Likewise. (TSUID): Likewise. (TSGID): Likewise. (TSVTX): Likewise. (TUREAD): Likewise. (TUWRITE): Likewise. (TUEXEC): Likewise. (TGREAD): Likewise. (TGWRITE): Likewise. (TGEXEC): Likewise. (TOREAD): Likewise. (TOWRITE): Likewise. (TOEXEC): Likewise. [POSIX] (TSVTX): Expect constant. --- conform/conformtest.pl | 2 +- conform/data/semaphore.h-data | 4 +++- conform/data/signal.h-data | 48 ++++++++++++++++++++++++++++++++----------- conform/data/tar.h-data | 48 +++++++++++++++++++++---------------------- 4 files changed, 64 insertions(+), 38 deletions(-) (limited to 'conform') diff --git a/conform/conformtest.pl b/conform/conformtest.pl index 8b97d0dfc7..085fbb8c6d 100644 --- a/conform/conformtest.pl +++ b/conform/conformtest.pl @@ -391,7 +391,7 @@ while ($#headers >= 0) { "Member \"$member\" does not have the correct type.", $res, 0); } - } elsif (/^(macro|constant|macro-constant|macro-int-constant) +([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>== 0 macro-int-constant SIGHUP {int} > 0 -macro-int-constant SIGIO {int} > 0 macro-int-constant SIGKILL {int} > 0 macro-int-constant SIGPIPE {int} > 0 macro-int-constant SIGQUIT {int} > 0 @@ -81,17 +80,23 @@ macro-int-constant SIGSTOP {int} > 0 macro-int-constant SIGTSTP {int} > 0 macro-int-constant SIGTTIN {int} > 0 macro-int-constant SIGTTOU {int} > 0 +# ifndef XPG3 macro-int-constant SIGBUS {int} > 0 +# endif +# if !defined POSIX && !defined XPG3 macro-int-constant SIGPOLL {int} > 0 macro-int-constant SIGPROF {int} > 0 macro-int-constant SIGSYS {int} > 0 -# if !defined POSIX && !defined POSIX2008 +# endif +# if !defined POSIX && !defined XPG3 && !defined POSIX2008 macro-int-constant SIGTRAP {int} > 0 # endif +# if !defined POSIX && !defined XPG3 macro-int-constant SIGURG {int} > 0 macro-int-constant SIGVTALRM {int} > 0 macro-int-constant SIGXCPU {int} > 0 macro-int-constant SIGXFSZ {int} > 0 +# endif type {struct sigaction} @@ -101,6 +106,7 @@ element {struct sigaction} int sa_flags element {struct sigaction} {void(*} sa_sigaction )(int, siginfo_t*, void*) constant SA_NOCLDSTOP +constant SA_SIGINFO constant SIG_BLOCK constant SIG_UNBLOCK constant SIG_SETMASK @@ -110,7 +116,6 @@ constant SA_ONSTACK # if !defined POSIX constant SA_RESETHAND constant SA_RESTART -constant SA_SIGINFO constant SA_NOCLDWAIT constant SA_NODEFER # endif @@ -141,20 +146,27 @@ element {struct sigstack} int ss_onstack element {struct sigstack} {void*} ss_sp # endif +# ifndef XPG3 type siginfo_t element siginfo_t int si_signo -# if !defined POSIX && !defined POSIX2008 +# if !defined POSIX && !defined POSIX2008 element siginfo_t int si_errno -# endif +# endif element siginfo_t int si_code +# ifndef POSIX element siginfo_t pid_t si_pid element siginfo_t uid_t si_uid element siginfo_t {void*} si_addr element siginfo_t int si_status element siginfo_t long si_band +# endif +# ifndef XPG4 element siginfo_t {union sigval} si_value +# endif +# endif +# if !defined POSIX && !defined XPG3 constant ILL_ILLOPC constant ILL_ILLOPN constant ILL_ILLADR @@ -176,8 +188,6 @@ constant SEGV_ACCERR constant BUS_ADRALN constant BUS_ADRERR constant BUS_OBJERR -constant TRAP_BRKPT -constant TRAP_TRACE constant CLD_EXITED constant CLD_KILLED constant CLD_DUMPED @@ -190,6 +200,11 @@ constant POLL_MSG constant POLL_ERR constant POLL_PRI constant POLL_HUP +# endif +# if !defined POSIX && !defined XPG3 && !defined POSIX2008 +constant TRAP_BRKPT +constant TRAP_TRACE +# endif constant SI_USER constant SI_QUEUE constant SI_TIMER @@ -251,26 +266,35 @@ function void psignal (int, const char*) // The following expressions are not entirely correct but the current // poorfnmatch implementation doesn't grok the right form. -allow SIG* allow sa_* -allow uc_* -allow ss_* -allow sv_* +allow SA_* +# ifndef XPG3 allow si_* allow SI_* +# endif +# if !defined XPG3 && !defined XPG4 allow sigev_* allow SIGEV_* allow sival_* -allow SA_* +# endif +# if !defined POSIX && !defined XPG3 && !defined XPG4 +allow uc_* +# endif +# if !defined POSIX && !defined XPG3 allow BUS_* allow CLD_* allow FPE_* allow ILL_* allow POLL_* allow SEGV_* +# endif +# if !defined POSIX && !defined XPG3 && !defined POSIX2008 allow SS_* allow SV_* allow TRAP_* +allow ss_* +allow sv_* +# endif allow *_t allow-header time.h diff --git a/conform/data/tar.h-data b/conform/data/tar.h-data index 591850c144..8477860e57 100644 --- a/conform/data/tar.h-data +++ b/conform/data/tar.h-data @@ -1,33 +1,33 @@ #if !defined ISO && !defined ISO99 && !defined ISO11 macro-str TMAGIC "ustar" -constant TMAGLEN == 6 +macro-int-constant TMAGLEN {int} == 6 macro-str TVERSION "00" -constant TVERSLEN == 2 +macro-int-constant TVERSLEN {int} == 2 -constant REGTYPE -constant AREGTYPE -constant LNKTYPE -constant SYMTYPE -constant CHRTYPE -constant BLKTYPE -constant DIRTYPE -constant FIFOTYPE -constant CONTTYPE +macro-int-constant REGTYPE {int} == '0' +macro-int-constant AREGTYPE {int} == '\0' +macro-int-constant LNKTYPE {int} == '1' +macro-int-constant SYMTYPE {int} == '2' +macro-int-constant CHRTYPE {int} == '3' +macro-int-constant BLKTYPE {int} == '4' +macro-int-constant DIRTYPE {int} == '5' +macro-int-constant FIFOTYPE {int} == '6' +macro-int-constant CONTTYPE {int} == '7' -constant TSUID == 04000 -constant TSGID == 02000 -# if !defined POSIX && !defined POSIX2008 -constant TSVTX == 01000 +macro-int-constant TSUID {int} == 04000 +macro-int-constant TSGID {int} == 02000 +# if !defined POSIX2008 +macro-int-constant TSVTX {int} == 01000 # endif -constant TUREAD == 00400 -constant TUWRITE == 00200 -constant TUEXEC == 00100 -constant TGREAD == 00040 -constant TGWRITE == 00020 -constant TGEXEC == 00010 -constant TOREAD == 00004 -constant TOWRITE == 00002 -constant TOEXEC == 00001 +macro-int-constant TUREAD {int} == 00400 +macro-int-constant TUWRITE {int} == 00200 +macro-int-constant TUEXEC {int} == 00100 +macro-int-constant TGREAD {int} == 00040 +macro-int-constant TGWRITE {int} == 00020 +macro-int-constant TGEXEC {int} == 00010 +macro-int-constant TOREAD {int} == 00004 +macro-int-constant TOWRITE {int} == 00002 +macro-int-constant TOEXEC {int} == 00001 allow *_t #endif -- cgit 1.4.1