From c194e009149887421f3a5f27914d215ed770adaa Mon Sep 17 00:00:00 2001 From: Bastien Orivel Date: Thu, 20 Dec 2018 21:43:26 +0100 Subject: [PATCH] Disable gaol on aarch64 --- components/constellation/Cargo.toml | 2 +- components/constellation/lib.rs | 16 ++++++++++++-- components/constellation/pipeline.rs | 14 ++++++++++-- components/servo/Cargo.toml | 2 +- components/servo/lib.rs | 32 ++++++++++++++++++++++++---- 5 files changed, 56 insertions(+), 10 deletions(-) diff --git a/components/constellation/Cargo.toml b/components/constellation/Cargo.toml index c57c05880b4d..795a1c5921e7 100644 --- a/components/constellation/Cargo.toml +++ b/components/constellation/Cargo.toml @@ -45,5 +45,5 @@ servo_url = {path = "../url"} webvr_traits = {path = "../webvr_traits"} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]} -[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os="android"), not(target_arch="arm")))'.dependencies] +[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os="android"), not(target_arch="arm"), not(target_arch="aarch64")))'.dependencies] gaol = {git = "https://github.com/servo/gaol"} diff --git a/components/constellation/lib.rs b/components/constellation/lib.rs index 4b055c278464..2beee10e78d1 100644 --- a/components/constellation/lib.rs +++ b/components/constellation/lib.rs @@ -17,7 +17,13 @@ mod constellation; mod event_loop; mod network_listener; mod pipeline; -#[cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os = "android"), not(target_arch="arm")))] +#[cfg(all( + not(target_os = "windows"), + not(target_os = "ios"), + not(target_os = "android"), + not(target_arch = "arm"), + not(target_arch = "aarch64") +))] mod sandboxing; mod session_history; mod timer_scheduler; @@ -26,5 +32,11 @@ pub use crate::constellation::{ Constellation, FromCompositorLogger, FromScriptLogger, InitialConstellationState, }; pub use crate::pipeline::UnprivilegedPipelineContent; -#[cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os = "android"), not(target_arch="arm")))] +#[cfg(all( + not(target_os = "windows"), + not(target_os = "ios"), + not(target_os = "android"), + not(target_arch = "arm"), + not(target_arch = "aarch64") +))] pub use crate::sandboxing::content_process_sandbox_profile; diff --git a/components/constellation/pipeline.rs b/components/constellation/pipeline.rs index df805d20cce5..589b4e6f5216 100644 --- a/components/constellation/pipeline.rs +++ b/components/constellation/pipeline.rs @@ -571,7 +571,11 @@ impl UnprivilegedPipelineContent { } } - #[cfg(any(target_os = "android", target_arch="arm"))] + #[cfg(any( + target_os = "android", + target_arch = "arm", + target_arch = "aarch64" + ))] pub fn spawn_multiprocess(self) -> Result<(), Error> { use ipc_channel::ipc::IpcOneShotServer; // Note that this function can panic, due to process creation, @@ -593,7 +597,13 @@ impl UnprivilegedPipelineContent { Ok(()) } - #[cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os = "android"), not(target_arch="arm")))] + #[cfg(all( + not(target_os = "windows"), + not(target_os = "ios"), + not(target_os = "android"), + not(target_arch = "arm"), + not(target_arch = "aarch64") + ))] pub fn spawn_multiprocess(self) -> Result<(), Error> { use crate::sandboxing::content_process_sandbox_profile; use gaol::sandbox::{self, Sandbox, SandboxMethods}; diff --git a/components/servo/Cargo.toml b/components/servo/Cargo.toml index 54910ed5c4e3..83003bc6a1fe 100644 --- a/components/servo/Cargo.toml +++ b/components/servo/Cargo.toml @@ -71,5 +71,5 @@ webdriver_server = {path = "../webdriver_server", optional = true} webvr = {path = "../webvr"} webvr_traits = {path = "../webvr_traits"} -[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os="android"), not(target_arch="arm")))'.dependencies] +[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os="android"), not(target_arch="arm"), not(target_arch="aarch64")))'.dependencies] gaol = {git = "https://github.com/servo/gaol"} diff --git a/components/servo/lib.rs b/components/servo/lib.rs index 42f9b3a4698d..1ec91142aa68 100644 --- a/components/servo/lib.rs +++ b/components/servo/lib.rs @@ -68,14 +68,26 @@ use canvas::webgl_thread::WebGLThreads; use compositing::compositor_thread::{CompositorProxy, CompositorReceiver, InitialCompositorState}; use compositing::windowing::{WindowEvent, WindowMethods}; use compositing::{IOCompositor, RenderNotifier, ShutdownState}; -#[cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os = "android"), not(target_arch="arm")))] +#[cfg(all( + not(target_os = "windows"), + not(target_os = "ios"), + not(target_os = "android"), + not(target_arch = "arm"), + not(target_arch = "aarch64") +))] use constellation::content_process_sandbox_profile; use constellation::{Constellation, InitialConstellationState, UnprivilegedPipelineContent}; use constellation::{FromCompositorLogger, FromScriptLogger}; use crossbeam_channel::{unbounded, Sender}; use embedder_traits::{EmbedderMsg, EmbedderProxy, EmbedderReceiver, EventLoopWaker}; use env_logger::Builder as EnvLoggerBuilder; -#[cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os = "android"), not(target_arch="arm")))] +#[cfg(all( + not(target_os = "windows"), + not(target_os = "ios"), + not(target_os = "android"), + not(target_arch = "arm"), + not(target_arch = "aarch64") +))] use gaol::sandbox::{ChildSandbox, ChildSandboxMethods}; use gfx::font_cache_thread::FontCacheThread; use ipc_channel::ipc::{self, IpcSender}; @@ -661,14 +673,26 @@ pub fn run_content_process(token: String) { ); } -#[cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os = "android"), not(target_arch="arm")))] +#[cfg(all( + not(target_os = "windows"), + not(target_os = "ios"), + not(target_os = "android"), + not(target_arch = "arm"), + not(target_arch = "aarch64") +))] fn create_sandbox() { ChildSandbox::new(content_process_sandbox_profile()) .activate() .expect("Failed to activate sandbox!"); } -#[cfg(any(target_os = "windows", target_os = "ios", target_os = "android", target_arch="arm"))] +#[cfg(any( + target_os = "windows", + target_os = "ios", + target_os = "android", + target_arch = "arm", + target_arch = "aarch64" +))] fn create_sandbox() { panic!("Sandboxing is not supported on Windows, iOS, ARM targets and android."); }