/* Dump an executable image.
- Copyright (C) 1985-1988, 1999, 2001-2013 Free Software Foundation,
+ Copyright (C) 1985-1988, 1999, 2001-2014 Free Software Foundation,
Inc.
This file is part of GNU Emacs.
static _Noreturn void
report_error (const char *file, int fd)
{
+ int err = errno;
if (fd)
- {
- int failed_errno = errno;
- emacs_close (fd);
- errno = failed_errno;
- }
- report_file_error ("Cannot unexec", Fcons (build_string (file), Qnil));
+ emacs_close (fd);
+ report_file_errno ("Cannot unexec", build_string (file), err);
}
#define ERROR0(msg) report_error_1 (new, msg)
char *ptr;
lseek (new, text_scnptr, SEEK_SET);
- ptr = _text + text_scnptr;
+ ptr = _text;
end = ptr + f_ohdr.tsize;
write_segment (new, ptr, end);
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: