summaryrefslogtreecommitdiff
path: root/src/tools/wasm-emscripten-finalize.cpp
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2020-10-15 22:28:53 -0500
committerGitHub <noreply@github.com>2020-10-15 20:28:53 -0700
commit76d551d762d550f15cc1abd58a14fbb95a5bcfbf (patch)
tree14bab8e25eebd9861ac0573da37484eaf209274c /src/tools/wasm-emscripten-finalize.cpp
parentd0dae28c05dd9ef4da0d77fee42cf15cd1d94e3c (diff)
downloadbinaryen-76d551d762d550f15cc1abd58a14fbb95a5bcfbf.tar.gz
binaryen-76d551d762d550f15cc1abd58a14fbb95a5bcfbf.tar.bz2
binaryen-76d551d762d550f15cc1abd58a14fbb95a5bcfbf.zip
finalize: move more functionality behind legacyPIC (#3248)
Internalizing of the stack pointer is only needed in legacy PIC mode, since in the new PIC mode we support mutable globals. Also the additional ASSIGN_GOT_ENTRIES function only exists in support of the legacy mode.
Diffstat (limited to 'src/tools/wasm-emscripten-finalize.cpp')
-rw-r--r--src/tools/wasm-emscripten-finalize.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/tools/wasm-emscripten-finalize.cpp b/src/tools/wasm-emscripten-finalize.cpp
index e35c3ea7b..a2322a8f3 100644
--- a/src/tools/wasm-emscripten-finalize.cpp
+++ b/src/tools/wasm-emscripten-finalize.cpp
@@ -332,15 +332,17 @@ int main(int argc, const char* argv[]) {
generator.generatePostInstantiateFunction();
} else {
BYN_TRACE("finalizing as regular module\n");
- generator.internalizeStackPointerGlobal();
- // For side modules these gets called via __post_instantiate
- if (Function* F = wasm.getFunctionOrNull(ASSIGN_GOT_ENTRIES)) {
- auto* ex = new Export();
- ex->value = F->name;
- ex->name = F->name;
- ex->kind = ExternalKind::Function;
- wasm.addExport(ex);
- initializerFunctions.push_back(F->name);
+ if (legacyPIC) {
+ generator.internalizeStackPointerGlobal();
+ // For side modules these gets called via __post_instantiate
+ if (Function* F = wasm.getFunctionOrNull(ASSIGN_GOT_ENTRIES)) {
+ auto* ex = new Export();
+ ex->value = F->name;
+ ex->name = F->name;
+ ex->kind = ExternalKind::Function;
+ wasm.addExport(ex);
+ initializerFunctions.push_back(F->name);
+ }
}
// Costructors get called from crt1 in wasm standalone mode.
// Unless there is no entry point.