On at least powerpc64 long is 64bit, and since XID, used for Window and Pixmap are 64bit then some protocol fields are not properly defined. We can not just tweak B32 to make them bitfields - since some stuff assumes to be able to take the address of those fields, always make those 32bit wide instead. - Rene Rebe --- X11/X.h.orig 2006-02-02 18:04:11.000000000 +0100 +++ X11/X.h 2006-02-05 13:27:22.000000000 +0100 @@ -65,22 +65,7 @@ * systems where unsigned long is not 32 bits, must NOT be used in * client or library code. */ -#ifndef _XSERVER64 -# ifndef _XTYPEDEF_XID -# define _XTYPEDEF_XID -typedef unsigned long XID; -# endif -# ifndef _XTYPEDEF_MASK -# define _XTYPEDEF_MASK -typedef unsigned long Mask; -# endif -# ifndef _XTYPEDEF_ATOM -# define _XTYPEDEF_ATOM -typedef unsigned long Atom; /* Also in Xdefs.h */ -# endif -typedef unsigned long VisualID; -typedef unsigned long Time; -#else + # include # ifndef _XTYPEDEF_XID # define _XTYPEDEF_XID @@ -96,7 +81,6 @@ # endif typedef CARD32 VisualID; typedef CARD32 Time; -#endif typedef XID Window; typedef XID Drawable;