Subject: Re: Why does mode_t need 32 bits?
To: Jim Bernard <jbernard@tater.mines.edu>
From: Eduardo E. Horvath <eeh@one-o.com>
List: tech-kern
Date: 10/31/1997 08:29:41
On Fri, 31 Oct 1997, Jim Bernard wrote:

> On 10 30, Christos Zoulas wrote:
> > Now, consider what happens when you've compiled a library with prototypes
> > in scope and you are trying to link with this library from a legacy program
> > that did not bring the necessary prototypes into scope.
> 
>   But don't you _still_ have that same problem on a machine with 64-bit ints
> when mode_t is u_int32_t?

The only machines I know of that use ILP64 are HALstations.  All others
use LP64.  I don't expect to see any more soon as it's difficult to
generate int32_t or int16_t on such a system.  C has 4 standard types:
`char', `short', `int', `long'.  Current practice on 64-bit systems is to
map `char' to 8 bits, `short' to 16 bits, `int' to 32 bits, and `long' to
64 bits.  If you map `int' and `long' to 64 bits, you have only `char' and
`short' available to describe 8, 16, and 32 bit types, without inventing a
new type like HAL did.

Hmmm...  What does Cray do?  Do we expect to have a NetBSD/Cray port soon?

=========================================================================
Eduardo Horvath				eeh@btr.com
"Cliffs are for climbing.  That's why God invented grappling hooks."
					- Benton Frasier