From eb5895ae3ebbff2542b564276b792d2d705d4f21 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Wed, 21 Dec 2022 20:16:56 +0100 Subject: [PATCH] build: add option to disable shared readonly heap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/45887 Reviewed-By: Richard Lau Reviewed-By: Michaƫl Zasso Reviewed-By: James M Snell --- configure.py | 8 +++++++- vcbuild.bat | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/configure.py b/configure.py index 1c01c6fdb20..c1d8815fc02 100755 --- a/configure.py +++ b/configure.py @@ -484,6 +484,12 @@ parser.add_argument('--experimental-enable-pointer-compression', default=None, help='[Experimental] Enable V8 pointer compression (limits max heap to 4GB and breaks ABI compatibility)') +parser.add_argument('--disable-shared-readonly-heap', + action='store_true', + dest='disable_shared_ro_heap', + default=None, + help='Disable the shared read-only heap feature in V8') + parser.add_argument('--v8-options', action='store', dest='v8_options', @@ -1471,7 +1477,7 @@ def configure_v8(o): o['variables']['v8_use_siphash'] = 0 if options.without_siphash else 1 o['variables']['v8_enable_pointer_compression'] = 1 if options.enable_pointer_compression else 0 o['variables']['v8_enable_31bit_smis_on_64bit_arch'] = 1 if options.enable_pointer_compression else 0 - o['variables']['v8_enable_shared_ro_heap'] = 0 if options.enable_pointer_compression else 1 + o['variables']['v8_enable_shared_ro_heap'] = 0 if options.enable_pointer_compression or options.disable_shared_ro_heap else 1 o['variables']['v8_trace_maps'] = 1 if options.trace_maps else 0 o['variables']['node_use_v8_platform'] = b(not options.without_v8_platform) o['variables']['node_use_bundled_v8'] = b(not options.without_bundled_v8) diff --git a/vcbuild.bat b/vcbuild.bat index 60c26a9880c..e2c2e064452 100644 --- a/vcbuild.bat +++ b/vcbuild.bat @@ -68,6 +68,7 @@ set link_module= set no_cctest= set cctest= set openssl_no_asm= +set no_shared_roheap= set doc= set extra_msbuild_args= set exit_code=0 @@ -146,6 +147,7 @@ if /i "%1"=="link-module" set "link_module= --link-module=%2%link_module%"&got if /i "%1"=="no-cctest" set no_cctest=1&goto arg-ok if /i "%1"=="cctest" set cctest=1&goto arg-ok if /i "%1"=="openssl-no-asm" set openssl_no_asm=1&goto arg-ok +if /i "%1"=="no-shared-roheap" set no_shared_roheap=1&goto arg-ok if /i "%1"=="doc" set doc=1&goto arg-ok if /i "%1"=="binlog" set extra_msbuild_args=/binaryLogger:%config%\node.binlog&goto arg-ok @@ -202,6 +204,7 @@ if defined config_flags set configure_flags=%configure_flags% %config_flags% if defined target_arch set configure_flags=%configure_flags% --dest-cpu=%target_arch% if defined debug_nghttp2 set configure_flags=%configure_flags% --debug-nghttp2 if defined openssl_no_asm set configure_flags=%configure_flags% --openssl-no-asm +if defined no_shared_roheap set configure_flags=%configure_flags% --disable-shared-readonly-heap if defined DEBUG_HELPER set configure_flags=%configure_flags% --verbose if "%target_arch%"=="x86" if "%PROCESSOR_ARCHITECTURE%"=="AMD64" set configure_flags=%configure_flags% --no-cross-compiling