From 4da637834d78bd5dee452b25ae1443e6ec7b89b5 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Fri, 16 Oct 2026 11:05:43 +0200 Subject: [PATCH 1/3] deps: V8: cherry-pick 785a2ea88a90 Original commit message: [tracing] do not define legacy tracing classes when using Perfetto Otherwise the Windows build of Node.js fails with `undefined symbol` errors due to the missing destructor. Change-Id: Id0841aed2f0a8f0cfe8889c39150552e31ee5f96 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8580049 Reviewed-by: Yang Guo Reviewed-by: Chengzhong Wu Commit-Queue: Chengzhong Wu Cr-Commit-Position: refs/heads/main@{#110947} Refs: https://github.com/v8/v8/commit/785a2ea88a903317d72fe40e3fff660267865a69 --- common.gypi | 2 +- deps/v8/include/libplatform/v8-tracing.h | 2 ++ deps/v8/test/benchmarks/cpp/BUILD.gn | 1 + deps/v8/test/cctest/test-cpu-profiler.cc | 4 +++- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/common.gypi b/common.gypi index e70270a793b4..ebf78082e356 100644 --- a/common.gypi +++ b/common.gypi @@ -44,7 +44,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.9', + 'v8_embedder_string': '-node.10', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/include/libplatform/v8-tracing.h b/deps/v8/include/libplatform/v8-tracing.h index 9d05949c38ef..ea405b7870f0 100644 --- a/deps/v8/include/libplatform/v8-tracing.h +++ b/deps/v8/include/libplatform/v8-tracing.h @@ -35,6 +35,7 @@ class TraceEventListener; const int kTraceMaxNumArgs = 2; +#if !defined(V8_USE_PERFETTO) class V8_PLATFORM_EXPORT TraceObject { public: union ArgValue { @@ -176,6 +177,7 @@ class V8_PLATFORM_EXPORT TraceBuffer { TraceBuffer(const TraceBuffer&) = delete; void operator=(const TraceBuffer&) = delete; }; +#endif // !defined(V8_USE_PERFETTO) // Options determines how the trace buffer stores data. enum TraceRecordMode { diff --git a/deps/v8/test/benchmarks/cpp/BUILD.gn b/deps/v8/test/benchmarks/cpp/BUILD.gn index 4f870a8772b9..0cba56ee1ab7 100644 --- a/deps/v8/test/benchmarks/cpp/BUILD.gn +++ b/deps/v8/test/benchmarks/cpp/BUILD.gn @@ -65,6 +65,7 @@ if (v8_enable_google_benchmark) { "//:v8", "//:v8_internal_headers", "//:v8_libbase", + "//:v8_tracing", "//third_party/google_benchmark_chrome:google_benchmark", ] } diff --git a/deps/v8/test/cctest/test-cpu-profiler.cc b/deps/v8/test/cctest/test-cpu-profiler.cc index 42067b6076bb..1600323a222f 100644 --- a/deps/v8/test/cctest/test-cpu-profiler.cc +++ b/deps/v8/test/cctest/test-cpu-profiler.cc @@ -2955,9 +2955,11 @@ TEST(DeoptUntrackedFunction) { iprofiler->DeleteProfile(iprofile); } -using v8::platform::tracing::TraceBuffer; using v8::platform::tracing::TraceConfig; +#if !defined(V8_USE_PERFETTO) +using v8::platform::tracing::TraceBuffer; using v8::platform::tracing::TraceObject; +#endif // !defined(V8_USE_PERFETTO) namespace { From a38fb7340ec95a219e4f5320913940922dd86827 Mon Sep 17 00:00:00 2001 From: StefanStojanovic Date: Wed, 9 Sep 2026 08:24:06 +0200 Subject: [PATCH 2/3] build,win: fix Perfetto Signed-off-by: StefanStojanovic --- deps/perfetto/perfetto.gyp | 8 ++++++++ node.gypi | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/deps/perfetto/perfetto.gyp b/deps/perfetto/perfetto.gyp index 083d0b386dd2..697256401a3a 100644 --- a/deps/perfetto/perfetto.gyp +++ b/deps/perfetto/perfetto.gyp @@ -18,6 +18,14 @@ 'sources': [ '<@(perfetto_sdk_sources)', ], + 'conditions': [ + ['OS=="win"', { + 'defines': [ + 'WIN32_LEAN_AND_MEAN', + 'NOMINMAX', + ], + }], + ], }, ] } diff --git a/node.gypi b/node.gypi index 9eb972adc47f..3ca9d4633d04 100644 --- a/node.gypi +++ b/node.gypi @@ -93,6 +93,11 @@ [ 'OS=="linux" and target_arch=="s390x"', { 'cflags': [ '-march=z14' ], }], + [ 'v8_use_perfetto==1 and node_shared_perfetto=="false"', { + 'dependencies': [ + 'deps/perfetto/perfetto.gyp:perfetto_sdk', + ], + }], [ 'node_enable_d8=="true"', { 'dependencies': [ 'tools/v8_gypfiles/d8.gyp:d8' ], }], From 827d583b26fe201ee0324b60d5d74bb30c8c33f1 Mon Sep 17 00:00:00 2001 From: Chengzhong Wu Date: Thu, 22 Oct 2026 10:27:01 -0400 Subject: [PATCH 3/3] build,win: disable system instrumentation with perfetto --- tools/v8_gypfiles/features.gypi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/v8_gypfiles/features.gypi b/tools/v8_gypfiles/features.gypi index a6e2c9b0d0ef..305c81eab34d 100644 --- a/tools/v8_gypfiles/features.gypi +++ b/tools/v8_gypfiles/features.gypi @@ -62,7 +62,7 @@ }, { 'is_component_build': 0, }], - ['OS == "win" or OS == "mac"', { + ['(OS == "win" or OS == "mac") and v8_use_perfetto == 0', { # Sets -DENABLE_SYSTEM_INSTRUMENTATION. Enables OS-dependent event tracing 'v8_enable_system_instrumentation': 1, }, {