diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2025-04-30 13:02:45 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2025-05-02 16:25:00 +0300 |
| commit | 842858f7650cae36d1b7194e4c758f42b2ca700c (patch) | |
| tree | 5b5336b15ddde4293a08837dad04300c2773bc51 /compiler/rustc_codegen_ssa/src/back | |
| parent | db074a06fe6649f9455dff8ad3eddd60683036f3 (diff) | |
linker: Quote symbol names in .def files
To support weird symbol names, including dots in particular.
Diffstat (limited to 'compiler/rustc_codegen_ssa/src/back')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/back/linker.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/linker.rs b/compiler/rustc_codegen_ssa/src/back/linker.rs index a09eec5dd74..e1f903726fb 100644 --- a/compiler/rustc_codegen_ssa/src/back/linker.rs +++ b/compiler/rustc_codegen_ssa/src/back/linker.rs @@ -816,7 +816,9 @@ impl<'a> Linker for GccLinker<'a> { writeln!(f, "EXPORTS")?; for symbol in symbols { debug!(" _{symbol}"); - writeln!(f, " {symbol}")?; + // Quote the name in case it's reserved by linker in some way + // (this accounts for names with dots in particular). + writeln!(f, " \"{symbol}\"")?; } }; if let Err(error) = res { |
