Save libsodium.js (#605)

* revert wasm/asmjs split build changes

* combined wasm + asm.js build

* minor cleanup
This commit is contained in:
Ryan Lester 2017-09-29 02:22:01 -04:00 committed by Frank Denis
parent 2c73b8e3b5
commit 170661671d
4 changed files with 29 additions and 136 deletions

View File

@ -9,7 +9,6 @@ EXTRA_DIST = \
android-x86.sh \ android-x86.sh \
android-x86_64.sh \ android-x86_64.sh \
emscripten.sh \ emscripten.sh \
emscripten-wasm.sh \
ios.sh \ ios.sh \
msys2-win32.sh \ msys2-win32.sh \
msys2-win64.sh \ msys2-win64.sh \

File diff suppressed because one or more lines are too long

View File

@ -6,7 +6,8 @@ export EXPORTED_FUNCTIONS_SUMO='["_crypto_aead_chacha20poly1305_abytes","_crypto
export TOTAL_MEMORY=16777216 export TOTAL_MEMORY=16777216
export TOTAL_MEMORY_SUMO=67108864 export TOTAL_MEMORY_SUMO=67108864
export LDFLAGS="-s RESERVED_FUNCTION_POINTERS=8" export LDFLAGS="-s RESERVED_FUNCTION_POINTERS=8"
export LDFLAGS="${LDFLAGS} -s NO_DYNAMIC_EXECUTION=1 -s RUNNING_JS_OPTS=1 -s ASSERTIONS=0" export LDFLAGS="${LDFLAGS} -s SINGLE_FILE=1"
export LDFLAGS="${LDFLAGS} -s NO_DYNAMIC_EXECUTION=1 -s ASSERTIONS=0"
export LDFLAGS="${LDFLAGS} -s AGGRESSIVE_VARIABLE_ELIMINATION=1 -s ALIASING_FUNCTION_POINTERS=1" export LDFLAGS="${LDFLAGS} -s AGGRESSIVE_VARIABLE_ELIMINATION=1 -s ALIASING_FUNCTION_POINTERS=1"
export LDFLAGS="${LDFLAGS} -s FUNCTION_POINTER_ALIGNMENT=1 -s DISABLE_EXCEPTION_CATCHING=1" export LDFLAGS="${LDFLAGS} -s FUNCTION_POINTER_ALIGNMENT=1 -s DISABLE_EXCEPTION_CATCHING=1"
export LDFLAGS="${LDFLAGS} -s ELIMINATE_DUPLICATE_FUNCTIONS=1" export LDFLAGS="${LDFLAGS} -s ELIMINATE_DUPLICATE_FUNCTIONS=1"
@ -62,9 +63,32 @@ emmake make clean
[ $? = 0 ] || exit 1 [ $? = 0 ] || exit 1
if [ "$DIST" = yes ]; then if [ "$DIST" = yes ]; then
emmake make $MAKE_FLAGS install && \ emccLibsodium () {
emcc "$CFLAGS" --llvm-lto 1 --memory-init-file 0 $CPPFLAGS $LDFLAGS $JS_EXPORTS_FLAGS \ outFile="${1}"
"${PREFIX}/lib/libsodium.a" -o "${PREFIX}/lib/libsodium.js" || exit 1 shift
emcc "$CFLAGS" --llvm-lto 1 $CPPFLAGS $LDFLAGS $JS_EXPORTS_FLAGS ${@} \
"${PREFIX}/lib/libsodium.a" -o "${outFile}" || exit 1
}
emmake make $MAKE_FLAGS install || exit 1
emccLibsodium "${PREFIX}/lib/libsodium.asm.tmp.js" -Oz -s RUNNING_JS_OPTS=1 -s NO_EXIT_RUNTIME=1
emccLibsodium "${PREFIX}/lib/libsodium.wasm.tmp.js" -O3 -s WASM=1
cat > "${PREFIX}/lib/libsodium.js" <<- EOM
if (typeof Module === 'undefined') {
var Module = {};
}
Module.ready = new Promise(function (resolve, reject) {
Module.onAbort = reject;
Module.onRuntimeInitialized = function () { resolve(); };
$(cat "${PREFIX}/lib/libsodium.wasm.tmp.js")
}).catch(function () {
Module.onAbort = undefined;
Module.onRuntimeInitialized = undefined;
$(cat "${PREFIX}/lib/libsodium.asm.tmp.js" | sed 's|use asm||g')
});
EOM
rm "${PREFIX}/lib/libsodium.asm.tmp.js" "${PREFIX}/lib/libsodium.wasm.tmp.js"
touch -r "${PREFIX}/lib/libsodium.js" "$DONE_FILE" touch -r "${PREFIX}/lib/libsodium.js" "$DONE_FILE"
ls -l "${PREFIX}/lib/libsodium.js" ls -l "${PREFIX}/lib/libsodium.js"
exit 0 exit 0

View File

@ -49,13 +49,9 @@ symbols() {
out=$(symbols standard) out=$(symbols standard)
sed s/EXPORTED_FUNCTIONS_STANDARD=\'.*\'/EXPORTED_FUNCTIONS_STANDARD=\'${out}\'/ < emscripten.sh > emscripten.sh.tmp && \ sed s/EXPORTED_FUNCTIONS_STANDARD=\'.*\'/EXPORTED_FUNCTIONS_STANDARD=\'${out}\'/ < emscripten.sh > emscripten.sh.tmp && \
mv -f emscripten.sh.tmp emscripten.sh mv -f emscripten.sh.tmp emscripten.sh
sed s/EXPORTED_FUNCTIONS_STANDARD=\'.*\'/EXPORTED_FUNCTIONS_STANDARD=\'${out}\'/ < emscripten-wasm.sh > emscripten-wasm.sh.tmp && \
mv -f emscripten-wasm.sh.tmp emscripten-wasm.sh
out=$(symbols sumo) out=$(symbols sumo)
sed s/EXPORTED_FUNCTIONS_SUMO=\'.*\'/EXPORTED_FUNCTIONS_SUMO=\'${out}\'/ < emscripten.sh > emscripten.sh.tmp && \ sed s/EXPORTED_FUNCTIONS_SUMO=\'.*\'/EXPORTED_FUNCTIONS_SUMO=\'${out}\'/ < emscripten.sh > emscripten.sh.tmp && \
mv -f emscripten.sh.tmp emscripten.sh mv -f emscripten.sh.tmp emscripten.sh
sed s/EXPORTED_FUNCTIONS_SUMO=\'.*\'/EXPORTED_FUNCTIONS_SUMO=\'${out}\'/ < emscripten-wasm.sh > emscripten-wasm.sh.tmp && \
mv -f emscripten-wasm.sh.tmp emscripten-wasm.sh
chmod +x emscripten.sh emscripten-wasm.sh chmod +x emscripten.sh