From owner-freebsd-current@FreeBSD.ORG Thu Oct 30 23:01:53 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 68DFD16A4CE for ; Thu, 30 Oct 2003 23:01:53 -0800 (PST) Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by mx1.FreeBSD.org (Postfix) with ESMTP id CEB5243F75 for ; Thu, 30 Oct 2003 23:01:51 -0800 (PST) (envelope-from bde@zeta.org.au) Received: from gamplex.bde.org (katana.zip.com.au [61.8.7.246]) by mailman.zeta.org.au (8.9.3p2/8.8.7) with ESMTP id SAA32110; Fri, 31 Oct 2003 18:01:35 +1100 Date: Fri, 31 Oct 2003 18:01:34 +1100 (EST) From: Bruce Evans X-X-Sender: bde@gamplex.bde.org To: Garrett Wollman In-Reply-To: <200310301659.h9UGxAPk023337@khavrinen.lcs.mit.edu> Message-ID: <20031031174658.T3463@gamplex.bde.org> References: <3F9F4FE6.29C4E178@mindspring.com> <3FA0EEFD.431DD759@mindspring.com> <20031030120925.K80335@beagle.fokus.fraunhofer.de> <200310301659.h9UGxAPk023337@khavrinen.lcs.mit.edu> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: current@freebsd.org Subject: Re: Anyone object to the following change in libc? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Oct 2003 07:01:53 -0000 On Thu, 30 Oct 2003, Garrett Wollman wrote: > < said: > > > "The c89 utility (which specified a compiler for the C Language specified > > by the 108 ISO/IEC 9899: 1990 standard) has been replaced by a c99 utility > > (which specifies a compiler for 109 the C Language specified by the > > ISO/IEC 9899: 1999 standard)." > > More specifically: IEEE Std. 1003.1-2001 is aligned to ISO/IEC > 9899:1999 in all respects. C99 alignment was one of the principal > reasons for bringing out a whole new standard in the first place, > rather than continuing the amendment process. (This is also why POSIX > now requires eight-bit bytes.) This doesn't follow, since C99 doesn't require 8-bit bits. int8_t is optional in C99 and all code that uses it unconditionally is unportable. Similarly for most other types in . The required ones are [u]int_least{8,16,32,64}_t and [u]int_fast{8,16,32,64}_t and [u]intmax_t, i.e., nothing that can't be declared in C90 except a 64-bit type. POSIX requires in addition [u]int{8,16,32}_t, and [u]int64_t if 64 bit integer types exist. It says that the existence of int8_t implies that a byte is 8 bits and CHAR_BIT is 8. I'm not sure what prevents int8_t being smaller than char. Bruce