0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.1.1119: no support for Windows on ARM64.

Problem:    No support for Windows on ARM64.
Solution:   Add ARM64 support (Leendert van Doorn)
This commit is contained in:
Bram Moolenaar
2019-04-04 20:32:24 +02:00
parent 652de23dc7
commit 577fadfc10
7 changed files with 30 additions and 4 deletions

View File

@@ -508,13 +508,14 @@ SRC_DOS_BIN = \
src/vim.tlb \ src/vim.tlb \
src/xpm/COPYRIGHT \ src/xpm/COPYRIGHT \
src/xpm/README.txt \ src/xpm/README.txt \
src/xpm/arm64/lib-vc14/libXpm.lib \
src/xpm/include/*.h \ src/xpm/include/*.h \
src/xpm/x64/lib-vc14/libXpm.lib \
src/xpm/x64/lib/libXpm.a \ src/xpm/x64/lib/libXpm.a \
src/xpm/x64/lib/libXpm.lib \ src/xpm/x64/lib/libXpm.lib \
src/xpm/x64/lib-vc14/libXpm.lib \ src/xpm/x86/lib-vc14/libXpm.lib \
src/xpm/x86/lib/libXpm.a \ src/xpm/x86/lib/libXpm.a \
src/xpm/x86/lib/libXpm.lib \ src/xpm/x86/lib/libXpm.lib \
src/xpm/x86/lib-vc14/libXpm.lib \
nsis/icons.zip \ nsis/icons.zip \
# source files for Amiga, DOS, etc. (also in the extra archive) # source files for Amiga, DOS, etc. (also in the extra archive)

View File

@@ -25,6 +25,8 @@ PLATFORM = $(TARGET_CPU)
! ifdef PLATFORM ! ifdef PLATFORM
! if ("$(PLATFORM)" == "x64") || ("$(PLATFORM)" == "X64") ! if ("$(PLATFORM)" == "x64") || ("$(PLATFORM)" == "X64")
CPU = AMD64 CPU = AMD64
! elseif ("$(PLATFORM)" == "arm64") || ("$(PLATFORM)" == "ARM64")
CPU = ARM64
! elseif ("$(PLATFORM)" != "x86") && ("$(PLATFORM)" != "X86") ! elseif ("$(PLATFORM)" != "x86") && ("$(PLATFORM)" != "X86")
! error *** ERROR Unknown target platform "$(PLATFORM)". Make aborted. ! error *** ERROR Unknown target platform "$(PLATFORM)". Make aborted.
! endif ! endif
@@ -56,11 +58,17 @@ SUBSYSTEM = console
SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER) SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER)
!endif !endif
!if "$(CPU)" == "ARM64"
OFFSET = 0x11C000000
!else
OFFSET = 0x1C000000
!endif
all: gvimext.dll all: gvimext.dll
gvimext.dll: gvimext.obj \ gvimext.dll: gvimext.obj \
gvimext.res gvimext.res
$(link) $(lflags) -dll -def:gvimext.def -base:0x1C000000 -out:$*.dll $** $(olelibsdll) shell32.lib comctl32.lib -subsystem:$(SUBSYSTEM) $(link) $(lflags) -dll -def:gvimext.def -base:$(OFFSET) -out:$*.dll $** $(olelibsdll) shell32.lib comctl32.lib -subsystem:$(SUBSYSTEM)
if exist $*.dll.manifest mt -nologo -manifest $*.dll.manifest -outputresource:$*.dll;2 if exist $*.dll.manifest mt -nologo -manifest $*.dll.manifest -outputresource:$*.dll;2
gvimext.obj: gvimext.h gvimext.obj: gvimext.h

View File

@@ -174,6 +174,15 @@ 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
Cross compile support for Windows on ARM64
------------------------------------------
This depends on VS2017 with the optional ARM64 compiler and SDK
installed. Use "vcvarsall.bat x64_arm64" as the build environment.
The ARM64 support was provided by Leendert van Doorn.
OLDER VERSIONS OLDER VERSIONS
The minimal supported version is Windows XP. Building with older compilers The minimal supported version is Windows XP. Building with older compilers

View File

@@ -240,6 +240,8 @@ PLATFORM = $(TARGET_CPU)
! ifdef PLATFORM ! ifdef PLATFORM
! if ("$(PLATFORM)" == "x64") || ("$(PLATFORM)" == "X64") ! if ("$(PLATFORM)" == "x64") || ("$(PLATFORM)" == "X64")
CPU = AMD64 CPU = AMD64
! elseif ("$(PLATFORM)" == "arm64") || ("$(PLATFORM)" == "ARM64")
CPU = ARM64
! elseif ("$(PLATFORM)" != "x86") && ("$(PLATFORM)" != "X86") ! elseif ("$(PLATFORM)" != "x86") && ("$(PLATFORM)" != "X86")
! error *** ERROR Unknown target platform "$(PLATFORM)". Make aborted. ! error *** ERROR Unknown target platform "$(PLATFORM)". Make aborted.
! endif ! endif
@@ -442,6 +444,8 @@ DIRECTX_OBJ = $(OUTDIR)\gui_dwrite.obj
# on the architecture. # on the architecture.
!if "$(CPU)" == "AMD64" !if "$(CPU)" == "AMD64"
XPM = xpm\x64 XPM = xpm\x64
!elseif "$(CPU)" == "ARM64"
XPM = xpm\arm64
!elseif "$(CPU)" == "i386" !elseif "$(CPU)" == "i386"
XPM = xpm\x86 XPM = xpm\x86
!else !else

View File

@@ -1677,7 +1677,9 @@ install_registry(void)
printf("Creating an uninstall entry\n"); printf("Creating an uninstall entry\n");
sprintf(display_name, "Vim " VIM_VERSION_SHORT sprintf(display_name, "Vim " VIM_VERSION_SHORT
#ifdef _WIN64 #ifdef _M_ARM64
" (arm64)"
#elif _M_X64
" (x64)" " (x64)"
#endif #endif
); );

View File

@@ -771,6 +771,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 */
/**/
1119,
/**/ /**/
1118, 1118,
/**/ /**/

Binary file not shown.