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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]