summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Wirtz <dcode@dcode.io>2020-05-07 21:58:25 +0200
committerGitHub <noreply@github.com>2020-05-07 12:58:25 -0700
commitf23bf9a4cd45b7ed03805f217f6c4f645a513822 (patch)
tree90eac139217b610252faa914d293f6277be5d520
parenta489568e3641d2431eba94518add65fd928ab86d (diff)
downloadbinaryen-f23bf9a4cd45b7ed03805f217f6c4f645a513822.tar.gz
binaryen-f23bf9a4cd45b7ed03805f217f6c4f645a513822.tar.bz2
binaryen-f23bf9a4cd45b7ed03805f217f6c4f645a513822.zip
Mimic MODULARIZE_INSTANCE (#2838)
Turned out that the behavior of MODULARIZE_INSTANCE, which has been removed from Emscripten lately, cannot be easily reproduced using MODULARIZE. So, instead of modularizing and attempting to undo it, this just uses some good old wrapper code to achieve the same.
-rw-r--r--.github/workflows/ci.yml4
-rw-r--r--CMakeLists.txt6
-rw-r--r--src/js/binaryen.js-extern-post.js8
-rw-r--r--src/js/binaryen.js-extern-pre.js2
4 files changed, 16 insertions, 4 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 3613e841a..05d080be9 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -199,8 +199,8 @@ jobs:
mkdir $HOME/emsdk
git clone --depth 1 https://github.com/emscripten-core/emsdk.git $HOME/emsdk
$HOME/emsdk/emsdk update-tags
- $HOME/emsdk/emsdk install 1.39.14
- $HOME/emsdk/emsdk activate 1.39.14
+ $HOME/emsdk/emsdk install tot
+ $HOME/emsdk/emsdk activate tot
echo "::add-path::$HOME/emsdk"
- name: emcc-tests
run: |
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d5291c83b..dc2e74435 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -382,11 +382,12 @@ if(EMSCRIPTEN)
add_executable(binaryen_wasm
${binaryen_emscripten_SOURCES})
target_link_libraries(binaryen_wasm wasm asmjs emscripten-optimizer passes ir cfg support wasm)
- target_link_libraries(binaryen_wasm "-s MODULARIZE_INSTANCE=1")
target_link_libraries(binaryen_wasm "-s NO_FILESYSTEM=0")
target_link_libraries(binaryen_wasm "-s NODERAWFS=0")
target_link_libraries(binaryen_wasm "-s EXPORT_NAME=binaryen")
target_link_libraries(binaryen_wasm "--post-js ${CMAKE_CURRENT_SOURCE_DIR}/src/js/binaryen.js-post.js")
+ target_link_libraries(binaryen_wasm "--extern-pre-js ${CMAKE_CURRENT_SOURCE_DIR}/src/js/binaryen.js-extern-pre.js")
+ target_link_libraries(binaryen_wasm "--extern-post-js ${CMAKE_CURRENT_SOURCE_DIR}/src/js/binaryen.js-extern-post.js")
target_link_libraries(binaryen_wasm optimized "--closure 1")
target_link_libraries(binaryen_wasm optimized "--llvm-lto 1")
target_link_libraries(binaryen_wasm debug "--profiling")
@@ -404,11 +405,12 @@ if(EMSCRIPTEN)
# only valid with fastcomp and WASM=0
target_link_libraries(binaryen_js "-s ELIMINATE_DUPLICATE_FUNCTIONS=1")
endif()
- target_link_libraries(binaryen_js "-s MODULARIZE_INSTANCE=1")
target_link_libraries(binaryen_js "-s NO_FILESYSTEM=0")
target_link_libraries(binaryen_js "-s NODERAWFS=0")
target_link_libraries(binaryen_js "-s EXPORT_NAME=binaryen")
target_link_libraries(binaryen_js "--post-js ${CMAKE_CURRENT_SOURCE_DIR}/src/js/binaryen.js-post.js")
+ target_link_libraries(binaryen_js "--extern-pre-js ${CMAKE_CURRENT_SOURCE_DIR}/src/js/binaryen.js-extern-pre.js")
+ target_link_libraries(binaryen_js "--extern-post-js ${CMAKE_CURRENT_SOURCE_DIR}/src/js/binaryen.js-extern-post.js")
target_link_libraries(binaryen_js optimized "--closure 1")
target_link_libraries(binaryen_js optimized "--llvm-lto 1")
target_link_libraries(binaryen_js debug "--profiling")
diff --git a/src/js/binaryen.js-extern-post.js b/src/js/binaryen.js-extern-post.js
new file mode 100644
index 000000000..60d900fab
--- /dev/null
+++ b/src/js/binaryen.js-extern-post.js
@@ -0,0 +1,8 @@
+
+})();
+if (typeof exports === 'object' && typeof module === 'object')
+ module.exports = binaryen;
+else if (typeof define === 'function' && define['amd'])
+ define([], function() { return binaryen; });
+else if (typeof exports === 'object')
+ exports["binaryen"] = binaryen; \ No newline at end of file
diff --git a/src/js/binaryen.js-extern-pre.js b/src/js/binaryen.js-extern-pre.js
new file mode 100644
index 000000000..ded7d3296
--- /dev/null
+++ b/src/js/binaryen.js-extern-pre.js
@@ -0,0 +1,2 @@
+var binaryen = {};
+(function() { \ No newline at end of file