fix(build): host postprocess silently no-ops when emsdk tools are stubbed
build-kicad-target.sh swaps emsdk's wasm-opt/wasm-emscripten-finalize for no-op stubs (real binaries preserved as *.real) so emcc skips in-link asyncify — intended for the CONTAINER emsdk, but a host-mode run left the host tools/emsdk stubbed (since Jun 9). The stub fakes --version and exits 0, so every local build's host-side finalize/asyncify/-O2 "succeeded" while doing nothing: output wasm shipped non-asyncified and aborts at boot with "asyncify_stop_unwind is not a function" (and stayed 122M vs the correct 187M). get-wasm-opt.sh and apply-finalize.sh now prefer the *.real binary whenever it exists, making the resolution immune to a stubbed emsdk. Found while validating the CI e2e fix: pcbnew.wasm built this morning could not boot in any browser. Local artifacts built since Jun 9 may need their postprocess re-run (apply-finalize.sh + apply-asyncify.sh). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
f37ddc454d
commit
380206dcfc
2 changed files with 15 additions and 0 deletions
|
|
@ -25,6 +25,15 @@ PROJECT_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
|
|||
# v130 (see docs/ci-build-slowness-findings.md). Validate any bump with the e2e
|
||||
# suite: a Binaryen/emsdk skew can corrupt asyncify metadata ("func is not a function").
|
||||
EMSDK_WASM_OPT="${PROJECT_ROOT}/tools/emsdk/upstream/bin/wasm-opt"
|
||||
# build-kicad-target.sh replaces emsdk's wasm-opt with a no-op stub (moving the
|
||||
# real binary to wasm-opt.real) so emcc skips the in-link asyncify. That's meant
|
||||
# for the container emsdk, but a host-mode run leaves the HOST emsdk stubbed —
|
||||
# and the stub fakes --version and exits 0, so the host-side asyncify/-O2
|
||||
# "succeed" while doing NOTHING (broken wasm: "asyncify_stop_unwind is not a
|
||||
# function"). Always prefer the preserved real binary when it exists.
|
||||
if [ -x "${EMSDK_WASM_OPT}.real" ]; then
|
||||
EMSDK_WASM_OPT="${EMSDK_WASM_OPT}.real"
|
||||
fi
|
||||
if [ -z "${BINARYEN_VERSION:-}" ] && [ -x "${EMSDK_WASM_OPT}" ]; then
|
||||
EMSDK_VERSION=$("${EMSDK_WASM_OPT}" --version 2>&1 || true)
|
||||
echo "Using emsdk-bundled Binaryen: ${EMSDK_VERSION}" >&2
|
||||
|
|
|
|||
Loading…
Reference in a new issue