diff options
author | Sam Clegg <sbc@chromium.org> | 2020-10-15 22:28:53 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-15 20:28:53 -0700 |
commit | 76d551d762d550f15cc1abd58a14fbb95a5bcfbf (patch) | |
tree | 14bab8e25eebd9861ac0573da37484eaf209274c /src/tools/wasm-emscripten-finalize.cpp | |
parent | d0dae28c05dd9ef4da0d77fee42cf15cd1d94e3c (diff) | |
download | binaryen-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.cpp | 20 |
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. |