[packages/rust] - patch to disable miri build by default (nightly only tool, not meant for stable)

qboosh qboosh at pld-linux.org
Sun Oct 4 08:12:14 CEST 2020


commit 91aaab500bbdd31bb966a87a655a6b86bceedf38
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun Oct 4 08:15:15 2020 +0200

    - patch to disable miri build by default (nightly only tool, not meant for stable)

 rust-no-miri.patch | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 91 insertions(+)
---
diff --git a/rust-no-miri.patch b/rust-no-miri.patch
new file mode 100644
index 0000000..3e3619c
--- /dev/null
+++ b/rust-no-miri.patch
@@ -0,0 +1,91 @@
+From 416b010f4087d055febe2d55919f74e261ca8cd6 Mon Sep 17 00:00:00 2001
+From: Ralf Jung <post at ralfj.de>
+Date: Thu, 11 Jun 2020 09:25:06 +0200
+Subject: [PATCH] x.py: do not build Miri by default
+
+---
+ src/bootstrap/builder.rs |  2 ++
+ src/bootstrap/tool.rs    | 30 ++++++++++++++++++------------
+ 2 files changed, 20 insertions(+), 12 deletions(-)
+
+diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
+index ffdd8485181f4..c4f29927cf4a8 100644
+--- a/src/bootstrap/builder.rs
++++ b/src/bootstrap/builder.rs
+@@ -52,6 +52,8 @@ pub trait Step: 'static + Clone + Debug + PartialEq + Eq + Hash {
+     /// it's been assembled.
+     type Output: Clone;
+ 
++    /// Whether this step is run by default as part of its respective phase.
++    /// `true` here can still be overwritten by `should_run` calling `default_condition`.
+     const DEFAULT: bool = false;
+ 
+     /// If true, then this rule should be skipped if --target was specified, but --host was not
+diff --git a/src/bootstrap/tool.rs b/src/bootstrap/tool.rs
+index 6cd9f9029c948..9c95de0a81eae 100644
+--- a/src/bootstrap/tool.rs
++++ b/src/bootstrap/tool.rs
+@@ -595,6 +595,7 @@ macro_rules! tool_extended {
+        $toolstate:ident,
+        $path:expr,
+        $tool_name:expr,
++       stable = $stable:expr,
+        $extra_deps:block;)+) => {
+         $(
+             #[derive(Debug, Clone, Hash, PartialEq, Eq)]
+@@ -606,17 +607,22 @@ macro_rules! tool_extended {
+ 
+         impl Step for $name {
+             type Output = Option<PathBuf>;
+-            const DEFAULT: bool = true;
++            const DEFAULT: bool = true; // Overwritten below
+             const ONLY_HOSTS: bool = true;
+ 
+             fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
+                 let builder = run.builder;
+                 run.path($path).default_condition(
+                     builder.config.extended
+-                        && builder.config.tools.as_ref().map_or(true, |tools| {
+-                            tools.iter().any(|tool| match tool.as_ref() {
+-                                "clippy" => $tool_name == "clippy-driver",
+-                                x => $tool_name == x,
++                        && builder.config.tools.as_ref().map_or(
++                            // By default, on nightly/dev enable all tools, else only
++                            // build stable tools.
++                            $stable || builder.build.unstable_features(),
++                            // If `tools` is set, search list for this tool.
++                            |tools| {
++                                tools.iter().any(|tool| match tool.as_ref() {
++                                    "clippy" => $tool_name == "clippy-driver",
++                                    x => $tool_name == x,
+                             })
+                         }),
+                 )
+@@ -652,12 +658,12 @@ macro_rules! tool_extended {
+ // Note: tools need to be also added to `Builder::get_step_descriptions` in `build.rs`
+ // to make `./x.py build <tool>` work.
+ tool_extended!((self, builder),
+-    Cargofmt, rustfmt, "src/tools/rustfmt", "cargo-fmt", {};
+-    CargoClippy, clippy, "src/tools/clippy", "cargo-clippy", {};
+-    Clippy, clippy, "src/tools/clippy", "clippy-driver", {};
+-    Miri, miri, "src/tools/miri", "miri", {};
+-    CargoMiri, miri, "src/tools/miri/cargo-miri", "cargo-miri", {};
+-    Rls, rls, "src/tools/rls", "rls", {
++    Cargofmt, rustfmt, "src/tools/rustfmt", "cargo-fmt", stable=true, {};
++    CargoClippy, clippy, "src/tools/clippy", "cargo-clippy", stable=true, {};
++    Clippy, clippy, "src/tools/clippy", "clippy-driver", stable=true, {};
++    Miri, miri, "src/tools/miri", "miri", stable=false, {};
++    CargoMiri, miri, "src/tools/miri/cargo-miri", "cargo-miri", stable=false, {};
++    Rls, rls, "src/tools/rls", "rls", stable=true, {
+         builder.ensure(Clippy {
+             compiler: self.compiler,
+             target: self.target,
+@@ -665,7 +671,7 @@ tool_extended!((self, builder),
+         });
+         self.extra_features.push("clippy".to_owned());
+     };
+-    Rustfmt, rustfmt, "src/tools/rustfmt", "rustfmt", {};
++    Rustfmt, rustfmt, "src/tools/rustfmt", "rustfmt", stable=true, {};
+ );
+ 
+ impl<'a> Builder<'a> {
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/rust.git/commitdiff/91aaab500bbdd31bb966a87a655a6b86bceedf38



More information about the pld-cvs-commit mailing list