__LP64__ is not universally defined on all platforms (Solaris for instance
uses _LP64).

Last time this came up, the compromise between not breaking existing platforms
and letting people who don't understand API's & ABI's make up a new one was to
check for ILP32:
http://thread.gmane.org/gmane.comp.freedesktop.xorg.devel/27443/
which resulted in:
http://cgit.freedesktop.org/xorg/proto/x11proto/commit/Xmd.h?id=a06fa7fc98b66652df8bbc4734b5010d43744373

        -alan-

On 05/18/15 09:05 AM, Ross Burton wrote:
The x86 X32 ABI is a 32-bit environment on 64-bit processors, so __amd64__ is
defined but pointers and longs are 32-bit. Handle this case by also checking
__LP64__.

Signed-off-by: Ross Burton <[email protected]>
---
  include/X11/Xtos.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/X11/Xtos.h b/include/X11/Xtos.h
index 64b2da8..44f52c2 100644
--- a/include/X11/Xtos.h
+++ b/include/X11/Xtos.h
@@ -59,7 +59,7 @@ SOFTWARE.
      defined(__sparc64__) || \
      defined(__s390x__) || \
      (defined(__hppa__) && defined(__LP64__)) || \
-    defined(__amd64__) || defined(amd64) || \
+    ((defined(__amd64__) || defined(amd64)) && defined(__LP64__)) || \
      defined(__powerpc64__) || \
      (defined(sgi) && (_MIPS_SZLONG == 64))
  #define LONG64



--
        -Alan Coopersmith-              [email protected]
         Oracle Solaris Engineering - http://blogs.oracle.com/alanc
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to