1
0
forked from aniani/vim

patch 8.1.2323: Old MSVC version no longer tested.

Problem:    Old MSVC version no longer tested.
Solution:   Drop support for MSCV 2008 and older. (Ken Takata, closes #5248)
This commit is contained in:
Bram Moolenaar
2019-11-19 23:01:28 +01:00
parent ffc4fb8fee
commit a075490082
5 changed files with 62 additions and 98 deletions

View File

@@ -44,7 +44,7 @@ Contents:
The currently recommended way (that means it has been verified to work) is The currently recommended way (that means it has been verified to work) is
using the "Visual Studio Community 2015" installation. This includes the SDK using the "Visual Studio Community 2015" installation. This includes the SDK
needed to target Windows XP. But not older Windows versions (95, 98), see needed to target Windows XP. But not older Windows versions (95, 98), see
|msvc-2008-express| below for that "OLDER VERSIONS" below for that.
1. Microsoft Visual C++ 1. Microsoft Visual C++
@@ -62,12 +62,8 @@ under "Universal Windows App Development Tools"
Visual Studio Visual Studio
------------- -------------
Building with Visual Studio (VS 98, VS .NET, VS .NET 2003, VS 2005, VS 2008, Building with Visual Studio (VS2010, VS2012, VS2013, VS2015, VS2017 and VS2019)
VS2010, VS2012, VS2013 and VS2015) is straightforward. (These instructions is straightforward.
should also work for VS 4 and VS 5.)
Using VS C++ 2008 Express is recommended if you need the binary to run on
Windows 95 or 97, see |msvc-2008-express| below.
To build Vim from the command line with MSVC, use Make_mvc.mak. To build Vim from the command line with MSVC, use Make_mvc.mak.
Visual Studio installed a batch file called vcvars32.bat, which you must Visual Studio installed a batch file called vcvars32.bat, which you must
@@ -82,7 +78,7 @@ nmake -f Make_mvc.mak PERL=C:\Perl PYTHON=C:\Python etc.
Make_mvc.mak allows a Vim to be built with various different features and Make_mvc.mak allows a Vim to be built with various different features and
debug support. debug support.
For compiling Gvim with IME support on far-east Windows, add IME=yes For compiling gVim with IME support on far-east Windows, add IME=yes
to the parameters you pass to Make_mvc.mak. to the parameters you pass to Make_mvc.mak.
See the specific files for comments and options. See the specific files for comments and options.
@@ -91,26 +87,6 @@ These files have been supplied by George V. Reilly, Ben Singer, Ken Scott and
Ron Aaron; they have been tested. Ron Aaron; they have been tested.
Visual C++ 2008 Express Edition *msvc-2008-express*
-------------------------------
Visual C++ 2008 Express Edition can be downloaded for free from:
http://www.microsoft.com/express/downloads/
This includes the IDE and the debugger.
To set the environment execute the msvc2008.bat script. You can then build
Vim with Make_mvc.mak.
For building 64 bit binaries you also need to install the SDK:
"Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1"
You don't need the examples and documentation.
If you get an error that Win32.mak can't be found, you have to set the
variable SDK_INCLUDE_DIR. For example, on Windows 10, installation of MSVC
puts include files in the following directory:
set SDK_INCLUDE_DIR=C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include
Visual C++ 2010 Express Edition *msvc-2010-express* Visual C++ 2010 Express Edition *msvc-2010-express*
------------------------------- -------------------------------
@@ -162,6 +138,9 @@ compiler by using the "x64" option:
The following Visual C++ team blog can serve as a reference page: 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 http://blogs.msdn.com/b/vcblog/archive/2012/10/08/windows-xp-targeting-with-c-in-visual-studio-2012.aspx
VC 2019 dropped support for targeting Windows XP. If you want a binary that
targeting Windows XP, use VC 2017 or earlier.
Cross compile support for Windows on ARM64 Cross compile support for Windows on ARM64
------------------------------------------ ------------------------------------------
@@ -178,11 +157,14 @@ The minimal supported version is Windows XP. Building with older compilers
might still work, but these instructions might be outdated. might still work, but these instructions might be outdated.
If you need the executable to run on Windows 98 or ME, use the 2003 one If you need the executable to run on Windows 98 or ME, use the 2003 one
|msvc-2003-toolkit|. |msvc-2003-toolkit| or |msvc-2005-express|, and use the source code before
8.0.0029.
Visual C++ Toolkit 2003 *msvc-2003-toolkit* Visual C++ Toolkit 2003 *msvc-2003-toolkit*
----------------------- -----------------------
NOTE: this most likely does not work
You could download the Microsoft Visual C++ Toolkit 2003 from You could download the Microsoft Visual C++ Toolkit 2003 from
http://msdn.microsoft.com/visualc/vctoolkit2003/ http://msdn.microsoft.com/visualc/vctoolkit2003/
Unfortunately this URL is no longer valid. Unofficial downloads appear to be Unfortunately this URL is no longer valid. Unofficial downloads appear to be
@@ -256,6 +238,8 @@ is also available through the Platform SDK, |ms-platform-sdk|.
Visual C++ 2005 Express Edition *msvc-2005-express* Visual C++ 2005 Express Edition *msvc-2005-express*
------------------------------- -------------------------------
NOTE: this most likely does not work
Visual C++ 2005 Express Edition can be downloaded for free from: Visual C++ 2005 Express Edition can be downloaded for free from:
http://msdn.microsoft.com/vstudio/express/visualC/default.aspx http://msdn.microsoft.com/vstudio/express/visualC/default.aspx
This includes the IDE and the debugger. You will also need This includes the IDE and the debugger. You will also need
@@ -265,6 +249,28 @@ Instructions for integrating the Platform SDK into VC Express:
http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx
Visual C++ 2008 Express Edition *msvc-2008-express*
-------------------------------
NOTE: this most likely does not work
Visual C++ 2008 Express Edition can be downloaded for free from:
http://www.microsoft.com/express/downloads/
This includes the IDE and the debugger.
To set the environment execute the msvc2008.bat script. You can then build
Vim with Make_mvc.mak.
For building 64 bit binaries you also need to install the SDK:
"Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1"
You don't need the examples and documentation.
If you get an error that Win32.mak can't be found, you have to set the
variable SDK_INCLUDE_DIR. For example, on Windows 10, installation of MSVC
puts include files in the following directory:
set SDK_INCLUDE_DIR=C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include
2. MSYS2 with MinGW 2. MSYS2 with MinGW
=================== ===================
@@ -359,38 +365,36 @@ that.
3. MinGW 3. MinGW
======== ========
(written by Ron Aaron: <ronaharon@yahoo.com>) (written by Ron Aaron: <ronaharon@yahoo.com>, updated by Ken Takata, et al.)
This is about how to produce a Win32 binary of gvim with MinGW. This is about how to produce a Win32 binary of gvim with MinGW from the normal
Command Prompt window. (To use MSYS2 console, see above.)
First, you need to get the 'mingw32' compiler, which is free for the download First, you need to get the 'MinGW-w64' compiler, which is free for the
at: download at:
http://www.mingw.org/
or you can use 'MinGW-w64' compiler.
http://mingw-w64.sourceforge.net/ http://mingw-w64.sourceforge.net/
Or a compiler provided on msys2: Or a compiler provided on msys2:
https://msys2.github.io/ https://www.msys2.org/
The original 'mingw32' compiler is outdated, and may no longer work:
http://www.mingw.org/
Once you have downloaded the compiler binaries, unpack them on your hard disk Once you have downloaded the compiler binaries, unpack them on your hard disk
somewhere, and put them on your PATH. If you are on Win95/98 you can edit somewhere, and put them on your PATH. Go to the Control Panel, (Performance
your AUTOEXEC.BAT file with a line like: and Maintenance), System, Advanced, and edit the environment from there. If
you use the standalone MinGW-w64 compiler, the path may depends on your
set PATH=C:\MinGW\bin;%PATH% installation. If you use msys2 compilers, set your installed paths (normally
one of the following):
or on NT/2000/XP, go to the Control Panel, (Performance and Maintenance),
System, Advanced, and edit the environment from there. If you use msys2
compilers, set your installed paths (normally one of the following):
C:\msys32\mingw32\bin (32-bit msys2, targeting 32-bit builds) C:\msys32\mingw32\bin (32-bit msys2, targeting 32-bit builds)
C:\msys64\mingw32\bin (64-bit msys2, targeting 32-bit builds) C:\msys64\mingw32\bin (64-bit msys2, targeting 32-bit builds)
C:\msys64\mingw64\bin (64-bit msys2, targeting 64-bit builds) C:\msys64\mingw64\bin (64-bit msys2, targeting 64-bit builds)
Test if gcc is on your path. From a CMD (or COMMAND on '95/98) window: Test if gcc is on your path. From a Command Prompt window:
C:\> gcc --version C:\> gcc --version
gcc (GCC) 4.8.1 gcc (GCC) 4.8.1
@@ -473,8 +477,7 @@ Now you have created the Windows binary from your Linux box! Have fun...
6. Building with Python support 6. Building with Python support
=============================== ===============================
For building with MSVC 2008 the "Windows Installer" from www.python.org For building with MSVC the "Windows Installer" from www.python.org works fine.
works fine.
When building, you need to set the following variables at least: When building, you need to set the following variables at least:
@@ -534,8 +537,8 @@ You will end up with a Python-enabled, Win32 version. Enjoy!
7. Building with Python3 support 7. Building with Python3 support
================================ ================================
For building with MSVC 2008 the "Windows Installer" from www.python.org For building with MSVC the "Windows Installer" from www.python.org works fine.
works fine. Python 3.6 is recommended. Python 3.6 is recommended.
When building, you need to set the following variables at least: When building, you need to set the following variables at least:
@@ -569,7 +572,7 @@ libstdc++-6.dll.)
8. Building with Racket or MzScheme support 8. Building with Racket or MzScheme support
======================================== ===========================================
1) Building with Racket support (newest) 1) Building with Racket support (newest)

View File

@@ -1,7 +1,7 @@
# Makefile for Vim on Win32 (Windows XP/2003/Vista/7/8/10) and Win64, # Makefile for Vim on Win32 (Windows XP/2003/Vista/7/8/10) and Win64,
# using the Microsoft Visual C++ compilers. Known to work with VC5, VC6 (VS98), # using the Microsoft Visual C++ compilers. Known to work with VC10 (VS2010),
# VC7.0 (VS2002), VC7.1 (VS2003), VC8 (VS2005), VC9 (VS2008), VC10 (VS2010), # VC11 (VS2012), VC12 (VS2013), VC14 (VS2015), VC14.1 (VS2017) and
# VC11 (VS2012), VC12 (VS2013), VC14 (VS2015) and VC15 (VS2017) # VC14.2 (VS2019).
# #
# To build using other Windows compilers, see INSTALLpc.txt # To build using other Windows compilers, see INSTALLpc.txt
# #
@@ -276,15 +276,9 @@ link = link
!if $(MSVCVER) < 1900 !if $(MSVCVER) < 1900
MSVC_MAJOR = ($(MSVCVER) / 100 - 6) MSVC_MAJOR = ($(MSVCVER) / 100 - 6)
MSVCRT_VER = ($(MSVCVER) / 10 - 60) MSVCRT_VER = ($(MSVCVER) / 10 - 60)
# Visual C++ 2017 needs special handling
# it has an _MSC_VER of 1910->14.1, but is actually v15 with runtime v140
# TODO: what's the maximum value?
!elseif $(MSVCVER) >= 1910
MSVC_MAJOR = 15
MSVCRT_VER = 140
!else !else
MSVC_MAJOR = ($(MSVCVER) / 100 - 5) MSVC_MAJOR = ($(MSVCVER) / 100 - 5)
MSVCRT_VER = ($(MSVCVER) / 10 - 50) MSVCRT_VER = ($(MSVCVER) / 100 * 10 - 50)
!endif !endif
# Calculate MSVC_FULL for Visual C++ 8 and up. # Calculate MSVC_FULL for Visual C++ 8 and up.

View File

@@ -1285,13 +1285,8 @@ gui_mch_new_colors(void)
HBRUSH prevBrush; HBRUSH prevBrush;
s_brush = CreateSolidBrush(gui.back_pixel); s_brush = CreateSolidBrush(gui.back_pixel);
#ifdef SetClassLongPtr
prevBrush = (HBRUSH)SetClassLongPtr( prevBrush = (HBRUSH)SetClassLongPtr(
s_hwnd, GCLP_HBRBACKGROUND, (LONG_PTR)s_brush); s_hwnd, GCLP_HBRBACKGROUND, (LONG_PTR)s_brush);
#else
prevBrush = (HBRUSH)SetClassLong(
s_hwnd, GCL_HBRBACKGROUND, (long_u)s_brush);
#endif
InvalidateRect(s_hwnd, NULL, TRUE); InvalidateRect(s_hwnd, NULL, TRUE);
DeleteObject(prevBrush); DeleteObject(prevBrush);
} }
@@ -3422,11 +3417,7 @@ mch_set_mouse_shape(int shape)
idc = IDC_ARROW; idc = IDC_ARROW;
else else
idc = mshape_idcs[shape]; idc = mshape_idcs[shape];
#ifdef SetClassLongPtr SetClassLongPtr(s_textArea, GCLP_HCURSOR, (LONG_PTR)LoadCursor(NULL, idc));
SetClassLongPtr(s_textArea, GCLP_HCURSOR, (__int3264)(LONG_PTR)LoadCursor(NULL, idc));
#else
SetClassLong(s_textArea, GCL_HCURSOR, (long_u)LoadCursor(NULL, idc));
#endif
if (!p_mh) if (!p_mh)
{ {
POINT mp; POINT mp;

View File

@@ -921,14 +921,6 @@ static const struct
}; };
#ifdef _MSC_VER
// The ToAscii bug destroys several registers. Need to turn off optimization
// or the GetConsoleKeyboardLayoutName hack will fail in non-debug versions
# pragma warning(push)
# pragma warning(disable: 4748)
# pragma optimize("", off)
#endif
#if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__CYGWIN__) #if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__CYGWIN__)
# define UChar UnicodeChar # define UChar UnicodeChar
#else #else
@@ -981,20 +973,6 @@ win32_kbd_patch_key(
return s_iIsDead; return s_iIsDead;
} }
#ifdef _MSC_VER
/* MUST switch optimization on again here, otherwise a call to
* decode_key_event() may crash (e.g. when hitting caps-lock) */
# pragma optimize("", on)
# pragma warning(pop)
# if (_MSC_VER < 1100)
/* MUST turn off global optimisation for this next function, or
* pressing ctrl-minus in insert mode crashes Vim when built with
* VC4.1. -- negri. */
# pragma optimize("g", off)
# endif
#endif
static BOOL g_fJustGotFocus = FALSE; static BOOL g_fJustGotFocus = FALSE;
/* /*
@@ -1120,10 +1098,6 @@ decode_key_event(
return (*pch != NUL); return (*pch != NUL);
} }
#ifdef _MSC_VER
# pragma optimize("", on)
#endif
#endif /* FEAT_GUI_MSWIN */ #endif /* FEAT_GUI_MSWIN */

View File

@@ -741,6 +741,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2323,
/**/ /**/
2322, 2322,
/**/ /**/