diff -pru emacs-24.2.93/src/lisp.h emacs-24.2.93-AIX/src/lisp.h --- emacs-24.2.93/src/lisp.h 2013-01-01 12:37:17.000000000 -0800 +++ emacs-24.2.93-AIX/src/lisp.h 2013-02-13 18:05:17.635430235 -0800 @@ -496,13 +496,9 @@ static EMACS_INT const VALMASK (XIL ((EMACS_INT) ((EMACS_UINT) (type) << VALBITS) \ + ((intptr_t) (ptr) & VALMASK))) -#if DATA_SEG_BITS /* DATA_SEG_BITS forces extra bits to be or'd in with any pointers which were stored in a Lisp_Object. */ #define XPNTR(a) ((uintptr_t) ((XLI (a) & VALMASK)) | DATA_SEG_BITS)) -#else -#define XPNTR(a) ((uintptr_t) (XLI (a) & VALMASK)) -#endif #endif /* not USE_LSB_TAG */ diff -pru emacs-24.2.93/src/unexaix.c emacs-24.2.93-AIX/src/unexaix.c --- emacs-24.2.93/src/unexaix.c 2013-01-01 12:37:17.000000000 -0800 +++ emacs-24.2.93-AIX/src/unexaix.c 2013-02-13 18:23:19.179525573 -0800 @@ -57,9 +57,8 @@ what you give them. Help stamp out sof #include #include -#include "mem-limits.h" - char *start_of_text (void); /* Start of text */ +extern char *start_of_data (void); /* Start of initialized data */ extern int _data; extern int _text; @@ -90,6 +89,7 @@ static int adjust_lnnoptrs (int, int, co static int pagemask; +#include #include "lisp.h" static void @@ -104,6 +104,9 @@ report_error (const char *file, int fd) #define ERROR1(msg,x) report_error_1 (new, msg, x, 0); return -1 #define ERROR2(msg,x,y) report_error_1 (new, msg, x, y); return -1 +#undef ADDR_CORRECT +#define ADDR_CORRECT(x) ((int)(x)) + static void report_error_1 (int fd, const char *msg, int a1, int a2) {