Skip to content
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

deps: update V8 to 10.2 #42740

Closed
wants to merge 13 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
45 changes: 23 additions & 22 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,25 +99,25 @@ Node.js does not support a platform version if a vendor has expired support
for it. In other words, Node.js does not support running on End-of-Life (EoL)
platforms. This is true regardless of entries in the table below.

| Operating System | Architectures | Versions | Support Type | Notes |
| ---------------- | ---------------- | --------------------------------- | ------------------------------------------- | ------------------------------------ |
| GNU/Linux | x64 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10, RHEL 8 |
| GNU/Linux | x64 | kernel >= 3.10, musl >= 1.1.19 | Experimental | e.g. Alpine 3.8 |
| GNU/Linux | x86 | kernel >= 3.10, glibc >= 2.17 | Experimental | Downgraded as of Node.js 10 |
| GNU/Linux | arm64 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10, RHEL 8 |
| GNU/Linux | armv7 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10 |
| GNU/Linux | armv6 | kernel >= 4.14, glibc >= 2.24 | Experimental | Downgraded as of Node.js 12 |
| GNU/Linux | ppc64le >=power8 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. Ubuntu 20.04, RHEL 8 |
| GNU/Linux | s390x | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. RHEL 8 |
| Windows | x64 | >= Windows 10/Server 2016 | Tier 1 | [^2],[^3] |
| Windows | x86 | >= Windows 10/Server 2016 | Experimental | [^4] |
| Windows | x64, x86 | Windows 8.1/Server 2012 | Experimental | |
| Windows | arm64 | >= Windows 10 | Tier 2 (compiling) / Experimental (running) | |
| macOS | x64 | >= 10.15 | Tier 1 | For notes about compilation see [^5] |
| macOS | arm64 | >= 11 | Tier 1 | |
| SmartOS | x64 | >= 18 | Tier 2 | |
| AIX | ppc64be >=power8 | >= 7.2 TL04 | Tier 2 | |
| FreeBSD | x64 | >= 12.2 | Experimental | |
| Operating System | Architectures | Versions | Support Type | Notes |
| ---------------- | ---------------- | --------------------------------- | ----------------------------------------------- | ------------------------------------ |
| GNU/Linux | x64 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10, RHEL 8 |
| GNU/Linux | x64 | kernel >= 3.10, musl >= 1.1.19 | Experimental | e.g. Alpine 3.8 |
| GNU/Linux | x86 | kernel >= 3.10, glibc >= 2.17 | Experimental | Downgraded as of Node.js 10 |
| GNU/Linux | arm64 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10, RHEL 8 |
| GNU/Linux | armv7 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10 |
| GNU/Linux | armv6 | kernel >= 4.14, glibc >= 2.24 | Experimental | Downgraded as of Node.js 12 |
| GNU/Linux | ppc64le >=power8 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. Ubuntu 20.04, RHEL 8 |
| GNU/Linux | s390x | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. RHEL 8 |
| Windows | x64, x86 (WoW64) | >= Windows 10/Server 2016 | Tier 1 | [^2],[^3] |
| Windows | x86 (native) | >= Windows 10/Server 2016 | Tier 1 (running) / Experimental (compiling)[^4] | |
| Windows | x64, x86 | Windows 8.1/Server 2012 | Experimental | |
| Windows | arm64 | >= Windows 10 | Tier 2 (compiling) / Experimental (running) | |
| macOS | x64 | >= 10.15 | Tier 1 | For notes about compilation see [^5] |
| macOS | arm64 | >= 11 | Tier 1 | |
| SmartOS | x64 | >= 18 | Tier 2 | |
| AIX | ppc64be >=power8 | >= 7.2 TL04 | Tier 2 | |
| FreeBSD | x64 | >= 12.2 | Experimental | |

[^1]: Older kernel versions may work. However official Node.js release
binaries are [built on RHEL 8 systems](#official-binary-platforms-and-toolchains)
Expand All @@ -137,9 +137,10 @@ platforms. This is true regardless of entries in the table below.
Windows binary (`node.exe`) in WSL will not work without workarounds such as
stdio redirection.

[^4]: Compiling Node.js for x86 Windows is currently impossible due to
issues with version 10.1 of the V8 engine. Support will come back to its
previous status as soon as possible.
[^4]: Running Node.js on x86 Windows should work and binaries
are provided. However, tests in our infrastructure only run on WoW64.
Furthermore, compiling on x86 Windows is Experimental and
may not be possible.

[^5]: Our macOS x64 Binaries are compiled with 10.15 as a target. Xcode11 is
required to compile.
Expand Down
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -679,21 +679,21 @@ ifneq ("","$(wildcard deps/v8/tools/run-tests.py)")
# Related CI job: node-test-commit-v8-linux
test-v8: v8 ## Runs the V8 test suite on deps/v8.
export PATH="$(NO_BIN_OVERRIDE_PATH)" && \
deps/v8/tools/run-tests.py --gn --arch=$(V8_ARCH) $(V8_TEST_OPTIONS) \
$(PYTHON) deps/v8/tools/run-tests.py --gn --arch=$(V8_ARCH) $(V8_TEST_OPTIONS) \
mjsunit cctest debugger inspector message preparser \
$(TAP_V8)
$(info Testing hash seed)
$(MAKE) test-hash-seed

test-v8-intl: v8
export PATH="$(NO_BIN_OVERRIDE_PATH)" && \
deps/v8/tools/run-tests.py --gn --arch=$(V8_ARCH) \
$(PYTHON) deps/v8/tools/run-tests.py --gn --arch=$(V8_ARCH) \
intl \
$(TAP_V8_INTL)

test-v8-benchmarks: v8
export PATH="$(NO_BIN_OVERRIDE_PATH)" && \
deps/v8/tools/run-tests.py --gn --arch=$(V8_ARCH) \
$(PYTHON) deps/v8/tools/run-tests.py --gn --arch=$(V8_ARCH) \
benchmarks \
$(TAP_V8_BENCHMARKS)

Expand Down
2 changes: 1 addition & 1 deletion common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@

# Reset this number to 0 on major V8 upgrades.
# Increment by one for each non-official patch applied to deps/v8.
'v8_embedder_string': '-node.13',
'v8_embedder_string': '-node.7',

##### V8 defaults for Node.js #####

Expand Down
8 changes: 5 additions & 3 deletions deps/v8/AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ Meteor Development Group <*@meteor.com>
Cloudflare, Inc. <*@cloudflare.com>
Julia Computing, Inc. <*@juliacomputing.com>
CodeWeavers, Inc. <*@codeweavers.com>
Alibaba, Inc. <*@alibaba-inc.com>

Aaron Bieber <[email protected]>
Aaron O'Mullan <[email protected]>
Expand Down Expand Up @@ -90,9 +91,11 @@ Daniel Bevenius <[email protected]>
Daniel Dromboski <[email protected]>
Daniel James <[email protected]>
Daniel Shelton <[email protected]>
Danylo Boiko <[email protected]>
Darshan Sen <[email protected]>
David Carlier <[email protected]>
David Manouchehri <[email protected]>
David Sanders <[email protected]>
Deepak Mohan <[email protected]>
Deon Dior <[email protected]>
Derek Tu <[email protected]>
Expand All @@ -115,6 +118,7 @@ Gus Caplan <[email protected]>
Gwang Yoon Hwang <[email protected]>
Haichuan Wang <[email protected]>
Hannu Trey <[email protected]>
Harshal Nandigramwar <[email protected]>
Harshil Jain <[email protected]>
Henrique Ferreiro <[email protected]>
Hirofumi Mako <[email protected]>
Expand All @@ -135,7 +139,6 @@ Javad Amiri <[email protected]>
Jay Freeman <[email protected]>
Jesper van den Ende <[email protected]>
Ji Qiu <[email protected]>
Jianghua Yang <[email protected]>
Jiawen Geng <[email protected]>
Jiaxun Yang <[email protected]>
Joel Stanley <[email protected]>
Expand Down Expand Up @@ -198,8 +201,6 @@ Peter Rybin <[email protected]>
Peter Varga <[email protected]>
Peter Wong <[email protected]>
PhistucK <[email protected]>
Qingyan Li <[email protected]>
Qiuyi Zhang <[email protected]>
Rafal Krypa <[email protected]>
Raul Tambre <[email protected]>
Ray Glover <[email protected]>
Expand Down Expand Up @@ -248,6 +249,7 @@ Vladimir Shutoff <[email protected]>
Wael Almattar <[email protected]>
Wei Wu <[email protected]>
Wenlu Wang <[email protected]>
Wenming Yang <[email protected]>
Wenyu Zhao <[email protected]>
Wiktor Garbacz <[email protected]>
Wouter Vermeiren <[email protected]>
Expand Down
74 changes: 70 additions & 4 deletions deps/v8/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ load(":bazel/v8-non-pointer-compression.bzl", "v8_binary_non_pointer_compression
# v8_enable_builtins_profiling
# v8_enable_builtins_profiling_verbose
# v8_builtins_profiling_log_file
# v8_enable_short_builtin_calls
# v8_enable_external_code_space
# v8_postmortem_support
# v8_use_siphash
Expand Down Expand Up @@ -231,6 +230,62 @@ selects.config_setting_group(
],
)

# We use a string flag to create a 3 value-logic.
# If no explicit value for v8_enable_short_builtin_calls, we set it to 'none'.
v8_string(
name = "v8_enable_short_builtin_calls",
default = "none",
)

# Default setting for v8_enable_pointer_compression.
config_setting(
name = "v8_enable_short_builtin_calls_is_none",
flag_values = {
":v8_enable_short_builtin_calls": "none",
},
)

# Explicity defined v8_enable_pointer_compression.
config_setting(
name = "v8_enable_short_builtin_calls_is_true",
flag_values = {
":v8_enable_short_builtin_calls": "True",
},
)

# Default setting for v8_enable_short_builtin_calls when target is x64.
# Disable short calls when pointer compression is not enabled.
selects.config_setting_group(
name = "v8_target_x64_default_short_builtin_calls",
match_all = [
":v8_enable_short_builtin_calls_is_none",
"@v8//bazel/config:v8_target_x64",
":is_v8_enable_pointer_compression",
],
)

# Default setting for v8_enable_short_builtin_calls when target is arm64, but not Android.
selects.config_setting_group(
name = "v8_target_arm64_default_short_builtin_calls",
match_all = [
":v8_enable_short_builtin_calls_is_none",
"@v8//bazel/config:v8_target_arm64",
"@v8//bazel/config:is_not_android",
],
)

# v8_enable_short_builtin_calls is valid whenever it is explicitly defined
# or we have the default settings for targets x64 and arm64.
# TODO(victorgomes): v8_enable_short_builtin_calls should not be enabled when CFI is enabled.
selects.config_setting_group(
name = "is_v8_enable_short_builtin_calls",
match_any = [
":v8_enable_short_builtin_calls_is_true",
":v8_target_x64_default_short_builtin_calls",
":v8_target_arm64_default_short_builtin_calls",
],
)

# Enable -rdynamic.
selects.config_setting_group(
name = "should_add_rdynamic",
Expand Down Expand Up @@ -339,6 +394,11 @@ v8_config(
"V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE",
],
"//conditions:default": [],
}) + select({
":is_v8_enable_short_builtin_calls": [
"V8_SHORT_BUILTIN_CALLS",
],
"//conditions:default": [],
}) + select({
":is_v8_enable_test_features": [
"V8_ENABLE_ALLOCATION_TIMEOUT",
Expand Down Expand Up @@ -606,7 +666,6 @@ filegroup(
"src/base/template-utils.h",
"src/base/timezone-cache.h",
"src/base/threaded-list.h",
"src/base/type-traits.h",
"src/base/utils/random-number-generator.cc",
"src/base/utils/random-number-generator.h",
"src/base/vector.h",
Expand Down Expand Up @@ -1305,7 +1364,6 @@ filegroup(
"src/heap/allocation-stats.h",
"src/heap/array-buffer-sweeper.cc",
"src/heap/array-buffer-sweeper.h",
"src/heap/barrier.h",
"src/heap/base-space.cc",
"src/heap/base-space.h",
"src/heap/basic-memory-chunk.cc",
Expand All @@ -1331,7 +1389,9 @@ filegroup(
"src/heap/cppgc-js/cpp-marking-state-inl.h",
"src/heap/cppgc-js/cpp-snapshot.cc",
"src/heap/cppgc-js/cpp-snapshot.h",
"src/heap/cppgc-js/unified-heap-marking-state.cc",
"src/heap/cppgc-js/unified-heap-marking-state.h",
"src/heap/cppgc-js/unified-heap-marking-state-inl.h",
"src/heap/cppgc-js/unified-heap-marking-verifier.cc",
"src/heap/cppgc-js/unified-heap-marking-verifier.h",
"src/heap/cppgc-js/unified-heap-marking-visitor.cc",
Expand All @@ -1353,6 +1413,7 @@ filegroup(
"src/heap/gc-idle-time-handler.cc",
"src/heap/gc-idle-time-handler.h",
"src/heap/gc-tracer.cc",
"src/heap/gc-tracer-inl.h",
"src/heap/gc-tracer.h",
"src/heap/heap-allocator-inl.h",
"src/heap/heap-allocator.cc",
Expand Down Expand Up @@ -1930,6 +1991,7 @@ filegroup(
"src/runtime/runtime-proxy.cc",
"src/runtime/runtime-regexp.cc",
"src/runtime/runtime-scopes.cc",
"src/runtime/runtime-shadow-realm.cc",
"src/runtime/runtime-strings.cc",
"src/runtime/runtime-symbol.cc",
"src/runtime/runtime-test.cc",
Expand Down Expand Up @@ -1964,6 +2026,7 @@ filegroup(
"src/snapshot/deserializer.cc",
"src/snapshot/deserializer.h",
"src/snapshot/embedded/embedded-data.cc",
"src/snapshot/embedded/embedded-data-inl.h",
"src/snapshot/embedded/embedded-data.h",
"src/snapshot/embedded/embedded-file-writer-interface.h",
"src/snapshot/object-deserializer.cc",
Expand Down Expand Up @@ -2374,6 +2437,8 @@ filegroup(
"src/wasm/baseline/liftoff-compiler.h",
"src/wasm/baseline/liftoff-register.h",
"src/wasm/branch-hint-map.h",
"src/wasm/canonical-types.cc",
"src/wasm/canonical-types.h",
"src/wasm/code-space-access.cc",
"src/wasm/code-space-access.h",
"src/wasm/compilation-environment.h",
Expand Down Expand Up @@ -2550,6 +2615,8 @@ filegroup(
"src/compiler/backend/unwinding-info-writer.h",
"src/compiler/basic-block-instrumentor.cc",
"src/compiler/basic-block-instrumentor.h",
"src/compiler/branch-condition-duplicator.cc",
"src/compiler/branch-condition-duplicator.h",
"src/compiler/branch-elimination.cc",
"src/compiler/branch-elimination.h",
"src/compiler/bytecode-analysis.cc",
Expand Down Expand Up @@ -2857,7 +2924,6 @@ filegroup(
"src/heap/cppgc/compactor.h",
"src/heap/cppgc/concurrent-marker.cc",
"src/heap/cppgc/concurrent-marker.h",
"src/heap/cppgc/default-platform.cc",
"src/heap/cppgc/explicit-management.cc",
"src/heap/cppgc/free-list.cc",
"src/heap/cppgc/free-list.h",
Expand Down
Loading