This is the mail archive of the glibc-cvs@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]

GNU C Library master sources branch, master, updated. glibc-2.15-710-g615605c


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  615605c94eb3238fa1a0721506d70871f1610967 (commit)
       via  c9140a622eec9919fd151cfa5d0f751f49dbc8ce (commit)
       via  9af0bf29de57bccb94db223ff835f1867b74b489 (commit)
       via  343222a2a0bdc34f09dfbd1abfb06b2d1e8d5d46 (commit)
       via  661f8cf03b7f178c143d1ec48e75a2904ab01154 (commit)
       via  ee74b9cbbdba4dc9e1c0532915d4f06751a6a561 (commit)
       via  aafc49b3fccb44f0da4bac49abe55fa3651ecabe (commit)
       via  fefdf574126726c0a9ed0badd73e187e97dd422a (commit)
       via  f2d922feb2ea93c7133d6b40317cfdce7140f74f (commit)
       via  d22956c99b81958fdfb8437361f92b9d8a6e7984 (commit)
       via  028e2e38795854365b0a9414273fbbc7ea84548a (commit)
       via  1b8f2850d8c95619598241e91a7249bba5775be1 (commit)
       via  a05a144b13bc695e0c16c5c0ff29d9da782cd32f (commit)
       via  73c5ebe3441e17ba7b53a3bb00a6a91b569aeef6 (commit)
       via  39c33b6cbccc5dac4f1b9e710ba490010d04d8b0 (commit)
      from  62fde54fc5bd90cebd01326f7a5ce1c9e0d39452 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=615605c94eb3238fa1a0721506d70871f1610967

commit 615605c94eb3238fa1a0721506d70871f1610967
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 1 20:05:49 2012 +0000

    conformtest: Update expectations for some ISO C headers.

diff --git a/ChangeLog b/ChangeLog
index c5eabf1..fcd2bca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,164 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/data/assert.h-data [ISO || ISO99 || ISO11] (*_t): Do not
+	allow.
+	* conform/data/ctype.h-data [C99-based standards] (isblank):
+	Expect function.
+	(is*): Change to is[abcdefghijklmnopqrstuvwxyz]*.
+	(to*): Change to to[abcdefghijklmnopqrstuvwxyz]*.
+	[ISO || ISO99 || ISO11] (*_t): Do not allow.
+	* conform/data/errno.h-data (EDOM): Use macro-int-constant.
+	Specify type.  Require positive value.
+	(EILSEQ): Likewise.
+	(ERANGE): Likewise.
+	[ISO || POSIX] (EILSEQ): Do not expect.
+	[!ISO && !ISO99 && !ISO11] (E2BIG): Use macro-int-constant.
+	Specify type.  Require positive value.
+	[!ISO && !ISO99 && !ISO11] (EACCES): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EADDRINUSE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EADDRNOTAVAIL): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EAFNOSUPPORT): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EAGAIN): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EALREADY): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EBADF): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EBADMSG): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EBUSY): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ECANCELED): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ECHILD): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ECONNABORTED): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ECONNREFUSED): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ECONNRESET): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EDEADLK): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EDESTADDRREQ): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EDQUOT): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EEXIST): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EFAULT): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EFBIG): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EHOSTUNREACH): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EIDRM): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EINPROGRESS): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EINTR): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EINVAL): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EIO): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EISCONN): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EISDIR): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ELOOP): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EMFILE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EMLINK): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EMSGSIZE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EMULTIHOP): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENAMETOOLONG): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENETDOWN): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENETUNREACH): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENFILE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOBUFS): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENODATA): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENODEV): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOENT): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOEXEC): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOLCK): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOLINK): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOMEM): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOMSG): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOPROTOOPT): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOSPC): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOSR): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOSTR): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOSYS): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOTCONN): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOTDIR): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOTEMPTY): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOTSOCK): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOTSUP): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOTTY): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENXIO): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EOPNOTSUPP): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EOVERFLOW): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EPERM): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EPIPE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EPROTO): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EPROTONOSUPPORT): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EPROTOTYPE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EROFS): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ESPIPE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ESRCH): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ESTALE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ETIME): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ETIMEDOUT): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ETXTBSY): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EWOULDBLOCK): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EXDEV): Likewise.
+	[XOPEN2K8 || defined POSIX2008] (ENOTRECOVERABLE): Likewise.
+	[XOPEN2K8 || defined POSIX2008] (EOWNERDEAD): Likewise.
+	* conform/data/float.h-data (FLT_RADIX): Use macro-int-constant.
+	Require >= 2.
+	(FLT_ROUNDS): Expect as macro, not constant.
+	(FLT_MANT_DIG): Use macro-int-constant.
+	(DBL_MANT_DIG): Likewise.
+	(LDBL_MANT_DIG): Likewise.
+	(FLT_DIG): Likewise.
+	(DBL_DIG): Likewise.
+	(LDBL_DIG): Likewise.
+	(FLT_MIN_EXP): Use macro-int-constant.  Require < 0.
+	(DBL_MIN_EXP): Likewise.
+	(LDBL_MIN_EXP): Likewise.
+	(FLT_MAX_EXP): Use macro-int-constant.
+	(DBL_MAX_EXP): Likewise.
+	(LDBL_MAX_EXP): Likewise.
+	(FLT_MAX_10_EXP): Likewise.
+	(DBL_MAX_10_EXP): Likewise.
+	(LDBL_MAX_10_EXP): Likewise.
+	(FLT_MAX): Use macro-constant.
+	(DBL_MAX): Likewise.
+	(LDBL_MAX): Likewise.
+	(FLT_EPSILON): Use macro-constant.  Give upper bound.
+	(DBL_EPSILON): Likewise.
+	(LDBL_EPSILON): Likewise.
+	(FLT_MIN): Likewise.
+	(DBL_MIN): Likewise.
+	(LDBL_MIN): Likewise.
+	[C99-based standards] (DECIMAL_DIG): Use macro-int-constant.
+	[C99-based standards] (FLT_EVAL_METHOD): Likewise.
+	[ISO11] (DBL_HAS_SUBNORM): Use macro-int-constant.
+	[ISO11] (FLT_HAS_SUBNORM): Likewise.
+	[ISO11] (LDBL_HAS_SUBNORM): Likewise.
+	[ISO11] (DBL_DECIMAL_DIG): Likewise.
+	[ISO11] (FLT_DECIMAL_DIG): Likewise.
+	[ISO11] (LDBL_DECIMAL_DIG): Likewise.
+	[ISO11] (DBL_TRUE_MIN): Use macro-constant.
+	[ISO11] (FLT_TRUE_MIN): Likewise.
+	[ISO11] (LDBL_TRUE_MIN): Likewise.
+	[ISO || ISO99 || ISO11] (*_t): Do not allow.
+	* conform/data/limits.h-data (CHAR_BIT): Use macro-int-constant.
+	(SCHAR_MIN): Use macro-int-constant.  Specify type.
+	(SCHAR_MAX): Likewise.
+	(UCHAR_MAX): Likewise.
+	(CHAR_MIN): Likewise.
+	(CHAR_MAX): Likewise.
+	(MB_LEN_MAX): Use macro-int-constant.
+	(SHRT_MIN): Use macro-int-constant.  Specify type.
+	(SHRT_MAX): Likewise.
+	(USHRT_MAX): Likewise.
+	(INT_MAX): Likewise.
+	(INT_MIN): Use macro-int-constant.  Specify type.  Make upper
+	bound negative.
+	(UINT_MAX): Use macro-int-constant.  Specify type.  Suffix lower
+	bound with "U".
+	(LONG_MAX): Use macro-int-constant.  Specify type.  Suffix lower
+	bound with "L".
+	(LONG_MIN): Use macro-int-constant.  Specify type.  Make upper
+	bound negative.  Suffix upper bound with "L".
+	(ULONG_MAX): Use macro-int-constant.  Specify type.  Suffix lower
+	bound with "UL".
+	[C99-based standards] (LLONG_MIN): Use macro-int-constant.
+	Specify type.
+	[C99-based standards] (LLONG_MAX): Likewise.
+	[C99-based standards] (ULLONG_MAX): Likewise.
+	* conform/data/stddef.h-data (NULL): Use macro-constant.  Require
+	== 0.
+	[ISO11] (max_align_t): Require type.
+	[ISO || ISO99 || ISO11] (*_t): Do not allow.
+
 	* conform/conformtest.pl ($CFLAGS_namespace): Define separately
 	from $CFLAGS, without defining away __attribute__ calls.
 	(checknamespace): Use $CFLAGS_namespace.
diff --git a/conform/data/assert.h-data b/conform/data/assert.h-data
index 9c3cc04..acdfef9 100644
--- a/conform/data/assert.h-data
+++ b/conform/data/assert.h-data
@@ -4,4 +4,6 @@ macro assert
 macro static_assert
 #endif
 
+#if !defined ISO && !defined ISO99 && !defined ISO11
 allow *_t
+#endif
diff --git a/conform/data/ctype.h-data b/conform/data/ctype.h-data
index e2c6019..3ee21c9 100644
--- a/conform/data/ctype.h-data
+++ b/conform/data/ctype.h-data
@@ -12,6 +12,10 @@ function int isxdigit (int)
 function int tolower (int)
 function int toupper (int)
 
+#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+function int isblank (int)
+#endif
+
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
 function int isascii (int)
 function int toascii (int)
@@ -39,9 +43,9 @@ function int tolower_l (int, locale_t)
 function int toupper_l (int, locale_t)
 # endif
 
-// The following is not entirely correct.  It should be is[a-z]* but the
-// replacement fnmatch implementation does not grok it.
-allow is*
-allow to*
+allow is[abcdefghijklmnopqrstuvwxyz]*
+allow to[abcdefghijklmnopqrstuvwxyz]*
 
+#if !defined ISO && !defined ISO99 && !defined ISO11
 allow *_t
+#endif
diff --git a/conform/data/errno.h-data b/conform/data/errno.h-data
index 328687f..eaf6c21 100644
--- a/conform/data/errno.h-data
+++ b/conform/data/errno.h-data
@@ -1,90 +1,92 @@
-constant EDOM
-constant EILSEQ
-constant ERANGE
+macro-int-constant EDOM {int} > 0
+#if !defined ISO && !defined POSIX
+macro-int-constant EILSEQ {int} > 0
+#endif
+macro-int-constant ERANGE {int} > 0
 
 // variable int errno
 allow errno
 
 #if !defined ISO && !defined ISO99 && !defined ISO11
-constant E2BIG
-constant EACCES
-constant EADDRINUSE
-constant EADDRNOTAVAIL
-constant EAFNOSUPPORT
-constant EAGAIN
-constant EALREADY
-constant EBADF
-constant EBADMSG
-constant EBUSY
-constant ECANCELED
-constant ECHILD
-constant ECONNABORTED
-constant ECONNREFUSED
-constant ECONNRESET
-constant EDEADLK
-constant EDESTADDRREQ
-constant EDQUOT
-constant EEXIST
-constant EFAULT
-constant EFBIG
-constant EHOSTUNREACH
-constant EIDRM
-constant EINPROGRESS
-constant EINTR
-constant EINVAL
-constant EIO
-constant EISCONN
-constant EISDIR
-constant ELOOP
-constant EMFILE
-constant EMLINK
-constant EMSGSIZE
-constant EMULTIHOP
-constant ENAMETOOLONG
-constant ENETDOWN
-constant ENETUNREACH
-constant ENFILE
-constant ENOBUFS
-constant ENODATA
-constant ENODEV
-constant ENOENT
-constant ENOEXEC
-constant ENOLCK
-constant ENOLINK
-constant ENOMEM
-constant ENOMSG
-constant ENOPROTOOPT
-constant ENOSPC
-constant ENOSR
-constant ENOSTR
-constant ENOSYS
-constant ENOTCONN
-constant ENOTDIR
-constant ENOTEMPTY
-constant ENOTSOCK
-constant ENOTSUP
-constant ENOTTY
-constant ENXIO
-constant EOPNOTSUPP
-constant EOVERFLOW
-constant EPERM
-constant EPIPE
-constant EPROTO
-constant EPROTONOSUPPORT
-constant EPROTOTYPE
-constant EROFS
-constant ESPIPE
-constant ESRCH
-constant ESTALE
-constant ETIME
-constant ETIMEDOUT
-constant ETXTBSY
-constant EWOULDBLOCK
-constant EXDEV
+macro-int-constant E2BIG {int} > 0
+macro-int-constant EACCES {int} > 0
+macro-int-constant EADDRINUSE {int} > 0
+macro-int-constant EADDRNOTAVAIL {int} > 0
+macro-int-constant EAFNOSUPPORT {int} > 0
+macro-int-constant EAGAIN {int} > 0
+macro-int-constant EALREADY {int} > 0
+macro-int-constant EBADF {int} > 0
+macro-int-constant EBADMSG {int} > 0
+macro-int-constant EBUSY {int} > 0
+macro-int-constant ECANCELED {int} > 0
+macro-int-constant ECHILD {int} > 0
+macro-int-constant ECONNABORTED {int} > 0
+macro-int-constant ECONNREFUSED {int} > 0
+macro-int-constant ECONNRESET {int} > 0
+macro-int-constant EDEADLK {int} > 0
+macro-int-constant EDESTADDRREQ {int} > 0
+macro-int-constant EDQUOT {int} > 0
+macro-int-constant EEXIST {int} > 0
+macro-int-constant EFAULT {int} > 0
+macro-int-constant EFBIG {int} > 0
+macro-int-constant EHOSTUNREACH {int} > 0
+macro-int-constant EIDRM {int} > 0
+macro-int-constant EINPROGRESS {int} > 0
+macro-int-constant EINTR {int} > 0
+macro-int-constant EINVAL {int} > 0
+macro-int-constant EIO {int} > 0
+macro-int-constant EISCONN {int} > 0
+macro-int-constant EISDIR {int} > 0
+macro-int-constant ELOOP {int} > 0
+macro-int-constant EMFILE {int} > 0
+macro-int-constant EMLINK {int} > 0
+macro-int-constant EMSGSIZE {int} > 0
+macro-int-constant EMULTIHOP {int} > 0
+macro-int-constant ENAMETOOLONG {int} > 0
+macro-int-constant ENETDOWN {int} > 0
+macro-int-constant ENETUNREACH {int} > 0
+macro-int-constant ENFILE {int} > 0
+macro-int-constant ENOBUFS {int} > 0
+macro-int-constant ENODATA {int} > 0
+macro-int-constant ENODEV {int} > 0
+macro-int-constant ENOENT {int} > 0
+macro-int-constant ENOEXEC {int} > 0
+macro-int-constant ENOLCK {int} > 0
+macro-int-constant ENOLINK {int} > 0
+macro-int-constant ENOMEM {int} > 0
+macro-int-constant ENOMSG {int} > 0
+macro-int-constant ENOPROTOOPT {int} > 0
+macro-int-constant ENOSPC {int} > 0
+macro-int-constant ENOSR {int} > 0
+macro-int-constant ENOSTR {int} > 0
+macro-int-constant ENOSYS {int} > 0
+macro-int-constant ENOTCONN {int} > 0
+macro-int-constant ENOTDIR {int} > 0
+macro-int-constant ENOTEMPTY {int} > 0
+macro-int-constant ENOTSOCK {int} > 0
+macro-int-constant ENOTSUP {int} > 0
+macro-int-constant ENOTTY {int} > 0
+macro-int-constant ENXIO {int} > 0
+macro-int-constant EOPNOTSUPP {int} > 0
+macro-int-constant EOVERFLOW {int} > 0
+macro-int-constant EPERM {int} > 0
+macro-int-constant EPIPE {int} > 0
+macro-int-constant EPROTO {int} > 0
+macro-int-constant EPROTONOSUPPORT {int} > 0
+macro-int-constant EPROTOTYPE {int} > 0
+macro-int-constant EROFS {int} > 0
+macro-int-constant ESPIPE {int} > 0
+macro-int-constant ESRCH {int} > 0
+macro-int-constant ESTALE {int} > 0
+macro-int-constant ETIME {int} > 0
+macro-int-constant ETIMEDOUT {int} > 0
+macro-int-constant ETXTBSY {int} > 0
+macro-int-constant EWOULDBLOCK {int} > 0
+macro-int-constant EXDEV {int} > 0
 
 # if defined XOPEN2K8 || defined POSIX2008
-constant ENOTRECOVERABLE
-constant EOWNERDEAD
+macro-int-constant ENOTRECOVERABLE {int} > 0
+macro-int-constant EOWNERDEAD {int} > 0
 # endif
 
 allow E*
diff --git a/conform/data/float.h-data b/conform/data/float.h-data
index 49d953a..350802a 100644
--- a/conform/data/float.h-data
+++ b/conform/data/float.h-data
@@ -1,60 +1,62 @@
-macro FLT_RADIX
+macro-int-constant FLT_RADIX >= 2
 
-constant FLT_ROUNDS
+macro FLT_ROUNDS
 
-macro FLT_MANT_DIG
-macro DBL_MANT_DIG
-macro LDBL_MANT_DIG
+macro-int-constant FLT_MANT_DIG
+macro-int-constant DBL_MANT_DIG
+macro-int-constant LDBL_MANT_DIG
 
-constant FLT_DIG >= 6
-constant DBL_DIG >= 10
-constant LDBL_DIG >= 10
+macro-int-constant FLT_DIG >= 6
+macro-int-constant DBL_DIG >= 10
+macro-int-constant LDBL_DIG >= 10
 
-macro FLT_MIN_EXP
-macro DBL_MIN_EXP
-macro LDBL_MIN_EXP
+macro-int-constant FLT_MIN_EXP < 0
+macro-int-constant DBL_MIN_EXP < 0
+macro-int-constant LDBL_MIN_EXP < 0
 
-constant FLT_MIN_10_EXP <= -37
-constant DBL_MIN_10_EXP <= -37
-constant LDBL_MIN_10_EXP <= -37
+macro-int-constant FLT_MIN_10_EXP <= -37
+macro-int-constant DBL_MIN_10_EXP <= -37
+macro-int-constant LDBL_MIN_10_EXP <= -37
 
-macro FLT_MAX_EXP
-macro DBL_MAX_EXP
-macro LDBL_MAX_EXP
+macro-int-constant FLT_MAX_EXP
+macro-int-constant DBL_MAX_EXP
+macro-int-constant LDBL_MAX_EXP
 
-constant FLT_MAX_10_EXP >= 37
-constant DBL_MAX_10_EXP >= 37
-constant LDBL_MAX_10_EXP >= 37
+macro-int-constant FLT_MAX_10_EXP >= 37
+macro-int-constant DBL_MAX_10_EXP >= 37
+macro-int-constant LDBL_MAX_10_EXP >= 37
 
-constant FLT_MAX >= 1.0E37
-constant DBL_MAX >= 1.0E37
-constant LDBL_MAX >= 1.0E37
+macro-constant FLT_MAX >= 1.0E37
+macro-constant DBL_MAX >= 1.0E37
+macro-constant LDBL_MAX >= 1.0E37
 
-macro FLT_EPSILON
-macro DBL_EPSILON
-macro LDBL_EPSILON
+macro-constant FLT_EPSILON <= 1.0E-5
+macro-constant DBL_EPSILON <= 1.0E-9
+macro-constant LDBL_EPSILON <= 1.0E-9
 
-macro FLT_MIN
-macro DBL_MIN
-macro LDBL_MIN
+macro-constant FLT_MIN <= 1.0E-37
+macro-constant DBL_MIN <= 1.0E-37
+macro-constant LDBL_MIN <= 1.0E-37
 
 #if !defined ISO && !defined XPG3 && !defined XPG4 && !defined POSIX && !defined UNIX98
-constant DECIMAL_DIG >= 10
-constant FLT_EVAL_METHOD
+macro-int-constant DECIMAL_DIG >= 10
+macro-int-constant FLT_EVAL_METHOD
 #endif
 
 #if defined ISO11
-constant DBL_HAS_SUBNORM
-constant FLT_HAS_SUBNORM
-constant LDBL_HAS_SUBNORM
+macro-int-constant DBL_HAS_SUBNORM
+macro-int-constant FLT_HAS_SUBNORM
+macro-int-constant LDBL_HAS_SUBNORM
 
-constant DBL_DECIMAL_DIG >= 10
-constant FLT_DECIMAL_DIG >= 6
-constant LDBL_DECIMAL_DIG >= 10
+macro-int-constant DBL_DECIMAL_DIG >= 10
+macro-int-constant FLT_DECIMAL_DIG >= 6
+macro-int-constant LDBL_DECIMAL_DIG >= 10
 
-constant DBL_TRUE_MIN <= 1E-37
-constant FLT_TRUE_MIN <= 1E-37
-constant LDBL_TRUE_MIN <= 1E-37
+macro-constant DBL_TRUE_MIN <= 1E-37
+macro-constant FLT_TRUE_MIN <= 1E-37
+macro-constant LDBL_TRUE_MIN <= 1E-37
 #endif
 
+#if !defined ISO && !defined ISO99 && !defined ISO11
 allow *_t
+#endif
diff --git a/conform/data/limits.h-data b/conform/data/limits.h-data
index 8f7a001..dec178a 100644
--- a/conform/data/limits.h-data
+++ b/conform/data/limits.h-data
@@ -1,28 +1,29 @@
-constant CHAR_BIT >= 8
-constant SCHAR_MIN <= -127
-constant SCHAR_MAX >= 127
-constant UCHAR_MAX >= 255
+macro-int-constant CHAR_BIT >= 8
+macro-int-constant SCHAR_MIN {promoted:signed char} <= -127
+macro-int-constant SCHAR_MAX {promoted:signed char} >= 127
+macro-int-constant UCHAR_MAX {promoted:unsigned char} >= 255
 #ifdef __CHAR_UNSIGNED__
-constant CHAR_MIN == 0
-constant CHAR_MAX == UCHAR_MAX
+macro-int-constant CHAR_MIN {promoted:char} == 0
+macro-int-constant CHAR_MAX {promoted:char} == UCHAR_MAX
 #else
-constant CHAR_MIN == SCHAR_MIN
-constant CHAR_MAX == SCHAR_MAX
+macro-int-constant CHAR_MIN {promoted:char} == SCHAR_MIN
+macro-int-constant CHAR_MAX {promoted:char} == SCHAR_MAX
 #endif
-constant MB_LEN_MAX >= 1
-constant SHRT_MIN <= -32767
-constant SHRT_MAX >= 32767
-constant USHRT_MAX >= 65535
-constant INT_MAX >= 2147483647
-constant INT_MIN <= 2147483647
-constant UINT_MAX >= 4294967295
-constant LONG_MAX >= 2147483647
-constant LONG_MIN <= 2147483647
-constant ULONG_MAX >= 4294967295
+macro-int-constant MB_LEN_MAX >= 1
+macro-int-constant SHRT_MIN {promoted:short int} <= -32767
+macro-int-constant SHRT_MAX {promoted:short int} >= 32767
+macro-int-constant USHRT_MAX {promoted:unsigned short int} >= 65535
+// The ranges for int and unsigned int are from POSIX.
+macro-int-constant INT_MAX {int} >= 2147483647
+macro-int-constant INT_MIN {int} <= -2147483647
+macro-int-constant UINT_MAX {unsigned int} >= 4294967295U
+macro-int-constant LONG_MAX {long int} >= 2147483647L
+macro-int-constant LONG_MIN {long int} <= -2147483647L
+macro-int-constant ULONG_MAX {unsigned long int} >= 4294967295UL
 #if defined ISO99 || defined ISO11 || defined XOPEN2K8 || defined POSIX2008
-constant LLONG_MIN <= -9223372036854775807ll
-constant LLONG_MAX >= 9223372036854775807ll
-constant ULLONG_MAX >= 18446744073709551615ull
+macro-int-constant LLONG_MIN {long long int} <= -9223372036854775807ll
+macro-int-constant LLONG_MAX {long long int} >= 9223372036854775807ll
+macro-int-constant ULLONG_MAX {unsigned long long int} >= 18446744073709551615ull
 #endif
 
 #if !defined ISO && !defined ISO99 && !defined ISO11
diff --git a/conform/data/stddef.h-data b/conform/data/stddef.h-data
index a9acf2d..9ded4f1 100644
--- a/conform/data/stddef.h-data
+++ b/conform/data/stddef.h-data
@@ -1,4 +1,4 @@
-constant NULL
+macro-constant NULL == 0
 
 macro offsetof
 
@@ -6,4 +6,10 @@ type ptrdiff_t
 type wchar_t
 type size_t
 
+#if defined ISO11
+type max_align_t
+#endif
+
+#if !defined ISO && !defined ISO99 && !defined ISO11
 allow *_t
+#endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=c9140a622eec9919fd151cfa5d0f751f49dbc8ce

commit c9140a622eec9919fd151cfa5d0f751f49dbc8ce
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 1 20:05:14 2012 +0000

    conformtest: Check namespace within __attribute__.

diff --git a/ChangeLog b/ChangeLog
index adc2e18..c5eabf1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/conformtest.pl ($CFLAGS_namespace): Define separately
+	from $CFLAGS, without defining away __attribute__ calls.
+	(checknamespace): Use $CFLAGS_namespace.
+
 	* conform/conformtest.pl (@keywords): Only include C99 keywords
 	for standards based on C99 or C11.
 
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index 018057f..d3e41be 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -43,7 +43,8 @@ $CFLAGS{"XOPEN2K"} = "-std=c99 -D_XOPEN_SOURCE=600";
 $CFLAGS{"XOPEN2K8"} = "-std=c99 -D_XOPEN_SOURCE=700";
 $CFLAGS{"POSIX2008"} = "-std=c99 -D_POSIX_C_SOURCE=200809L";
 
-$CFLAGS = "$flags -fno-builtin '-D__attribute__(x)=' $CFLAGS{$standard} -D_ISOMAC";
+$CFLAGS_namespace = "$flags -fno-builtin $CFLAGS{$standard} -D_ISOMAC";
+$CFLAGS = "$CFLAGS_namespace '-D__attribute__(x)='";
 
 # Check standard name for validity.
 die "unknown standard \"$standard\"" if ($CFLAGS{$standard} eq "");
@@ -262,7 +263,7 @@ sub checknamespace {
 
   undef %errors;
   $nknown = 0;
-  open (CONTENT, "$CC $CFLAGS -E $fnamebase.c -P -Wp,-dN | sed -e '/^# [1-9]/d' -e '/^[[:space:]]*\$/d' |");
+  open (CONTENT, "$CC $CFLAGS_namespace -E $fnamebase.c -P -Wp,-dN | sed -e '/^# [1-9]/d' -e '/^[[:space:]]*\$/d' |");
   loop: while (<CONTENT>) {
     chop;
     if (/^#define (.*)/) {

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=9af0bf29de57bccb94db223ff835f1867b74b489

commit 9af0bf29de57bccb94db223ff835f1867b74b489
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 1 20:04:44 2012 +0000

    conformtest: Use correct keyword set for underlying C standard.

diff --git a/ChangeLog b/ChangeLog
index cc86a62..adc2e18 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/conformtest.pl (@keywords): Only include C99 keywords
+	for standards based on C99 or C11.
+
 	* conform/data/iso646.h-data [ISO || POSIX || XPG3 || XPG4]:
 	Disable tests.
 	* conform/data/stdint.h-data [ISO || POSIX || XPG3 || XPG4 ||
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index 4704deb..018057f 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -64,12 +64,15 @@ die "unknown standard \"$standard\"" if ($CFLAGS{$standard} eq "");
 #   $mustprepend{'wordexp.h'} = "#include <stddef.h>\n";
 # }
 
-# These are the ISO C99 keywords.
+# These are the ISO C90 keywords.
 @keywords = ('auto', 'break', 'case', 'char', 'const', 'continue', 'default',
 	     'do', 'double', 'else', 'enum', 'extern', 'float', 'for', 'goto',
-	     'if', 'inline', 'int', 'long', 'register', 'restrict', 'return',
+	     'if', 'int', 'long', 'register', 'return',
 	     'short', 'signed', 'sizeof', 'static', 'struct', 'switch',
 	     'typedef', 'union', 'unsigned', 'void', 'volatile', 'while');
+if ($CFLAGS{$standard} =~ /-std=(c99|c1x)/) {
+  push (@keywords, 'inline', 'restrict');
+}
 
 # Make a hash table from this information.
 while ($#keywords >= 0) {

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=343222a2a0bdc34f09dfbd1abfb06b2d1e8d5d46

commit 343222a2a0bdc34f09dfbd1abfb06b2d1e8d5d46
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 1 20:04:15 2012 +0000

    conformtest: Don't test non-C90 headers for C90.

diff --git a/ChangeLog b/ChangeLog
index b783dd3..cc86a62 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/data/iso646.h-data [ISO || POSIX || XPG3 || XPG4]:
+	Disable tests.
+	* conform/data/stdint.h-data [ISO || POSIX || XPG3 || XPG4 ||
+	UNIX98]: Likewise.
+
 	* conform/conformtest.pl: Handle "macro-int-constant" and test for
 	usability of symbols in #if.
 
diff --git a/conform/data/iso646.h-data b/conform/data/iso646.h-data
index ffbf489..7ac7d09 100644
--- a/conform/data/iso646.h-data
+++ b/conform/data/iso646.h-data
@@ -1,3 +1,4 @@
+#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4
 macro and
 macro and_eq
 macro bitand
@@ -11,3 +12,4 @@ macro xor
 macro xor_eq
 
 allow *_t
+#endif
diff --git a/conform/data/stdint.h-data b/conform/data/stdint.h-data
index 5b3fb17..99bdf22 100644
--- a/conform/data/stdint.h-data
+++ b/conform/data/stdint.h-data
@@ -1,3 +1,4 @@
+#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
 type int8_t
 type int16_t
 type int32_t
@@ -112,3 +113,4 @@ macro UINTMAX_C
 // fnamtch implementation doesn't grok the right form.
 allow INT*
 allow UINT*
+#endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=661f8cf03b7f178c143d1ec48e75a2904ab01154

commit 661f8cf03b7f178c143d1ec48e75a2904ab01154
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 1 20:03:42 2012 +0000

    conformtest: Support testing macro usability in #if.

diff --git a/ChangeLog b/ChangeLog
index 72a5f27..b783dd3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/conformtest.pl: Handle "macro-int-constant" and test for
+	usability of symbols in #if.
+
 	* conform/conformtest.pl: If macro or constant types start
 	"promoted:", expect the symbol to be of the following type
 	promoted by the integer promotions.
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index 2d8cfd7..4704deb 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -385,7 +385,7 @@ while ($#headers >= 0) {
 		     "Member \"$member\" does not have the correct type.",
 		     $res, 0);
       }
-    } elsif (/^(macro|constant|macro-constant) +([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
+    } elsif (/^(macro|constant|macro-constant|macro-int-constant) +([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
       my($symbol_type) = $1;
       my($symbol) = $2;
       my($type) = $3;
@@ -432,6 +432,43 @@ while ($#headers >= 0) {
 
       $res = $res || $mres || $cres;
 
+      if ($symbol_type eq "macro-int-constant" && ($res == 0 || !$optional)) {
+	# Test that the symbol is usable in #if.
+	open (TESTFILE, ">$fnamebase.c");
+	print TESTFILE "$prepend";
+	print TESTFILE "#include <$h>\n";
+	print TESTFILE "#if $symbol < 0\n";
+	print TESTFILE "# define conformtest_negative 1\n";
+	my($s) = "0";
+	for (my $i = 0; $i < 63; $i++) {
+	  print TESTFILE "# if $symbol & (1LL << $i)\n";
+	  print TESTFILE "#  define conformtest_bit_$i 0LL\n";
+	  print TESTFILE "# else\n";
+	  print TESTFILE "#  define conformtest_bit_$i (1LL << $i)\n";
+	  print TESTFILE "# endif\n";
+	  $s .= "|conformtest_bit_$i";
+	}
+	print TESTFILE "# define conformtest_value ~($s)\n";
+	print TESTFILE "#else\n";
+	print TESTFILE "# define conformtest_negative 0\n";
+	$s = "0";
+	for (my $i = 0; $i < 64; $i++) {
+	  print TESTFILE "# if $symbol & (1ULL << $i)\n";
+	  print TESTFILE "#  define conformtest_bit_$i (1ULL << $i)\n";
+	  print TESTFILE "# else\n";
+	  print TESTFILE "#  define conformtest_bit_$i 0ULL\n";
+	  print TESTFILE "# endif\n";
+	  $s .= "|conformtest_bit_$i";
+	}
+	print TESTFILE "# define conformtest_value ($s)\n";
+	print TESTFILE "#endif\n";
+	print TESTFILE "int main (void) { return !((($symbol < 0) == conformtest_negative) && ($symbol == conformtest_value)); }\n";
+	close (TESTFILE);
+
+	runtest ($fnamebase, "Testing for #if usability of symbol $symbol",
+		 "Symbol \"$symbol\" not usable in #if.", $res);
+      }
+
       if (defined ($type) && ($res == 0 || !$optional)) {
 	# Test the type of the symbol.
 	open (TESTFILE, ">$fnamebase.c");
@@ -744,7 +781,7 @@ while ($#headers >= 0) {
 
       if (/^element *({([^}]*)}|([^ ]*)) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*) *(.*)/) {
 	push @allow, $7;
-      } elsif (/^(macro|constant|macro-constant) +([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
+      } elsif (/^(macro|constant|macro-constant|macro-int-constant) +([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
 	push @allow, $1;
       } elsif (/^(type|tag) *({([^}]*)|([a-zA-Z0-9_]*))/) {
 	my($type) = "$3$4";

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=ee74b9cbbdba4dc9e1c0532915d4f06751a6a561

commit ee74b9cbbdba4dc9e1c0532915d4f06751a6a561
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 1 20:03:15 2012 +0000

    conformtest: Support specifying types before promotion.

diff --git a/ChangeLog b/ChangeLog
index 8b89cd9..72a5f27 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/conformtest.pl: If macro or constant types start
+	"promoted:", expect the symbol to be of the following type
+	promoted by the integer promotions.
+
 	* conform/conformtest.pl: Parse all "constant" and "macro" lines
 	in one place.  Also handle "macro-constant".
 
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index f5860ac..2d8cfd7 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -437,7 +437,12 @@ while ($#headers >= 0) {
 	open (TESTFILE, ">$fnamebase.c");
 	print TESTFILE "$prepend";
 	print TESTFILE "#include <$h>\n";
-	print TESTFILE "__typeof__ (($type) 0) a;\n";
+	if ($type =~ /^promoted:/) {
+	  $type =~ s/^promoted://;
+	  print TESTFILE "__typeof__ (($type) 0 + ($type) 0) a;\n";
+	} else {
+	  print TESTFILE "__typeof__ (($type) 0) a;\n";
+	}
 	print TESTFILE "extern __typeof__ ($symbol) a;\n";
 	close (TESTFILE);
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=aafc49b3fccb44f0da4bac49abe55fa3651ecabe

commit aafc49b3fccb44f0da4bac49abe55fa3651ecabe
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 1 20:02:48 2012 +0000

    conformtest: Unify "macro" and "constant" handling.

diff --git a/ChangeLog b/ChangeLog
index bb313e1..8b89cd9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/conformtest.pl: Parse all "constant" and "macro" lines
+	in one place.  Also handle "macro-constant".
+
 	* conform/conformtest.pl: Only accept expected macro values with
 	"==".  Parse all "macro" lines in one place.
 	* conform/data/stdlib.h-data: Use "==" form on "macro" lines.
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index c38be1d..f5860ac 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -385,54 +385,78 @@ while ($#headers >= 0) {
 		     "Member \"$member\" does not have the correct type.",
 		     $res, 0);
       }
-    } elsif (/^constant *([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
-      my($const) = $1;
-      my($type) = $2;
-      my($op) = $3;
-      my($value) = $4;
+    } elsif (/^(macro|constant|macro-constant) +([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
+      my($symbol_type) = $1;
+      my($symbol) = $2;
+      my($type) = $3;
+      my($op) = $4;
+      my($value) = $5;
       my($res) = $missing;
+      my($mres) = $missing;
+      my($cres) = $missing;
 
       # Remember that this name is allowed.
-      push @allow, $const;
+      push @allow, $symbol;
 
-      # Generate a program to test for the availability of this constant.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      print TESTFILE "__typeof__ ($const) a = $const;\n";
-      close (TESTFILE);
+      if ($symbol_type =~ /macro/) {
+	# Generate a program to test for availability of this macro.
+	open (TESTFILE, ">$fnamebase.c");
+	print TESTFILE "$prepend";
+	print TESTFILE "#include <$h>\n";
+	print TESTFILE "#ifndef $symbol\n";
+	print TESTFILE "# error \"Macro $symbol not defined\"\n";
+	print TESTFILE "#endif\n";
+	close (TESTFILE);
 
-      $res = compiletest ($fnamebase, "Testing for constant $const",
-			  ($optional
-			   ? "NOT PRESENT"
-			   : "Constant \"$const\" not available."), $res,
-			  $optional);
+	$mres = compiletest ($fnamebase, "Test availability of macro $symbol",
+			     ($optional
+			      ? "NOT PRESENT"
+			      : "Macro \"$symbol\" is not available."), $res,
+			     $optional);
+      }
+
+      if ($symbol_type =~ /constant/) {
+	# Generate a program to test for the availability of this constant.
+	open (TESTFILE, ">$fnamebase.c");
+	print TESTFILE "$prepend";
+	print TESTFILE "#include <$h>\n";
+	print TESTFILE "__typeof__ ($symbol) a = $symbol;\n";
+	close (TESTFILE);
+
+	$cres = compiletest ($fnamebase, "Testing for constant $symbol",
+			     ($optional
+			      ? "NOT PRESENT"
+			      : "Constant \"$symbol\" not available."), $res,
+			     $optional);
+      }
+
+      $res = $res || $mres || $cres;
 
       if (defined ($type) && ($res == 0 || !$optional)) {
-	# Test the types of the members.
+	# Test the type of the symbol.
 	open (TESTFILE, ">$fnamebase.c");
 	print TESTFILE "$prepend";
 	print TESTFILE "#include <$h>\n";
 	print TESTFILE "__typeof__ (($type) 0) a;\n";
-	print TESTFILE "extern __typeof__ ($const) a;\n";
+	print TESTFILE "extern __typeof__ ($symbol) a;\n";
 	close (TESTFILE);
 
-	compiletest ($fnamebase, "Testing for type of constant $const",
-		     "Constant \"$const\" does not have the correct type.",
+	compiletest ($fnamebase, "Testing for type of symbol $symbol",
+		     "Symbol \"$symbol\" does not have the correct type.",
 		     $res, 0);
       }
 
       if (defined ($op) && ($res == 0 || !$optional)) {
-	# Generate a program to test for the value of this constant.
+	# Generate a program to test for the value of this symbol.
 	open (TESTFILE, ">$fnamebase.c");
 	print TESTFILE "$prepend";
 	print TESTFILE "#include <$h>\n";
 	# Negate the value since 0 means ok
-	print TESTFILE "int main (void) { return !($const $op $value); }\n";
+	print TESTFILE "int main (void) { return !($symbol $op $value); }\n";
 	close (TESTFILE);
 
-	$res = runtest ($fnamebase, "Testing for value of constant $const",
-			"Constant \"$const\" has not the right value.", $res);
+	$res = runtest ($fnamebase, "Testing for value of symbol $symbol",
+			"Symbol \"$symbol\" has not the right value.", $res);
       }
     } elsif (/^symbol *([a-zA-Z0-9_]*) *([A-Za-z0-9_-]*)?/) {
       my($symbol) = $1;
@@ -683,42 +707,6 @@ while ($#headers >= 0) {
 
       $res = runtest ($fnamebase, "Testing for value of macro $macro",
 		      "Macro \"$macro\" has not the right value.", $res);
-    } elsif (/^macro *([a-zA-Z0-9_]*) *(?:([>=<!]+) ([A-Za-z0-9_]*))?/) {
-      my($macro) = "$1";
-      my($op) = $2;
-      my($value) = $3;
-      my($res) = $missing;
-
-      # Remember that this name is allowed.
-      push @allow, $macro;
-
-      # Generate a program to test for availability of this macro.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      print TESTFILE "#ifndef $macro\n";
-      print TESTFILE "# error \"Macro $macro not defined\"\n";
-      print TESTFILE "#endif\n";
-      close (TESTFILE);
-
-      $res = compiletest ($fnamebase, "Test availability of macro $macro",
-			  ($optional
-			   ? "NOT PRESENT"
-			   : "Macro \"$macro\" is not available."), $res,
-			  $optional);
-
-      if (defined ($op) && ($res == 0 || !$optional)) {
-	# Generate a program to test for the value of this constant.
-	open (TESTFILE, ">$fnamebase.c");
-	print TESTFILE "$prepend";
-	print TESTFILE "#include <$h>\n";
-	# Negate the value since 0 means ok
-	print TESTFILE "int main (void) { return !($macro $op $value); }\n";
-	close (TESTFILE);
-
-	$res = runtest ($fnamebase, "Testing for value of macro $macro",
-			"Macro \"$macro\" has not the right value.", $res);
-      }
     } elsif (/^allow-header *(.*)/) {
       my($pattern) = $1;
       if ($seenheader{$pattern} != 1) {
@@ -751,7 +739,7 @@ while ($#headers >= 0) {
 
       if (/^element *({([^}]*)}|([^ ]*)) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*) *(.*)/) {
 	push @allow, $7;
-      } elsif (/^constant *([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
+      } elsif (/^(macro|constant|macro-constant) +([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
 	push @allow, $1;
       } elsif (/^(type|tag) *({([^}]*)|([a-zA-Z0-9_]*))/) {
 	my($type) = "$3$4";
@@ -772,8 +760,6 @@ while ($#headers >= 0) {
 	push @allow, $4;
       } elsif (/^macro-function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) {
 	push @allow, $4;
-      } elsif (/^macro *([a-zA-Z0-9_]*) *(?:([>=<!]+) ([A-Za-z0-9_]*))?/) {
-	push @allow, $1;
       } elsif (/^symbol *([a-zA-Z0-9_]*) *([A-Za-z0-9_-]*)?/) {
 	push @allow, $1;
       } elsif (/^allow-header *(.*)/) {

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=fefdf574126726c0a9ed0badd73e187e97dd422a

commit fefdf574126726c0a9ed0badd73e187e97dd422a
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 1 20:02:19 2012 +0000

    conformtest: Unify "macro" cases.

diff --git a/ChangeLog b/ChangeLog
index 323b45b..bb313e1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/conformtest.pl: Only accept expected macro values with
+	"==".  Parse all "macro" lines in one place.
+	* conform/data/stdlib.h-data: Use "==" form on "macro" lines.
+
 	* conform/conformtest.pl: Handle braced types on "constant" lines
 	instead of handling "typed-constant".
 	* conform/data/signal.h-data: Use "constant" instead of
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index 0a1a093..c38be1d 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -683,7 +683,7 @@ while ($#headers >= 0) {
 
       $res = runtest ($fnamebase, "Testing for value of macro $macro",
 		      "Macro \"$macro\" has not the right value.", $res);
-    } elsif (/^macro *([a-zA-Z0-9_]*) *([>=<!]+) ([A-Za-z0-9_]*)/) {
+    } elsif (/^macro *([a-zA-Z0-9_]*) *(?:([>=<!]+) ([A-Za-z0-9_]*))?/) {
       my($macro) = "$1";
       my($op) = $2;
       my($value) = $3;
@@ -707,7 +707,7 @@ while ($#headers >= 0) {
 			   : "Macro \"$macro\" is not available."), $res,
 			  $optional);
 
-      if ($value ne "" && ($res == 0 || !$optional)) {
+      if (defined ($op) && ($res == 0 || !$optional)) {
 	# Generate a program to test for the value of this constant.
 	open (TESTFILE, ">$fnamebase.c");
 	print TESTFILE "$prepend";
@@ -719,61 +719,6 @@ while ($#headers >= 0) {
 	$res = runtest ($fnamebase, "Testing for value of macro $macro",
 			"Macro \"$macro\" has not the right value.", $res);
       }
-    } elsif (/^macro *([a-zA-Z0-9_]*) *([A-Za-z0-9_]*)/) {
-      my($macro) = "$1";
-      my($value) = $2;
-      my($res) = $missing;
-
-      # Remember that this name is allowed.
-      push @allow, $macro;
-
-      # Generate a program to test for availability of this macro.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      print TESTFILE "#ifndef $macro\n";
-      print TESTFILE "# error \"Macro $macro not defined\"\n";
-      print TESTFILE "#endif\n";
-      close (TESTFILE);
-
-      $res = compiletest ($fnamebase, "Test availability of macro $macro",
-			  ($optional
-			   ? "NOT PRESENT"
-			   : "Macro \"$macro\" is not available."), $res,
-			  $optional);
-
-      if ($value ne "" && ($res == 0 || !$optional)) {
-	# Generate a program to test for the value of this constant.
-	open (TESTFILE, ">$fnamebase.c");
-	print TESTFILE "$prepend";
-	print TESTFILE "#include <$h>\n";
-	# Negate the value since 0 means ok
-	print TESTFILE "int main (void) { return !($macro == $value); }\n";
-	close (TESTFILE);
-
-	$res = runtest ($fnamebase, "Testing for value of macro $macro",
-			"Macro \"$macro\" has not the right value.", $res);
-      }
-    } elsif (/^macro *([^	]*)/) {
-      my($macro) = "$1";
-
-      # Remember that this name is allowed.
-      push @allow, $macro;
-
-      # Generate a program to test for availability of this macro.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      print TESTFILE "#ifndef $macro\n";
-      print TESTFILE "# error \"Macro $macro not defined\"\n";
-      print TESTFILE "#endif\n";
-      close (TESTFILE);
-
-      compiletest ($fnamebase, "Test availability of macro $macro",
-		   ($optional
-		    ? "NOT PRESENT"
-		    : "Macro \"$macro\" is not available."), $missing,
-		   $optional);
     } elsif (/^allow-header *(.*)/) {
       my($pattern) = $1;
       if ($seenheader{$pattern} != 1) {
@@ -827,7 +772,7 @@ while ($#headers >= 0) {
 	push @allow, $4;
       } elsif (/^macro-function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) {
 	push @allow, $4;
-      } elsif (/^macro *([^	]*)/) {
+      } elsif (/^macro *([a-zA-Z0-9_]*) *(?:([>=<!]+) ([A-Za-z0-9_]*))?/) {
 	push @allow, $1;
       } elsif (/^symbol *([a-zA-Z0-9_]*) *([A-Za-z0-9_-]*)?/) {
 	push @allow, $1;
diff --git a/conform/data/stdlib.h-data b/conform/data/stdlib.h-data
index f42d4a7..f13bf3c 100644
--- a/conform/data/stdlib.h-data
+++ b/conform/data/stdlib.h-data
@@ -6,7 +6,7 @@ element ldiv_t long quot
 element ldiv_t long rem
 
 macro EXIT_FAILURE
-macro EXIT_SUCCESS 0
+macro EXIT_SUCCESS == 0
 
 macro NULL
 constant RAND_MAX >= 32767

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=f2d922feb2ea93c7133d6b40317cfdce7140f74f

commit f2d922feb2ea93c7133d6b40317cfdce7140f74f
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 1 20:01:48 2012 +0000

    conformtest: Unify "constant" and "typed-constant".

diff --git a/ChangeLog b/ChangeLog
index f1f903d..323b45b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/conformtest.pl: Handle braced types on "constant" lines
+	instead of handling "typed-constant".
+	* conform/data/signal.h-data: Use "constant" instead of
+	"typed-constant".
+
 	* conform/conformtest.pl: Handle "optional-" at start of lines in
 	one place rather than duplicating several cases.  Handle each
 	format of "macro" line with initial "optional-".
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index dc3712e..0a1a093 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -385,10 +385,11 @@ while ($#headers >= 0) {
 		     "Member \"$member\" does not have the correct type.",
 		     $res, 0);
       }
-    } elsif (/^constant *([a-zA-Z0-9_]*) *(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
+    } elsif (/^constant *([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
       my($const) = $1;
-      my($op) = $2;
-      my($value) = $3;
+      my($type) = $2;
+      my($op) = $3;
+      my($value) = $4;
       my($res) = $missing;
 
       # Remember that this name is allowed.
@@ -407,55 +408,27 @@ while ($#headers >= 0) {
 			   : "Constant \"$const\" not available."), $res,
 			  $optional);
 
-      if (defined ($op) && ($res == 0 || !$optional)) {
-	# Generate a program to test for the value of this constant.
+      if (defined ($type) && ($res == 0 || !$optional)) {
+	# Test the types of the members.
 	open (TESTFILE, ">$fnamebase.c");
 	print TESTFILE "$prepend";
 	print TESTFILE "#include <$h>\n";
-	# Negate the value since 0 means ok
-	print TESTFILE "int main (void) { return !($const $op $value); }\n";
+	print TESTFILE "__typeof__ (($type) 0) a;\n";
+	print TESTFILE "extern __typeof__ ($const) a;\n";
 	close (TESTFILE);
 
-	$res = runtest ($fnamebase, "Testing for value of constant $const",
-			"Constant \"$const\" has not the right value.", $res);
+	compiletest ($fnamebase, "Testing for type of constant $const",
+		     "Constant \"$const\" does not have the correct type.",
+		     $res, 0);
       }
-    } elsif (/^typed-constant *([a-zA-Z0-9_]*) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_-]*)?/) {
-      my($const) = $1;
-      my($type) = "$3$4";
-      my($value) = $5;
-      my($res) = $missing;
 
-      # Remember that this name is allowed.
-      push @allow, $const;
-
-      # Generate a program to test for the availability of this constant.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      print TESTFILE "__typeof__ ($const) a = $const;\n";
-      close (TESTFILE);
-
-      $res = compiletest ($fnamebase, "Testing for constant $const",
-			  "Constant \"$const\" not available.", $res, 0);
-
-      # Test the types of the members.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      print TESTFILE "__typeof__ (($type) 0) a;\n";
-      print TESTFILE "extern __typeof__ ($const) a;\n";
-      close (TESTFILE);
-
-      compiletest ($fnamebase, "Testing for type of constant $const",
-		   "Constant \"$const\" does not have the correct type.",
-		   $res, 0);
-
-      if ($value ne "") {
+      if (defined ($op) && ($res == 0 || !$optional)) {
 	# Generate a program to test for the value of this constant.
 	open (TESTFILE, ">$fnamebase.c");
 	print TESTFILE "$prepend";
 	print TESTFILE "#include <$h>\n";
-	print TESTFILE "int main (void) { return $const != $value; }\n";
+	# Negate the value since 0 means ok
+	print TESTFILE "int main (void) { return !($const $op $value); }\n";
 	close (TESTFILE);
 
 	$res = runtest ($fnamebase, "Testing for value of constant $const",
@@ -833,9 +806,7 @@ while ($#headers >= 0) {
 
       if (/^element *({([^}]*)}|([^ ]*)) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*) *(.*)/) {
 	push @allow, $7;
-      } elsif (/^constant *([a-zA-Z0-9_]*) *(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
-	push @allow, $1;
-      } elsif (/^typed-constant *([a-zA-Z0-9_]*) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*)?/) {
+      } elsif (/^constant *([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
 	push @allow, $1;
       } elsif (/^(type|tag) *({([^}]*)|([a-zA-Z0-9_]*))/) {
 	my($type) = "$3$4";
diff --git a/conform/data/signal.h-data b/conform/data/signal.h-data
index 18f1b9e..99468ae 100644
--- a/conform/data/signal.h-data
+++ b/conform/data/signal.h-data
@@ -1,9 +1,9 @@
-typed-constant SIG_DFL {void(*)(int)}
-typed-constant SIG_ERR {void(*)(int)}
+constant SIG_DFL {void(*)(int)}
+constant SIG_ERR {void(*)(int)}
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
-typed-constant SIG_HOLD {void(*)(int)}
+constant SIG_HOLD {void(*)(int)}
 #endif
-typed-constant SIG_IGN {void(*)(int)}
+constant SIG_IGN {void(*)(int)}
 
 type sig_atomic_t
 #if !defined ISO && !defined ISO99 && !defined ISO11

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d22956c99b81958fdfb8437361f92b9d8a6e7984

commit d22956c99b81958fdfb8437361f92b9d8a6e7984
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 1 20:00:56 2012 +0000

    conformtest: Unify handling of "optional-" and non-optional lines.

diff --git a/ChangeLog b/ChangeLog
index 0d4f9db..f1f903d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/conformtest.pl: Handle "optional-" at start of lines in
+	one place rather than duplicating several cases.  Handle each
+	format of "macro" line with initial "optional-".
+
 	* conform/conformtest.pl: Only accept expected constant or
 	optional-constant values with "==".  Parse all "constant" lines in
 	one place.  Parse all "optional-constant" lines in one place.
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index e15256b..dc3712e 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -338,6 +338,11 @@ while ($#headers >= 0) {
       last control if ($missing);
     }
 
+    my($optional) = 0;
+    if (/^optional-/) {
+      s/^optional-//;
+      $optional = 1;
+    }
     if (/^element *({([^}]*)}|([^{ ]*)) *({([^}]*)}|([^{ ]*)) *([A-Za-z0-9_]*) *(.*)/) {
       my($struct) = "$2$3";
       my($type) = "$5$6";
@@ -361,47 +366,12 @@ while ($#headers >= 0) {
       close (TESTFILE);
 
       $res = compiletest ($fnamebase, "Testing for member $member",
-			  "Member \"$member\" not available.", $res, 0);
-
-
-      # Test the types of the members.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      print TESTFILE "$struct a;\n";
-      print TESTFILE "extern $type b$rest;\n";
-      print TESTFILE "extern __typeof__ (a.$member) b;\n";
-      close (TESTFILE);
-
-      compiletest ($fnamebase, "Testing for type of member $member",
-		   "Member \"$member\" does not have the correct type.",
-		   $res, 0);
-    } elsif (/^optional-element *({([^}]*)}|([^{ ]*)) *({([^}]*)}|([^{ ]*)) *([A-Za-z0-9_]*) *(.*)/) {
-      my($struct) = "$2$3";
-      my($type) = "$5$6";
-      my($member) = "$7";
-      my($rest) = "$8";
-      my($res) = $missing;
-
-      # Remember that this name is allowed.
-      push @allow, $member;
-
-      # Generate a program to test for the availability of this member.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      print TESTFILE "$struct a;\n";
-      print TESTFILE "$struct b;\n";
-      print TESTFILE "extern void xyzzy (__typeof__ (&b.$member), __typeof__ (&a.$member), unsigned);\n";
-      print TESTFILE "void foobarbaz (void) {\n";
-      print TESTFILE "  xyzzy (&a.$member, &b.$member, sizeof (a.$member));\n";
-      print TESTFILE "}\n";
-      close (TESTFILE);
-
-      $res = compiletest ($fnamebase, "Testing for member $member",
-			  "NOT AVAILABLE.", $res, 1);
+			  ($optional
+			   ? "NOT AVAILABLE."
+			   : "Member \"$member\" not available."), $res,
+			  $optional);
 
-      if ($res == 0 || $missing != 0) {
+      if ($res == 0 || $missing != 0 || !$optional) {
 	# Test the types of the members.
 	open (TESTFILE, ">$fnamebase.c");
 	print TESTFILE "$prepend";
@@ -415,37 +385,6 @@ while ($#headers >= 0) {
 		     "Member \"$member\" does not have the correct type.",
 		     $res, 0);
       }
-    } elsif (/^optional-constant *([a-zA-Z0-9_]*) *(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
-      my($const) = $1;
-      my($op) = $2;
-      my($value) = $3;
-      my($res) = $missing;
-
-      # Remember that this name is allowed.
-      push @allow, $const;
-
-      # Generate a program to test for the availability of this constant.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      print TESTFILE "__typeof__ ($const) a = $const;\n";
-      close (TESTFILE);
-
-      $res = compiletest ($fnamebase, "Testing for constant $const",
-			  "NOT PRESENT", $res, 1);
-
-      if (defined ($op) && $res == 0) {
-	# Generate a program to test for the value of this constant.
-	open (TESTFILE, ">$fnamebase.c");
-	print TESTFILE "$prepend";
-	print TESTFILE "#include <$h>\n";
-	# Negate the value since 0 means ok
-	print TESTFILE "int main (void) { return !($const $op $value); }\n";
-	close (TESTFILE);
-
-	$res = runtest ($fnamebase, "Testing for value of constant $const",
-			"Constant \"$const\" has not the right value.", $res);
-      }
     } elsif (/^constant *([a-zA-Z0-9_]*) *(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
       my($const) = $1;
       my($op) = $2;
@@ -463,9 +402,12 @@ while ($#headers >= 0) {
       close (TESTFILE);
 
       $res = compiletest ($fnamebase, "Testing for constant $const",
-			  "Constant \"$const\" not available.", $res, 0);
+			  ($optional
+			   ? "NOT PRESENT"
+			   : "Constant \"$const\" not available."), $res,
+			  $optional);
 
-      if (defined ($op)) {
+      if (defined ($op) && ($res == 0 || !$optional)) {
 	# Generate a program to test for the value of this constant.
 	open (TESTFILE, ">$fnamebase.c");
 	print TESTFILE "$prepend";
@@ -550,33 +492,6 @@ while ($#headers >= 0) {
 	$res = runtest ($fnamebase, "Testing for value of symbol $symbol",
 			"Symbol \"$symbol\" has not the right value.", $res);
       }
-    } elsif (/^optional-type *({([^}]*)|([a-zA-Z0-9_]*))/) {
-      my($type) = "$2$3";
-      my($maybe_opaque) = 0;
-
-      # Remember that this name is allowed.
-      if ($type =~ /^struct *(.*)/) {
-	push @allow, $1;
-      } elsif ($type =~ /^union *(.*)/) {
-	push @allow, $1;
-      } else {
-	push @allow, $type;
-	$maybe_opaque = 1;
-      }
-
-      # Generate a program to test for the availability of this constant.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      if ($maybe_opaque == 1) {
-	print TESTFILE "$type *a;\n";
-      } else {
-	print TESTFILE "$type a;\n";
-      }
-      close (TESTFILE);
-
-      compiletest ($fnamebase, "Testing for type $type",
-		   "NOT AVAILABLE", $missing, 1);
     } elsif (/^type *({([^}]*)|([a-zA-Z0-9_]*))/) {
       my($type) = "$2$3";
       my($maybe_opaque) = 0;
@@ -603,7 +518,9 @@ while ($#headers >= 0) {
       close (TESTFILE);
 
       compiletest ($fnamebase, "Testing for type $type",
-		   "Type \"$type\" not available.", $missing, 0);
+		   ($optional
+		    ? "NOT AVAILABLE"
+		    : "Type \"$type\" not available."), $missing, $optional);
     } elsif (/^tag *({([^}]*)|([a-zA-Z0-9_]*))/) {
       my($type) = "$2$3";
 
@@ -625,7 +542,7 @@ while ($#headers >= 0) {
 
       compiletest ($fnamebase, "Testing for type $type",
 		   "Type \"$type\" not available.", $missing, 0);
-    } elsif (/^optional-function *({([^}]*)}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) {
+    } elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) {
       my($rettype) = "$2$3";
       my($fname) = "$4";
       my($args) = "$5";
@@ -643,9 +560,12 @@ while ($#headers >= 0) {
       close (TESTFILE);
 
       $res = compiletest ($fnamebase, "Test availability of function $fname",
-			  "NOT AVAILABLE", $res, 1);
+			  ($optional
+			   ? "NOT AVAILABLE"
+			   : "Function \"$fname\" is not available."), $res,
+			  $optional);
 
-      if ($res == 0 || $missing == 1) {
+      if ($res == 0 || $missing == 1 || !$optional) {
 	# Generate a program to test for the type of this function.
 	open (TESTFILE, ">$fnamebase.c");
 	print TESTFILE "$prepend";
@@ -658,38 +578,7 @@ while ($#headers >= 0) {
 	compiletest ($fnamebase, "Test for type of function $fname",
 		     "Function \"$fname\" has incorrect type.", $res, 0);
       }
-    } elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) {
-      my($rettype) = "$2$3";
-      my($fname) = "$4";
-      my($args) = "$5";
-      my($res) = $missing;
-
-      # Remember that this name is allowed.
-      push @allow, $fname;
-
-      # Generate a program to test for availability of this function.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      # print TESTFILE "#undef $fname\n";
-      print TESTFILE "$rettype (*(*foobarbaz) $args = $fname;\n";
-      close (TESTFILE);
-
-      $res = compiletest ($fnamebase, "Test availability of function $fname",
-			  "Function \"$fname\" is not available.", $res, 0);
-
-      # Generate a program to test for the type of this function.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      # print TESTFILE "#undef $fname\n";
-      print TESTFILE "extern $rettype (*(*foobarbaz) $args;\n";
-      print TESTFILE "extern __typeof__ (&$fname) foobarbaz;\n";
-      close (TESTFILE);
-
-      compiletest ($fnamebase, "Test for type of function $fname",
-		   "Function \"$fname\" has incorrect type.", $res, 0);
-    } elsif (/^optional-function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) {
+    } elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) {
       my($rettype) = "$2$3";
       my($fname) = "$4";
       my($args) = "$5";
@@ -707,9 +596,12 @@ while ($#headers >= 0) {
       close (TESTFILE);
 
       $res = compiletest ($fnamebase, "Test availability of function $fname",
-			  "NOT AVAILABLE", $res, 1);
+			  ($optional
+			   ? "NOT AVAILABLE"
+			   : "Function \"$fname\" is not available."), $res,
+			  $optional);
 
-      if ($res == 0 || $missing != 0) {
+      if ($res == 0 || $missing != 0 || !$optional) {
 	# Generate a program to test for the type of this function.
 	open (TESTFILE, ">$fnamebase.c");
 	print TESTFILE "$prepend";
@@ -722,37 +614,6 @@ while ($#headers >= 0) {
 	compiletest ($fnamebase, "Test for type of function $fname",
 		     "Function \"$fname\" has incorrect type.", $res, 0);
       }
-    } elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) {
-      my($rettype) = "$2$3";
-      my($fname) = "$4";
-      my($args) = "$5";
-      my($res) = $missing;
-
-      # Remember that this name is allowed.
-      push @allow, $fname;
-
-      # Generate a program to test for availability of this function.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      # print TESTFILE "#undef $fname\n";
-      print TESTFILE "$rettype (*foobarbaz) $args = $fname;\n";
-      close (TESTFILE);
-
-      $res = compiletest ($fnamebase, "Test availability of function $fname",
-			  "Function \"$fname\" is not available.", $res, 0);
-
-      # Generate a program to test for the type of this function.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      # print TESTFILE "#undef $fname\n";
-      print TESTFILE "extern $rettype (*foobarbaz) $args;\n";
-      print TESTFILE "extern __typeof__ (&$fname) foobarbaz;\n";
-      close (TESTFILE);
-
-      compiletest ($fnamebase, "Test for type of function $fname",
-		   "Function \"$fname\" has incorrect type.", $res, 0);
     } elsif (/^variable *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) *(.*)/) {
       my($type) = "$2$3";
       my($vname) = "$4";
@@ -849,23 +710,6 @@ while ($#headers >= 0) {
 
       $res = runtest ($fnamebase, "Testing for value of macro $macro",
 		      "Macro \"$macro\" has not the right value.", $res);
-    } elsif (/^optional-macro *([^	]*)/) {
-      my($macro) = "$1";
-
-      # Remember that this name is allowed.
-      push @allow, $macro;
-
-      # Generate a program to test for availability of this macro.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      print TESTFILE "#ifndef $macro\n";
-      print TESTFILE "# error \"Macro $macro not defined\"\n";
-      print TESTFILE "#endif\n";
-      close (TESTFILE);
-
-      compiletest ($fnamebase, "Test availability of macro $macro",
-		   "NOT PRESENT", $missing, 1);
     } elsif (/^macro *([a-zA-Z0-9_]*) *([>=<!]+) ([A-Za-z0-9_]*)/) {
       my($macro) = "$1";
       my($op) = $2;
@@ -885,9 +729,12 @@ while ($#headers >= 0) {
       close (TESTFILE);
 
       $res = compiletest ($fnamebase, "Test availability of macro $macro",
-			  "Macro \"$macro\" is not available.", $res, 0);
+			  ($optional
+			   ? "NOT PRESENT"
+			   : "Macro \"$macro\" is not available."), $res,
+			  $optional);
 
-      if ($value ne "") {
+      if ($value ne "" && ($res == 0 || !$optional)) {
 	# Generate a program to test for the value of this constant.
 	open (TESTFILE, ">$fnamebase.c");
 	print TESTFILE "$prepend";
@@ -917,9 +764,12 @@ while ($#headers >= 0) {
       close (TESTFILE);
 
       $res = compiletest ($fnamebase, "Test availability of macro $macro",
-			  "Macro \"$macro\" is not available.", $res, 0);
+			  ($optional
+			   ? "NOT PRESENT"
+			   : "Macro \"$macro\" is not available."), $res,
+			  $optional);
 
-      if ($value ne "") {
+      if ($value ne "" && ($res == 0 || !$optional)) {
 	# Generate a program to test for the value of this constant.
 	open (TESTFILE, ">$fnamebase.c");
 	print TESTFILE "$prepend";
@@ -947,7 +797,10 @@ while ($#headers >= 0) {
       close (TESTFILE);
 
       compiletest ($fnamebase, "Test availability of macro $macro",
-		   "Macro \"$macro\" is not available.", $missing, 0);
+		   ($optional
+		    ? "NOT PRESENT"
+		    : "Macro \"$macro\" is not available."), $missing,
+		   $optional);
     } elsif (/^allow-header *(.*)/) {
       my($pattern) = $1;
       if ($seenheader{$pattern} != 1) {

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=028e2e38795854365b0a9414273fbbc7ea84548a

commit 028e2e38795854365b0a9414273fbbc7ea84548a
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 1 20:00:24 2012 +0000

    conformtest: Unify variants of "constant" and "optional-constant".

diff --git a/ChangeLog b/ChangeLog
index 1f8e583..0d4f9db 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/conformtest.pl: Only accept expected constant or
+	optional-constant values with "==".  Parse all "constant" lines in
+	one place.  Parse all "optional-constant" lines in one place.
+	* conform/data/cpio.h-data: Use "==" form on "constant" lines.
+	* conform/data/fmtmsg.h-data: Likewise.
+	* conform/data/netinet/in.h-data: Likewise.
+	* conform/data/tar.h-data: Likewise.
+	* conform/data/limits.h-data: Use "==" form on "constant" and
+	"optional-constant" lines.
+
 	* conform/conformtest.pl: Use -ansi for XPG3, XPG4 and UNIX98.
 	Use -std=c99 for XOPEN2K.
 	(@knownproblems): Remove.
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index f793347..e15256b 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -415,7 +415,7 @@ while ($#headers >= 0) {
 		     "Member \"$member\" does not have the correct type.",
 		     $res, 0);
       }
-    } elsif (/^optional-constant *([a-zA-Z0-9_]*) ([>=<!]+) ([A-Za-z0-9_-]*)/) {
+    } elsif (/^optional-constant *([a-zA-Z0-9_]*) *(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
       my($const) = $1;
       my($op) = $2;
       my($value) = $3;
@@ -434,7 +434,7 @@ while ($#headers >= 0) {
       $res = compiletest ($fnamebase, "Testing for constant $const",
 			  "NOT PRESENT", $res, 1);
 
-      if ($value ne "" && $res == 0) {
+      if (defined ($op) && $res == 0) {
 	# Generate a program to test for the value of this constant.
 	open (TESTFILE, ">$fnamebase.c");
 	print TESTFILE "$prepend";
@@ -446,7 +446,7 @@ while ($#headers >= 0) {
 	$res = runtest ($fnamebase, "Testing for value of constant $const",
 			"Constant \"$const\" has not the right value.", $res);
       }
-    } elsif (/^constant *([a-zA-Z0-9_]*) *([>=<!]+) ([A-Za-z0-9_-]*)/) {
+    } elsif (/^constant *([a-zA-Z0-9_]*) *(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
       my($const) = $1;
       my($op) = $2;
       my($value) = $3;
@@ -465,7 +465,7 @@ while ($#headers >= 0) {
       $res = compiletest ($fnamebase, "Testing for constant $const",
 			  "Constant \"$const\" not available.", $res, 0);
 
-      if ($value ne "") {
+      if (defined ($op)) {
 	# Generate a program to test for the value of this constant.
 	open (TESTFILE, ">$fnamebase.c");
 	print TESTFILE "$prepend";
@@ -519,64 +519,6 @@ while ($#headers >= 0) {
 	$res = runtest ($fnamebase, "Testing for value of constant $const",
 			"Constant \"$const\" has not the right value.", $res);
       }
-    } elsif (/^optional-constant *([a-zA-Z0-9_]*) *([A-Za-z0-9_-]*)?/) {
-      my($const) = $1;
-      my($value) = $2;
-      my($res) = $missing;
-
-      # Remember that this name is allowed.
-      push @allow, $const;
-
-      # Generate a program to test for the availability of this constant.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      print TESTFILE "__typeof__ ($const) a = $const;\n";
-      close (TESTFILE);
-
-      $res = compiletest ($fnamebase, "Testing for constant $const",
-			  "NOT PRESENT", $res, 1);
-
-      if ($value ne "" && $res == 0) {
-	# Generate a program to test for the value of this constant.
-	open (TESTFILE, ">$fnamebase.c");
-	print TESTFILE "$prepend";
-	print TESTFILE "#include <$h>\n";
-	print TESTFILE "int main (void) { return $const != $value; }\n";
-	close (TESTFILE);
-
-	$res = runtest ($fnamebase, "Testing for value of constant $const",
-			"Constant \"$const\" has not the right value.", $res);
-      }
-    } elsif (/^constant *([a-zA-Z0-9_]*) *([A-Za-z0-9_-]*)?/) {
-      my($const) = $1;
-      my($value) = $2;
-      my($res) = $missing;
-
-      # Remember that this name is allowed.
-      push @allow, $const;
-
-      # Generate a program to test for the availability of this constant.
-      open (TESTFILE, ">$fnamebase.c");
-      print TESTFILE "$prepend";
-      print TESTFILE "#include <$h>\n";
-      print TESTFILE "__typeof__ ($const) a = $const;\n";
-      close (TESTFILE);
-
-      $res = compiletest ($fnamebase, "Testing for constant $const",
-			  "Constant \"$const\" not available.", $res, 0);
-
-      if ($value ne "") {
-	# Generate a program to test for the value of this constant.
-	open (TESTFILE, ">$fnamebase.c");
-	print TESTFILE "$prepend";
-	print TESTFILE "#include <$h>\n";
-	print TESTFILE "int main (void) { return $const != $value; }\n";
-	close (TESTFILE);
-
-	$res = runtest ($fnamebase, "Testing for value of constant $const",
-			"Constant \"$const\" has not the right value.", $res);
-      }
     } elsif (/^symbol *([a-zA-Z0-9_]*) *([A-Za-z0-9_-]*)?/) {
       my($symbol) = $1;
       my($value) = $2;
@@ -1038,7 +980,7 @@ while ($#headers >= 0) {
 
       if (/^element *({([^}]*)}|([^ ]*)) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*) *(.*)/) {
 	push @allow, $7;
-      } elsif (/^constant *([a-zA-Z0-9_]*) *([A-Za-z0-9_]*)?/) {
+      } elsif (/^constant *([a-zA-Z0-9_]*) *(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
 	push @allow, $1;
       } elsif (/^typed-constant *([a-zA-Z0-9_]*) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*)?/) {
 	push @allow, $1;
diff --git a/conform/data/cpio.h-data b/conform/data/cpio.h-data
index 6e71319..4727770 100644
--- a/conform/data/cpio.h-data
+++ b/conform/data/cpio.h-data
@@ -1,24 +1,24 @@
 #if !defined ISO && !defined ISO99 && !defined ISO11
-constant C_IRUSR 0000400
-constant C_IWUSR 0000200
-constant C_IXUSR 0000100
-constant C_IRGRP 0000040
-constant C_IWGRP 0000020
-constant C_IXGRP 0000010
-constant C_IROTH 0000004
-constant C_IWOTH 0000002
-constant C_IXOTH 0000001
-constant C_ISUID 0004000
-constant C_ISGID 0002000
-constant C_ISVTX 0001000
-constant C_ISDIR 0040000
-constant C_ISFIFO 0010000
-constant C_ISREG 0100000
-constant C_ISBLK 0060000
-constant C_ISCHR 0020000
-constant C_ISCTG 0110000
-constant C_ISLNK 0120000
-constant C_ISSOCK 0140000
+constant C_IRUSR == 0000400
+constant C_IWUSR == 0000200
+constant C_IXUSR == 0000100
+constant C_IRGRP == 0000040
+constant C_IWGRP == 0000020
+constant C_IXGRP == 0000010
+constant C_IROTH == 0000004
+constant C_IWOTH == 0000002
+constant C_IXOTH == 0000001
+constant C_ISUID == 0004000
+constant C_ISGID == 0002000
+constant C_ISVTX == 0001000
+constant C_ISDIR == 0040000
+constant C_ISFIFO == 0010000
+constant C_ISREG == 0100000
+constant C_ISBLK == 0060000
+constant C_ISCHR == 0020000
+constant C_ISCTG == 0110000
+constant C_ISLNK == 0120000
+constant C_ISSOCK == 0140000
 
 macro-str MAGIC "070707"
 
diff --git a/conform/data/fmtmsg.h-data b/conform/data/fmtmsg.h-data
index d6d0ff1..b6ddf27 100644
--- a/conform/data/fmtmsg.h-data
+++ b/conform/data/fmtmsg.h-data
@@ -44,12 +44,12 @@ constant MM_PRINT
 macro MM_CONSOLE
 constant MM_CONSOLE
 
-constant MM_NULLLBL 0
-constant MM_NULLSEV 0
-constant MM_NULLMC 0
-constant MM_NULLTXT 0
-constant MM_NULLACT 0
-constant MM_NULLTAG 0
+constant MM_NULLLBL == 0
+constant MM_NULLSEV == 0
+constant MM_NULLMC == 0
+constant MM_NULLTXT == 0
+constant MM_NULLACT == 0
+constant MM_NULLTAG == 0
 
 macro MM_OK
 macro MM_NOTOK
diff --git a/conform/data/limits.h-data b/conform/data/limits.h-data
index d7c9796..8f7a001 100644
--- a/conform/data/limits.h-data
+++ b/conform/data/limits.h-data
@@ -3,11 +3,11 @@ constant SCHAR_MIN <= -127
 constant SCHAR_MAX >= 127
 constant UCHAR_MAX >= 255
 #ifdef __CHAR_UNSIGNED__
-constant CHAR_MIN 0
-constant CHAR_MAX UCHAR_MAX
+constant CHAR_MIN == 0
+constant CHAR_MAX == UCHAR_MAX
 #else
-constant CHAR_MIN SCHAR_MIN
-constant CHAR_MAX SCHAR_MAX
+constant CHAR_MIN == SCHAR_MIN
+constant CHAR_MAX == SCHAR_MAX
 #endif
 constant MB_LEN_MAX >= 1
 constant SHRT_MIN <= -32767
@@ -84,60 +84,60 @@ macro RE_DUP_MAX
 
 constant _POSIX_CLOCKRES_MIN <= 20000000
 
-optional-constant _POSIX_AIO_LISTIO_MAX	2
-optional-constant _POSIX_AIO_MAX 1
-optional-constant _POSIX_ARG_MAX 4096
+optional-constant _POSIX_AIO_LISTIO_MAX == 2
+optional-constant _POSIX_AIO_MAX == 1
+optional-constant _POSIX_ARG_MAX == 4096
 #if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
-optional-constant _POSIX_CHILD_MAX 25
+optional-constant _POSIX_CHILD_MAX == 25
 #else
-optional-constant _POSIX_CHILD_MAX 6
+optional-constant _POSIX_CHILD_MAX == 6
 #endif
-optional-constant _POSIX_DELAYTIMER_MAX 32
-optional-constant _POSIX_LINK_MAX 8
-optional-constant _POSIX_LOGIN_NAME_MAX 9
-optional-constant _POSIX_MAX_CANON 255
-optional-constant _POSIX_MAX_INPUT 255
-optional-constant _POSIX_MQ_OPEN_MAX 8
-optional-constant _POSIX_MQ_PRIO_MAX 32
-optional-constant _POSIX_NAME_MAX 14
+optional-constant _POSIX_DELAYTIMER_MAX == 32
+optional-constant _POSIX_LINK_MAX == 8
+optional-constant _POSIX_LOGIN_NAME_MAX == 9
+optional-constant _POSIX_MAX_CANON == 255
+optional-constant _POSIX_MAX_INPUT == 255
+optional-constant _POSIX_MQ_OPEN_MAX == 8
+optional-constant _POSIX_MQ_PRIO_MAX == 32
+optional-constant _POSIX_NAME_MAX == 14
 #if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
-optional-constant _POSIX_NGROUPS_MAX 8
+optional-constant _POSIX_NGROUPS_MAX == 8
 #else
-optional-constant _POSIX_NGROUPS_MAX 0
+optional-constant _POSIX_NGROUPS_MAX == 0
 #endif
 #if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
-optional-constant _POSIX_OPEN_MAX 20
+optional-constant _POSIX_OPEN_MAX == 20
 #else
-optional-constant _POSIX_OPEN_MAX 16
+optional-constant _POSIX_OPEN_MAX == 16
 #endif
-optional-constant _POSIX_PATH_MAX 256
-optional-constant _POSIX_PIPE_BUF 512
-optional-constant _POSIX2_RE_DUP_MAX 255
-optional-constant _POSIX_RTSIG_MAX 8
-optional-constant _POSIX_SEM_NSEMS_MAX 256
-optional-constant _POSIX_SEM_VALUE_MAX 32767
-optional-constant _POSIX_SIGQUEUE_MAX 32
-optional-constant _POSIX_SSIZE_MAX 32767
-optional-constant _POSIX_STREAM_MAX 8
-optional-constant _POSIX_SS_REPL_MAX 4
-optional-constant _POSIX_SYMLINK_MAX 255
-optional-constant _POSIX_SYMLOOP_MAX 8
-optional-constant _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
-optional-constant _POSIX_THREAD_KEYS_MAX 128
-optional-constant _POSIX_THREAD_THREADS_MAX 64
-optional-constant _POSIX_TIMER_MAX 32
-optional-constant _POSIX_TTY_NAME_MAX 9
-optional-constant _POSIX_TZNAME_MAX 6
-optional-constant _POSIX2_BC_BASE_MAX 99
-optional-constant _POSIX2_BC_DIM_MAX 2048
-optional-constant _POSIX2_BC_SCALE_MAX 99
-optional-constant _POSIX2_BC_STRING_MAX 1000
-optional-constant _POSIX2_CHARCLASS_NAME_MAX 14
-optional-constant _POSIX2_COLL_WEIGHTS_MAX 2
-optional-constant _POSIX2_EXPR_NEST_MAX 32
-optional-constant _POSIX2_LINE_MAX 2048
-optional-constant _POSIX2_RE_DUP_MAX 255
-optional-constant _XOPEN_IOV_MAX 16
+optional-constant _POSIX_PATH_MAX == 256
+optional-constant _POSIX_PIPE_BUF == 512
+optional-constant _POSIX2_RE_DUP_MAX == 255
+optional-constant _POSIX_RTSIG_MAX == 8
+optional-constant _POSIX_SEM_NSEMS_MAX == 256
+optional-constant _POSIX_SEM_VALUE_MAX == 32767
+optional-constant _POSIX_SIGQUEUE_MAX == 32
+optional-constant _POSIX_SSIZE_MAX == 32767
+optional-constant _POSIX_STREAM_MAX == 8
+optional-constant _POSIX_SS_REPL_MAX == 4
+optional-constant _POSIX_SYMLINK_MAX == 255
+optional-constant _POSIX_SYMLOOP_MAX == 8
+optional-constant _POSIX_THREAD_DESTRUCTOR_ITERATIONS == 4
+optional-constant _POSIX_THREAD_KEYS_MAX == 128
+optional-constant _POSIX_THREAD_THREADS_MAX == 64
+optional-constant _POSIX_TIMER_MAX == 32
+optional-constant _POSIX_TTY_NAME_MAX == 9
+optional-constant _POSIX_TZNAME_MAX == 6
+optional-constant _POSIX2_BC_BASE_MAX == 99
+optional-constant _POSIX2_BC_DIM_MAX == 2048
+optional-constant _POSIX2_BC_SCALE_MAX == 99
+optional-constant _POSIX2_BC_STRING_MAX == 1000
+optional-constant _POSIX2_CHARCLASS_NAME_MAX == 14
+optional-constant _POSIX2_COLL_WEIGHTS_MAX == 2
+optional-constant _POSIX2_EXPR_NEST_MAX == 32
+optional-constant _POSIX2_LINE_MAX == 2048
+optional-constant _POSIX2_RE_DUP_MAX == 255
+optional-constant _XOPEN_IOV_MAX == 16
 
 #if !defined POSIX && !defined POSIX2008
 constant WORD_BIT >= 16
diff --git a/conform/data/netinet/in.h-data b/conform/data/netinet/in.h-data
index 020a97e..be0236b 100644
--- a/conform/data/netinet/in.h-data
+++ b/conform/data/netinet/in.h-data
@@ -51,7 +51,7 @@ macro IPPROTO_UDP
 macro INADDR_ANY
 macro INADDR_BROADCAST
 
-constant INET_ADDRSTRLEN 16
+constant INET_ADDRSTRLEN == 16
 
 function uint32_t htonl (uint32_t)
 function uint16_t htons (uint16_t)
@@ -61,7 +61,7 @@ function uint16_t ntohs (uint16_t)
 allow-header inttypes.h
 allow-header sys/socket.h
 
-constant INET6_ADDRSTRLEN 46
+constant INET6_ADDRSTRLEN == 46
 
 macro IPV6_JOIN_GROUP
 macro IPV6_LEAVE_GROUP
diff --git a/conform/data/tar.h-data b/conform/data/tar.h-data
index aa0cebc..591850c 100644
--- a/conform/data/tar.h-data
+++ b/conform/data/tar.h-data
@@ -1,8 +1,8 @@
 #if !defined ISO && !defined ISO99 && !defined ISO11
 macro-str TMAGIC "ustar"
-constant TMAGLEN 6
+constant TMAGLEN == 6
 macro-str TVERSION "00"
-constant TVERSLEN 2
+constant TVERSLEN == 2
 
 constant REGTYPE
 constant AREGTYPE
@@ -14,20 +14,20 @@ constant DIRTYPE
 constant FIFOTYPE
 constant CONTTYPE
 
-constant TSUID 04000
-constant TSGID 02000
+constant TSUID == 04000
+constant TSGID == 02000
 # if !defined POSIX && !defined POSIX2008
-constant TSVTX 01000
+constant TSVTX == 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
+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
 
 allow *_t
 #endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1b8f2850d8c95619598241e91a7249bba5775be1

commit 1b8f2850d8c95619598241e91a7249bba5775be1
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 1 19:59:47 2012 +0000

    conformtest: Always pass C standards options to compiler.

diff --git a/ChangeLog b/ChangeLog
index 43f556c..1f8e583 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/conformtest.pl: Use -ansi for XPG3, XPG4 and UNIX98.
+	Use -std=c99 for XOPEN2K.
+	(@knownproblems): Remove.
+	(newtoken): Don't check %isknown.
+
 	* conform/data/math.h-data [XPG3 || XPG4 || UNIX98] (fpclassify):
 	Do not expect macro.
 	[XPG3 || XPG4 || UNIX98] (isfinite): Likewise.
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index 25e05a2..f793347 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -36,10 +36,10 @@ $CFLAGS{"ISO"} = "-ansi";
 $CFLAGS{"ISO99"} = "-std=c99";
 $CFLAGS{"ISO11"} = "-std=c1x -D_ISOC11_SOURCE";
 $CFLAGS{"POSIX"} = "-D_POSIX_C_SOURCE=199912 -ansi";
-$CFLAGS{"XPG3"} = "-D_XOPEN_SOURCE";
-$CFLAGS{"XPG4"} = "-D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED";
-$CFLAGS{"UNIX98"} = "-D_XOPEN_SOURCE=500";
-$CFLAGS{"XOPEN2K"} = "-D_XOPEN_SOURCE=600";
+$CFLAGS{"XPG3"} = "-ansi -D_XOPEN_SOURCE";
+$CFLAGS{"XPG4"} = "-ansi -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED";
+$CFLAGS{"UNIX98"} = "-ansi -D_XOPEN_SOURCE=500";
+$CFLAGS{"XOPEN2K"} = "-std=c99 -D_XOPEN_SOURCE=600";
 $CFLAGS{"XOPEN2K8"} = "-std=c99 -D_XOPEN_SOURCE=700";
 $CFLAGS{"POSIX2008"} = "-std=c99 -D_POSIX_C_SOURCE=200809L";
 
@@ -76,14 +76,6 @@ while ($#keywords >= 0) {
   $iskeyword{pop (@keywords)} = 1;
 }
 
-# These are symbols which are known to pollute the namespace.
-@knownproblems = ('unix', 'linux', 'i386');
-
-# Make a hash table from the known problems.
-while ($#knownproblems >= 0) {
-  $isknown{pop (@knownproblems)} = 1;
-}
-
 $verbose = 1;
 
 $total = 0;
@@ -240,10 +232,6 @@ sub newtoken {
   for ($idx = 0; $idx <= $#allow; ++$idx) {
     return if (poorfnmatch ($allow[$idx], $token));
   }
-
-  unless ($isknown{$token}) {
-    $errors{$token} = 1;
-  }
 }
 
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a05a144b13bc695e0c16c5c0ff29d9da782cd32f

commit a05a144b13bc695e0c16c5c0ff29d9da782cd32f
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 1 19:59:15 2012 +0000

    conformtest: Improve math.h tests for X/Open versions.

diff --git a/ChangeLog b/ChangeLog
index 5edfd3e..43f556c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,196 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/data/math.h-data [XPG3 || XPG4 || UNIX98] (fpclassify):
+	Do not expect macro.
+	[XPG3 || XPG4 || UNIX98] (isfinite): Likewise.
+	[XPG3 || XPG4 || UNIX98] (isinf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (isnan): Likewise.
+	[XPG3 || XPG4 || UNIX98] (isnormal): Likewise.
+	[XPG3 || XPG4 || UNIX98] (signbit): Likewise.
+	[XPG3 || XPG4 || UNIX98] (isgreater): Likewise.
+	[XPG3 || XPG4 || UNIX98] (isgreaterequal): Likewise.
+	[XPG3 || XPG4 || UNIX98] (isless): Likewise.
+	[XPG3 || XPG4 || UNIX98] (islessequal): Likewise.
+	[XPG3 || XPG4 || UNIX98] (islessgreater): Likewise.
+	[XPG3 || XPG4 || UNIX98] (isunordered): Likewise.
+	[XPG3 || XPG4 || UNIX98] (isnan): Expect as function.
+	[XPG3 || XPG4 || UNIX98] (HUGE_VALF): Do not expect.
+	[XPG3 || XPG4 || UNIX98] (HUGE_VALL): Likewise.
+	[XPG3 || XPG4 || UNIX98] (INFINITY): Likewise.
+	[XPG3 || XPG4 || UNIX98] (NAN): Likewise.
+	[XPG3 || XPG4 || UNIX98] (FP_INFINITE): Likewise.
+	[XPG3 || XPG4 || UNIX98] (FP_NAN): Likewise.
+	[XPG3 || XPG4 || UNIX98] (FP_NORMAL): Likewise.
+	[XPG3 || XPG4 || UNIX98] (FP_SUBNORMAL): Likewise.
+	[XPG3 || XPG4 || UNIX98] (FP_ZERO): Likewise.
+	[XPG3 || XPG4 || UNIX98] (FP_FAST_FMA): Likewise.
+	[XPG3 || XPG4 || UNIX98] (FP_FAST_FMAF): Likewise.
+	[XPG3 || XPG4 || UNIX98] (FP_FAST_FMAL): Likewise.
+	[XPG3 || XPG4 || UNIX98] (FP_ILOGB0): Likewise.
+	[XPG3 || XPG4 || UNIX98] (FP_ILOGBNAN): Likewise.
+	[XPG3 || XPG4 || UNIX98] (copysign): Likewise.
+	[XPG3 || XPG4 || UNIX98] (exp2): Likewise.
+	[XPG3 || XPG4 || UNIX98] (log2): Likewise.
+	[XPG3 || XPG4 || UNIX98] (tgama): Likewise.
+	[XPG3] (acosh): Likewise.
+	[XPG3] (asinh): Likewise.
+	[XPG3] (atanh): Likewise.
+	[XPG3] (cbrt): Likewise.
+	[XPG3] (expm1): Likewise.
+	[XPG3] (ilogb): Likewise.
+	[XPG3] (log1p): Likewise.
+	[XPG3] (logb): Likewise.
+	[XPG3] (nextafter): Likewise.
+	[XPG3 || XPG4 || UNIX98] (nexttoward): Likewise.
+	[XPG3 || XPG4 || UNIX98] (nearbyint): Likewise.
+	[XPG3] (remainder): Likewise.
+	[XPG3] (rint): Likewise.
+	[XPG3 || XPG4 || UNIX98] (round): Likewise.
+	[XPG3 || XPG4 || UNIX98] (trunc): Likewise.
+	[XPG3 || XPG4 || UNIX98] (lrint): Likewise.
+	[XPG3 || XPG4 || UNIX98] (llrint): Likewise.
+	[XPG3 || XPG4 || UNIX98] (lround): Likewise.
+	[XPG3 || XPG4 || UNIX98] (llround): Likewise.
+	[XPG3 || XPG4 || UNIX98] (remquo): Likewise.
+	[UNIX98 || XOPEN2K] (scalb): Expect.
+	[XPG3 || XPG4 || UNIX98] (scalbn): Do not expect.
+	[XPG3 || XPG4 || UNIX98] (scalbln): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fdim): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fmax): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fmin): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fma): Likewise.
+	[XPG3 || XPG4 || UNIX98] (nan): Likewise.
+	[XPG3 || XPG4 || UNIX98] (acosf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (asinf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (atanf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (atan2f): Likewise.
+	[XPG3 || XPG4 || UNIX98] (ceilf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (copysignf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (cosf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (coshf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (expf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (exp2f): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fabsf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (floorf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fmodf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (frexpf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (ldexpf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (logf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (log10f): Likewise.
+	[XPG3 || XPG4 || UNIX98] (log2f): Likewise.
+	[XPG3 || XPG4 || UNIX98] (modff): Likewise.
+	[XPG3 || XPG4 || UNIX98] (powf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (sinf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (sinhf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (sqrtf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (tanf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (tanhf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (erff): Likewise.
+	[XPG3 || XPG4 || UNIX98] (erfcf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (gammaf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (hypotf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (j0f): Likewise.
+	[XPG3 || XPG4 || UNIX98] (j1f): Likewise.
+	[XPG3 || XPG4 || UNIX98] (jnf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (lgammaf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (tgammaf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (y0f): Likewise.
+	[XPG3 || XPG4 || UNIX98] (y1f): Likewise.
+	[XPG3 || XPG4 || UNIX98] (ynf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (acoshf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (asinhf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (atanhf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (cbrtf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (expm1f): Likewise.
+	[XPG3 || XPG4 || UNIX98] (ilogbf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (log1pf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (logbf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (nextafterf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (nexttowardf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (nearbyintf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (remainderf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (rintf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (roundf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (truncf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (lrintf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (llrintf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (lroundf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (llroundf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (remquof): Likewise.
+	[XPG3 || XPG4 || UNIX98] (scalbf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (scalbnf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (scalblnf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fdimf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fmaxf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fminf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fmaf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (nanf): Likewise.
+	[XPG3 || XPG4 || UNIX98] (acosl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (asinl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (atanl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (atan2l): Likewise.
+	[XPG3 || XPG4 || UNIX98] (ceill): Likewise.
+	[XPG3 || XPG4 || UNIX98] (copysignl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (cosl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (coshl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (expl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (exp2l): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fabsl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (floorl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fmodl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (frexpl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (ldexpl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (logl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (log10l): Likewise.
+	[XPG3 || XPG4 || UNIX98] (log2l): Likewise.
+	[XPG3 || XPG4 || UNIX98] (modfl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (powl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (sinl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (sinhl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (sqrtl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (tanl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (tanhl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (erfl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (erfcl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (gammal): Likewise.
+	[XPG3 || XPG4 || UNIX98] (hypotl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (j0l): Likewise.
+	[XPG3 || XPG4 || UNIX98] (j1l): Likewise.
+	[XPG3 || XPG4 || UNIX98] (jnl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (lgammal): Likewise.
+	[XPG3 || XPG4 || UNIX98] (tgammal): Likewise.
+	[XPG3 || XPG4 || UNIX98] (y0l): Likewise.
+	[XPG3 || XPG4 || UNIX98] (y1l): Likewise.
+	[XPG3 || XPG4 || UNIX98] (ynl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (acoshl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (asinhl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (atanhl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (cbrtl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (expm1l): Likewise.
+	[XPG3 || XPG4 || UNIX98] (ilogbl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (log1pl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (logbl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (nextafterl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (nexttowardl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (nearbyintl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (remainderl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (rintl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (roundl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (truncl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (lrintl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (llrintl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (lroundl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (llroundl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (remquol): Likewise.
+	[XPG3 || XPG4 || UNIX98] (scalbl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (scalbnl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (scalblnl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fdiml): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fmaxl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fminl): Likewise.
+	[XPG3 || XPG4 || UNIX98] (fmal): Likewise.
+	[XPG3 || XPG4 || UNIX98] (nanl): Likewise.
+
 	* conform/conformtest.pl: Define _XOPEN_SOURCE as well as
 	_XOPEN_SOURCE_EXTENDED for XPG4.
 
diff --git a/conform/data/math.h-data b/conform/data/math.h-data
index 5f1f11d..ce41dc5 100644
--- a/conform/data/math.h-data
+++ b/conform/data/math.h-data
@@ -1,6 +1,7 @@
 constant HUGE_VAL
 
 #if !defined ISO && !defined POSIX
+# if !defined XPG3 && !defined XPG4 && !defined UNIX98
 macro fpclassify
 macro isfinite
 macro isinf
@@ -13,6 +14,10 @@ macro isless
 macro islessequal
 macro islessgreater
 macro isunordered
+# endif
+# if defined XPG3 || defined XPG4 || defined UNIX98
+function double isnan (double)
+# endif
 
 # if !defined ISO99 && !defined ISO11 && !defined POSIX2008
 constant M_E
@@ -31,6 +36,7 @@ constant M_SQRT1_2
 
 constant MAXFLOAT
 # endif
+# if !defined XPG3 && !defined XPG4 && !defined UNIX98
 constant HUGE_VALF
 constant HUGE_VALL
 constant INFINITY
@@ -49,7 +55,6 @@ optional-macro FP_FAST_FMAL
 constant FP_ILOGB0
 constant FP_ILOGBNAN
 
-# if !defined XPG3 && !defined XPG4 && !defined UNIX98
 macro MATH_ERRNO == 1
 macro MATH_ERREXCEPT == 2
 
@@ -62,13 +67,13 @@ function double asin (double)
 function double atan (double)
 function double atan2 (double, double)
 function double ceil (double)
-#if !defined ISO && !defined POSIX
+#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
 function double copysign (double, double)
 #endif
 function double cos (double)
 function double cosh (double)
 function double exp (double)
-#if !defined ISO && !defined POSIX
+#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
 function double exp2 (double)
 #endif
 function double fabs (double)
@@ -78,7 +83,7 @@ function double frexp (double, int*)
 function double ldexp (double, int)
 function double log (double)
 function double log10 (double)
-#if !defined ISO && !defined POSIX
+#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
 function double log2 (double)
 #endif
 function double modf (double, double*)
@@ -103,12 +108,15 @@ function double j1 (double)
 function double jn (int, double)
 # endif
 function double lgamma (double)
+# if !defined XPG3 && !defined XPG4 && !defined UNIX98
 function double tgamma (double)
+# endif
 # if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
 function double y0 (double)
 function double y1 (double)
 function double yn (int, double)
 # endif
+# if !defined XPG3
 function double acosh (double)
 function double asinh (double)
 function double atanh (double)
@@ -118,10 +126,13 @@ function int ilogb (double)
 function double log1p (double)
 function double logb (double)
 function double nextafter (double, double)
+#  if !defined XPG4 && !defined UNIX98
 function double nexttoward (double, long double)
 function double nearbyint (double)
+#  endif
 function double remainder (double, double)
 function double rint (double)
+#  if !defined XPG4 && !defined UNIX98
 function double round (double)
 function double trunc (double)
 function long lrint (double)
@@ -129,9 +140,11 @@ function {long long} llrint (double)
 function long lround (double)
 function {long long} llround (double)
 function double remquo (double, double, int*)
-# if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K
+#  endif
+#  if defined XPG4 || defined UNIX98 || defined XOPEN2K
 function double scalb (double, double)
-# endif
+#  endif
+#  if !defined XPG4 && !defined UNIX98
 function double scalbn (double, int)
 function double scalbln (double, long)
 function double fdim (double, double)
@@ -139,6 +152,8 @@ function double fmax (double, double)
 function double fmin (double, double)
 function double fma (double, double, double)
 function double nan (const char*)
+#  endif
+# endif
 
 # if !defined POSIX && !defined POSIX2008
 // variable signgam
@@ -146,7 +161,7 @@ allow signgam
 # endif
 #endif
 
-#if !defined ISO && !defined POSIX
+#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
 function float acosf (float)
 function float asinf (float)
 function float atanf (float)
@@ -174,9 +189,6 @@ function float tanf (float)
 function float tanhf (float)
 function float erff (float)
 function float erfcf (float)
-#if defined XPG3 || defined XPG4 || defined UNIX98
-function float gammaf (float)
-#endif
 function float hypotf (float, float)
 #if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
 function float j0f (float)
@@ -210,9 +222,6 @@ function {long long} llrintf (float)
 function long lroundf (float)
 function {long long} llroundf (float)
 function float remquof (float, float, int*)
-#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K
-function float scalbf (float, float)
-#endif
 function float scalbnf (float, int)
 function float scalblnf (float, long)
 function float fdimf (float, float)
@@ -248,9 +257,6 @@ function {long double} tanl (long double)
 function {long double} tanhl (long double)
 function {long double} erfl (long double)
 function {long double} erfcl (long double)
-#if defined XPG3 || defined XPG4 || defined UNIX98
-function {long double} gammal (long double)
-#endif
 function {long double} hypotl (long double, long double)
 #if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
 function {long double} j0l (long double)
@@ -284,9 +290,6 @@ function {long long} llrintl (long double)
 function long lroundl (long double)
 function {long long} llroundl (long double)
 function {long double} remquol (long double, long double, int*)
-#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K
-function {long double} scalbl (long double, long double)
-#endif
 function {long double} scalbnl (long double, int)
 function {long double} scalblnl (long double, long)
 function {long double} fdiml (long double, long double)

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=73c5ebe3441e17ba7b53a3bb00a6a91b569aeef6

commit 73c5ebe3441e17ba7b53a3bb00a6a91b569aeef6
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 1 19:58:35 2012 +0000

    conformtest: Use correct feature test macros for XPG4.

diff --git a/ChangeLog b/ChangeLog
index 286f58b..5edfd3e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/conformtest.pl: Define _XOPEN_SOURCE as well as
+	_XOPEN_SOURCE_EXTENDED for XPG4.
+
 	* conform/conformtest.pl: Handle "symbol" lines for allow-header.
 
 	* Makeconfig (localtime): Remove variable.
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index a14aa09..25e05a2 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -37,7 +37,7 @@ $CFLAGS{"ISO99"} = "-std=c99";
 $CFLAGS{"ISO11"} = "-std=c1x -D_ISOC11_SOURCE";
 $CFLAGS{"POSIX"} = "-D_POSIX_C_SOURCE=199912 -ansi";
 $CFLAGS{"XPG3"} = "-D_XOPEN_SOURCE";
-$CFLAGS{"XPG4"} = "-D_XOPEN_SOURCE_EXTENDED";
+$CFLAGS{"XPG4"} = "-D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED";
 $CFLAGS{"UNIX98"} = "-D_XOPEN_SOURCE=500";
 $CFLAGS{"XOPEN2K"} = "-D_XOPEN_SOURCE=600";
 $CFLAGS{"XOPEN2K8"} = "-std=c99 -D_XOPEN_SOURCE=700";

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=39c33b6cbccc5dac4f1b9e710ba490010d04d8b0

commit 39c33b6cbccc5dac4f1b9e710ba490010d04d8b0
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 1 19:58:06 2012 +0000

    conformtest: Handle "symbol" lines for allow-header.

diff --git a/ChangeLog b/ChangeLog
index a6f53c1..286f58b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/conformtest.pl: Handle "symbol" lines for allow-header.
+
 	* Makeconfig (localtime): Remove variable.
 	(inst_localtime-file): Likewise.
 
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index 8b95186..a14aa09 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -1075,6 +1075,8 @@ while ($#headers >= 0) {
 	push @allow, $4;
       } elsif (/^macro *([^	]*)/) {
 	push @allow, $1;
+      } elsif (/^symbol *([a-zA-Z0-9_]*) *([A-Za-z0-9_-]*)?/) {
+	push @allow, $1;
       } elsif (/^allow-header *(.*)/) {
 	if ($seenheader{$1} != 1) {
 	  push @allowheader, $1;

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                      |  405 ++++++++++++++++++++++++++++++++
 conform/conformtest.pl         |  497 +++++++++------------------------------
 conform/data/assert.h-data     |    2 +
 conform/data/cpio.h-data       |   40 ++--
 conform/data/ctype.h-data      |   12 +-
 conform/data/errno.h-data      |  162 +++++++-------
 conform/data/float.h-data      |   82 ++++----
 conform/data/fmtmsg.h-data     |   12 +-
 conform/data/iso646.h-data     |    2 +
 conform/data/limits.h-data     |  133 ++++++------
 conform/data/math.h-data       |   41 ++--
 conform/data/netinet/in.h-data |    4 +-
 conform/data/signal.h-data     |    8 +-
 conform/data/stddef.h-data     |    8 +-
 conform/data/stdint.h-data     |    2 +
 conform/data/stdlib.h-data     |    2 +-
 conform/data/tar.h-data        |   28 ++--
 17 files changed, 801 insertions(+), 639 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


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