]> granicus.if.org Git - vim/commitdiff
patch 8.1.1119: no support for Windows on ARM64. v8.1.1119
authorBram Moolenaar <Bram@vim.org>
Thu, 4 Apr 2019 18:32:24 +0000 (20:32 +0200)
committerBram Moolenaar <Bram@vim.org>
Thu, 4 Apr 2019 18:32:24 +0000 (20:32 +0200)
Problem:    No support for Windows on ARM64.
Solution:   Add ARM64 support (Leendert van Doorn)

Filelist
src/GvimExt/Makefile
src/INSTALLpc.txt
src/Make_mvc.mak
src/dosinst.c
src/version.c
src/xpm/arm64/lib-vc14/libXpm.lib [new file with mode: 0644]

index 1e4fee9f082a619db4903cb76bbfb7bf5e720c97..84ebd255701bf7b74bc1228448ab4e9becaaa167 100644 (file)
--- a/Filelist
+++ b/Filelist
@@ -508,13 +508,14 @@ SRC_DOS_BIN =     \
                src/vim.tlb \
                src/xpm/COPYRIGHT \
                src/xpm/README.txt \
+               src/xpm/arm64/lib-vc14/libXpm.lib \
                src/xpm/include/*.h \
+               src/xpm/x64/lib-vc14/libXpm.lib \
                src/xpm/x64/lib/libXpm.a \
                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.lib \
-               src/xpm/x86/lib-vc14/libXpm.lib \
                nsis/icons.zip \
 
 # source files for Amiga, DOS, etc. (also in the extra archive)
index 27ff953e23579bb1e441582a05c6fefe16070126..a865989cf741c3f5c7249d1fc3f5205053e3627b 100644 (file)
@@ -25,6 +25,8 @@ PLATFORM = $(TARGET_CPU)
 !  ifdef PLATFORM
 !   if ("$(PLATFORM)" == "x64") || ("$(PLATFORM)" == "X64")
 CPU = AMD64
+!   elseif ("$(PLATFORM)" == "arm64") || ("$(PLATFORM)" == "ARM64")
+CPU = ARM64
 !   elseif ("$(PLATFORM)" != "x86") && ("$(PLATFORM)" != "X86")
 !    error *** ERROR Unknown target platform "$(PLATFORM)". Make aborted.
 !   endif
@@ -56,11 +58,17 @@ SUBSYSTEM = console
 SUBSYSTEM = $(SUBSYSTEM),$(SUBSYSTEM_VER)
 !endif
 
+!if "$(CPU)" == "ARM64"
+OFFSET = 0x11C000000
+!else
+OFFSET = 0x1C000000
+!endif
+
 all: gvimext.dll
 
 gvimext.dll:    gvimext.obj    \
                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
 
 gvimext.obj: gvimext.h
index 634f4ad71b825e64a3621c84199d19716cd0d995..4b2bd3df7ce9f9f2317fc0fd2ea18d6de2d274dc 100644 (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
 
 
+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
 
 The minimal supported version is Windows XP. Building with older compilers
index c502dec8bfecd6308994cc4c9def3af239499301..b6a1ac0d1c0d4166c90413d017205233afd57e3e 100644 (file)
@@ -240,6 +240,8 @@ PLATFORM = $(TARGET_CPU)
 !  ifdef PLATFORM
 !   if ("$(PLATFORM)" == "x64") || ("$(PLATFORM)" == "X64")
 CPU = AMD64
+!   elseif ("$(PLATFORM)" == "arm64") || ("$(PLATFORM)" == "ARM64")
+CPU = ARM64
 !   elseif ("$(PLATFORM)" != "x86") && ("$(PLATFORM)" != "X86")
 !    error *** ERROR Unknown target platform "$(PLATFORM)". Make aborted.
 !   endif
@@ -442,6 +444,8 @@ DIRECTX_OBJ = $(OUTDIR)\gui_dwrite.obj
 # on the architecture.
 !if "$(CPU)" == "AMD64"
 XPM = xpm\x64
+!elseif "$(CPU)" == "ARM64"
+XPM = xpm\arm64
 !elseif "$(CPU)" == "i386"
 XPM = xpm\x86
 !else
index 2c05cf4c2c42af19e58819cf1f181f22bf2ef3f9..ca74758e0ffcd97c43413399f4f8a80c4851b027 100644 (file)
@@ -1677,7 +1677,9 @@ install_registry(void)
 
     printf("Creating an uninstall entry\n");
     sprintf(display_name, "Vim " VIM_VERSION_SHORT
-#ifdef _WIN64
+#ifdef _M_ARM64
+           " (arm64)"
+#elif _M_X64
            " (x64)"
 #endif
            );
index 14512b82ef872e2fdca4167687435d1dea52b788..40d802a6004a2799b33f7007843f2ee00a5ee287 100644 (file)
@@ -771,6 +771,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1119,
 /**/
     1118,
 /**/
diff --git a/src/xpm/arm64/lib-vc14/libXpm.lib b/src/xpm/arm64/lib-vc14/libXpm.lib
new file mode 100644 (file)
index 0000000..7e3e244
Binary files /dev/null and b/src/xpm/arm64/lib-vc14/libXpm.lib differ