Skip to content

Commit

Permalink
Fix emscripten linker invocation
Browse files Browse the repository at this point in the history
  • Loading branch information
bjorn3 committed Jun 3, 2022
1 parent 606848a commit 5cc3593
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 13 deletions.
1 change: 1 addition & 0 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3686,6 +3686,7 @@ dependencies = [
"rustc_span",
"rustc_symbol_mangling",
"rustc_target",
"serde_json",
"smallvec",
"snap",
"tempfile",
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_codegen_ssa/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ jobserver = "0.1.22"
tempfile = "3.2"
thorin-dwp = "0.2"
pathdiff = "0.2.0"
serde_json = "1.0.59"
snap = "1"
smallvec = { version = "1.6.1", features = ["union", "may_dangle"] }
regex = "1.4"
Expand Down
19 changes: 6 additions & 13 deletions compiler/rustc_codegen_ssa/src/back/linker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1146,24 +1146,17 @@ impl<'a> Linker for EmLinker<'a> {
}

fn export_symbols(&mut self, _tmpdir: &Path, _crate_type: CrateType, symbols: &[String]) {
use std::fmt::Write;

debug!("EXPORTED SYMBOLS:");

let mut encoded = "[".to_string();
let mut symbols = symbols.iter();
if let Some(first_symbol) = symbols.next() {
write!(encoded, "{:?}", first_symbol).unwrap();
}
for symbol in symbols {
write!(encoded, ",{:?}", symbol).unwrap();
}
encoded.push(']');
debug!("{}", encoded);

self.cmd.arg("-s");

let mut arg = OsString::from("EXPORTED_FUNCTIONS=");
let encoded = serde_json::to_string(
&symbols.iter().map(|sym| "_".to_owned() + sym).collect::<Vec<_>>(),
)
.unwrap();
debug!("{}", encoded);

arg.push(encoded);

self.cmd.arg(arg);
Expand Down

0 comments on commit 5cc3593

Please sign in to comment.