From e6b1ca474ed7590a268af65194ff799b65b0ce64 Mon Sep 17 00:00:00 2001 From: Mikhail Krinkin Date: Mon, 30 Sep 2024 23:41:25 +0100 Subject: [PATCH] Update emsdk version to 3.1.67 in Bazel configuration This CL mostly follows the instructions in https://github.com/emscripten-core/emsdk/blob/main/bazel/README.md. Even so, there are a few things that are worth mentioning: 1. I tested the changes locally and in my tests incompatible_enable_cc_toolchain_resolution bazel flag made no difference (e.g. everything builds with or without the flag); I still keep it though because instructions say that it should be there and it does not cause any harm. 2. I don't think that we still need to patch emsdk to exclude npm modules from the toolchain, because it appears that upstream already removed those as a toolchain dependency in https://github.com/emscripten-core/emsdk/pull/1045. It's worth noting, that even though I don't think that emsdk patch is still needed, I actually wasn't able to reproduce the problem reported in https://github.com/proxy-wasm/proxy-wasm-cpp-sdk/issues/149 locally without the emsdk.patch even with the current version of emsdk used by C++ SDK. Signed-off-by: Mikhail Krinkin --- .bazelrc | 9 +++++++ bazel/dependencies_extra.bzl | 2 ++ bazel/emsdk.patch | 48 ------------------------------------ bazel/repositories.bzl | 9 +++---- 4 files changed, 14 insertions(+), 54 deletions(-) create mode 100644 .bazelrc delete mode 100644 bazel/emsdk.patch diff --git a/.bazelrc b/.bazelrc new file mode 100644 index 0000000..233563e --- /dev/null +++ b/.bazelrc @@ -0,0 +1,9 @@ +# NOTE: incompatible_enable_cc_toolchain_resolution is set by default on Bazel +# versions 7.0+, see https://github.com/bazelbuild/bazel/issues/7260. +# +# emsdk documentation asks to set this flag (see +# https://github.com/emscripten-core/emsdk/blob/main/bazel/README.md). And even +# though things seem to work even without this flag, given that this flag +# enables improved Bazel C++ toolchain resolution method that became the +# default in newer Bazel version and does not cause problems, we keep it. +build --incompatible_enable_cc_toolchain_resolution diff --git a/bazel/dependencies_extra.bzl b/bazel/dependencies_extra.bzl index 7bfa2e4..48622e3 100644 --- a/bazel/dependencies_extra.bzl +++ b/bazel/dependencies_extra.bzl @@ -13,7 +13,9 @@ # limitations under the License. load("@emsdk//:emscripten_deps.bzl", "emscripten_deps") +load("@emsdk//:toolchains.bzl", "register_emscripten_toolchains") # Requires proxy_wasm_cpp_sdk_dependencies() to be loaded first. def proxy_wasm_cpp_sdk_dependencies_extra(): emscripten_deps() + register_emscripten_toolchains() diff --git a/bazel/emsdk.patch b/bazel/emsdk.patch deleted file mode 100644 index 21ee899..0000000 --- a/bazel/emsdk.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff --git a/bazel/emscripten_deps.bzl b/bazel/emscripten_deps.bzl -index 95801ba..95fdabd 100644 ---- a/bazel/emscripten_deps.bzl -+++ b/bazel/emscripten_deps.bzl -@@ -69,31 +69,3 @@ def emscripten_deps(emscripten_version = "latest"): - build_file = "@emsdk//emscripten_toolchain:emscripten.BUILD", - type = "zip", - ) -- -- if "emscripten_npm_linux" not in excludes: -- npm_install( -- name = "emscripten_npm_linux", -- package_json = "@emscripten_bin_linux//:emscripten/package.json", -- package_lock_json = "@emscripten_bin_linux//:emscripten/package-lock.json", -- ) -- -- if "emscripten_npm_mac" not in excludes: -- npm_install( -- name = "emscripten_npm_mac", -- package_json = "@emscripten_bin_mac//:emscripten/package.json", -- package_lock_json = "@emscripten_bin_mac//:emscripten/package-lock.json", -- ) -- -- if "emscripten_npm_mac_arm64" not in excludes: -- npm_install( -- name = "emscripten_npm_mac", -- package_json = "@emscripten_bin_mac_arm64//:emscripten/package.json", -- package_lock_json = "@emscripten_bin_mac_arm64//:emscripten/package-lock.json", -- ) -- -- if "emscripten_npm_win" not in excludes: -- npm_install( -- name = "emscripten_npm_win", -- package_json = "@emscripten_bin_win//:emscripten/package.json", -- package_lock_json = "@emscripten_bin_win//:emscripten/package-lock.json", -- ) -diff --git a/bazel/emscripten_toolchain/BUILD.bazel b/bazel/emscripten_toolchain/BUILD.bazel -index eb36959..12dba37 100644 ---- a/bazel/emscripten_toolchain/BUILD.bazel -+++ b/bazel/emscripten_toolchain/BUILD.bazel -@@ -13,7 +13,6 @@ filegroup( - "env.sh", - "env.bat", - "@emsdk//:binaries", -- "@emsdk//:node_modules", - "@nodejs//:node_files", - ], - ) diff --git a/bazel/repositories.bzl b/bazel/repositories.bzl index 59ec24b..7ca6517 100644 --- a/bazel/repositories.bzl +++ b/bazel/repositories.bzl @@ -19,12 +19,9 @@ def proxy_wasm_cpp_sdk_repositories(): maybe( http_archive, name = "emsdk", - sha256 = "1ca0ff918d476c55707bb99bc0452be28ac5fb8f22a9260a8aae8a38d1bc0e27", - # v3.1.7 with Bazel fixes - strip_prefix = "emsdk-0ea8f8a8707070e9a7c83fbb4a3065683bcf1799/bazel", - url = "https://github.com/emscripten-core/emsdk/archive/0ea8f8a8707070e9a7c83fbb4a3065683bcf1799.tar.gz", - patches = ["@proxy_wasm_cpp_sdk//bazel:emsdk.patch"], - patch_args = ["-p2"], + sha256 = "0cb0eabd6e3ceb1a970a2363e67f2b1689c2d83fbeae1e75901213c1f84de2e2", + strip_prefix = "emsdk-3.1.67/bazel", + url = "https://github.com/emscripten-core/emsdk/archive/refs/tags/3.1.67.tar.gz", ) maybe(