diff options
author | Sam Clegg <sbc@chromium.org> | 2021-01-11 10:09:32 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-11 10:09:32 -0800 |
commit | d512d48196abbc997f1d2e30407accc66e375d19 (patch) | |
tree | 5cebde12b9534de1c9b8b3ed3b59b52fa3cd97c3 /src | |
parent | ed2095427e6b6962730fa323eba5f9cff51bdac7 (diff) | |
download | binaryen-d512d48196abbc997f1d2e30407accc66e375d19.tar.gz binaryen-d512d48196abbc997f1d2e30407accc66e375d19.tar.bz2 binaryen-d512d48196abbc997f1d2e30407accc66e375d19.zip |
finalize: remove initializers from metadata output (#3479)
See https://github.com/emscripten-core/emscripten/pull/13208
Diffstat (limited to 'src')
-rw-r--r-- | src/tools/wasm-emscripten-finalize.cpp | 14 | ||||
-rw-r--r-- | src/wasm-emscripten.h | 2 | ||||
-rw-r--r-- | src/wasm/wasm-emscripten.cpp | 9 |
3 files changed, 3 insertions, 22 deletions
diff --git a/src/tools/wasm-emscripten-finalize.cpp b/src/tools/wasm-emscripten-finalize.cpp index 71f3cf443..fc55a8d83 100644 --- a/src/tools/wasm-emscripten-finalize.cpp +++ b/src/tools/wasm-emscripten-finalize.cpp @@ -230,8 +230,6 @@ int main(int argc, const char* argv[]) { generator.onlyI64DynCalls = onlyI64DynCalls; generator.noDynCalls = noDynCalls; - Name initializerFunction; - if (!standaloneWasm) { // This is also not needed in standalone mode since standalone mode uses // crt1.c to invoke the main and is aware of __main_argc_argv mangling. @@ -286,21 +284,11 @@ int main(int argc, const char* argv[]) { if (auto* e = wasm.getExportOrNull(WASM_CALL_CTORS)) { e->name = "__post_instantiate"; } - } else { - BYN_TRACE("finalizing as regular module\n"); - // Costructors get called from crt1 in wasm standalone mode. - // Unless there is no entry point. - if (!standaloneWasm || !wasm.getExportOrNull("_start")) { - if (auto* e = wasm.getExportOrNull(WASM_CALL_CTORS)) { - initializerFunction = e->name; - } - } } BYN_TRACE("generated metadata\n"); // Substantial changes to the wasm are done, enough to create the metadata. - std::string metadata = - generator.generateEmscriptenMetadata(initializerFunction); + std::string metadata = generator.generateEmscriptenMetadata(); // Finally, separate out data segments if relevant (they may have been needed // for metadata). diff --git a/src/wasm-emscripten.h b/src/wasm-emscripten.h index 31038aaa9..3c9cb07c5 100644 --- a/src/wasm-emscripten.h +++ b/src/wasm-emscripten.h @@ -33,7 +33,7 @@ public: : wasm(wasm), builder(wasm), stackPointerOffset(stackPointerOffset), useStackPointerGlobal(stackPointerOffset == 0) {} - std::string generateEmscriptenMetadata(Name initializer); + std::string generateEmscriptenMetadata(); void fixInvokeFunctionNames(); diff --git a/src/wasm/wasm-emscripten.cpp b/src/wasm/wasm-emscripten.cpp index 69e0618b1..2e3a5cf23 100644 --- a/src/wasm/wasm-emscripten.cpp +++ b/src/wasm/wasm-emscripten.cpp @@ -434,8 +434,7 @@ void printSignatures(std::ostream& o, const std::set<Signature>& c) { o << "]"; } -std::string -EmscriptenGlueGenerator::generateEmscriptenMetadata(Name initializer) { +std::string EmscriptenGlueGenerator::generateEmscriptenMetadata() { bool commaFirst; auto nextElement = [&commaFirst]() { if (commaFirst) { @@ -482,12 +481,6 @@ EmscriptenGlueGenerator::generateEmscriptenMetadata(Name initializer) { meta << " \"tableSize\": " << wasm.table.initial.addr << ",\n"; - if (initializer.is()) { - meta << " \"initializers\": ["; - meta << "\n \"" << initializer.c_str() << "\""; - meta << "\n ],\n"; - } - // Avoid adding duplicate imports to `declares' or `invokeFuncs`. Even // though we might import the same function multiple times (i.e. with // different sigs) we only need to list is in the metadata once. |