diff options
author | Sam Clegg <sbc@chromium.org> | 2023-11-08 10:28:10 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-08 18:28:10 +0000 |
commit | 784960180eac208a34eb33415267d977034971df (patch) | |
tree | 6b88bd5bc62bd4d5af5405fd52161a3a3aae1405 /src/tools/wasm-emscripten-finalize.cpp | |
parent | 9627c8360d179c2cae168f8bca3bf1b7216c34a8 (diff) | |
download | binaryen-784960180eac208a34eb33415267d977034971df.tar.gz binaryen-784960180eac208a34eb33415267d977034971df.tar.bz2 binaryen-784960180eac208a34eb33415267d977034971df.zip |
Move --separate-data-segments into a pass so it can be run from wasm-opt (#6088)
Because we currently strip some data segments (i.e. EM_JS strings)
during `--post-emscripten` this is too late as `--separate-data-segments`
always runs in `wasm-emscripten-finalize`.
Once emscripten switches over to using the pass directly we can remove
the support from `wasm-emscripten-finalize`
Diffstat (limited to 'src/tools/wasm-emscripten-finalize.cpp')
-rw-r--r-- | src/tools/wasm-emscripten-finalize.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/tools/wasm-emscripten-finalize.cpp b/src/tools/wasm-emscripten-finalize.cpp index 0f63e8112..5ec4d245e 100644 --- a/src/tools/wasm-emscripten-finalize.cpp +++ b/src/tools/wasm-emscripten-finalize.cpp @@ -294,17 +294,16 @@ int main(int argc, const char* argv[]) { passRunner.add("strip-dwarf"); } - passRunner.run(); - // Finally, separate out data segments if relevant if (!dataSegmentFile.empty()) { - Output memInitFile(dataSegmentFile, Flags::Binary); - if (globalBase == INVALID_BASE) { - Fatal() << "globalBase must be set"; - } - generator.separateDataSegments(&memInitFile, globalBase); + passRunner.options.arguments["separate-data-segments"] = dataSegmentFile; + passRunner.options.arguments["separate-data-segments-global-base"] = + std::to_string(globalBase); + passRunner.add("separate-data-segments"); } + passRunner.run(); + BYN_TRACE_WITH_TYPE("emscripten-dump", "Module after:\n"); BYN_DEBUG_WITH_TYPE("emscripten-dump", std::cerr << wasm << '\n'); |