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

From: Fabrice Popineau <[email-masked]>
Date: Thu, 14 Mar 2013 20:28:45 +0100

I tried importing this change in editfns.c but it doesn't change anything.

If I run only temacs.exe without any arguments, I get a very quick
backtrace:

C:\>"C:\Source\XEmTeX\emacs\emacs-24.3\src/obj-spd/AMD64/temacs.exe"
Loading loadup.el (source)...
Invalid function: "DEAD"

> temacs.exe!eval_sub(__int64 form) Line 2195 C
  temacs.exe!readevalloop(__int64 readcharfun, _iobuf * stream, __int64
sourcename, char printflag, __int64 unibyte, __int64 readfun, __int64
start, __int64 end) Line 1845 C
  temacs.exe!Fload(__int64 file, __int64 noerror, __int64 nomessage,
__int64 nosuffix, __int64 must_suffix) Line 1326 C
  temacs.exe!eval_sub(__int64 form) Line 2161 C
  temacs.exe!Feval(__int64 form, __int64 lexical) Line 2006 C
  temacs.exe!internal_condition_case(__int64 (void) * bfun, __int64
handlers, __int64 (__int64) * hfun) Line 1290 C
  temacs.exe!top_level_1(__int64 ignore) Line 1190 C
  temacs.exe!internal_catch(__int64 tag, __int64 (__int64) * func, __int64
arg) Line 1060 C
  temacs.exe!command_loop() Line 1147 C
  temacs.exe!recursive_edit_1() Line 780 C
  temacs.exe!Frecursive_edit() Line 844 C
  temacs.exe!main(int argc, char * * argv) Line 1528 C

I put a breakpoint in xsignal1() to get this backtrace. So it seems that
eval() is unable to process any kind of function.

Fabrice

2013/3/14 Eli Zaretskii <[email-masked]>

> > From: Fabrice Popineau <[email-masked]>
> > Date: Thu, 14 Mar 2013 16:13:09 +0100
> > Cc: 李丁 <[email-masked]>, 13939 <[email-masked]>
> >
> > I can confirm that with GC_MARK_STACK=0, 24.3 does compile with the MS
> > compiler.
> > With GC_MARK_STACK=1, 24.3 doesn't compile, but the current trunk (well,
> my
> > copy, but which is quite close) does compile, 32bits and 64bits.
>
> Can you copy to 24.3 the changes made on trunk (in
> editfns.c:set_time_zone_rule) to use putenv and unsetenv instead of
> reallocating entries in 'environ', and see if that solves the problem
> in 24.3?  In addition to the changes in editfns.c, you will also need
> sys_putenv and unsetenv on w32.c.
>
> TIA
>
>