Commit c99ebf28b84 for nodejs
commit c99ebf28b84d7b7faf7105611ac2df5ed88d4dc8
Author: Joyee Cheung <joyeec9h3@gmail.com>
Date: Wed Oct 28 20:43:30 2026 +0100
build: set V8_DISABLE_PRESERVE_MOST
Refs: https://chromium-review.googlesource.com/c/v8/v8/+/8532546
Signed-off-by: Joyee Cheung <joyeec9h3@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/67093
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Richard Lau <richard.lau@ibm.com>
diff --git a/common.gypi b/common.gypi
index 5e100167a42..f8588b82311 100644
--- a/common.gypi
+++ b/common.gypi
@@ -588,6 +588,13 @@
'_HAS_EXCEPTIONS=0',
'BUILDING_V8_SHARED=1',
'BUILDING_UV_SHARED=1',
+ # Node.js is built with clang-cl but native addons may be built
+ # with MSVC, which does not support preserve_most.
+ # As preserve_most changes the mangled name of a function in the
+ # Microsoft C++ ABI, the addons would fail to link against the
+ # exported symbols. So this define must be consistely set for
+ # both the V8 build and addon builds.
+ 'V8_DISABLE_PRESERVE_MOST',
# Stop <windows.h> from defining macros that conflict with
# std::min() and std::max(). We don't use <windows.h> (much)
# but we still inherit it from uv.h.