From: Ken Brown Date: Fri, 22 Mar 2013 16:52:31 +0000 (-0400) Subject: * src/unexcw.c: Update for x86_64-cygwin. X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~2026^2~526^2~119 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a3454eedcd2ac3e0465b4a9da322e105174659ec;p=emacs.git * src/unexcw.c: Update for x86_64-cygwin. Drop unneeded inclusion of w32common.h. (report_sheap_usage): Declare. (read_exe_header): Add magic numbers for x86_64. (fixup_executable): Fix printf format specifier for unsigned long argument. --- diff --git a/src/ChangeLog b/src/ChangeLog index 7e6e08ac5c2..a118678dba9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2013-03-22 Ken Brown + + * unexcw.c: Drop unneeded inclusion of w32common.h. + (report_sheap_usage): Declare. + (read_exe_header): Add magic numbers for x86_64. + (fixup_executable): Fix printf format specifier for unsigned long + argument. + 2013-03-22 Dmitry Antipov * frame.h (struct frame): Put menu_bar_window under #ifdef diff --git a/src/unexcw.c b/src/unexcw.c index af93e158e14..1290c28d245 100644 --- a/src/unexcw.c +++ b/src/unexcw.c @@ -20,7 +20,6 @@ along with GNU Emacs. If not, see . */ #include #include "unexec.h" -#include "w32common.h" #include #include @@ -31,6 +30,8 @@ along with GNU Emacs. If not, see . */ #define DOTEXE ".exe" +extern void report_sheap_usage (int); + extern int bss_sbrk_did_unexec; extern int __malloc_initialized; @@ -73,7 +74,11 @@ read_exe_header (int fd, exe_header_t * exe_header_buffer) assert (exe_header_buffer->file_header.e_magic == 0x5a4d); assert (exe_header_buffer->file_header.nt_signature == 0x4550); +#ifdef __x86_64__ + assert (exe_header_buffer->file_header.f_magic == 0x8664); +#else assert (exe_header_buffer->file_header.f_magic == 0x014c); +#endif assert (exe_header_buffer->file_header.f_nscns > 0); assert (exe_header_buffer->file_header.f_nscns <= sizeof (exe_header_buffer->section_header) / @@ -85,7 +90,11 @@ read_exe_header (int fd, exe_header_t * exe_header_buffer) sizeof (exe_header_buffer->file_optional_header)); assert (ret == sizeof (exe_header_buffer->file_optional_header)); +#ifdef __x86_64__ + assert (exe_header_buffer->file_optional_header.magic == 0x020b); +#else assert (exe_header_buffer->file_optional_header.magic == 0x010b); +#endif for (i = 0; i < exe_header_buffer->file_header.f_nscns; ++i) { @@ -132,7 +141,7 @@ fixup_executable (int fd) exe_header->file_optional_header.ImageBase + exe_header->section_header[i].s_paddr; if (debug_unexcw) - printf ("%8s start 0x%08x end 0x%08x\n", + printf ("%8s start %#lx end %#lx\n", exe_header->section_header[i].s_name, start_address, end_address); if (my_edata >= (char *) start_address @@ -149,7 +158,7 @@ fixup_executable (int fd) assert (ret == my_edata - (char *) start_address); ++found_data; if (debug_unexcw) - printf (" .data, mem start 0x%08x mem length %d\n", + printf (" .data, mem start %#lx mem length %d\n", start_address, my_edata - (char *) start_address); if (debug_unexcw) printf (" .data, file start %d file length %d\n", @@ -233,7 +242,7 @@ fixup_executable (int fd) __malloc_initialized = 1; assert (ret == (my_endbss - (char *) start_address)); if (debug_unexcw) - printf (" .bss, mem start 0x%08x mem length %d\n", + printf (" .bss, mem start %#lx mem length %d\n", start_address, my_endbss - (char *) start_address); if (debug_unexcw) printf (" .bss, file start %d file length %d\n",