From 0f2b8695bce68d0ab30c720d88061579e73d1a96 Mon Sep 17 00:00:00 2001 From: Jookia Date: Sat, 4 Jul 2026 09:00:31 +1000 Subject: [PATCH] Require unicows for Rust9x on GNU targets --- .../spec/targets/i686_rust9x_windows_gnu.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/compiler/rustc_target/src/spec/targets/i686_rust9x_windows_gnu.rs b/compiler/rustc_target/src/spec/targets/i686_rust9x_windows_gnu.rs index bb8fab0572ee8..5f999c5e716a3 100644 --- a/compiler/rustc_target/src/spec/targets/i686_rust9x_windows_gnu.rs +++ b/compiler/rustc_target/src/spec/targets/i686_rust9x_windows_gnu.rs @@ -1,9 +1,26 @@ -use crate::spec::{Target, cvs}; +use crate::spec::{Target, cvs, TargetOptions, Lld, Cc, LinkerFlavor, add_link_args}; pub(crate) fn target() -> Target { let mut base = super::i686_pc_windows_gnu::target(); base.families = cvs!["windows", "rust9x"]; + let mingw_libs = &[ + "-lunicows", // Required for Unicode on Windows 9x + // The rest below are copied from the windows_gnu target + "-lmsvcrt", + "-lmingwex", + "-lmingw32", + "-lgcc", + "-lmsvcrt", + "-lmingwex", + "-luser32", + "-lkernel32", + ]; + let mut late_link_args = + TargetOptions::link_args(LinkerFlavor::Gnu(Cc::No, Lld::No), mingw_libs); + add_link_args(&mut late_link_args, LinkerFlavor::Gnu(Cc::Yes, Lld::No), mingw_libs); + base.late_link_args = late_link_args; + base.metadata = crate::spec::TargetMetadata { description: Some("64-bit GNU rust9x (Windows XP 64-bit+)".into()), tier: Some(4),