summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2014-05-21 22:00:39 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2014-05-21 22:00:39 -0700
commit4f4ec76fd68d21c3d3838f5f10e242a884598c40 (patch)
tree7f5bba96be2bf67382394307d71ea93242c9686c
parentfb4ca8417a1fc7a39d36162a80647063aadb0b41 (diff)
Fix port to 32-bit AIX.
* configure.ac (opsys): On Power Architecture, treat release 7 of AIX like releases 5 and 6. * src/unexaix.c (copy_text_and_data): Don't add text_scnptr to ptr twice. _text already includes this offset. (unrelocate_symbols): Don't cast 64-bit integer to pointer. Fixes: debbugs:17540
-rw-r--r--ChangeLog6
-rw-r--r--configure.ac2
-rw-r--r--src/ChangeLog7
-rw-r--r--src/unexaix.c4
4 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 484c696cfc..3789203527 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2014-05-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix port to 32-bit AIX (Bug#17540).
+ * configure.ac (opsys): On Power Architecture, treat release 7 of
+ AIX like releases 5 and 6.
+
2014-05-18 Glenn Morris <rgm@gnu.org>
* configure.ac (INSTALL_INFO):
diff --git a/configure.ac b/configure.ac
index a29c786d63..0f4351fcd5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -550,7 +550,7 @@ case "${canonical}" in
rs6000-ibm-aix[56]* )
opsys=aix4-2
;;
- powerpc-ibm-aix[56]* )
+ powerpc-ibm-aix[5-9]* | powerpc-ibm-aix[1-9][0-9]* )
opsys=aix4-2
;;
diff --git a/src/ChangeLog b/src/ChangeLog
index 1e6bdcb499..256eeeaa4b 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
+2014-05-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix port to 32-bit AIX (Bug#17540).
+ * unexaix.c (copy_text_and_data): Don't add text_scnptr to ptr
+ twice. _text already includes this offset.
+ (unrelocate_symbols): Don't cast 64-bit integer to pointer.
+
2014-05-21 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (move_it_in_display_line_to): Avoid infinite recursion:
diff --git a/src/unexaix.c b/src/unexaix.c
index c08d192b32..c97d5cae2a 100644
--- a/src/unexaix.c
+++ b/src/unexaix.c
@@ -379,7 +379,7 @@ copy_text_and_data (int new)
char *ptr;
lseek (new, text_scnptr, SEEK_SET);
- ptr = _text + text_scnptr;
+ ptr = _text;
end = ptr + f_ohdr.tsize;
write_segment (new, ptr, end);
@@ -606,7 +606,7 @@ unrelocate_symbols (int new, int a_out,
PERROR (a_name);
}
- p = (int *) (ldrel.l_vaddr + d_reloc);
+ p = (int *) (intptr_t) (ldrel.l_vaddr + d_reloc);
switch (ldrel.l_symndx) {
case SYMNDX_TEXT: