From 33baef7391f9d800e3819e44458ef08f11fa85a3 Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Mon, 11 May 2026 01:03:37 +0100 Subject: [PATCH 1/5] change CRT to ucrt --- Dockerfile | 8 ++++---- src/variant-x86.patch | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 85797be..ada549a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -257,7 +257,7 @@ RUN printf '#include \n#if __has_include_next()\n#include_n && /dl/mingw/mingw-w64-headers/configure \ --prefix=/bootstrap \ --host=$ARCH \ - --with-default-msvcrt=msvcrt-os \ + --with-default-msvcrt=ucrt \ && make -j$(nproc) \ && make install @@ -309,7 +309,7 @@ RUN /dl/mingw/mingw-w64-crt/configure \ --prefix=/bootstrap \ --with-sysroot=/bootstrap \ --host=$ARCH \ - --with-default-msvcrt=msvcrt-os \ + --with-default-msvcrt=ucrt \ --disable-dependency-tracking \ --disable-lib32 \ --enable-lib64 \ @@ -404,7 +404,7 @@ RUN /dl/mingw/mingw-w64-headers/configure \ --prefix=$PREFIX \ --host=$ARCH \ --enable-idl \ - --with-default-msvcrt=msvcrt-os \ + --with-default-msvcrt=ucrt \ && make -j$(nproc) \ && make install @@ -413,7 +413,7 @@ RUN /dl/mingw/mingw-w64-crt/configure \ --prefix=$PREFIX \ --with-sysroot=$PREFIX \ --host=$ARCH \ - --with-default-msvcrt=msvcrt-os \ + --with-default-msvcrt=ucrt \ --disable-dependency-tracking \ --disable-lib32 \ --enable-lib64 \ diff --git a/src/variant-x86.patch b/src/variant-x86.patch index fa3cbd8..cb6e700 100644 --- a/src/variant-x86.patch +++ b/src/variant-x86.patch @@ -6,7 +6,7 @@ +ARG ARCH=i686-w64-mingw32 ENV ARCH=$ARCH @@ -260,2 +260,3 @@ - --with-default-msvcrt=msvcrt-os \ + --with-default-msvcrt=ucrt \ + --with-default-win32-winnt=0x0501 \ && make -j$(nproc) \ @@ -272,2 +273,3 @@ @@ -21,7 +21,7 @@ + --disable-lib64 \ CFLAGS="-O2" \ @@ -399,2 +401,3 @@ - --with-default-msvcrt=msvcrt-os \ + --with-default-msvcrt=ucrt \ + --with-default-win32-winnt=0x0501 \ && make -j$(nproc) \ @@ -409,4 +412,4 @@ From cca8093ded4fac886240ab5874ed15ed8b1edfb8 Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Mon, 11 May 2026 01:05:18 +0100 Subject: [PATCH 2/5] Remove default win32 winnt hunks from x86 variant UCRT doesn't work on windows XP anyway, unless you static link it. Only MSVC is capable of this. --- src/variant-x86.patch | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/variant-x86.patch b/src/variant-x86.patch index cb6e700..4e1e877 100644 --- a/src/variant-x86.patch +++ b/src/variant-x86.patch @@ -5,9 +5,6 @@ -ARG ARCH=x86_64-w64-mingw32 +ARG ARCH=i686-w64-mingw32 ENV ARCH=$ARCH -@@ -260,2 +260,3 @@ - --with-default-msvcrt=ucrt \ -+ --with-default-win32-winnt=0x0501 \ && make -j$(nproc) \ @@ -272,2 +273,3 @@ --with-sysroot=/bootstrap \ @@ -20,10 +17,6 @@ + --enable-lib32 \ + --disable-lib64 \ CFLAGS="-O2" \ -@@ -399,2 +401,3 @@ - --with-default-msvcrt=ucrt \ -+ --with-default-win32-winnt=0x0501 \ - && make -j$(nproc) \ @@ -409,4 +412,4 @@ --disable-dependency-tracking \ - --disable-lib32 \ From ea27572725dd5d62c9790680905b1f0f46cfb8ee Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Sun, 17 May 2026 18:59:26 -0400 Subject: [PATCH 3/5] Fix build by disabling xpm --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ada549a..687dcb9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -664,7 +664,7 @@ RUN cat $PREFIX/src/vim-*.patch | patch -p1 \ && ARCH= make -C src -j$(nproc) -f Make_ming.mak CC="$ARCH-gcc -std=gnu17" \ OPTIMIZE=SPEED STATIC_STDCPLUS=yes HAS_GCC_EH=no \ UNDER_CYGWIN=yes CROSS=yes CROSS_COMPILE=$ARCH- \ - FEATURES=HUGE VIMDLL=yes NETBEANS=no WINVER=0x0501 \ + FEATURES=HUGE VIMDLL=yes NETBEANS=no XPM=no WINVER=0x0501 \ && $ARCH-strip src/vimrun.exe \ && rm -rf runtime/tutor/tutor.* \ && mkdir -p /out/bin /out/share \ From f25c0d8018020318d8563e3eb5d6f28ba9aa6494 Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Sun, 17 May 2026 23:43:24 -0400 Subject: [PATCH 4/5] Attempt x86 build fix --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4985062..ee412cd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,6 +40,7 @@ jobs: uses: docker/build-push-action@v7 with: context: . + file: ./Dockerfile tags: w64devkit:${{ env.ARCH }} load: true cache-from: type=gha,scope=w64devkit-${{ env.ARCH }} @@ -50,6 +51,7 @@ jobs: uses: docker/build-push-action@v7 with: context: . + file: ./Dockerfile target: source tags: w64devkit:source load: true @@ -112,6 +114,7 @@ jobs: uses: docker/build-push-action@v7 with: context: . + file: ./Dockerfile tags: w64devkit:${{ env.ARCH }} load: true cache-from: type=gha,scope=w64devkit-${{ env.ARCH }} @@ -159,6 +162,7 @@ jobs: uses: docker/build-push-action@v7 with: context: . + file: ./Dockerfile target: signed tags: w64devkit:x64-signed load: true @@ -182,6 +186,7 @@ jobs: uses: docker/build-push-action@v7 with: context: . + file: ./Dockerfile target: signed tags: w64devkit:x86-signed load: true From db463cb67749a73f3903f12ac98b3f7fda915bc1 Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Mon, 18 May 2026 08:23:59 -0400 Subject: [PATCH 5/5] regenerate patch --- src/variant-x86.patch | 63 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 11 deletions(-) diff --git a/src/variant-x86.patch b/src/variant-x86.patch index 4e1e877..ec17236 100644 --- a/src/variant-x86.patch +++ b/src/variant-x86.patch @@ -1,53 +1,94 @@ +diff --git a/Dockerfile b/Dockerfile +index 687dcb956..7d55956cf 100644 --- a/Dockerfile +++ b/Dockerfile -@@ -229,3 +229,3 @@ +@@ -227,7 +227,7 @@ RUN curl --insecure --location --remote-name-all --remote-header-name \ + # Build cross-compiler + FROM dl-cross AS cross -ARG ARCH=x86_64-w64-mingw32 +ARG ARCH=i686-w64-mingw32 ENV ARCH=$ARCH - && make -j$(nproc) \ -@@ -272,2 +273,3 @@ + + WORKDIR /dl/binutils +@@ -240,6 +240,7 @@ WORKDIR /x-binutils + RUN /dl/binutils/configure \ + --prefix=/bootstrap \ --with-sysroot=/bootstrap \ + --with-arch=pentium4 \ --target=$ARCH \ -@@ -313,4 +315,4 @@ + --disable-nls \ + --with-static-standard-libraries \ +@@ -311,8 +312,8 @@ RUN /dl/mingw/mingw-w64-crt/configure \ + --host=$ARCH \ + --with-default-msvcrt=ucrt \ --disable-dependency-tracking \ - --disable-lib32 \ - --enable-lib64 \ + --enable-lib32 \ + --disable-lib64 \ CFLAGS="-O2" \ -@@ -409,4 +412,4 @@ + LDFLAGS="-s" \ + && make -j$(nproc) \ +@@ -415,8 +416,8 @@ RUN /dl/mingw/mingw-w64-crt/configure \ + --host=$ARCH \ + --with-default-msvcrt=ucrt \ --disable-dependency-tracking \ - --disable-lib32 \ - --enable-lib64 \ + --enable-lib32 \ + --disable-lib64 \ CFLAGS="-O2" \ -@@ -437,2 +440,3 @@ + LDFLAGS="-s" \ + && make -j$(nproc) \ +@@ -443,6 +444,7 @@ RUN echo 'BEGIN {print "pecoff"}' \ + --prefix=$PREFIX \ + --with-sysroot=$PREFIX \ --with-native-system-header-dir=/include \ + --with-arch=pentium4 \ --target=$ARCH \ -@@ -456,2 +460,3 @@ + --host=$ARCH \ + --enable-static \ +@@ -462,6 +464,7 @@ RUN echo 'BEGIN {print "pecoff"}' \ + --disable-multilib \ + --disable-nls \ --disable-win32-registry \ + --disable-win32-utf8-manifest \ --enable-mingw-wildcard \ -@@ -605,3 +610,3 @@ + CFLAGS_FOR_TARGET="-O2" \ + CXXFLAGS_FOR_TARGET="-O2" \ +@@ -611,7 +614,7 @@ COPY --from=dl-busybox /dl/ /dl/ + WORKDIR /dl/busybox + COPY src/busybox-* $PREFIX/src/ RUN cat $PREFIX/src/busybox-*.patch | patch -p1 \ - && make mingw64u_defconfig \ + && make mingw32w_defconfig \ && sed -ri 's/^(CONFIG_AR)=y/\1=n/' .config \ -@@ -699,3 +704,3 @@ + && sed -ri 's/^(CONFIG_ASCII)=y/\1=n/' .config \ + && sed -ri -e 's/^(CONFIG_BASH_IS_ASH)=y/\1=n/' \ +@@ -706,7 +709,7 @@ RUN make -j$(nproc) CC=$ARCH-gcc AR=$ARCH-ar CFLAGS="-O2" libzstd.a \ + + WORKDIR /dl/zstd RUN make -j$(nproc) -C programs zstd \ - CC=$ARCH-gcc CFLAGS="-O2" LDFLAGS="-s" EXT=.exe \ + CC=$ARCH-gcc CFLAGS="-O2" LDFLAGS="-s" EXT=.exe HAVE_THREAD=0 \ && mkdir -p /out/bin \ -@@ -798,2 +803,3 @@ + && cp programs/zstd.exe /out/bin/ \ + && $ARCH-gcc -DEXE=zstd.exe -DCMD=unzstd \ +@@ -805,6 +808,7 @@ RUN cat $PREFIX/src/cmake-*.patch | patch -d/dl/cmake -p1 \ + -DCMAKE_CXX_COMPILER=$ARCH-g++ \ + -DCMAKE_RC_COMPILER=$ARCH-windres \ -DCMAKE_EXE_LINKER_FLAGS="-s" \ + -DCMAKE_CXX_FLAGS="-O2 -D_WIN32_WINNT=0x0601" \ -DCMAKE_INSTALL_PREFIX=$PREFIX \ -@@ -840,3 +846,3 @@ + -DBUILD_CursesDialog=ON \ + -DCURSES_LIBRARY=/deps/lib/libcurses.a \ +@@ -864,7 +868,7 @@ RUN sed -i 's/\r$//' Source/build.cpp \ + && cat $PREFIX/src/nsis-*.patch | patch -p1 \ + && scons -j$(nproc) \ XGCC_W32_PREFIX=$ARCH- \ - TARGET_ARCH=amd64 \ + TARGET_ARCH=x86 \ PREFIX=$PREFIX \ + PREFIX_BIN=$PREFIX/share/nsis/bin \ + PREFIX_DATA=$PREFIX/share/nsis \