glibc/CONFORMANCE

128 lines
4.3 KiB
Plaintext

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).