Skip to content

Tracking issue for i686 msvc CI issues with latest Windows 2022 runner image 20250224.5.0+ #137733

Closed
@jieyouxu

Description

@jieyouxu

This is a tracking issue for CI compilation errors related to missing SSE2 types encountered when trying to use latest Windows 2022 runner image 20250224.5.0+ on the i686-msvc-{1,2} and dist-i686-msvc jobs. Key difference for the image version is the Windows 11 SDK version bump from 10.0.22621.0 -> 10.0.26100.0 that modified UCRT headers (see below).

Context

Zulip thread: https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/spurious.20.28.3F.29.20i686.20msvc.20errors.

cc <= 1.2.15 emits /arch:IA32 for clang-cl on x86 arch Windows targets, which in conjunction with GitHub Runner Image versions Windows 2022 20250224.5.0+ seems to cause a bunch of failures related to compilation errors failing to using SSE2 types without enabling SSE2 via /arch:SSE2. msvc seems to silently accept this1 and happily emit SSE2 instruments but clang-cl will error.

As Fulgen pointed out (thanks!) on the zulip thread:

The UCRT headers are, which is where they differ (10.0.22621.0/ucrt/wchar.h doesn't have the vectorization, 10.0.26100.0/ucrt/wchar.h does)

Current mitigation attempts

Work needed to unblock using latest Windows 2022 runner image 20250224.5.0+ again

Warning

These steps are advisory and likely incomplete, we may find that we need to transitively bump cc versions in more deps.

Footnotes

  1. https://developercommunity.visualstudio.com/t/wcharh-from-SDK-100261000-cannot-be/10860122

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-CIArea: Our Github Actions CIC-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCO-windows-msvcToolchain: MSVC, Operating system: WindowsO-x86_32Target: x86 processors, 32 bit (like i686-*) (IA-32)T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-cargoRelevant to the cargo team, which will review and decide on the PR/issue.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-infraRelevant to the infrastructure team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions