see: http://permalink.gmane.org/gmane.emacs.xemacs.patches/14885 -- diff -urpN xemacs-21.5.34.orig/src/lisp.h xemacs-21.5.34/src/lisp.h --- xemacs-21.5.34.orig/src/lisp.h 2013-08-21 10:43:44.000000000 -0700 +++ xemacs-21.5.34/src/lisp.h 2015-09-20 18:45:24.239887146 -0700 @@ -1154,6 +1154,8 @@ typedef int Boolint; /* ------------------------ alignment definitions ------------------- */ +#if (defined (__STDC_VERSION__) && __STDC_VERSION__ < 201112L) || \ + (defined (__cplusplus) && __cplusplus < 201103L) /* No type has a greater alignment requirement than max_align_t. (except perhaps for types we don't use, like long double) */ typedef union @@ -1163,6 +1165,7 @@ typedef union struct { void (*f)(void); } f; struct { double d; } d; } max_align_t; +#endif /* ALIGNOF returns the required alignment of a type -- i.e. a value such that data of this type must begin at a memory address which is a @@ -1170,7 +1173,11 @@ typedef union as the type itself. */ #ifndef ALIGNOF -# if defined (__GNUC__) && (__GNUC__ >= 2) +# if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +# define ALIGNOF(type) _Alignof(type) +# elif defined (__cplusplus) && __cplusplus >= 201103L +# define ALIGNOF(type) alignof(type) +# elif defined (__GNUC__) && (__GNUC__ >= 2) /* gcc has an extension that gives us exactly what we want. */ # define ALIGNOF(type) __alignof__ (type) # elif ! defined (__cplusplus)