diff options
Diffstat (limited to 'lld/wasm/Writer.cpp')
-rw-r--r-- | lld/wasm/Writer.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lld/wasm/Writer.cpp b/lld/wasm/Writer.cpp index 4cefe3a473e..05bb4c78786 100644 --- a/lld/wasm/Writer.cpp +++ b/lld/wasm/Writer.cpp @@ -659,9 +659,12 @@ void Writer::calculateExports() { } for (const Symbol *Sym : DefinedGlobals) { - // Can't export the SP right now because it's mutable and mutable globals - // cannot be exported. - if (Sym == Config->StackPointerSymbol) + // Can't export the SP right now because its mutable, and mutuable globals + // are yet supported in the official binary format. However, for + // intermediate output we need to export it in case it is the target of any + // relocations. + // TODO(sbc): Remove this if/when the "mutable global" proposal is accepted. + if (Sym == Config->StackPointerSymbol && !Config->EmitRelocs) continue; ExportedSymbols.emplace_back(WasmExportEntry{Sym, BudgeLocalName(Sym)}); } |