Commit 3b639be3a4d for nodejs

commit 3b639be3a4dd88f81d33d4c375c8af3cfc8fe695
Author: Antoine du Hamel <duhamelantoine1995@gmail.com>
Date:   Mon Oct 12 00:43:29 2026 +0200

    build: do not include shared gtest in `node` link path

    Signed-off-by: Antoine du Hamel <duhamelantoine1995@gmail.com>
    PR-URL: https://github.com/nodejs/node/pull/66626
    Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
    Reviewed-By: Richard Lau <richard.lau@ibm.com>

diff --git a/configure.py b/configure.py
index acda6a16c96..e38dd91cdb9 100755
--- a/configure.py
+++ b/configure.py
@@ -2195,9 +2195,10 @@ def configure_napi(output):
   version = getnapibuildversion.get_napi_version()
   output['variables']['napi_build_version'] = version

-def configure_library(lib, output, pkgname=None):
+def configure_library(lib, output, pkgname=None, libraries_key='libraries'):
   shared_lib = 'shared_' + lib
   output['variables']['node_' + shared_lib] = b(getattr(options, shared_lib))
+  libraries = output[libraries_key]

   if getattr(options, shared_lib):
     (pkg_libs, pkg_cflags, pkg_libpath, _) = pkg_config(pkgname or lib)
@@ -2216,17 +2217,17 @@ def configure_library(lib, output, pkgname=None):
         output['msvs_settings']['VCLinkerTool']['AdditionalOptions'] += [
           f"/LIBPATH:{options.__dict__[shared_lib + '_libpath']}"]
       else:
-        output['libraries'] += [
+        libraries += [
             f"-L{options.__dict__[shared_lib + '_libpath']}"]
     elif pkg_libpath:
-      output['libraries'] += [pkg_libpath]
+      libraries += [pkg_libpath]

     default_libs = getattr(options, shared_lib + '_libname')

     if default_libs:
-      output['libraries'] += [f'-l{l}' for l in default_libs.split(',')]
+      libraries += [f'-l{l}' for l in default_libs.split(',')]
     elif pkg_libs:
-      output['libraries'] += pkg_libs.split()
+      libraries += pkg_libs.split()


 def configure_v8(o, configs):
@@ -2974,7 +2975,9 @@ configure_library('simdjson', output)
 configure_library('simdutf', output)
 configure_library('brotli', output, pkgname=['libbrotlidec', 'libbrotlienc'])
 configure_library('cares', output, pkgname='libcares')
-configure_library('gtest', output)
+# Only cctest uses gtest; keep it out of the node binary's link line.
+output['variables']['node_shared_gtest_libraries'] = []
+configure_library('gtest', output, 'node_shared_gtest_libraries')
 configure_library('hdr_histogram', output)
 configure_library('highway', output, pkgname='libhwy')
 configure_library('merve', output)
diff --git a/node.gyp b/node.gyp
index 54d18b204c6..a626477c380 100644
--- a/node.gyp
+++ b/node.gyp
@@ -19,6 +19,7 @@
     'node_shared_brotli%': 'false',
     'node_shared_cares%': 'false',
     'node_shared_gtest%': 'false',
+    'node_shared_gtest_libraries%': [],
     'node_shared_hdr_histogram%': 'false',
     'node_shared_highway%': 'false',
     'node_shared_http_parser%': 'false',
@@ -1387,7 +1388,7 @@
           ],
         }],
         [ 'node_shared_gtest=="true"', {
-          'libraries': [ '-lgtest_main' ],
+          'libraries': [ '-lgtest_main', '<@(node_shared_gtest_libraries)' ],
         }],
         [ 'node_use_bundled_v8!="false" and node_shared_abseil=="false"', {
           'dependencies': [ 'tools/v8_gypfiles/abseil.gyp:abseil' ],