From 78c46c5b1af8f84f6c1d9315bc33fb8ab59dbac9 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Tue, 26 Nov 2019 13:03:22 +0800 Subject: [PATCH] build: add --without-node-code-cache configure option So that it's possible to build without code cache (in particular, without building mkcodecache) for testing. PR-URL: https://github.com/nodejs/node/pull/30647 Refs: https://github.com/nodejs/node/issues/28845 Reviewed-By: Ben Noordhuis Reviewed-By: Anna Henningsen Reviewed-By: David Carlier Reviewed-By: James M Snell --- configure.py | 15 ++++++++++++--- node.gyp | 2 +- test/parallel/test-code-cache.js | 7 +++---- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/configure.py b/configure.py index cac22e4a43c9b7..000745f867590e 100755 --- a/configure.py +++ b/configure.py @@ -453,6 +453,11 @@ dest='without_node_snapshot', help='Turn off V8 snapshot integration. Currently experimental.') +parser.add_option('--without-node-code-cache', + action='store_true', + dest='without_node_code_cache', + help='Turn off V8 Code cache integration.') + intl_optgroup.add_option('--download', action='store', dest='download_list', @@ -978,6 +983,12 @@ def configure_node(o): else: o['variables']['node_use_node_snapshot'] = 'false' + if not options.without_node_code_cache: + # TODO(refack): fix this when implementing embedded code-cache when cross-compiling. + o['variables']['node_use_node_code_cache'] = b(not cross_compiling) + else: + o['variables']['node_use_node_code_cache'] = 'false' + if target_arch == 'arm': configure_arm(o) elif target_arch in ('mips', 'mipsel', 'mips64el'): @@ -1083,9 +1094,7 @@ def configure_node(o): o['variables']['debug_nghttp2'] = 'false' o['variables']['node_no_browser_globals'] = b(options.no_browser_globals) - # TODO(refack): fix this when implementing embedded code-cache when cross-compiling. - if o['variables']['want_separate_host_toolset'] == 0: - o['variables']['node_code_cache'] = 'yes' # For testing + o['variables']['node_shared'] = b(options.shared) node_module_version = getmoduleversion.get_version() diff --git a/node.gyp b/node.gyp index 0a1178b22619d3..537242186d4bf1 100644 --- a/node.gyp +++ b/node.gyp @@ -436,7 +436,7 @@ }, }, }], - ['want_separate_host_toolset==0', { + ['node_use_node_code_cache=="true"', { 'dependencies': [ 'mkcodecache', ], diff --git a/test/parallel/test-code-cache.js b/test/parallel/test-code-cache.js index d01392f1ee6433..3c4488c557d524 100644 --- a/test/parallel/test-code-cache.js +++ b/test/parallel/test-code-cache.js @@ -33,6 +33,8 @@ const loadedModules = process.moduleLoadList // are all compiled without cache and we are doing the bookkeeping right. if (!process.features.cached_builtins) { console.log('The binary is not configured with code cache'); + assert(!process.config.variables.node_use_node_code_cache); + if (isMainThread) { assert.deepStrictEqual(compiledWithCache, new Set()); for (const key of loadedModules) { @@ -46,10 +48,7 @@ if (!process.features.cached_builtins) { assert.notDeepStrictEqual(compiledWithCache, new Set()); } } else { // Native compiled - assert.strictEqual( - process.config.variables.node_code_cache, - 'yes' - ); + assert(process.config.variables.node_use_node_code_cache); if (!isMainThread) { for (const key of [ 'internal/bootstrap/pre_execution' ]) {