-
Notifications
You must be signed in to change notification settings - Fork 73
build: update v8 to 12.7.224.18 #409
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
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 <mpw@google.com>
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 <mpw@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
…clang-asan Signed-off-by: Michael Warres <mpw@google.com>
- 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 <mpw@google.com>
…63eaff2 This re-adds the use of _allowlist_function_transition, which is needed by Bazel 6.5.0. Signed-off-by: Michael Warres <mpw@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
…larations Signed-off-by: Michael Warres <mpw@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
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 <mpw@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
"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 <mpw@google.com>
The next compilation failure, v8-specific:
Looks like I need to cherrypick v8/v8@35888fe . |
…ess gcc build failure Signed-off-by: Michael Warres <mpw@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
On to the next gcc compilation error:
Seems gcc wants |
Signed-off-by: Michael Warres <mpw@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Ok, maybe
|
Signed-off-by: Michael Warres <mpw@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
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.