fix: disable C++ modules in libnode builds

This commit is contained in:
Samuel Maddock
2025-10-08 17:31:37 -04:00
parent ad52007d5b
commit fd0a7b61a1
2 changed files with 16 additions and 5 deletions

View File

@@ -52,4 +52,4 @@ chore_exclude_electron_node_folder_from_exit-time-destructors.patch
api_remove_deprecated_getisolate.patch
src_switch_from_get_setprototype_to_get_setprototypev2.patch
fix_replace_deprecated_setprototype.patch
fix_js2c_including_mac_sdk_headers_twice.patch
fix_redefined_macos_sdk_header_symbols.patch

View File

@@ -1,19 +1,30 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Samuel Maddock <smaddock@slack-corp.com>
Date: Wed, 8 Oct 2025 10:50:03 -0400
Subject: fix: js2c including mac sdk headers twice
Subject: fix: redefined macos sdk header symbols
https://chromium-review.googlesource.com/c/chromium/src/+/6950738
Chromium has set the minimum MacOS SDK version to 26. With this
change, it seems to introduce an incompatibility when compiling
using clang modules. Disabling them seems to resolve the issue.
using clang modules. Disabling them resolves the issue.
diff --git a/unofficial.gni b/unofficial.gni
index a64d2e4ac475abc049fff7ea62ec76de565a747d..61aeac679a90832a1d9f559a4eb880362bce038d 100644
index a64d2e4ac475abc049fff7ea62ec76de565a747d..ab456452d102088005fc4bfcb394d2de5ec44889 100644
--- a/unofficial.gni
+++ b/unofficial.gni
@@ -350,6 +350,12 @@ template("node_gn_build") {
@@ -195,6 +195,10 @@ template("node_gn_build") {
"CoreFoundation.framework",
"Security.framework",
]
+
+ # Fix for MacOSX26 SDK headers included twice due to usage of clang
+ # modules. Included once as a C header and again as C++.
+ use_libcxx_modules = false
}
if (is_posix) {
configs -= [ "//build/config/gcc:symbol_visibility_hidden" ]
@@ -350,6 +354,12 @@ template("node_gn_build") {
include_dirs = [ "src", "tools" ]
configs += [ "//build/config/compiler:no_exit_time_destructors" ]