diff --git a/MODULE.bazel b/MODULE.bazel index 8163c0b018..3ac8e502fe 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -82,6 +82,7 @@ rules_rust = use_extension("@rules_rs//rs/experimental:rules_rust.bzl", "rules_r rules_rust.patch( patches = [ "//patches:rules_rust_windows_gnullvm_build_script.patch", + "//patches:rules_rust_windows_nightly_gnu.patch", ], strip = 1, ) diff --git a/patches/rules_rust_windows_nightly_gnu.patch b/patches/rules_rust_windows_nightly_gnu.patch new file mode 100644 index 0000000000..97bd540353 --- /dev/null +++ b/patches/rules_rust_windows_nightly_gnu.patch @@ -0,0 +1,20 @@ +# What: make the default rules_rust Windows nightly toolchain use GNU, not MSVC. +# Why: codex's Bazel Windows platform is based on llvm-mingw/gnullvm, and the +# nightly rustc-dev artifacts that power argument-comment-lint do not exist for +# gnullvm. Using the default MSVC nightly toolchain on that platform mixes MSVC +# Rust libraries with GNU/clang linker flags and breaks tool targets such as +# `process_wrapper`. + +diff --git a/rust/repositories.bzl b/rust/repositories.bzl +--- a/rust/repositories.bzl ++++ b/rust/repositories.bzl +@@ -48,8 +48,8 @@ DEFAULT_TOOLCHAIN_TRIPLES = { + "aarch64-unknown-linux-gnu": "rust_linux_aarch64", + "powerpc64le-unknown-linux-gnu": "rust_linux_powerpc64le", + "s390x-unknown-linux-gnu": "rust_linux_s390x", + "x86_64-apple-darwin": "rust_macos_x86_64", +- "x86_64-pc-windows-msvc": "rust_windows_x86_64", ++ "x86_64-pc-windows-gnu": "rust_windows_x86_64", + "x86_64-unknown-freebsd": "rust_freebsd_x86_64", + "x86_64-unknown-linux-gnu": "rust_linux_x86_64", + }