summary refs log tree commit diff
path: root/compiler/rustc_codegen_ssa/src
diff options
context:
space:
mode:
authorGary Guo <gary@garyguo.net>2022-04-24 13:13:41 +0100
committerGary Guo <gary@garyguo.net>2022-04-24 13:13:41 +0100
commit9ebeb284b588c0549dca2169227cabb7417825be (patch)
treee9d386cde4bb9436878acf82f8c18fcb05ede5dc /compiler/rustc_codegen_ssa/src
parent8693227e5e3c7cf76e4a8f5f04cb572cff083627 (diff)
downloadrust-9ebeb284b588c0549dca2169227cabb7417825be.tar.gz
rust-9ebeb284b588c0549dca2169227cabb7417825be.zip
Fix MSVC hang issue
Diffstat (limited to 'compiler/rustc_codegen_ssa/src')
-rw-r--r--compiler/rustc_codegen_ssa/src/back/link.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs
index 45ae5ffc513..2dc3f4e8f3a 100644
--- a/compiler/rustc_codegen_ssa/src/back/link.rs
+++ b/compiler/rustc_codegen_ssa/src/back/link.rs
@@ -1691,6 +1691,12 @@ fn add_linked_symbol_object(
         return;
     };
 
+    // NOTE(nbdd0121): MSVC will hang if the input object file contains no sections,
+    // so add an empty section.
+    if file.format() == object::BinaryFormat::Coff {
+        file.add_section(Vec::new(), ".text".into(), object::SectionKind::Text);
+    }
+
     for (sym, kind) in symbols.iter() {
         file.add_symbol(object::write::Symbol {
             name: sym.clone().into(),