summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2016-12-23 22:26:25 +0200
committerEli Zaretskii <eliz@gnu.org>2016-12-23 22:26:25 +0200
commit3ace7309476e1899a67ba2883a0003afe9d48d4d (patch)
treeabb23c77151c5fcaefec53667cbbc627a173e176
parentf69bd7954f113719bb0e46e143231744c80bef34 (diff)
downloademacs-3ace7309476e1899a67ba2883a0003afe9d48d4d.tar.gz
Attempt to fix 64-bit AIX build
* src/unexaix.c (make_hdr, copy_text_and_data, write_segment): Fix type-casts that assumed 32-bit pointers. (Bug#25141)
-rw-r--r--src/unexaix.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/unexaix.c b/src/unexaix.c
index c2012f77cac..5685aee5480 100644
--- a/src/unexaix.c
+++ b/src/unexaix.c
@@ -245,15 +245,15 @@ make_hdr (int new, int a_out,
if (f_thdr == 0)
{
- ERROR1 ("unexec: couldn't find \"%s\" section", (int) _TEXT);
+ ERROR1 ("unexec: couldn't find \"%s\" section", _TEXT);
}
if (f_dhdr == 0)
{
- ERROR1 ("unexec: couldn't find \"%s\" section", (int) _DATA);
+ ERROR1 ("unexec: couldn't find \"%s\" section", _DATA);
}
if (f_bhdr == 0)
{
- ERROR1 ("unexec: couldn't find \"%s\" section", (int) _BSS);
+ ERROR1 ("unexec: couldn't find \"%s\" section", _BSS);
}
}
else
@@ -382,7 +382,7 @@ copy_text_and_data (int new)
write_segment (new, ptr, end);
lseek (new, data_scnptr, SEEK_SET);
- ptr = (char *) f_ohdr.data_start;
+ ptr = (char *) (ptrdiff_t) f_ohdr.data_start;
end = ptr + f_ohdr.dsize;
write_segment (new, ptr, end);
@@ -399,7 +399,7 @@ write_segment (int new, char *ptr, char *end)
for (i = 0; ptr < end;)
{
/* distance to next block. */
- nwrite = (((int) ptr + UnexBlockSz) & -UnexBlockSz) - (int) ptr;
+ nwrite = (((ptrdiff_t) ptr + UnexBlockSz) & -UnexBlockSz) - (ptrdiff_t) ptr;
/* But not beyond specified end. */
if (nwrite > end - ptr) nwrite = end - ptr;
ret = write (new, ptr, nwrite);