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' ],