From: Paul Eggert Date: Thu, 22 May 2014 05:00:39 +0000 (-0700) Subject: Fix port to 32-bit AIX. X-Git-Tag: emacs-24.3.92~178 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4f4ec76fd68d21c3d3838f5f10e242a884598c40;p=emacs.git 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 --- 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: