diff options
Diffstat (limited to 'src/wasm/wasm-emscripten.cpp')
-rw-r--r-- | src/wasm/wasm-emscripten.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/wasm/wasm-emscripten.cpp b/src/wasm/wasm-emscripten.cpp index 1d58699ec..c2cace488 100644 --- a/src/wasm/wasm-emscripten.cpp +++ b/src/wasm/wasm-emscripten.cpp @@ -1225,7 +1225,11 @@ std::string EmscriptenGlueGenerator::generateEmscriptenMetadata( meta << "\n ],\n"; auto mainReadsParams = false; - if (auto* exp = wasm.getExportOrNull("main")) { + auto* exp = wasm.getExportOrNull("main"); + if (!exp) { + exp = wasm.getExportOrNull("__main_argc_argv"); + } + if (exp) { if (exp->kind == ExternalKind::Function) { auto* main = wasm.getFunction(exp->value); mainReadsParams = true; @@ -1268,6 +1272,18 @@ void EmscriptenGlueGenerator::separateDataSegments(Output* outfile, wasm.memory.segments.clear(); } +void EmscriptenGlueGenerator::renameMainArgcArgv() { + // If an export call ed __main_argc_argv exists rename it to main + Export* ex = wasm.getExportOrNull("__main_argc_argv"); + if (!ex) { + BYN_TRACE("renameMain: __main_argc_argv not found\n"); + return; + } + ex->name = "main"; + wasm.updateMaps(); + ModuleUtils::renameFunction(wasm, "__main_argc_argv", "main"); +} + void EmscriptenGlueGenerator::exportWasiStart() { // If main exists, export a function to call it per the wasi standard. Name main = "main"; |