1 Conformance of the GNU libc with various standards
2 ==================================================
4 The GNU libc is designed to be conformant with existing standard as
5 far as possible. TO ensure this I've run various tests. The results
12 The hdrchk test suite is available from the Open Group at
14 ftp://ftp.rdg.opengroup.org/pub/unsupported/stdtools/hdrchk/
16 I've last run the suite on 1998-07-08 on a Linux/ix86 system with the
17 following results [*]:
19 FIPS No reported problems
21 POSIX90 No reported problems
23 XPG3 No reported problems
25 XPG4 The wide character I/O stuff is missing in glibc.
27 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
29 Missing: extern wint_t fgetwc();
30 Missing: extern wchar_t *fgetws();
31 Missing: extern wint_t fputwc();
32 Missing: extern int fputws();
33 Missing: extern wint_t getwc();
34 Missing: extern wint_t getwchar();
35 Missing: extern wint_t putwc();
36 Missing: extern wchar_t putwchar();
37 Missing: extern wint_t ungetwc();
38 Missing: extern size_t wcsftime();
40 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
42 Beside this a problem in stdio.h is reported but
43 this is only because the scripts don't understand
44 the sometimes complex constructs in the header.
46 POSIX96 Same as UNIX98 [see below].
47 UNIX98 Quite a lot of problems, almost all due to limitations
48 of the Linux kernel (2.1.108):
50 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 Missing #include file: mqueue.h
53 *** Completed mqueue.h
54 *** Starting semaphore.h
55 Missing: #define SEM_FAILED (-1)
56 Missing: extern int sem_close();
57 Missing: extern sem_t *sem_open();
58 Missing: extern int sem_unlink();
59 *** Completed semaphore.h
61 Missing: #define SIGSYS (-1)
62 *** Completed signal.h
63 *** Starting sys/mman.h
64 Missing: extern int shm_open();
65 Missing: extern int shm_unlink();
66 *** Completed sys/mman.h
67 *** Starting sys/stat.h
68 Missing: #define S_TYPEISMQ (-1)
69 Missing: #define S_TYPEISSEM (-1)
70 Missing: #define S_TYPEISSHM (-1)
71 *** Completed sys/stat.h
72 *** Starting sys/types.h
73 Missing: typedef <type> clockid_t;
74 Missing: typedef <type> timer_t;
75 *** Completed sys/types.h
77 Missing: #define CLOCK_REALTIME (-1)
78 Missing: #define TIMER_ABSTIME (-1)
79 Missing: extern int clock_getres();
80 Missing: extern int clock_gettime();
81 Missing: extern int clock_settime();
82 Missing: struct itimerspec { <members> };
83 Missing: extern int timer_create();
84 Missing: extern int timer_delete();
85 Missing: extern int timer_getoverrun();
86 Missing: extern int timer_gettime();
87 Missing: extern int timer_settime();
90 Missing: #define _POSIX_MESSAGE_PASSING (-1)
91 Missing: #define _POSIX_SEMAPHORES (-1)
92 Missing: #define _POSIX_SHARED_MEMORY_OBJECTS (-1)
93 Missing: #define _POSIX_TIMERS (-1)
94 *** Completed unistd.h
96 Missing: extern wint_t fgetwc();
97 Missing: extern wchar_t *fgetws();
98 Missing: extern wint_t fputwc();
99 Missing: extern int fputws();
100 Missing: extern int fwide();
101 Missing: extern int fwprintf();
102 Missing: extern int fwscanf();
103 Missing: extern wint_t getwc();
104 Missing: extern wint_t getwchar();
105 Missing: extern wint_t putwc();
106 Missing: extern wchar_t putwchar();
107 Missing: extern int swprintf();
108 Missing: extern int swscanf();
109 Missing: extern wint_t ungetwc();
110 Missing: extern int vfwprintf();
111 Missing: extern int vswprintf();
112 Missing: extern int vwprintf();
113 Missing: extern size_t wcsftime();
114 Missing: extern wchar_t *wcswcs();
115 Missing: extern int wprintf();
116 Missing: extern int wscanf();
117 *** Completed wchar.h
118 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
120 Only the `wchar.h' problems result from glibc
121 defficiencies since we still don't support wide
124 [*] Since the scripts are not clever enough for the way gcc handles
125 include files (namely, putting some of them in gcc-local directory) I
126 copied over the iso646.h, float.h, and stddef.h headers and ignored the
127 problems resulting from the splitted limits.h file).