build: improve embedded code-cache detection
PR-URL: https://github.com/nodejs/node/pull/27311 Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
This commit is contained in:
parent
49d3d11ba7
commit
5aaf666b3b
@ -1051,7 +1051,9 @@ def configure_node(o):
|
||||
o['variables']['debug_nghttp2'] = 'false'
|
||||
|
||||
o['variables']['node_no_browser_globals'] = b(options.no_browser_globals)
|
||||
o['variables']['node_code_cache_path'] = 'yes'
|
||||
# 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_path'] = 'yes'
|
||||
o['variables']['node_shared'] = b(options.shared)
|
||||
node_module_version = getmoduleversion.get_version()
|
||||
|
||||
|
@ -244,7 +244,8 @@ Object.defineProperty(process, 'features', {
|
||||
tls_alpn: hasOpenSSL,
|
||||
tls_sni: hasOpenSSL,
|
||||
tls_ocsp: hasOpenSSL,
|
||||
tls: hasOpenSSL
|
||||
tls: hasOpenSSL,
|
||||
cached_builtins: config.hasCachedBuiltins,
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
#include "node_native_module_env.h"
|
||||
|
||||
// This is supposed to be generated by tools/generate_code_cache.js
|
||||
@ -7,6 +6,8 @@
|
||||
namespace node {
|
||||
namespace native_module {
|
||||
|
||||
const bool has_code_cache = false;
|
||||
|
||||
// The generated source code would insert <std::string, UnionString> pairs
|
||||
// into NativeModuleLoader::instance.code_cache_.
|
||||
void NativeModuleEnv::InitializeCodeCache() {}
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "env-inl.h"
|
||||
#include "node.h"
|
||||
#include "node_i18n.h"
|
||||
#include "node_native_module_env.h"
|
||||
#include "node_options.h"
|
||||
#include "util-inl.h"
|
||||
|
||||
@ -73,11 +74,14 @@ static void Initialize(Local<Object> target,
|
||||
|
||||
READONLY_PROPERTY(target,
|
||||
"bits",
|
||||
Number::New(env->isolate(), 8 * sizeof(intptr_t)));
|
||||
Number::New(isolate, 8 * sizeof(intptr_t)));
|
||||
|
||||
#if defined HAVE_DTRACE || defined HAVE_ETW
|
||||
READONLY_TRUE_PROPERTY(target, "hasDtrace");
|
||||
#endif
|
||||
|
||||
READONLY_PROPERTY(target, "hasCachedBuiltins",
|
||||
v8::Boolean::New(isolate, native_module::has_code_cache));
|
||||
} // InitConfig
|
||||
|
||||
} // namespace node
|
||||
|
@ -10,6 +10,8 @@ class Environment;
|
||||
|
||||
namespace native_module {
|
||||
|
||||
extern const bool has_code_cache;
|
||||
|
||||
class NativeModuleEnv {
|
||||
public:
|
||||
static void Initialize(v8::Local<v8::Object> target,
|
||||
|
@ -31,7 +31,7 @@ const loadedModules = process.moduleLoadList
|
||||
|
||||
// Cross-compiled binaries do not have code cache, verifies that the builtins
|
||||
// are all compiled without cache and we are doing the bookkeeping right.
|
||||
if (process.config.variables.want_separate_host_toolset === 1) {
|
||||
if (!process.features.cached_builtins) {
|
||||
console.log('The binary is not configured with code cache');
|
||||
if (isMainThread) {
|
||||
assert.deepStrictEqual(compiledWithCache, new Set());
|
||||
|
@ -13,7 +13,8 @@ assert.deepStrictEqual(keys, new Set([
|
||||
'tls_alpn',
|
||||
'tls_sni',
|
||||
'tls_ocsp',
|
||||
'tls'
|
||||
'tls',
|
||||
'cached_builtins',
|
||||
]));
|
||||
|
||||
for (const key of keys) {
|
||||
|
@ -3,8 +3,7 @@
|
||||
// This tests that --cpu-prof, --cpu-prof-dir and --cpu-prof-name works.
|
||||
|
||||
const common = require('../common');
|
||||
if (process.features.debug &&
|
||||
process.config.variables.node_code_cache_path === 'yes') {
|
||||
if (process.features.debug && process.features.cached_builtins) {
|
||||
// FIXME(joyeecheung): the profiler crashes when code cache
|
||||
// is enabled in debug builds.
|
||||
common.skip('--cpu-prof does not work in debug builds with code cache');
|
||||
|
@ -78,6 +78,9 @@ static std::string GenerateCodeCache(
|
||||
|
||||
namespace node {
|
||||
namespace native_module {
|
||||
|
||||
const bool has_code_cache = true;
|
||||
|
||||
)";
|
||||
|
||||
size_t total = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user