This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Patch for CONFORMANCE
- To: libc-alpha at sources dot redhat dot com
- Subject: Patch for CONFORMANCE
- From: "Joseph S. Myers" <jsm28 at cam dot ac dot uk>
- Date: Sat, 16 Sep 2000 12:12:02 +0100 (BST)
The list of C standards-related issues in the glibc headers is now short
enough to go in CONFORMANCE. The patch below adds it.
--- CONFORMANCE Wed Aug 16 02:02:34 2000
+++ CONFORMANCE.new Sat Sep 16 11:06:38 2000
@@ -62,9 +62,11 @@
GCC options Standard version
-ansi ISO/IEC 9899:1990
-std=c89 ISO/IEC 9899:1990
--std=iso9899:199409 ISO/IEC 9899:1990 as amended by Amd.1:1995
+-std=iso9899:199409 ISO/IEC 9899:1990 as amended by Amd.1:1995 *
-std=c99 ISO/IEC 9899:1999
+* glibc does not support this standard version.
+
(Note that -std=c99 is not available in GCC 2.95.2, and that no
version of GCC presently existing implements the full C99 standard.)
@@ -127,8 +129,8 @@
test them before including any standard headers may misbehave.
GCC doesn't support the optional imaginary types. Nor does it
-understand the keyword _Complex. This has the corresponding impact on
-the relevant headers.
+understand the keyword _Complex before GCC 3.0. This has the
+corresponding impact on the relevant headers.
glibc's use of extern inline conflicts with C99: in C99, extern inline
means that an external definition is generated as well as possibly an
@@ -162,7 +164,28 @@
===================
There are various technical issues with the definitions contained in
-glibc's headers. See
+glibc's headers, listed below. The list below assumes current CVS GCC
+as of 2000-09-16, and relates to i686-linux; older GCC may lead to
+more problems in the headers.
+
+Note that the _t suffix is reserved by POSIX, but not by pure ISO C.
+Also, the Single Unix Specification generally requires more types to
+be included in headers (if _XOPEN_SOURCE is defined appropriately)
+than ISO C permits.
+
+<ctype.h> should not declare size_t.
+
+<inttypes.h> should not declare wchar_t.
+
+<signal.h> should not declare size_t.
+
+<stdint.h> should not declare wchar_t.
+
+<stdio.h> should not declare or use wchar_t, wint_t or off_t.
+
+<wchar.h> does not support AMD1; to support it, the functions
+fwprintf, fwscanf, wprintf, wscanf, swprintf, swscanf, vfwprintf,
+vwprintf, vswprintf and fwide would need to be declared when
+__STDC_VERSION__ >= 199409L and not just for C99.
-http://sources.redhat.com/ml/libc-alpha/2000-07/msg00259.html
-http://sources.redhat.com/ml/libc-alpha/2000-07/msg00279.html
+<wctype.h> should not declare size_t.
--
Joseph S. Myers
jsm28@cam.ac.uk