GNU bug report logs - #13939
24.3; Emacs 24.3 release won't compile on Windows with the msvc toolchain

Previous Next

Package: emacs;

Reported by: 李丁 <iamliding <at> gmail.com>

Date: Tue, 12 Mar 2013 22:53:02 UTC

Severity: normal

Found in version 24.3

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: 李丁 <iamliding <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>, fabrice.popineau <at> gmail.com
Cc: 13939 <at> debbugs.gnu.org
Subject: bug#13939: 24.3; Emacs 24.3 release won't compile on Windows with the msvc toolchain
Date: Thu, 14 Mar 2013 09:21:44 +0800
[Message part 1 (text/plain, inline)]
>
> 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 <at> gnu.org>

> > Date: Wed, 13 Mar 2013 06:47:56 +0800
> > From: 李丁 <iamliding <at> 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?
>
[Message part 2 (text/html, inline)]

This bug report was last modified 12 years and 64 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.