diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2014-05-21 22:00:39 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2014-05-21 22:00:39 -0700 |
commit | 4f4ec76fd68d21c3d3838f5f10e242a884598c40 (patch) | |
tree | 7f5bba96be2bf67382394307d71ea93242c9686c | |
parent | fb4ca8417a1fc7a39d36162a80647063aadb0b41 (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-- | ChangeLog | 6 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/ChangeLog | 7 | ||||
-rw-r--r-- | src/unexaix.c | 4 |
4 files changed, 16 insertions, 3 deletions
@@ -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: |