Re: [PATCH 13/20] inflate: (arch) kill silly zlib typedefs

From: Willy Tarreau
Date: Tue Nov 01 2005 - 04:08:42 EST


On Tue, Nov 01, 2005 at 08:50:43AM +0100, Geert Uytterhoeven wrote:
> On Tue, 1 Nov 2005, Willy Tarreau wrote:
> > But if it's a pointer why don't you declare them unsigned long then ?
> > C defines the long as the integer the right size to store a pointer.
> ^
> Is it C?

Yes, that's what I read quite a time ago, and it appears that it was an
interpretation of the spec which is not true anymore with LLP64 models :-(

> Since on Wintendo P64 it's not true...

I don't know if x86_64 is LP64 or LLP64 on Linux, but at least my alpha
and sparc64 are LP64, so is another PPC64 I use for code validation.
LPC64 is the recommended model for easier 32 to 64 portability (where
ints are 32 ; long, longlong, ptrs are 64).

There's an interesting reading about this here :

http://www.usenix.org/publications/login/standards/10.data.html

So Matt, you have to use void* or char* in your types.

> Gr{oetje,eeting}s,
>
> Geert

Thanks Geert for the notification, it was an opportunity to refresh my
thoughts about portability practices. I think it will be time to buy
an x86_64 :-/

Willy

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/