]>
Commit | Line | Data |
---|---|---|
107f8131 UD |
1 | Conformance of the GNU libc with various standards |
2 | ================================================== | |
3 | ||
4 | The GNU libc is designed to be conformant with existing standard as | |
6a3b5b5c | 5 | far as possible. To ensure this I've run various tests. The results |
107f8131 UD |
6 | are presented here. |
7 | ||
8 | ||
9 | Open Group's hdrchk | |
10 | ------------------- | |
11 | ||
12 | The hdrchk test suite is available from the Open Group at | |
13 | ||
14 | ftp://ftp.rdg.opengroup.org/pub/unsupported/stdtools/hdrchk/ | |
15 | ||
16 | I've last run the suite on 1998-07-08 on a Linux/ix86 system with the | |
17 | following results [*]: | |
18 | ||
19 | FIPS No reported problems | |
20 | ||
21 | POSIX90 No reported problems | |
22 | ||
23 | XPG3 No reported problems | |
24 | ||
25 | XPG4 The wide character I/O stuff is missing in glibc. | |
26 | ||
27 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
28 | *** Starting wchar.h | |
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(); | |
39 | *** Completed wchar.h | |
40 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
41 | ||
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. | |
45 | ||
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): | |
49 | ||
50 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
51 | *** Starting mqueue.h | |
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 | |
60 | *** Starting signal.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 | |
76 | *** Starting time.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(); | |
88 | *** Completed time.h | |
89 | *** Starting unistd.h | |
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 | |
95 | *** Starting wchar.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 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
119 | ||
120 | Only the `wchar.h' problems result from glibc | |
121 | defficiencies since we still don't support wide | |
122 | character I/O. | |
123 | ||
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). |