summaryrefslogtreecommitdiff
path: root/src/tools/wasm-emscripten-finalize.cpp
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2019-04-04 15:45:57 -0700
committerGitHub <noreply@github.com>2019-04-04 15:45:57 -0700
commit2129cef6acbbe4acd5fd675fbb00c329e2220a40 (patch)
treea92d18f24b4281d07b7695e87193335db557c019 /src/tools/wasm-emscripten-finalize.cpp
parentcac81ba0ec2e477f106632f0eb0e774a2e10d491 (diff)
downloadbinaryen-2129cef6acbbe4acd5fd675fbb00c329e2220a40.tar.gz
binaryen-2129cef6acbbe4acd5fd675fbb00c329e2220a40.tar.bz2
binaryen-2129cef6acbbe4acd5fd675fbb00c329e2220a40.zip
wasm-emscripten-finalize: add namedGlobals to output metadata (#1979)
This key is used by emscripten when building with MAIN_MODULE in order to export global variables from the main module to the side modules.
Diffstat (limited to 'src/tools/wasm-emscripten-finalize.cpp')
-rw-r--r--src/tools/wasm-emscripten-finalize.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/tools/wasm-emscripten-finalize.cpp b/src/tools/wasm-emscripten-finalize.cpp
index 180383a90..0ed0e0857 100644
--- a/src/tools/wasm-emscripten-finalize.cpp
+++ b/src/tools/wasm-emscripten-finalize.cpp
@@ -135,12 +135,6 @@ int main(int argc, const char *argv[]) {
WasmPrinter::printModule(&wasm, std::cerr);
}
- for (const UserSection& section : wasm.userSections) {
- if (section.name == BinaryConsts::UserSections::Dylink) {
- isSideModule = true;
- }
- }
-
uint32_t dataSize = 0;
if (!isSideModule) {
@@ -187,6 +181,11 @@ int main(int argc, const char *argv[]) {
generator.generateStackInitialization(initialStackPointer);
// For side modules these gets called via __post_instantiate
if (Function* F = generator.generateAssignGOTEntriesFunction()) {
+ auto* ex = new Export();
+ ex->value = F->name;
+ ex->name = F->name;
+ ex->kind = ExternalKind::Function;
+ wasm.addExport(ex);
initializerFunctions.push_back(F->name);
}
if (auto* e = wasm.getExportOrNull(WASM_CALL_CTORS)) {