Subject: bug#13939: 24.3; Emacs 24.3 release won't compile on Windows with the msvc toolchain

From: Eli Zaretskii <[email-masked]>
Date: Wed, 13 Mar 2013 20:40:33 +0200

> Date: Wed, 13 Mar 2013 06:47:56 +0800
> From: 李丁 <[email-masked]>
> 
> The latest 24.3 release won't compile on Windows with Visual C++ 2010 sp1
> compiler (comes with windows sdk 7.1). There are two problems:

Sorry about that.  I guess no one tried to build Emacs with MSVC
during the entire pretest period.  Perhaps in the future you could do
that, so that any such problems could be fixed in time.

> 1. nmake.defs has a syntax error on line 119: `!if' should be `!ifdef'

Or maybe it should say

  !if $(USE_CRT_DLL)

instead?

> 2. GC_MARK_STACK is 1 by default in config.nt, but this default is broken
> with the msvc toolchain.  When temacs started to dump,
> it immediately exited with the message `Invalid function: "DEAD"'. Eli had
> previously told me (in #12878) to see bug #13070, but it didn't solve the
> problem. When I tried to change GC_MARK_STACK to 0, Emacs compiled fine. So
> there must be something wrong about the GCPROS_NOOPS way of marking stack
> under the vc compiler, maybe someone familiar with the garbage collector
> can fix it. (MinGW gcc is ok with the default)

Not only MinGW, but I believe Fabrice (CC'ed) also builds Emacs with
MSVC and uses GC_MARK_STACK.  Fabrice, can you please comment on this?