all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Christoph <cschol2112@googlemail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Building Emacs with MSVC
Date: Tue, 06 Apr 2010 22:49:27 -0600	[thread overview]
Message-ID: <4BBC0ED7.8070209@gmail.com> (raw)
In-Reply-To: <831vesx8d5.fsf@gnu.org>

On 4/6/2010 9:13 PM, Eli Zaretskii wrote:
> Yes, Studio 2003 is the last version known to build a working binary.
>    
OK.

> That's a known problem.  I forget the details (you can find them in
> the archives), but there's some problem with the library functions
> supplied by later versions of Studio, and/or conflicts with our
> customized malloc, that cause the crash.
>    
Yes, one issue is the library libc.lib (single threaded) which was 
replaced by libcmt.lib (multithreaded). But there were other issues like 
shadowing functions, for example sys_ctime and utime.

Also, maybe this is interesting for you Eli: bidi.c failed because MSVC 
does not support the inline keyword for C files (only for C++ files). 
__inline is the correct keyword for C files 
(http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx) in MSVC.

It might not matter, since GCC compiles fine, but I though I'd mention 
it anyway.

> What for?  If we cannot build a working binary, why pollute the
> sources with more MSVC-specific patches?
>    
The patch is actually for a bug in the existing MSVC makefile in 
lib-src. I am pretty sure even older versions would not run with this, 
since nmake fails right away:

=== modified file 'lib-src/makefile.w32-in'
--- lib-src/makefile.w32-in    2010-04-03 01:54:24 +0000
+++ lib-src/makefile.w32-in    2010-04-06 03:06:03 +0000
@@ -195,8 +195,8 @@
      $(lispsource)term/pc-win.elc \
      $(lispsource)x-dnd.elc \
      $(lispsource)term/x-win.elc \
-    ${lispsource}emacs-lisp/easymenu.elc \
-    ${lispsource}term/ns-win.elc
+    $(lispsource)emacs-lisp/easymenu.elc \
+    $(lispsource)term/ns-win.elc

> Right.  And since MinGW is available and in pretty good shape, we
> decided at the time not to invest any effort in MSVC.
>    
I agree. MinGW works absolutely fine, so is there even any reason to 
keep the MSVC stuff around? Was MSVC supported earlier than MinGW? I 
surely don't want to start another discussion about backwards 
compatibility and supporting older versions but a lot areas could be 
cleaned up quite a bit if MSVC/nmake support was dropped in favor of 
MinGW/gmake. The only reason for the zipdist batch file was nmake, which 
turns out to be horribly limited compared to gmake.

Just my $0.02,
Christoph




  reply	other threads:[~2010-04-07  4:49 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-07  2:37 Building Emacs with MSVC Christoph
2010-04-07  3:13 ` Eli Zaretskii
2010-04-07  4:49   ` Christoph [this message]
2010-04-07  7:22     ` Eli Zaretskii
2010-04-19 16:26     ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4BBC0ED7.8070209@gmail.com \
    --to=cschol2112@googlemail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.