[xproto: PATCH] Xmd.h: amd64-x32 ABI defines sizeof(long) == sizeof (void*) == 4

Adam Jackson ajax at nwnk.net
Tue Jan 3 16:45:42 PST 2012


On 12/28/11 3:29 PM, Lu, Hongjiu wrote:
> __LP64__ isn't the part of x86-64 psABI while GCC always define __LP64__
> for 64bit long on x86.  I can check if other compilers do the same.
>
> In most cases, __amd64__ is checked for 64bit instructions and we have
> ported those we have found so far to x32 so that we can use one __amd64__
> block to support both x32 and x86-64.

With all due respect, you're out of your mind.  __amd64__ means LP64 on 
Linux.  It does not mean "AMD64 instruction set with some arbitrarily 
defined pointer size", in the same way that __ppc64__ does not mean that.

Your design is broken.  Consider making it not be broken.  The way you 
do this is you make your psabi define __x32__, instead of having it 
redefine a symbol with pre-existing semantics to mean something _other_ 
than the pre-existing semantics.

- ajax


More information about the xorg-devel mailing list