-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build: update v8 to 12.7.224.18 #409
base: main
Are you sure you want to change the base?
Conversation
Looks like I need to add a patch to v8's bazel/defs.bzl to do this. IIUC this requirement is no longer present in the most recent version of Bazel, but maybe that's not used yet in our CI. |
They removed it quite recently (in V8 v12.4, see: v8/v8@b26554e), so you should be able to simply revert that commit. |
Thanks for the pointer; updated patch to revert that commit. Let's see how this fares in CI. |
Looks like it needs abseil. |
Clang builds on Linux with engine=v8 actually succeed for me locally now, even though they fail in CI. One difference is that CI is using llvm-14 whereas my local build is using llvm-16. Unfortunately, changing to use -std=c++20 (which v8 now requires as of v8/v8@f06f6d1) breaks compilation with gcc. And building with -std=c++17 plus a patch to v8 that reverts v8/v8@f06f6d1 still encounters other build issues. |
It would be possible to update our runners to use clang 16 instead of clang 14 by explicitly installing it in the runner as described in actions/runner-images#8659 (comment). In fact, workerd, which also builds v8 with Bazel, does this. However, Envoy still builds with clang-14 (CI documentation), so I think we would be setting the Envoy build up for problems if we depend on a different version of Clang. I'm back to trying to build with clang-14 + -std=c++17 for other Wasm runtimes, and -std=c++20 for v8 (as added) by their build rules), but am currently running into actions/runner-images#8659. The recommended fix for that issue is to use a newer version of clang, which as mentioned above isn't a great option here. So I am trying to see if I can kludge around it with yet another patch. |
Signed-off-by: Michael Warres <[email protected]>
My comment above was incorrect. actions/runner-images#8659 was fixed in actions/runner-images#9679; the build errors I was seeing were due to my local build environment. So there is now a choice WRT C++ standard versions. proxy-wasm-cpp-host currently builds with A. Continue to build proxy-wasm-cpp-host with C++17, letting v8 build rules add C++20 for v8 targets. This will require B. Continue to build proxy-wasm-cpp-host with C++17, and patch v8 to revert v8/v8@f06f6d1 which added the C++20 requirement. C. Switch to C++20 and resolve the build errors it currently raises (see failed CI for #411). I'm inclined to go with (C) since it matches both Envoy and v8 build settings more closely. I will pursue that further in #411 and stack this PR on top of that. |
Signed-off-by: Michael Warres <[email protected]>
Signed-off-by: Michael Warres <[email protected]>
Signed-off-by: Michael Warres <[email protected]>
Signed-off-by: Michael Warres <[email protected]>
Signed-off-by: Michael Warres <[email protected]>
…clang-asan Signed-off-by: Michael Warres <[email protected]>
- Update v8.patch - Remove v8_include.patch which is no longer needed - Remove dependency on chromium_base_trace_event_common Signed-off-by: Michael Warres <[email protected]>
…63eaff2 This re-adds the use of _allowlist_function_transition, which is needed by Bazel 6.5.0. Signed-off-by: Michael Warres <[email protected]>
Signed-off-by: Michael Warres <[email protected]>
Signed-off-by: Michael Warres <[email protected]>
Signed-off-by: Michael Warres <[email protected]>
Signed-off-by: Michael Warres <[email protected]>
…larations Signed-off-by: Michael Warres <[email protected]>
Signed-off-by: Michael Warres <[email protected]>
f6ff0df
to
42d7ee7
Compare
Rebased on top of #411 |
This isn't strictly necessary in this PR for CI to pass, however I encountered a need for it in child PR proxy-wasm#409, and seemed more appropriate to add here. Signed-off-by: Michael Warres <[email protected]>
Signed-off-by: Michael Warres <[email protected]>
"Linux/x86_64 with GCC" failure:
This looks to be the same issue as envoyproxy/envoy#21674 and https://crbug.com/42204065 . Since I don't want to change the version of gcc being used, looks like I need to add |
Signed-off-by: Michael Warres <[email protected]>
The next compilation failure, v8-specific:
Looks like I need to cherrypick v8/v8@35888fe . |
…ess gcc build failure Signed-off-by: Michael Warres <[email protected]>
Signed-off-by: Michael Warres <[email protected]>
On to the next gcc compilation error:
Seems gcc wants |
Signed-off-by: Michael Warres <[email protected]>
Signed-off-by: Michael Warres <[email protected]>
Signed-off-by: Michael Warres <[email protected]>
Ok, maybe
|
Signed-off-by: Michael Warres <[email protected]>
Signed-off-by: Michael Warres <[email protected]>
build:gcc --cxxopt -Wno-invalid-offsetof --host_cxxopt -Wno-invalid-offsetof | ||
build:gcc --cxxopt -Wno-deprecated --host_cxxopt -Wno-deprecated |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As a general rule, those V8 workarounds should be:
- added to
v8.patch
as patches against V8'sbazel/defs.bzl
, - upstreamed to V8, so we don't need to maintain those local workarounds forever.
Especially, because those cxxopts
won't be propagated to dependent projects (i.e. Envoy).
flags: --config=clang-asan-strict --define=crypto=system | ||
flags: --config=clang-asan --define=crypto=system |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the reason for that?
This PR is stacked on top of #411.