Skip to content

Example fails to build, missing emcc.py #169

Open
@sfc-gh-aminyaylov

Description

@sfc-gh-aminyaylov

The wasm build rule expects emscripten binaries to be available in the sandbox directory external/emsdk/emscripten/emcc.py.

The build runs @proxy_wasm_cpp_sdk proxy_wasm_cpp_sdk_dependencies_extra(), which in turn runs @emsdk emscripten_deps(), which registers the emscripten archive, which should make emcc.py available in the expected sandbox directory.

However, since bazel uses lazy evaluation, and there is no rule directly using the emscripten_bin_linux archive, this filegroup is never instantiated. I'm not clear how this ever worked.

Simple repro from head:

$ git clone [email protected]:proxy-wasm/proxy-wasm-cpp-sdk.git
$ cd proxy-wasm-cpp-sdk
$ bazel build example:http_wasm_example.wasm
INFO: Analyzed target //example:http_wasm_example.wasm (25 packages loaded, 222 targets configured).
INFO: Found 1 target...
ERROR: /home/user/proxy-wasm-cpp-sdk/BUILD:32:11: Compiling proxy_wasm_intrinsics.cc failed: (Exit 2): emcc.sh failed: error executing command external/emsdk/emscripten_toolchain/emcc.sh '--sysroot=external/emsdk/emscripten/cache/sysroot' -fdiagnostics-color -fno-exceptions -fno-strict-aliasing -funsigned-char -no-canonical-prefixes ... (remaining 29 argument(s) skipped)

Use --sandbox_debug to see verbose messages from the sandbox
python3: can't open file '/home/user/.cache/bazel/_bazel_user/63d72b24569786f1ee6718e6de54cbab/sandbox/linux-sandbox/2/execroot/proxy_wasm_cpp_sdk/external/emsdk/emscripten/emcc.py': [Errno 2] No such file or directory
Target //example:http_wasm_example.wasm failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 4.933s, Critical Path: 0.05s
INFO: 11 processes: 11 internal.
FAILED: Build did NOT complete successfully

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions