Subject: Re: bug#12878: 24.2; Compiling failed on Windows 7 with VC 11 Express: _WIN32_WINNT version too low

From: Eli Zaretskii <[email-masked]>
Date: Mon, 19 Nov 2012 19:42:41 +0200

> Date: Mon, 19 Nov 2012 13:59:54 +0800
> From: 李丁 <[email-masked]>
> Cc: [email-masked]
> 
> I checked out the latest branch (r 110913), it seems that you miss a
> semicolon at line 761 in w32term.h.

Oops!  Fixed.

> There are more problems:
> 
> 1. I need `nmake bootstrap' but in 24.2 release I can compile directly with
> `nmake'

Do you mean that you need "nmake bootstrap" for _every_ change you
make in any of the files?  If so, please tell what error messages do
you see if you make some change in one C file and run Nmake normally,
without bootstrapping.

> 2. In lisp.h it begins to define ARRAY_MARK_FLAG as PTRDIFF_MIN, however,
>     definition of PTRDIFF_MIN is in stdint.h, which is not included. And
> even if included, in nt/inc/stdint.h,
>     various *_MIN (including PTRDIFF_MIN) are not defined

stdint.h is included by inttypes.h, which _is_ included by lisp.h.  I
added to nt/inc/stdint.h a suitable definition of PTRDIFF_MIN.

> 3. In w32.c DeviceIoControl, it uses a FSCTL_GET_REPARSE_POINT that is only
> defined for _MSC_VER >= 0x0500

I added the missing definitions to w32.c.

> 4. In xdisp.c, start_hourglass function, w32_note_current_window is
> declared (as extern) and used in the middle of
>     the function, causing an error message. Move the declaration to the
> beginning of the function solved the problem.

Fixed.

> After fixing the above problems, finally I can make a temacs.exe, but while
> loading subr.el, temacs reported an
> error message saying `Invalid funtion: "DEAD"'. I do not know where the
> function `dead' comes from.

This indicates some problems with GC, perhaps alignment.  See

  http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10749
  http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-02/msg00565.html

> Maybe you can close the previous bug, but for the latest branch, more fixes
> are needed.

Please try the latest emacs-24 branch.  Revision 110917 shoulod have
the above fixes.

Thanks.