From: Andrey A. Voropaev Date: Thu, 26 Dec 2024 14:55:24 +0000 (+0100) Subject: patch 9.1.0964: MS-Windows: sed error with MinGW X-Git-Tag: v9.1.0964^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=157397edffbc5c375ce54e5e26ee0cabd30a8c73;p=thirdparty%2Fvim.git patch 9.1.0964: MS-Windows: sed error with MinGW Problem: MS-Windows: sed error with MinGW Solution: use double quotes for sed, update compilation notes (Andrey A Voropaev) closes: #16304 Signed-off-by: Andrey A. Voropaev Signed-off-by: Christian Brabandt --- diff --git a/src/INSTALLpc.txt b/src/INSTALLpc.txt index 9c52e9f46e..5854b10c5a 100644 --- a/src/INSTALLpc.txt +++ b/src/INSTALLpc.txt @@ -1,4 +1,4 @@ -INSTALLpc.txt - Installation of Vim on PC +INSTALLpc.txt - Installation of Vim on PC - Last Update: 2024 Dec 26 This file contains instructions for compiling Vim. If you already have an executable version of Vim, you don't need this. @@ -256,6 +256,8 @@ Select one of the following icon from the Start Menu: * MSYS2 MinGW 32-bit (To build 32-bit versions of Vim) * MSYS2 MinGW 64-bit (To build 64-bit versions of Vim) +Before building look through notes for MinGW in part 3 below. + Go to the source directory of Vim, then execute the make command. E.g.: make -f Make_ming.mak @@ -320,6 +322,18 @@ The original 'mingw32' compiler is outdated, and may no longer work: http://www.mingw.org/ +Please note, newer versions of Windows (I believe starting with Win10) +offer support for UCRT C-library in addition to traditional MSVCRT. As result, +one may find 2 flavors of MinGW: one compiling against UCRT and another compiling +against MSVCRT. Currently VIM comes with libXpm.a compiled against MSVCRT, +so an attempt to build VIM against UCRT will fail with: + + undefined reference to __imp___iob_func + +In which case, if one does not need support for XPM, then argument XPM=no can be +added to make-command. If support is needed, then another flavor of MinGW must +be used. + Once you have downloaded the compiler binaries, unpack them on your hard disk somewhere, and put them on your PATH. Go to the Control Panel, (Performance and Maintenance), System, Advanced, and edit the environment from there. If @@ -349,11 +363,18 @@ Change directory to 'vim\src': and you type: - mingw32-make -f Make_ming.mak gvim.exe + mingw32-make -f Make_ming.mak ARCH=x86-64 gvim.exe + +Note, ARCH is necessary if you don't have the sed command in your $PATH. Just +make sure that the correct value is used with ARCH. In the example above the +value corresponds to 64-bit architecture. For 32-bit the value is x86. After churning for a while, you will end up with 'gvim.exe' in the 'vim\src' directory. +If you also want to get xxd.exe, install.exe etc. then just remove "gvim.exe" +from the make-command. + You should not need to do *any* editing of any files to get vim compiled this way. If, for some reason, you want the console-mode-only version of vim (this is NOT recommended on Win32, especially on '95/'98!!!), you can use: @@ -671,12 +692,12 @@ When building, you need to set the following variables: E.g. When using MSVC (as one line): nmake -f Make_mvc.mak - PERL=C:\Perl DYNAMIC_PERL=yes PERL_VER=522 + PERL=C:\StrawberryPerl\perl DYNAMIC_PERL=yes PERL_VER=522 Or when using MinGW (as one line): mingw32-make -f Make_ming.mak - PERL=C:/Perl DYNAMIC_PERL=yes PERL_VER=522 + PERL=C:/StrawberryPerl/perl DYNAMIC_PERL=yes PERL_VER=522 11. Building with Ruby support diff --git a/src/Make_cyg_ming.mak b/src/Make_cyg_ming.mak index 8aeba67cd9..cd84b85a5a 100644 --- a/src/Make_cyg_ming.mak +++ b/src/Make_cyg_ming.mak @@ -239,7 +239,7 @@ endif # Get the default ARCH. ifndef ARCH -ARCH := $(shell $(CC) -dumpmachine | sed -e 's/-.*//' -e 's/_/-/' -e 's/^mingw32$$/i686/') +ARCH := $(shell $(CC) -dumpmachine | sed -e "s/-.*//" -e "s/_/-/" -e "s/^mingw32$$/i686/") endif diff --git a/src/version.c b/src/version.c index 3a049140c5..e1e0e36bc3 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 964, /**/ 963, /**/