Patch 9.0.0542
Problem:    MSVC build still has support for 2012 edition.
Solution:   Drop MSVC 2012 support. (Ken Takata, closes #11191)
Files:      src/Make_mvc.mak, src/if_perl_msvc/stdbool.h,
            src/xpm/x64/lib/libXpm.lib, src/xpm/x86/lib/libXpm.lib


*** ../vim-9.0.0541/src/Make_mvc.mak    2022-09-21 10:51:09.052577433 +0100
--- src/Make_mvc.mak    2022-09-22 13:13:33.762834523 +0100
***************
*** 266,277 ****
  !endif
  
  !if $(MSVCVER) < 1900
! MSVC_MAJOR = ($(MSVCVER) / 100 - 6)
! MSVCRT_VER = ($(MSVCVER) / 10 - 60)
! !else
  MSVC_MAJOR = ($(MSVCVER) / 100 - 5)
  MSVCRT_VER = ($(MSVCVER) / 100 * 10 - 50)
- !endif
  
  # Calculate MSVC_FULL.
  !if [echo MSVC_FULL=_MSC_FULL_VER> msvcfullver.c && $(CC) /EP msvcfullver.c > 
msvcfullver.~ 2> nul]
--- 266,279 ----
  !endif
  
  !if $(MSVCVER) < 1900
! ! message *** ERROR
! ! message Unsupported MSVC version.
! ! message Please use Visual C++ 2015 or later.
! ! error Make aborted.
! !endif
! 
  MSVC_MAJOR = ($(MSVCVER) / 100 - 5)
  MSVCRT_VER = ($(MSVCVER) / 100 * 10 - 50)
  
  # Calculate MSVC_FULL.
  !if [echo MSVC_FULL=_MSC_FULL_VER> msvcfullver.c && $(CC) /EP msvcfullver.c > 
msvcfullver.~ 2> nul]
***************
*** 293,306 ****
  ! endif
  !endif
  
! # Base name of the msvcrXX.dll
! !if $(MSVCRT_VER) <= 60
! MSVCRT_NAME = msvcrt
! !elseif $(MSVCRT_VER) <= 130
! MSVCRT_NAME = msvcr$(MSVCRT_VER)
! !else
  MSVCRT_NAME = vcruntime$(MSVCRT_VER)
- !endif
  
  ### Set the default $(WINVER) to make it work with Windows 7
  !ifndef WINVER
--- 295,302 ----
  ! endif
  !endif
  
! # Base name of the msvcrXX.dll (vcruntimeXXX.dll)
  MSVCRT_NAME = vcruntime$(MSVCRT_VER)
  
  ### Set the default $(WINVER) to make it work with Windows 7
  !ifndef WINVER
***************
*** 310,320 ****
  # Use multiprocess build
  USE_MP = yes
  
- #>>>>> path of the compiler and linker; name of include and lib directories
- # PATH = c:\msvc20\bin;$(PATH)
- # INCLUDE = c:\msvc20\include
- # LIB = c:\msvc20\lib
- 
  !if "$(FEATURES)"==""
  FEATURES = HUGE
  !endif
--- 306,311 ----
***************
*** 461,473 ****
  # See the xpm directory for more information.
  XPM_OBJ   = $(OBJDIR)/xpm_w32.obj
  XPM_DEFS  = -DFEAT_XPM_W32
- !  if $(MSVC_MAJOR) >= 14
- # VC14 cannot use a library built by VC12 or earlier, because VC14 uses
- # Universal CRT.
  XPM_LIB   = $(XPM)\lib-vc14\libXpm.lib
- !  else
- XPM_LIB   = $(XPM)\lib\libXpm.lib
- !  endif
  XPM_INC         = -I $(XPM)\include -I $(XPM)\..\include
  ! endif
  !endif # GUI
--- 452,458 ----
***************
*** 482,491 ****
  !if "$(CHANNEL)" == "yes"
  CHANNEL_PRO   = proto/job.pro proto/channel.pro
  CHANNEL_OBJ   = $(OBJDIR)/job.obj $(OBJDIR)/channel.obj
! CHANNEL_DEFS  = -DFEAT_JOB_CHANNEL -DFEAT_IPV6
! ! if $(WINVER) >= 0x600
! CHANNEL_DEFS  = $(CHANNEL_DEFS) -DHAVE_INET_NTOP
! ! endif
  
  NETBEANS_LIB  = WSock32.lib Ws2_32.lib
  !endif
--- 467,473 ----
  !if "$(CHANNEL)" == "yes"
  CHANNEL_PRO   = proto/job.pro proto/channel.pro
  CHANNEL_OBJ   = $(OBJDIR)/job.obj $(OBJDIR)/channel.obj
! CHANNEL_DEFS  = -DFEAT_JOB_CHANNEL -DFEAT_IPV6 -DHAVE_INET_NTOP
  
  NETBEANS_LIB  = WSock32.lib Ws2_32.lib
  !endif
***************
*** 507,516 ****
  #VIMRCLOC = somewhere
  #VIMRUNTIMEDIR = somewhere
  
! CFLAGS = -c /W3 /GF /nologo -I. -Iproto -DHAVE_PATHDEF -DWIN32 \
                $(CSCOPE_DEFS) $(TERM_DEFS) $(SOUND_DEFS) $(NETBEANS_DEFS) 
$(CHANNEL_DEFS) \
                $(NBDEBUG_DEFS) $(XPM_DEFS) $(SOD_DEFS) $(SOD_INC) \
!               $(DEFINES) -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
  
  #>>>>> end of choices
  ###########################################################################
--- 489,499 ----
  #VIMRCLOC = somewhere
  #VIMRUNTIMEDIR = somewhere
  
! CFLAGS = -c /W3 /GF /nologo -I. -Iproto -DHAVE_PATHDEF -DWIN32 
-DHAVE_STDINT_H \
                $(CSCOPE_DEFS) $(TERM_DEFS) $(SOUND_DEFS) $(NETBEANS_DEFS) 
$(CHANNEL_DEFS) \
                $(NBDEBUG_DEFS) $(XPM_DEFS) $(SOD_DEFS) $(SOD_INC) \
!               $(DEFINES) -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
!               /source-charset:utf-8
  
  #>>>>> end of choices
  ###########################################################################
***************
*** 543,591 ****
  # Convert processor ID to MVC-compatible number
  # IA32/SSE/SSE2 are only supported on x86
  !if "$(ASSEMBLY_ARCHITECTURE)" == "i386" && ("$(CPUNR)" == "i686" || 
"$(CPUNR)" == "any")
- # VC<11 generates fp87 code by default
- ! if $(MSVC_MAJOR) < 11
- CPUARG =
- # VC>=11 needs explicit instructions to generate fp87 code
- ! else
  CPUARG = /arch:IA32
- ! endif
  !elseif "$(ASSEMBLY_ARCHITECTURE)" == "i386" && "$(CPUNR)" == "sse"
  CPUARG = /arch:SSE
  !elseif "$(ASSEMBLY_ARCHITECTURE)" == "i386" && "$(CPUNR)" == "sse2"
  CPUARG = /arch:SSE2
  !elseif "$(CPUNR)" == "avx"
- # AVX is only supported by VC 10 and up
- ! if $(MSVC_MAJOR) < 10
- !  message AVX Instruction Set is not supported by Visual C++ v$(MSVC_MAJOR)
- !  if "$(ASSEMBLY_ARCHITECTURE)" == "i386"
- !   message Falling back to SSE2
- CPUARG = /arch:SSE2
- !  else
- CPUARG =
- !  endif
- ! else
  CPUARG = /arch:AVX
- ! endif
  !elseif "$(CPUNR)" == "avx2"
- # AVX is only supported by VC 10 and up
- ! if $(MSVC_MAJOR) < 10
- !  message AVX2 Instruction Set is not supported by Visual C++ v$(MSVC_MAJOR)
- !  if "$(ASSEMBLY_ARCHITECTURE)" == "i386"
- !   message Falling back to SSE2
- CPUARG = /arch:SSE2
- !  else
- CPUARG =
- !  endif
- # AVX2 is only supported by VC 12U2 and up
- # 180030501 is the full version number for Visual Studio 2013/VC 12 Update 2
- ! elseif $(MSVC_FULL) < 180030501
- !  message AVX2 Instruction Set is not supported by Visual C++ 
v$(MSVC_MAJOR)-$(MSVC_FULL)
- !  message Falling back to AVX
- CPUARG = /arch:AVX
- ! else
  CPUARG = /arch:AVX2
- ! endif
  !endif
  
  # Pass CPUARG to GvimExt, to avoid using version-dependent defaults
--- 526,540 ----
***************
*** 606,643 ****
  LIBC =
  DEBUGINFO = /Zi
  
! # Don't use /nodefaultlib on MSVC 14
! !if $(MSVC_MAJOR) >= 14
! NODEFAULTLIB =
! !else
! NODEFAULTLIB = /nodefaultlib
! !endif
! 
! # Specify source code charset to suppress warning C4819 on non-English
! # environment. Only available from MSVC 14.
! !if $(MSVC_MAJOR) >= 14
! CFLAGS = $(CFLAGS) /source-charset:utf-8
! !endif
! 
! # Use multiprocess build on MSVC 10
! !if ("$(USE_MP)" == "yes") && ($(MSVC_MAJOR) >= 10)
  CFLAGS = $(CFLAGS) /MP
  !endif
  
! # VC10 or later has stdint.h.
! !if $(MSVC_MAJOR) >= 10
! CFLAGS = $(CFLAGS) -DHAVE_STDINT_H
! !endif
! 
! # Static code analysis generally available starting with VS2012 (VC11) or
! # Windows SDK 7.1 (VC10)
! !if ("$(ANALYZE)" == "yes") && ($(MSVC_MAJOR) >= 10)
  CFLAGS = $(CFLAGS) /analyze
  !endif
  
  # Address Sanitizer (ASAN) generally available starting with VS2019 version
  # 16.9
! !if ("$(ASAN)" == "yes") && ($(MSVC_MAJOR) >= 14)
  CFLAGS = $(CFLAGS) /fsanitize=address
  !endif
  
--- 555,573 ----
  LIBC =
  DEBUGINFO = /Zi
  
! # Use multiprocess build.
! !if "$(USE_MP)" == "yes"
  CFLAGS = $(CFLAGS) /MP
  !endif
  
! # Use static code analysis
! !if "$(ANALYZE)" == "yes"
  CFLAGS = $(CFLAGS) /analyze
  !endif
  
  # Address Sanitizer (ASAN) generally available starting with VS2019 version
  # 16.9
! !if ("$(ASAN)" == "yes") && ($(MSVC_FULL) >= 192829913)
  CFLAGS = $(CFLAGS) /fsanitize=address
  !endif
  
***************
*** 1088,1100 ****
  ! endif
  ! message Perl requested (version $(PERL_VER)) - root dir is "$(PERL)"
  ! if "$(DYNAMIC_PERL)" == "yes"
! !  if $(PERL_VER) >= 56
! !   message Perl DLL will be loaded dynamically
! !  else
! !   message Dynamic loading is not supported for Perl versions earlier than 
5.6.0
! !   message Reverting to static loading...
! !   undef DYNAMIC_PERL
! !  endif
  ! endif
  
  # Is Perl installed in architecture-specific directories?
--- 1018,1024 ----
  ! endif
  ! message Perl requested (version $(PERL_VER)) - root dir is "$(PERL)"
  ! if "$(DYNAMIC_PERL)" == "yes"
! !  message Perl DLL will be loaded dynamically
  ! endif
  
  # Is Perl installed in architecture-specific directories?
***************
*** 1105,1120 ****
  PERL_INCDIR = $(PERL)\Lib$(PERL_ARCH)\Core
  
  # Version-dependent stuff
- ! if $(PERL_VER) == 55
- PERL_LIB = $(PERL_INCDIR)\perl.lib
- ! else
  PERL_DLL = perl$(PERL_VER).dll
! !  if exist($(PERL_INCDIR)\perl$(PERL_VER).lib)
  PERL_LIB = $(PERL_INCDIR)\perl$(PERL_VER).lib
! !  else
  # For ActivePerl 5.18 and later
  PERL_LIB = $(PERL_INCDIR)\libperl$(PERL_VER).a
- !  endif
  ! endif
  
  CFLAGS = $(CFLAGS) -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
--- 1029,1040 ----
  PERL_INCDIR = $(PERL)\Lib$(PERL_ARCH)\Core
  
  # Version-dependent stuff
  PERL_DLL = perl$(PERL_VER).dll
! ! if exist($(PERL_INCDIR)\perl$(PERL_VER).lib)
  PERL_LIB = $(PERL_INCDIR)\perl$(PERL_VER).lib
! ! else
  # For ActivePerl 5.18 and later
  PERL_LIB = $(PERL_INCDIR)\libperl$(PERL_VER).a
  ! endif
  
  CFLAGS = $(CFLAGS) -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
***************
*** 1127,1137 ****
  
  PERL_EXE = $(PERL)\Bin$(PERL_ARCH)\perl
  PERL_INC = /I $(PERL_INCDIR)
- ! if $(MSVC_MAJOR) <= 11
- # ActivePerl 5.20+ requires stdbool.h but VC2012 or earlier doesn't have it.
- # Use a stub stdbool.h.
- PERL_INC = $(PERL_INC) /I if_perl_msvc
- ! endif
  PERL_OBJ = $(OUTDIR)\if_perl.obj $(OUTDIR)\if_perlsfio.obj
  XSUBPP = $(PERL)\lib\ExtUtils\xsubpp
  ! if exist($(XSUBPP))
--- 1047,1052 ----
***************
*** 1169,1177 ****
  !   else # CPU
  RUBY_PLATFORM = x64-mswin64
  !   endif # CPU
! !   if $(MSVCRT_VER) >= 70 && $(RUBY_VER) > 19
  RUBY_PLATFORM = $(RUBY_PLATFORM)_$(MSVCRT_VER)
! !   endif # MSVCRT_VER
  !  endif # RUBY_PLATFORM
  
  !  ifndef RUBY_INSTALL_NAME
--- 1084,1092 ----
  !   else # CPU
  RUBY_PLATFORM = x64-mswin64
  !   endif # CPU
! !   if $(RUBY_VER) > 19
  RUBY_PLATFORM = $(RUBY_PLATFORM)_$(MSVCRT_VER)
! !   endif # RUBY_VER
  !  endif # RUBY_PLATFORM
  
  !  ifndef RUBY_INSTALL_NAME
***************
*** 1263,1269 ****
  PATHDEF_SRC = $(OUTDIR)\pathdef.c
  
  LINKARGS1 = /nologo
! LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(NODEFAULTLIB) $(LIBC) $(OLE_LIB) \
                $(LUA_LIB) $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) 
$(PYTHON3_LIB) $(RUBY_LIB) \
                $(TCL_LIB) $(SOUND_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(SOD_LIB) 
$(LINK_PDB)
  
--- 1178,1184 ----
  PATHDEF_SRC = $(OUTDIR)\pathdef.c
  
  LINKARGS1 = /nologo
! LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(LIBC) $(OLE_LIB) \
                $(LUA_LIB) $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) 
$(PYTHON3_LIB) $(RUBY_LIB) \
                $(TCL_LIB) $(SOUND_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(SOD_LIB) 
$(LINK_PDB)
  
***************
*** 1296,1302 ****
  ! endif
  !endif
  
! !if $(MSVC_MAJOR) >= 11 && "$(CPU)" == "AMD64" && "$(GUI)" == "yes"
  # This option is required for VC2012 or later so that 64-bit gvim can
  # accept D&D from 32-bit applications.  NOTE: This disables 64-bit ASLR,
  # therefore the security level becomes as same as VC2010.
--- 1211,1217 ----
  ! endif
  !endif
  
! !if "$(CPU)" == "AMD64" && "$(GUI)" == "yes"
  # This option is required for VC2012 or later so that 64-bit gvim can
  # accept D&D from 32-bit applications.  NOTE: This disables 64-bit ASLR,
  # therefore the security level becomes as same as VC2010.
***************
*** 1339,1349 ****
  
  $(GVIM).exe: $(OUTDIR) $(EXEOBJG) $(VIMDLLBASE).dll
        $(LINK) $(LINKARGS1) /subsystem:$(SUBSYSTEM) -out:$(GVIM).exe 
$(EXEOBJG) $(VIMDLLBASE).lib $(LIBC)
-       if exist $(GVIM).exe.manifest mt.exe -nologo -manifest 
$(GVIM).exe.manifest -updateresource:$(GVIM).exe;1
  
  $(VIM).exe: $(OUTDIR) $(EXEOBJC) $(VIMDLLBASE).dll
        $(LINK) $(LINKARGS1) /subsystem:$(SUBSYSTEM_CON) -out:$(VIM).exe 
$(EXEOBJC) $(VIMDLLBASE).lib $(LIBC)
-       if exist $(VIM).exe.manifest mt.exe -nologo -manifest 
$(VIM).exe.manifest -updateresource:$(VIM).exe;1
  
  !else
  
--- 1254,1262 ----
***************
*** 1358,1364 ****
  $(TCL_OBJ) $(TERM_OBJ) $(SOUND_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ)
  $(XPM_OBJ) $(OUTDIR)\version.obj $(LINKARGS2)
  <<
-       if exist $(VIM).exe.manifest mt.exe -nologo -manifest 
$(VIM).exe.manifest -updateresource:$(VIM).exe;1
  
  !endif
  
--- 1271,1276 ----
*** ../vim-9.0.0541/src/if_perl_msvc/stdbool.h  2017-07-24 21:28:31.000000000 
+0100
--- src/if_perl_msvc/stdbool.h  1970-01-01 00:00:00.000000000 +0000
***************
*** 1,3 ****
- /* A stub stdbool.h for VC2012 or earlier.
-  * ActivePerl 5.20+ requires stdbool.h but VC2012 doesn't have it. */
- #define bool char
--- 0 ----
*** ../vim-9.0.0541/src/xpm/x64/lib/libXpm.lib  2012-08-26 16:34:14.000000000 
+0100
--- src/xpm/x64/lib/libXpm.lib  1970-01-01 00:00:00.000000000 +0000
***************
*** 1,469 ****
- !<arch>
- /               1345988052              0       12499     `
- ?$CF02x?$AA@@?$DL?$AA@_09MIGKOGAO@gainsboro?$AA@ d       ¾XÿI‰F Dˆ HÿÇHƒë 
uÊH‹\$0Æ D$TM‰u A‰EmHex ta rdata??_C@_05LMOCOHGJ@Gray4?$AA@a$XpmReadFileToImage 
HÿÆÿÇH‹ÆHÁà I ÄHƒ8¡ èxtensions?$CF02x?$AA@FreeAttributes?$AA@ $,    
??_C@_06JFCM@Gray88?$AA@752              100666  1081      `
- L  ÿƒì,‹D$8SUV3öW;Ɖt$ ‰t$ ÇD$$�ýÿÿÿ[ Ä ?0?6?$CCXPMEXT?5?$CFs?$CC?$AA@

-- 
-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/20220922121757.9EEE91C0796%40moolenaar.net.

Raspunde prin e-mail lui