summaryrefslogtreecommitdiff
path: root/src/tools/s2wasm.cpp
diff options
context:
space:
mode:
authorMax Klein <max.kleinleibold@gmail.com>2017-04-12 22:15:31 +0200
committerDerek Schuff <dschuff@chromium.org>2017-04-12 13:15:31 -0700
commit5fb669ac8cca51baff8b3a6478d6fd3ef92a7c97 (patch)
tree1abeea3c8306c521eaa64fbada122052859b0bb6 /src/tools/s2wasm.cpp
parent0f3102d13617e70b598e7d82f12684d8fa01969b (diff)
downloadbinaryen-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.cpp8
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);