diff options
author | Max Klein <max.kleinleibold@gmail.com> | 2017-04-12 22:15:31 +0200 |
---|---|---|
committer | Derek Schuff <dschuff@chromium.org> | 2017-04-12 13:15:31 -0700 |
commit | 5fb669ac8cca51baff8b3a6478d6fd3ef92a7c97 (patch) | |
tree | 1abeea3c8306c521eaa64fbada122052859b0bb6 /src/tools/s2wasm.cpp | |
parent | 0f3102d13617e70b598e7d82f12684d8fa01969b (diff) | |
download | binaryen-5fb669ac8cca51baff8b3a6478d6fd3ef92a7c97.tar.gz binaryen-5fb669ac8cca51baff8b3a6478d6fd3ef92a7c97.tar.bz2 binaryen-5fb669ac8cca51baff8b3a6478d6fd3ef92a7c97.zip |
s2wasm: Add command line option for importing memory (#963)
This option allows to import the linear memory from JS code instead of exporting it.
--emscripten-glue does this too but often the emscripten glue isn't needed, so this option only affects the memory.
All the code necessary for importing the memory basically already exists, so nothing except for the command line option itself had to be added.
Diffstat (limited to 'src/tools/s2wasm.cpp')
-rw-r--r-- | src/tools/s2wasm.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/tools/s2wasm.cpp b/src/tools/s2wasm.cpp index ef5d276d3..890d74bb4 100644 --- a/src/tools/s2wasm.cpp +++ b/src/tools/s2wasm.cpp @@ -34,6 +34,7 @@ int main(int argc, const char *argv[]) { bool ignoreUnknownSymbols = false; bool generateEmscriptenGlue = false; bool allowMemoryGrowth = false; + bool importMemory = false; std::string startFunction; std::vector<std::string> archiveLibraries; Options options("s2wasm", "Link .s file into .wast"); @@ -85,6 +86,11 @@ int main(int argc, const char *argv[]) { [&generateEmscriptenGlue](Options *, const std::string &) { generateEmscriptenGlue = true; }) + .add("--import-memory", "", "Import the linear memory instead of exporting it", + Options::Arguments::Zero, + [&importMemory](Options *, const std::string &) { + importMemory = true; + }) .add("--library", "-l", "Add archive library", Options::Arguments::N, [&archiveLibraries](Options *o, const std::string &argument) { @@ -132,7 +138,7 @@ int main(int argc, const char *argv[]) { if (options.debug) std::cerr << "Global base " << globalBase << '\n'; Linker linker(globalBase, stackAllocation, initialMem, maxMem, - generateEmscriptenGlue, ignoreUnknownSymbols, startFunction, + importMemory || generateEmscriptenGlue, ignoreUnknownSymbols, startFunction, options.debug); S2WasmBuilder mainbuilder(input.c_str(), options.debug); |