From 4f4ec76fd68d21c3d3838f5f10e242a884598c40 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 21 May 2014 22:00:39 -0700 Subject: [PATCH] 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 --- ChangeLog | 6 ++++++ configure.ac | 2 +- src/ChangeLog | 7 +++++++ src/unexaix.c | 4 ++-- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 484c696cfcb..3789203527c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-05-22 Paul Eggert + + 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 * configure.ac (INSTALL_INFO): diff --git a/configure.ac b/configure.ac index a29c786d63b..0f4351fcd5d 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 1e6bdcb4999..256eeeaa4b3 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2014-05-22 Paul Eggert + + 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 * xdisp.c (move_it_in_display_line_to): Avoid infinite recursion: diff --git a/src/unexaix.c b/src/unexaix.c index c08d192b32c..c97d5cae2a8 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: -- 2.11.4.GIT