Replace lll_private_futex_* (*) with lll_futex_* (*, LLL_PRIVATE).
[kopensolaris-gnu/glibc.git] / CONFORMANCE
index e552d9d..6872308 100644 (file)
@@ -13,41 +13,64 @@ The hdrchk test suite is available from the Open Group at
 
        ftp://ftp.rdg.opengroup.org/pub/unsupported/stdtools/hdrchk/
 
 
        ftp://ftp.rdg.opengroup.org/pub/unsupported/stdtools/hdrchk/
 
-I've last run the suite on 2000-08-13 on a Linux/ix86 system with the
-following results [*]:
+I've last run the suite on 2004-04-17 on a Linux/x86 system running
+a Fedora Core 2 test 2 + updates with the following results [*]:
 
        FIPS            No reported problems
 
        POSIX90         No reported problems
 
 
        FIPS            No reported problems
 
        POSIX90         No reported problems
 
-       XPG3            No reported problems
+       XPG3            Prototypes are now in the correct header file
 
 
-       XPG4            No reported problems
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+*** Starting unistd.h
+Missing: extern char *  cuserid();
+Missing: extern int     rename();
+*** Completed unistd.h
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+       XPG4            Prototype is now in the correct header file
+                       and the _POSIX2_C_VERSION symbol has been removed
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+*** Starting unistd.h
+Missing: extern char *  cuserid();
+Missing: #define        _POSIX2_C_VERSION       (-1L)
+*** Completed unistd.h
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
-       POSIX96         Same as for UNIX98 (see below).
-       UNIX98          The message queue implementation is missing:
+       POSIX96         Prototype moved
+                       (using "base realtime threads" subsets)
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-/****** <mqueue.h> - Missing include file ******/
-/****** Start of Definitions for file mqueue.h ******/
-extern int mq_close();
-extern int mq_getattr();
-extern int mq_notify();
-extern mqd_t mq_open();
-extern ssize_t mq_receive();
-extern int mq_send();
-extern int mq_setattr();
-extern int mq_unlink();
-typedef <type> mqd_t;
-struct mq_attr { <members> };
-struct sigevent { <members> };
-/****** End of Definitions for file mqueue.h ******/
+*** Starting unistd.h
+Missing: extern int     pthread_atfork();
+*** Completed unistd.h
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+       UNIX98          Prototypes moved and _POSIX2_C_VERSION removed
+                       (using "base realtime threads mse lfs" subset)
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+*** Starting unistd.h
+Missing: extern char *  cuserid();
+Missing: #define        _POSIX2_C_VERSION       (-1L)
+Missing: extern int     pthread_atfork();
+*** Completed unistd.h
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+That means all the reported issues are due to the headers having been
+cleaned up for recent POSIX/Unix specification versions.  Duplicated
+prototypes have been removed and obsolete symbols have been removed.
+Which means that as far as the tests performed by the script go, the
+headers files comply to the current POSIX/Unix specification.
+
+
 [*] Since the scripts are not clever enough for the way gcc handles
 include files (namely, putting some of them in gcc-local directory) I
 copied over the iso646.h, float.h, and stddef.h headers and ignored the
 [*] Since the scripts are not clever enough for the way gcc handles
 include files (namely, putting some of them in gcc-local directory) I
 copied over the iso646.h, float.h, and stddef.h headers and ignored the
-problems resulting from the splitted limits.h file).
+problems resulting from the split limits.h file).
 
 
 Technical C standards conformance issues in glibc
 
 
 Technical C standards conformance issues in glibc
@@ -62,11 +85,9 @@ of the C standard (as indicated by __STDC_VERSION__):
 GCC options            Standard version
 -ansi                  ISO/IEC 9899:1990
 -std=c89               ISO/IEC 9899:1990
 GCC options            Standard version
 -ansi                  ISO/IEC 9899:1990
 -std=c89               ISO/IEC 9899:1990
--std=iso9899:199409    ISO/IEC 9899:1990 as amended by Amd.1:1995 *
+-std=iso9899:199409    ISO/IEC 9899:1990 as amended by Amd.1:1995
 -std=c99               ISO/IEC 9899:1999
 
 -std=c99               ISO/IEC 9899:1999
 
-* glibc does not support this standard version.
-
 (Note that -std=c99 is not available in GCC 2.95.2, and that no
 version of GCC presently existing implements the full C99 standard.)
 
 (Note that -std=c99 is not available in GCC 2.95.2, and that no
 version of GCC presently existing implements the full C99 standard.)
 
@@ -84,17 +105,8 @@ fixed, or to compiler limitations.
 Defects in the C99 standard
 ===========================
 
 Defects in the C99 standard
 ===========================
 
-The definition of macros such as INT8_C in <stdint.h> and <inttypes.h>
-is not implementable (Defect Report #209); this is expected to be
-fixed in a Technical Corrigendum to make the macros yield a constant
-expression of the promoted type (for example, int rather than char)
-rather than needing to be able to represent constants of type char.
-glibc follows this corrected version.
-
-Several of the <fenv.h> functions are specified to return void, but
-Defect Report #202 points out that under some circumstances they may
-need to return an error status.  They are expected to be corrected to
-return int; glibc follows this corrected specification.
+Some defects in C99 were corrected in Technical Corrigendum 1 to that
+standard.  glibc follows the corrected specification.
 
 
 Implementation of library functions
 
 
 Implementation of library functions
@@ -147,8 +159,7 @@ builtins.
 
 For most of the headers required of freestanding implementations,
 glibc relies on GCC to provide correct versions.  (At present, glibc
 
 For most of the headers required of freestanding implementations,
 glibc relies on GCC to provide correct versions.  (At present, glibc
-provides <stdint.h>, and GCC doesn't.)  GCC's <float.h> is missing
-FLT_EVAL_METHOD and DECIMAL_DIG.
+provides <stdint.h>, and GCC doesn't.)
 
 Implementing MATH_ERRNO, MATH_ERREXCEPT and math_errhandling in
 <math.h> needs compiler support: see
 
 Implementing MATH_ERRNO, MATH_ERREXCEPT and math_errhandling in
 <math.h> needs compiler support: see
@@ -161,29 +172,4 @@ http://sources.redhat.com/ml/libc-hacker/2000-06/msg00015.html
 Issues with headers
 ===================
 
 Issues with headers
 ===================
 
-There are various technical issues with the definitions contained in
-glibc's headers, listed below.  The list below assumes current CVS GCC
-as of 2001-01-10, and relates to i686-linux; older GCC may lead to
-more problems in the headers.
-
-Note that the _t suffix is reserved by POSIX, but not by pure ISO C.
-Also, the Single Unix Specification generally requires more types to
-be included in headers (if _XOPEN_SOURCE is defined appropriately)
-than ISO C permits.
-
-<ctype.h> should not declare size_t.
-
-<inttypes.h> should not declare wchar_t.
-
-<signal.h> should not declare size_t.
-
-<stdint.h> should not declare wchar_t.
-
-<stdio.h> should not declare or use wchar_t, wint_t or off_t.
-
-<wchar.h> does not support AMD1; to support it, the functions
-fwprintf, fwscanf, wprintf, wscanf, swprintf, swscanf, vfwprintf,
-vwprintf, vswprintf and fwide would need to be declared when
-__STDC_VERSION__ >= 199409L and not just for C99.
-
-<wctype.h> should not declare size_t.
+None known.