Conformance of the GNU libc with various standards
==================================================

The GNU libc is designed to be conformant with existing standard as
far as possible.  To ensure this I've run various tests.  The results
are presented here.


Open Group's hdrchk
-------------------

The hdrchk test suite is available from the Open Group at

	ftp://ftp.rdg.opengroup.org/pub/unsupported/stdtools/hdrchk/

I've last run the suite on 1998-07-08 on a Linux/ix86 system with the
following results [*]:

	FIPS		No reported problems

	POSIX90		No reported problems

	XPG3		No reported problems

	XPG4		The wide character I/O stuff is missing in glibc.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*** Starting wchar.h
Missing: extern wint_t  fgetwc();
Missing: extern wchar_t *fgetws();
Missing: extern wint_t  fputwc();
Missing: extern int     fputws();
Missing: extern wint_t  getwc();
Missing: extern wint_t  getwchar();
Missing: extern wint_t  putwc();
Missing: extern wchar_t putwchar();
Missing: extern wint_t  ungetwc();
Missing: extern size_t  wcsftime();
*** Completed wchar.h
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

			Beside this a problem in stdio.h is reported but
			this is only because the scripts don't understand
			the sometimes complex constructs in the header.

	POSIX96		Same as UNIX98 [see below].
	UNIX98		Quite a lot of problems, almost all due to limitations
			of the Linux kernel (2.1.108):

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*** Starting mqueue.h
Missing #include file: mqueue.h
*** Completed mqueue.h
*** Starting semaphore.h
Missing: #define SEM_FAILED (-1)
Missing: extern int  sem_close();
Missing: extern sem_t *sem_open();
Missing: extern int  sem_unlink();
*** Completed semaphore.h
*** Starting signal.h
Missing: #define        SIGSYS  (-1)
*** Completed signal.h
*** Starting sys/mman.h
Missing: extern int shm_open();
Missing: extern int shm_unlink();
*** Completed sys/mman.h
*** Starting sys/stat.h
Missing: #define        S_TYPEISMQ      (-1)
Missing: #define        S_TYPEISSEM     (-1)
Missing: #define        S_TYPEISSHM     (-1)
*** Completed sys/stat.h
*** Starting sys/types.h
Missing: typedef        <type>  clockid_t;
Missing: typedef        <type>  timer_t;
*** Completed sys/types.h
*** Starting time.h
Missing: #define        CLOCK_REALTIME  (-1)
Missing: #define        TIMER_ABSTIME   (-1)
Missing: extern int     clock_getres();
Missing: extern int     clock_gettime();
Missing: extern int     clock_settime();
Missing: struct itimerspec { <members> };
Missing: extern int     timer_create();
Missing: extern int     timer_delete();
Missing: extern int     timer_getoverrun();
Missing: extern int     timer_gettime();
Missing: extern int     timer_settime();
*** Completed time.h
*** Starting unistd.h
Missing: #define        _POSIX_MESSAGE_PASSING          (-1)
Missing: #define        _POSIX_SEMAPHORES               (-1)
Missing: #define        _POSIX_SHARED_MEMORY_OBJECTS            (-1)
Missing: #define        _POSIX_TIMERS           (-1)
*** Completed unistd.h
*** Starting wchar.h
Missing: extern wint_t  fgetwc();
Missing: extern wchar_t *fgetws();
Missing: extern wint_t  fputwc();
Missing: extern int     fputws();
Missing: extern int     fwide();
Missing: extern int     fwprintf();
Missing: extern int     fwscanf();
Missing: extern wint_t  getwc();
Missing: extern wint_t  getwchar();
Missing: extern wint_t  putwc();
Missing: extern wchar_t putwchar();
Missing: extern int     swprintf();
Missing: extern int     swscanf();
Missing: extern wint_t  ungetwc();
Missing: extern int     vfwprintf();
Missing: extern int     vswprintf();
Missing: extern int     vwprintf();
Missing: extern size_t  wcsftime();
Missing: extern wchar_t *wcswcs();
Missing: extern int     wprintf();
Missing: extern int     wscanf();
*** Completed wchar.h
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

			Only the `wchar.h' problems result from glibc
			defficiencies since we still don't support wide
			character I/O.

[*] 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).
