Hi,

Eli: in what ways 24.3 differs from the current trunk ? 
Well, I can browse the diffs but you may have an insight of what's going wrong.

At first, I thought about the thing we fixed with TZ. But it does not seem to be the problem.
Albeit this maybe a source of a potential crash. The fix is needed for windows, given
the way environment is handled (if I remember correctly).
At this moment,  I can compile the current trunk and bootstrap it. But not 24.3 .

Fabrice




2013/3/14 李丁 <iamliding@gmail.com>
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.

I'd like to.

 Or maybe it should say
  !if $(USE_CRT_DLL)
instead?
 
Yes, seems more appropriate.

Not only MinGW, but I believe Fabrice (CC'ed) also builds Emacs with
MSVC and uses GC_MARK_STACK.

Maybe the the bug is introduced after Emacs 24.2, which can be built and dumped with GC_MARK_STACK.

Regarding the GC_MARK_STACK, I want to provide a little more information: the error occurred after the first Fgarbage_collect while loading loadup.el, and some important functions are not marked and thus garbage collected. As in alloc.c the `car' of a cons is set to `Vdead' when freed, I suppose this is where the "DEAD" comes from.


2013/3/14 Eli Zaretskii <eliz@gnu.org>
> Date: Wed, 13 Mar 2013 06:47:56 +0800
> From: 李丁 <iamliding@gmail.com>
>
> 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?