From 65f46349072b602fa12a5eb9196bad2d3808da0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Miku=C5=82a?= Date: Fri, 17 Jul 2026 13:31:18 +0200 Subject: [PATCH] Cross-compile i686-pc-windows-gnu std from x86_64 --- src/ci/github-actions/jobs.yml | 12 ++++++------ src/ci/scripts/install-mingw.sh | 13 ++++++++++++- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/ci/github-actions/jobs.yml b/src/ci/github-actions/jobs.yml index ce84df0d6d9bb..387d0b77f1af5 100644 --- a/src/ci/github-actions/jobs.yml +++ b/src/ci/github-actions/jobs.yml @@ -821,14 +821,14 @@ auto: - name: dist-i686-mingw env: - # Disable RISCV target because building it OOMs. RUST_CONFIGURE_ARGS: >- - --build=i686-pc-windows-gnu - --enable-full-tools - --set llvm.targets=AArch64;AMDGPU;ARM;BPF;Hexagon;LoongArch;MSP430;Mips;NVPTX;PowerPC;Sparc;SystemZ;WebAssembly;X86 + --build=x86_64-pc-windows-gnu + --host= + --target=i686-pc-windows-gnu + --disable-docs + --set target.i686-pc-windows-gnu.linker=i686-w64-mingw32-gcc SCRIPT: python x.py dist bootstrap --include-default-paths - DIST_REQUIRE_ALL_TOOLS: 1 - CODEGEN_BACKENDS: llvm,cranelift + CODEGEN_BACKENDS: llvm <<: *job-windows - name: dist-x86_64-mingw diff --git a/src/ci/scripts/install-mingw.sh b/src/ci/scripts/install-mingw.sh index 470ef4ffea433..bb5ad40fd04c6 100755 --- a/src/ci/scripts/install-mingw.sh +++ b/src/ci/scripts/install-mingw.sh @@ -12,7 +12,17 @@ LLVM_MINGW_ARCHIVE_AARCH64="llvm-mingw-20251104-ucrt-aarch64.zip" LLVM_MINGW_ARCHIVE_X86_64="llvm-mingw-20251104-ucrt-x86_64.zip" if isWindows && isKnownToBeMingwBuild; then - case "${CI_JOB_NAME}" in + toolchains= + # i686-pc-windows-gnu is cross-compiled from x86_64-pc-windows-gnu, so we need + # the both toolchains + if [[ "${CI_JOB_NAME}" == *i686-mingw* ]]; then + toolchains=("${CI_JOB_NAME}" "x86_64-mingw") + else + toolchains=("${CI_JOB_NAME}") + fi + + for toolchain in "${toolchains[@]}"; do + case "${toolchain}" in *aarch64-llvm*) mingw_dir="clangarm64" mingw_archive="${LLVM_MINGW_ARCHIVE_AARCH64}" @@ -81,4 +91,5 @@ if isWindows && isKnownToBeMingwBuild; then # (see https://github.com/actions/runner-images/issues/12600) /c/msys64/usr/bin/bash -lc ' ' fi + done fi