From: Paul Eggert <eggert@cs.ucla.edu>
To: Glenn Morris <rgm@gnu.org>
Cc: Gilles Pion <gilles.pion@gmail.com>, 13650@debbugs.gnu.org
Subject: bug#13650: Emacs pretest 24.2.93 - compilation error on AIX 5.3 using gcc 4.7-2
Date: Wed, 13 Feb 2013 18:49:02 -0800 [thread overview]
Message-ID: <511C509E.80609@cs.ucla.edu> (raw)
In-Reply-To: <97ip5veqly.fsf@fencepost.gnu.org>
[-- Attachment #1: Type: text/plain, Size: 1571 bytes --]
On 02/13/2013 03:33 PM, Glenn Morris wrote:
> since it apparently worked in Emacs 24.2, then in emacs-24
> branch at this stage we should just do the minimum to get
> it back to that working state, and save improvements for trunk.
We can certainly give that a try. Looking at unexaix.c, the
changes made between 24.2 and 24.2.93 are small. The first
change to unexaix.c, in emacs-24 bzr 108226
<http://bzr.savannah.gnu.org/lh/emacs/emacs-24/revision/108226>,
fixed a bug privately reported to me by Gilles on
2012-05-09; he already tested this so it shouldn't be the
problem. The remaining changes are small: it shouldn't hurt
to undo them but the real problem surely lies elsewhere.
I see two main suspects. First, we got rid of DATA_START
and DATA_SEG_BITS on AIX. Second, USE_LSB_TAG changed from
0 to 1 on AIX.
And now that I look at the code again, I see a serious bug
in Emacs 24.2.93's src/lisp.h when DATA_SEG_BITS is nonzero:
it mis-defines XPNTR as if DATA_SEG_BITS were zero. This is a
regression and should be fixed in emacs-24 regardless of the
AIX fixes, I expect.
So: Gilles, can you please try the following?
First, aply the attached patch to a fresh copy of emacs-24.2.93.
Then, run these shell commands:
./configure CPPFLAGS='-DDATA_START=0x20000000 -DDATA_SEG_BITS=0x20000000 -DUSE_LSB_TAG=0'
make
If this works, I'll have some followup questions and
proposed changes; the point of the above is to try to test
reverting to 24.2's approach as quickly and painlessly as
possible, without reverting all the other changes we've
made.
[-- Attachment #2: aix.txt --]
[-- Type: text/plain, Size: 1622 bytes --]
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 <unistd.h>
#include <fcntl.h>
-#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 <setjmp.h>
#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)
{
next prev parent reply other threads:[~2013-02-14 2:49 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-07 9:49 bug#13650: Emacs pretest 24.2.93 - compilation error on AIX 5.3 using gcc 4.7-2 Gilles Pion
2013-02-07 10:57 ` Gilles Pion
2013-02-07 17:47 ` Glenn Morris
2013-02-07 21:17 ` Paul Eggert
2013-02-07 21:42 ` Glenn Morris
2013-02-08 7:09 ` Gilles Pion
2013-02-11 7:51 ` Gilles Pion
2013-02-11 21:18 ` Paul Eggert
2013-02-12 8:06 ` Gilles Pion
2013-02-12 19:03 ` Paul Eggert
2013-02-13 11:27 ` Gilles Pion
2013-02-13 18:37 ` Glenn Morris
2013-02-13 23:13 ` Paul Eggert
2013-02-13 23:33 ` Glenn Morris
2013-02-14 2:49 ` Paul Eggert [this message]
2013-02-14 7:28 ` Gilles Pion
2013-02-14 7:32 ` Paul Eggert
2013-02-14 7:43 ` Gilles Pion
2013-02-14 7:56 ` Paul Eggert
2013-02-14 8:09 ` Gilles Pion
2013-02-14 14:57 ` Paul Eggert
2013-02-14 15:11 ` Gilles Pion
2013-02-14 15:46 ` Stefan Monnier
2013-02-14 22:23 ` Paul Eggert
2013-02-14 23:51 ` Glenn Morris
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=511C509E.80609@cs.ucla.edu \
--to=eggert@cs.ucla.edu \
--cc=13650@debbugs.gnu.org \
--cc=gilles.pion@gmail.com \
--cc=rgm@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.