# HG changeset patch # User Bram Moolenaar # Date 1408723977 -7200 # Node ID 4c845a1600d28db8edabd211e6d7a9cd03883ea6 # Parent aeafe78fc869e1cfc5be472c5a21d1d58d3314e3 updated for version 7.4.412 Problem: Can't build on Windows XP with MSVC. Solution: Add SUBSYSTEM_VER to the Makefile. (Yongwei Wu) diff --git a/src/INSTALLpc.txt b/src/INSTALLpc.txt --- a/src/INSTALLpc.txt +++ b/src/INSTALLpc.txt @@ -192,6 +192,30 @@ To set the environment execute the msvc2 Vim with Make_mvc.mak. +Targeting Windows XP with new MSVC *new-msvc-windows-xp* +---------------------------------- + +Beginning with Visual C++ 2010, Microsoft changed the behavior of LINK.EXE +so that it targets Windows 6.0 (Vista) by default. In order to override +this, the target Windows version number needs to be passed to LINK like +follows: + LINK ... /subsystem:console,5.01 + +Make_mvc.mak now supports a macro SUBSYSTEM_VER to pass the Windows version. +Use lines like follows to target Windows XP (assuming using Visual C++ 2012 +under 64-bit Windows): + set WinSdk71=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A + set SDK_INCLUDE_DIR=%WinSdk71%\Include + set INCLUDE=%WinSdk71%\Include;%INCLUDE% + set LIB=%WinSdk71%\Lib;%LIB% + set PATH=%WinSdk71%\Bin;%PATH% + set CL=/D_USING_V110_SDK71_ + nmake -f Make_mvc.mak ... WINVER=0x0501 SUBSYSTEM_VER=5.01 + +The following Visual C++ team blog can serve as a reference page: + http://blogs.msdn.com/b/vcblog/archive/2012/10/08/windows-xp-targeting-with-c-in-visual-studio-2012.aspx + + 2. MinGW ======== diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak --- a/src/Make_mvc.mak +++ b/src/Make_mvc.mak @@ -657,6 +657,10 @@ GUI_LIB = \ SUBSYSTEM = console !endif +!if "$(SUBSYSTEM_VER)" != "" +SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER) +!endif + !if "$(GUI)" == "yes" && "$(DIRECTX)" == "yes" CFLAGS = $(CFLAGS) $(DIRECTX_DEFS) GUI_INCL = $(GUI_INCL) $(DIRECTX_INCL) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 412, +/**/ 411, /**/ 410,