On Wednesday, 22 April 2015 20:03:44 UTC+1, Paul  Moore  wrote:
> Has anyone tried building Vim with Visual C 2015 on Windows yet? I wanted to 
> try building a copy of Vim with Python 3.5 enabled, just to see how well it 
> worked - Python 3.5 uses VC 2015 to build, so I wanted to use the same 
> version for Vim to avoid any weird C runtime clashes that might occur. And 
> just for the interest :-)
> 
> There seem to be a number of issues:
> 
> 1. Win32.mak is no longer available. I see that I can set SDK_INCLUDE_DIR to 
> point to a version of it, but that means installing an old SDK or an old 
> version of Visual Studio, so it's less than ideal...
> 
> 2. The use of /nodefaultlib causes a load of "unresolved external symbol 
> malloc" and similar issues. The C runtime has been reorganised in VC 2015, 
> which maybe is why this is having issues.
> 
> Has anyone else tried to build with VC2015, and if so have you worked out how 
> to fix these issues in a reasonable way? Just removing the use of 
> /nodefaultlib *seems* to work, so I could use that for now, but I don't know 
> if that could have problems that I haven't spotted.
> 
> Thanks,
> Paul

The following diff allows the build to succeed. You still need SDK_INCLUDE_DIR. 
Also, you have to build the GUI version with XPM=no, because the included 
libxpm binary appears not to be compatibile with the VC 2015 CRT (I don't know 
how to rebuild it, even if I could).

Paul

diff -r 3790fb70e04c src/Make_mvc.mak
--- a/src/Make_mvc.mak  Tue Apr 21 19:10:49 2015 +0200
+++ b/src/Make_mvc.mak  Wed Apr 22 22:44:25 2015 +0100
@@ -343,7 +343,7 @@
 # gdi32.lib and comdlg32.lib for printing support
 # ole32.lib and uuid.lib are needed for FEAT_SHORTCUT
 CON_LIB = oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib \
-          comdlg32.lib ole32.lib uuid.lib /machine:$(CPU) /nodefaultlib
+          comdlg32.lib ole32.lib uuid.lib /machine:$(CPU)
 !if "$(DELAYLOAD)" == "yes"
 CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib
 !endif
@@ -446,6 +446,9 @@
 !if "$(_NMAKE_VER)" == "12.00.21005.1"
 MSVCVER = 12.0
 !endif
+!if "$(_NMAKE_VER)" == "14.00.22609.0"
+MSVCVER = 14.0
+!endif
 !endif

 # Abort building VIM if version of VC is unrecognised.
@@ -460,7 +463,7 @@
 !endif

 # Convert processor ID to MVC-compatible number
-!if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != 
"10.0") && ("$(MSVCVER)" != "11.0") && ("$(MSVCVER)" != "12.0")
+!if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != 
"10.0") && ("$(MSVCVER)" != "11.0") && ("$(MSVCVER)" != "12.0") && 
("$(MSVCVER)" != "14.0")
 !if "$(CPUNR)" == "i386"
 CPUARG = /G3
 !elseif "$(CPUNR)" == "i486"
@@ -484,6 +487,13 @@
 LIBC =
 DEBUGINFO = /Zi

+# Don't use /nodefaultlib on MSVC 14
+!if "$(MSVCVER)" == "14.0"
+NODEFAULTLIB =
+!else
+NODEFAULTLIB = /nodefaultlib
+!endif
+
 !ifdef NODEBUG
 VIM = vim
 !if "$(OPTIMIZE)" == "SPACE"
@@ -655,7 +665,7 @@
 GUI_LIB = \
        gdi32.lib version.lib $(IME_LIB) \
        winspool.lib comctl32.lib advapi32.lib shell32.lib \
-       /machine:$(CPU) /nodefaultlib
+       /machine:$(CPU)
 !else
 SUBSYSTEM = console
 !endif
@@ -976,7 +986,7 @@
 !ENDIF

 LINKARGS1 = $(linkdebug) $(conflags)
-LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(LIBC) $(OLE_LIB)  user32.lib $(SNIFF_LIB) \
+LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(NODEFAULTLIB) $(LIBC) $(OLE_LIB)  
user32.lib $(SNIFF_LIB) \
                $(LUA_LIB) $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) 
$(PYTHON3_LIB) $(RUBY_LIB) \
                $(TCL_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB)

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui