後端工坊 2026 年 10 月 3 日

2026-10-03 — Rust 1.100 起 i686 Windows 目標降為 std-only

primary=https://blog.rust-lang.org/2026/10/02/demoting-i686-windows-targets-to-std-only/ primary=https://github.com/rust-lang/rfcs/pull/3999

Rust 1.100 起 i686 Windows 目標降為 std-only,不再提供 host 工具鏈

Rust Blog(Mateusz Mikuła、Ralf Jung,代表 Compiler team)· 2026-10-02

Rust 把 i686-pc-windows-msvc(Tier 1)與 i686-pc-windows-gnu(Tier 2)從「含 host tools」降為「不含 host tools」,32 位元 Windows 上將無法再安裝 Rust 工具鏈。生效版本是 Rust 1.100.0,標準函式庫仍會繼續發布。

msvc 目標的降級案是 RFC 3999,依該頁面記載已於 2026 年 9 月 1 日合併;gnu 目標則走 MCP 1020。

原本的問題

在此之前,這兩個目標除了能「編出 32 位元 Windows 程式」,還要在 32 位元 Windows 主機上提供 rustc、cargo 等 host tools 的預建版本。維護這件事的成本落在 CI 上:官方說明 i686 Windows 工具鏈的建置「已證實有問題」,包括編譯器當機與記憶體不足(OOM)。

RFC 3999 另外點出具體症狀:dist-i686-msvc 這個 CI job 會在 lint-docs 階段卡住(issue #158378)。同時使用量極低:rustc host 工具鏈下載量為 432k,x86_64-pc-windows-msvc 則是 34.33M。官方也提到純 32 位元 x86 桌面與伺服器 CPU 已停售超過 15 年,且一般 32 位元 Windows 支援在 2025 年 10 月結束。

核心改動

變動只影響「在哪裡跑編譯器」,不影響「編出什麼」。目標本身的 tier 等級不變,只是拿掉 host tools:

目標目前1.100.0 之後
i686-pc-windows-msvcTier 1,含 host toolsTier 1,不含 host tools
i686-pc-windows-gnuTier 2,含 host toolsTier 2,不含 host tools

RFC 討論過完全降到 Tier 2,但保留 Tier 1 的標準函式庫,可讓跨編譯的使用者維持原有保證,同時省下最難維護的工具鏈建置。

影響範圍

最直接受影響的是仍在 32 位元 Windows 主機上直接跑 rustup 或 cargo build 的人,例如舊式工業電腦、嵌入式現場機台,以及用 32 位元 Windows VM 當建置機的 CI。1.100.0 之後,這些環境拿不到新的工具鏈。

只是「產出」32 位元 Windows 執行檔的專案則不必改產物,但要調整建置位置。官方建議的做法是從仍受支援的主機(例如 64 位元 Windows 工具鏈)進行跨編譯:

# 在 64 位元 Windows 主機上
rustup target add i686-pc-windows-msvc
cargo build --target i686-pc-windows-msvc

你需要檢查的具體項目有三個:CI 設定中是否有 32 位元 Windows runner、是否把 host triple 寫死為 i686-pc-windows-*(例如 rust-toolchain.toml 或 rustup default),以及測試是否需要在 32 位元環境實際執行。最後一項可在 64 位元 Windows 上執行 32 位元程式來覆蓋,blog 與 RFC 未說明更細的驗證方式。

另外,舊版本不受影響:此變動從 1.100.0 起生效,在那之前發布的 32 位元 Windows 工具鏈,blog 未說明是否會被撤下。

原始來源:Rust Blog、RFC 3999


End of article
0
Would love your thoughts, please comment.x
()
x