-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Description
I am building with TOT and I believe #22542 is causing a build failure for me:
building:ERROR: /var/folders/s1/hhcrhp756rdbjbgf81qqgd2000xtkc/T/emscripten_temp/skwasm_st.js.pgrow.jso4.js:768:2: ERROR - [JSC_UNDEFINED_VARIABLE] variable runtimeKeepaliveCounter is undeclared
I think the issue is that _emscripten_runtime_keepalive_clear in library.js is still attempting to use runtimeKeepaliveCounter but with the logic introduced in the linked PR, that variable is not part of the deps anymore in my build. We probably either need an explicit chain of deps for that function, or maybe an alternative version of this function that is just a no-op that doesn't use runtimeKeepaliveCounter at all.
I was able to workaround this issue by adding noExitRuntime to INCOMING_MODULE_JS_API
Version of emscripten/emsdk:
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.70-git (b53978e)
clang version 20.0.0git (https:/github.com/llvm/llvm-project 37832d5de2abb425c460375a4054478ce9f948fe)
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/bin
Build config: +assertions
Failing link command:
/Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/em++.py -s EXPORT_NAME=skwasm -std=c++20 -lGL -sUSE_WEBGL2=1 -sMAX_WEBGL_VERSION=2 -sOFFSCREENCANVAS_SUPPORT -sALLOW_MEMORY_GROWTH -sALLOW_TABLE_GROWTH -lexports.js -sEXPORTED_FUNCTIONS=[stackAlloc] -sEXPORTED_RUNTIME_METHODS=[addFunction,wasmExports,wasmMemory,stackAlloc] -sSHARED_MEMORY=1 -sINCOMING_MODULE_JS_API=[instantiateWasm] --js-library /Users/jacksongardner/Source/flutter/engine/src/flutter/lib/web_ui/skwasm/library_skwasm_support.js -sPTHREAD_POOL_SIZE=1 -Wno-pthreads-mem-growth --js-library /Users/jacksongardner/Source/flutter/engine/src/flutter/lib/web_ui/skwasm/library_skwasm_multi_threaded.js --closure=1 -Wl,--fatal-warnings -pthread -s WASM=1 -s FORCE_FILESYSTEM=0 -s FILESYSTEM=0 -s NO_EXIT_RUNTIME=1 -s STRICT=1 -s MODULARIZE=1 -s EXPORT_ES6 --emit-symbol-map -Oz -Wl,--gc-sections -flto -o skwasm/skwasm.js -Wl,--start-group @skwasm/skwasm.js.rsp -Wl,--end-group -ldl
Failing closure command:
building:ERROR: /var/folders/s1/hhcrhp756rdbjbgf81qqgd2000xtkc/T/emscripten_temp/skwasm_st.js.pgrow.jso4.js:768:2: ERROR - [JSC_UNDEFINED_VARIABLE] variable runtimeKeepaliveCounter is undeclared
768| runtimeKeepaliveCounter = 0;
^^^^^^^^^^^^^^^^^^^^^^^
1 error(s), 0 warning(s)
em++: error: closure compiler failed (rc: 1): /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/node/18.20.3_64bit/bin/node --max_old_space_size=8192 /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/node_modules/.bin/google-closure-compiler --compilation_level ADVANCED_OPTIMIZATIONS --language_in ECMASCRIPT_2021 --language_out NO_TRANSPILE --emit_use_strict=false --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/src/closure-externs/closure-externs.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/src/closure-externs/modularize-externs.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/src/closure-externs/node-externs.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/net.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/events.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/repl.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/util.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/dgram.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/vm.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/stream.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/child_process.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/core.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/os.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/readline.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/punycode.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/https.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/domain.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/dns.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/tty.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/querystring.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/path.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/string_decoder.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/cluster.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/zlib.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/url.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/tls.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/process.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/http.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/buffer.js --externs /Users/jacksongardner/Source/flutter/engine/src/flutter/prebuilts/emsdk/upstream/emscripten/third_party/closure-compiler/node-externs/fs.js --js /var/folders/s1/hhcrhp756rdbjbgf81qqgd2000xtkc/T/emscripten_temp/skwasm_st.js.pgrow.jso4.js --js_output_file tmph4r95wxb.cc.js the error message may be clearer with -g1 and EMCC_DEBUG=2 set