From owner-freebsd-hackers Mon Nov 10 18:02:30 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id SAA16481 for hackers-outgoing; Mon, 10 Nov 1997 18:02:30 -0800 (PST) (envelope-from owner-freebsd-hackers) Received: from whistle.com (s205m131.whistle.com [207.76.205.131]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id SAA16472 for ; Mon, 10 Nov 1997 18:02:24 -0800 (PST) (envelope-from archie@whistle.com) Received: (from smap@localhost) by whistle.com (8.7.5/8.6.12) id SAA21669; Mon, 10 Nov 1997 18:01:51 -0800 (PST) Received: from bubba.whistle.com(207.76.205.7) by whistle.com via smap (V1.3) id sma021665; Mon Nov 10 18:01:31 1997 Received: (from archie@localhost) by bubba.whistle.com (8.8.5/8.6.12) id SAA01528; Mon, 10 Nov 1997 18:01:31 -0800 (PST) From: Archie Cobbs Message-Id: <199711110201.SAA01528@bubba.whistle.com> Subject: Re: Newest Pentium bug (fatal) In-Reply-To: from Charles Mott at "Nov 10, 97 04:22:19 pm" To: cmott@srv.net (Charles Mott) Date: Mon, 10 Nov 1997 18:01:31 -0800 (PST) Cc: freebsd-hackers@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL31 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk Charles Mott writes: > On Mon, 10 Nov 1997, Archie Cobbs wrote: > > Charles Mott writes: > > > > Perhaps if the source tree were reorganized to be more multiple > > > > architecture friendly, progress would speed up? > > > > > > I'm sure other people have seen this problem, but the long data > > > type seems to cause hell when transitioning from 32 to 64 bit > > > architectures. There seem to be 2 strategies: > > > > > > (1) int = 32 bits, long = 32 bits, long long = 64 bits > > > > > > (2) int = 32 bits, long = 64 bits > > > > > > Strategy (1) helps with a lot of the networking code which assumes long is > > > 32 bits, but then there are some functions which seem to think that the > > > long data type should be the same size as an absolute address pointer. > > > > > > If int ever goes to 64 bits, I can't imagine what disasters would be > > > waiting. But the fact that the NetBSD and OpenBSD people must have dealt > > > with this problem indicates there must be a straightforward solution. > > > > > > > > This brings up a good point... if you're writing code and you > > want/expect something to be 32 bits, then its type should be > > either "int32_t" or "u_int32_t"!! Same goes for 8, 16, and 64! > > > > > > I understand this, and I plan to weed these things out of libalias (the > only thing I have any responsibility for in the FreeBSD source tree). > > However, if you take a cruise the the source tree and even the kernel in > particular, you may discover quite frequent occurences of such problems. > In particular, you might wish to try the following command. > > grep long /usr/include/netinet/*.h > > Somehow your message came accross as chastising me individually (I > dunderstand these things), when you should consider the entire FreeBSD > code base. What you recommend is good practice, but there is an enormous > amount of existing code which does not adhere to this. Sorry about that, the "you" was intended to refer to ALL developers, including myself! :-) Of course, these type definitions are relatively new compared to BSD itself. It would be a good project for someone who's interested to identify and correct all of these in the code. This would go a long way towards making the source more portable. -Archie ___________________________________________________________________________ Archie Cobbs * Whistle Communications, Inc. * http://www.whistle.com