aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2016-12-23 22:26:25 +0200
committerEli Zaretskii2016-12-23 22:26:25 +0200
commit3ace7309476e1899a67ba2883a0003afe9d48d4d (patch)
treeabb23c77151c5fcaefec53667cbbc627a173e176
parentf69bd7954f113719bb0e46e143231744c80bef34 (diff)
downloademacs-3ace7309476e1899a67ba2883a0003afe9d48d4d.tar.gz
emacs-3ace7309476e1899a67ba2883a0003afe9d48d4d.zip
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,
245 245
246 if (f_thdr == 0) 246 if (f_thdr == 0)
247 { 247 {
248 ERROR1 ("unexec: couldn't find \"%s\" section", (int) _TEXT); 248 ERROR1 ("unexec: couldn't find \"%s\" section", _TEXT);
249 } 249 }
250 if (f_dhdr == 0) 250 if (f_dhdr == 0)
251 { 251 {
252 ERROR1 ("unexec: couldn't find \"%s\" section", (int) _DATA); 252 ERROR1 ("unexec: couldn't find \"%s\" section", _DATA);
253 } 253 }
254 if (f_bhdr == 0) 254 if (f_bhdr == 0)
255 { 255 {
256 ERROR1 ("unexec: couldn't find \"%s\" section", (int) _BSS); 256 ERROR1 ("unexec: couldn't find \"%s\" section", _BSS);
257 } 257 }
258 } 258 }
259 else 259 else
@@ -382,7 +382,7 @@ copy_text_and_data (int new)
382 write_segment (new, ptr, end); 382 write_segment (new, ptr, end);
383 383
384 lseek (new, data_scnptr, SEEK_SET); 384 lseek (new, data_scnptr, SEEK_SET);
385 ptr = (char *) f_ohdr.data_start; 385 ptr = (char *) (ptrdiff_t) f_ohdr.data_start;
386 end = ptr + f_ohdr.dsize; 386 end = ptr + f_ohdr.dsize;
387 write_segment (new, ptr, end); 387 write_segment (new, ptr, end);
388 388
@@ -399,7 +399,7 @@ write_segment (int new, char *ptr, char *end)
399 for (i = 0; ptr < end;) 399 for (i = 0; ptr < end;)
400 { 400 {
401 /* distance to next block. */ 401 /* distance to next block. */
402 nwrite = (((int) ptr + UnexBlockSz) & -UnexBlockSz) - (int) ptr; 402 nwrite = (((ptrdiff_t) ptr + UnexBlockSz) & -UnexBlockSz) - (ptrdiff_t) ptr;
403 /* But not beyond specified end. */ 403 /* But not beyond specified end. */
404 if (nwrite > end - ptr) nwrite = end - ptr; 404 if (nwrite > end - ptr) nwrite = end - ptr;
405 ret = write (new, ptr, nwrite); 405 ret = write (new, ptr, nwrite);