Patch 9.0.0542

2 views
Skip to first unread message

Bram Moolenaar

unread,
Sep 22, 2022, 8:18:08 AM9/22/22
to vim...@googlegroups.com

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@
Reply all
Reply to author
Forward
0 new messages