summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.rs14
-rw-r--r--src/isolate_init.rs104
2 files changed, 57 insertions, 61 deletions
diff --git a/build.rs b/build.rs
index 98dd393c3..261189f5e 100644
--- a/build.rs
+++ b/build.rs
@@ -76,11 +76,15 @@ fn main() {
}
}
- // Enable snapshots for x64 builds
- if env::var("CARGO_CFG_TARGET_ARCH").unwrap() == "x86_64" {
- // Not related to v8_use_snapshot
- // This only enables using pregenerated snapshots for isolate init
- println!("cargo:rustc-cfg=feature=\"use-snapshot-init\"");
+ // If target_arch != host_arch disable snapshots since we are cross compiling.
+ if env::var("CARGO_CFG_TARGET_ARCH").unwrap().as_str() != env::var("HOST")
+ .unwrap()
+ .as_str()
+ .split("-")
+ .collect::<Vec<&str>>()[0]
+ {
+ // no-snapshot-init is not related to v8_use_snapshots
+ println!("cargo:rustc-cfg=feature=\"no-snapshot-init\"");
}
if !gn_out_path.join("build.ninja").exists() {
diff --git a/src/isolate_init.rs b/src/isolate_init.rs
index c77f0c998..f025d8405 100644
--- a/src/isolate_init.rs
+++ b/src/isolate_init.rs
@@ -12,75 +12,67 @@ pub struct IsolateInit {
}
pub fn deno_isolate_init() -> IsolateInit {
- if cfg!(not(feature = "check-only")) {
- if cfg!(feature = "use-snapshot-init") {
- let data =
- include_bytes!(concat!(env!("GN_OUT_DIR"), "/gen/snapshot_deno.bin"));
+ if cfg!(feature = "no-snapshot-init") {
+ debug!("Deno isolate init without snapshots.");
+ #[cfg(not(feature = "check-only"))]
+ let source_bytes =
+ include_bytes!(concat!(env!("GN_OUT_DIR"), "/gen/bundle/main.js"));
+ #[cfg(feature = "check-only")]
+ let source_bytes = vec![];
- unsafe {
- IsolateInit {
- snapshot: Some(deno_buf::from_raw_parts(data.as_ptr(), data.len())),
- init_script: None,
- }
- }
- } else {
- #[cfg(not(feature = "check-only"))]
- let source_bytes =
- include_bytes!(concat!(env!("GN_OUT_DIR"), "/gen/bundle/main.js"));
-
- #[cfg(feature = "check-only")]
- let source_bytes = vec![];
+ IsolateInit {
+ snapshot: None,
+ init_script: Some(IsolateInitScript {
+ filename: "gen/bundle/main.js".to_string(),
+ source: std::str::from_utf8(source_bytes).unwrap().to_string(),
+ }),
+ }
+ } else {
+ debug!("Deno isolate init with snapshots.");
+ #[cfg(not(feature = "check-only"))]
+ let data =
+ include_bytes!(concat!(env!("GN_OUT_DIR"), "/gen/snapshot_deno.bin"));
+ #[cfg(feature = "check-only")]
+ let data = vec![];
+ unsafe {
IsolateInit {
- snapshot: None,
- init_script: Some(IsolateInitScript {
- filename: "gen/bundle/main.js".to_string(),
- source: std::str::from_utf8(source_bytes).unwrap().to_string(),
- }),
+ snapshot: Some(deno_buf::from_raw_parts(data.as_ptr(), data.len())),
+ init_script: None,
}
}
- } else {
- IsolateInit {
- snapshot: None,
- init_script: None,
- }
}
}
pub fn compiler_isolate_init() -> IsolateInit {
- if cfg!(not(feature = "check-only")) {
- if cfg!(feature = "use-snapshot-init") {
- let data = include_bytes!(concat!(
- env!("GN_OUT_DIR"),
- "/gen/snapshot_compiler.bin"
- ));
+ if cfg!(feature = "no-snapshot-init") {
+ debug!("Deno isolate init without snapshots.");
+ #[cfg(not(feature = "check-only"))]
+ let source_bytes =
+ include_bytes!(concat!(env!("GN_OUT_DIR"), "/gen/bundle/compiler.js"));
+ #[cfg(feature = "check-only")]
+ let source_bytes = vec![];
- unsafe {
- IsolateInit {
- snapshot: Some(deno_buf::from_raw_parts(data.as_ptr(), data.len())),
- init_script: None,
- }
- }
- } else {
- #[cfg(not(feature = "check-only"))]
- let source_bytes =
- include_bytes!(concat!(env!("GN_OUT_DIR"), "/gen/bundle/compiler.js"));
-
- #[cfg(feature = "check-only")]
- let source_bytes = vec![];
+ IsolateInit {
+ snapshot: None,
+ init_script: Some(IsolateInitScript {
+ filename: "gen/bundle/compiler.js".to_string(),
+ source: std::str::from_utf8(source_bytes).unwrap().to_string(),
+ }),
+ }
+ } else {
+ debug!("Deno isolate init with snapshots.");
+ #[cfg(not(feature = "check-only"))]
+ let data =
+ include_bytes!(concat!(env!("GN_OUT_DIR"), "/gen/snapshot_compiler.bin"));
+ #[cfg(feature = "check-only")]
+ let data = vec![];
+ unsafe {
IsolateInit {
- snapshot: None,
- init_script: Some(IsolateInitScript {
- filename: "gen/bundle/compiler.js".to_string(),
- source: std::str::from_utf8(source_bytes).unwrap().to_string(),
- }),
+ snapshot: Some(deno_buf::from_raw_parts(data.as_ptr(), data.len())),
+ init_script: None,
}
}
- } else {
- IsolateInit {
- snapshot: None,
- init_script: None,
- }
}
}