summary refs log tree commit diff
path: root/CONFORMANCE
blob: cf00caa4d9fe8d17edaf32ebac6f0e1309e7694c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
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).