Skip to content

deps: update V8 to 11.5 - #48456

Closed
targos wants to merge 14 commits into
nodejs:mainfrom
targos:v8-115
Closed

deps: update V8 to 11.5#48456
targos wants to merge 14 commits into
nodejs:mainfrom
targos:v8-115

Conversation

@targos

Copy link
Copy Markdown
Member

Based on #48029 with two additional commits.

  • deps: update V8 to 11.5.150.8
  • build: reset embedder string to "-node.0"
  • src: update NODE_MODULE_VERSION to 118
  • deps: always define V8_EXPORT_PRIVATE as no-op
  • deps: silence irrelevant V8 warning
  • deps: patch V8 to support compilation on win-arm64
  • deps: disable V8 concurrent sparkplug compilation
  • tools: update V8 gypfiles for 11.4
  • tools: add new V8 headers to distribution
  • lib: update usage of always on Atomics API
  • test: adapt debugger tests to V8 11.4
  • test: update flag to disable SharedArrayBuffer
  • tools: update V8 gypfiles for 11.5
  • test: adapt test-fs-write to V8 internal changes

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/gyp
  • @nodejs/v8-update

@nodejs-github-botnodejs-github-bot added build Issues and PRs related to build files or the CI. needs-ci PRs that need a full CI run. v8 engine Issues and PRs related to the V8 dependency. labels Jun 14, 2023
@targostargos mentioned this pull request Jun 14, 2023
@nodejs-github-bot

nodejs-github-bot commented Jun 14, 2023

Copy link
Copy Markdown
Collaborator

@targos

Copy link
Copy Markdown
MemberAuthor

@StefanStojanovic I've kept 63589e5. Can you point me to the V8 CL that would make it obsolete?

@nodejsnodejs deleted a comment from nodejs-github-botJun 14, 2023
@nodejsnodejs deleted a comment from nodejs-github-botJun 14, 2023
@nodejsnodejs deleted a comment from nodejs-github-botJun 14, 2023
@StefanStojanovic

Copy link
Copy Markdown
Contributor

@StefanStojanovic I've kept 63589e5. Can you point me to the V8 CL that would make it obsolete?

My third CL landed 5 days ago. That should be the last one needed. In case you need the other CLs, this is the second one that landed a month ago, and the first one that landed 2 months ago

@targos

Copy link
Copy Markdown
MemberAuthor

Thanks, I updated the PR to cherry-pick that last commit instead of the floating patch.

@targos

targos commented Jun 14, 2023

Copy link
Copy Markdown
MemberAuthor

Failure in shared lib build:

12:29:30 /home/iojs/build/workspace/node-test-commit-linux-containered/out/Release/obj.target/v8_zlib/deps/v8/third_party/zlib/cpu_features.o:(.bss.x86_cpu_enable_avx512+0x0): multiple definition of `x86_cpu_enable_avx512'
12:29:30 /home/iojs/build/workspace/node-test-commit-linux-containered/out/Release/obj.target/zlib/deps/zlib/cpu_features.o:(.bss+0x0): first defined here
12:29:30 collect2: error: ld returned 1 exit status
12:29:30 libnode.target.mk:546: recipe for target '/home/iojs/build/workspace/node-test-commit-linux-containered/out/Release/obj.target/libnode.so.118' failed
12:29:30 make[2]: *** [/home/iojs/build/workspace/node-test-commit-linux-containered/out/Release/obj.target/libnode.so.118] Error 1

Same on SmartOS:

12:27:09 ld: fatal: symbol 'x86_cpu_enable_avx512' is multiply-defined:
12:27:09 (file /home/iojs/build/workspace/node-test-commit-smartos/nodes/smartos20-64/out/Release/obj.target/deps/zlib/libzlib.a(cpu_features.o) type=OBJT; file /home/iojs/build/workspace/node-test-commit-smartos/nodes/smartos20-64/out/Release/obj.target/tools/v8_gypfiles/libv8_zlib.a(cpu_features.o) type=OBJT);
12:27:09 ld: fatal: file processing errors. No output written to /home/iojs/build/workspace/node-test-commit-smartos/nodes/smartos20-64/out/Release/cctest

targosand others added 13 commits June 21, 2023 12:14
Major V8 updates are usually API/ABI incompatible with previous
versions. This commit adapts NODE_MODULE_VERSION for V8 11.5.
Refs: https://github.com/nodejs/CTC/blob/master/meetings/2016-09-28.md
dllexport introduces issues when compiling with MSVC.
PR-URL: nodejs#47251
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
PR-URL: nodejs#45579
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: nodejs#47251
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
It introduces process hangs on some platforms because Node.js doesn't
tear down V8 correctly.
Disable it while we work on a solution.
Refs: nodejs#47297
Refs: https://bugs.chromium.org/p/v8/issues/detail?id=13902
PR-URL: nodejs#47450
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Original commit message:
[win][msvc] fix cross-compilation for arm64
Cross-compiling x64 to ARM64 on Windows fails with MSVC. The reason is
the ProbeMemory function which uses asm() code prohibited in this case.
This change adds conditionalizing on V8_TRAP_HANDLER_SUPPORTED thus
removing the problematic parts of the code in MSVC cross-compilation.
This extends https://chromium-review.googlesource.com/c/v8/v8/+/3964232
in a way, as it wraps ProbeMemory usage inside of the "#ifdef
V8_TRAP_HANDLER_VIA_SIMULATOR" blocks.
This follows https://chromium-review.googlesource.com/c/v8/v8/+/4403215
and https://chromium-review.googlesource.com/c/v8/v8/+/4489305 as a part
of an effort to completely fix cross-compilation with MSVC.
Change-Id: I59d9a995fbc8ee1cee2807429fd44d8043c178fb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4574697
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Mark Seaborn <mseaborn@chromium.org>
Commit-Queue: Mark Seaborn <mseaborn@chromium.org>
Cr-Commit-Position: refs/heads/main@{#88147}
Refs: v8/v8@15e31d6
Accept a new `step` break message.
`--no-harmony-sharedarraybuffer` was removed from V8 but it's still
possible to disable the feature with `--enable-sharedarraybuffer-per-context`.
@targos

Copy link
Copy Markdown
MemberAuthor

I don't see what's special about x86_cpu_enable_avx512. It's defined the same way as, for example, x86_cpu_enable_simd, which isn't causing any issues.

/cc @nodejs/cpp-reviewers

@wa-Nadoo

Copy link
Copy Markdown

5258be6 can be dropped due to upstream bug has been fixed.

@targos

Copy link
Copy Markdown
MemberAuthor

5258be6 can be dropped due to upstream bug has been fixed.

Upstream bug was closed, but a fix needs to happen on the Node.js side.

See #47297 and #47452

@targos

Copy link
Copy Markdown
MemberAuthor

#48710

@targostargos closed this Jul 9, 2023
@targos
targos deleted the v8-115 branch September 13, 2023 14:03
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

buildIssues and PRs related to build files or the CI.needs-ciPRs that need a full CI run.v8 engineIssues and PRs related to the V8 dependency.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@targos@nodejs-github-bot@StefanStojanovic@wa-Nadoo@pfaffe