From 59fa4067da50fee8d4aa92dc5b71fe0ddf31ded6 Mon Sep 17 00:00:00 2001 From: Ladi Prosek Date: Mon, 3 Nov 2025 10:16:29 +0100 Subject: [PATCH] Make extract_bundled_libs() aware of full paths --- compiler/rustc_codegen_ssa/src/back/archive.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/compiler/rustc_codegen_ssa/src/back/archive.rs b/compiler/rustc_codegen_ssa/src/back/archive.rs index cfd8ceac3a604..e6c8ada51b0ba 100644 --- a/compiler/rustc_codegen_ssa/src/back/archive.rs +++ b/compiler/rustc_codegen_ssa/src/back/archive.rs @@ -169,6 +169,12 @@ pub trait ArchiveBuilderBuilder { .map_err(|e| ExtractBundledLibsError::ArchiveMember { rlib, error: Box::new(e) })?; let name = std::str::from_utf8(entry.name()) .map_err(|e| ExtractBundledLibsError::ConvertName { rlib, error: Box::new(e) })?; + // PATCH: link.exe stores archive members with their full paths. Extract only the file name. + let name = if let Some(file_name) = Path::new(name).file_name() { + file_name.to_str().unwrap_or(name) + } else { + name + }; if !bundled_lib_file_names.contains(&Symbol::intern(name)) { continue; // We need to extract only native libraries. }