From 80112820fdb887eaff93a811e33e985e0c93c36a Mon Sep 17 00:00:00 2001 From: hyd-dev Date: Sun, 14 Feb 2021 02:02:21 +0800 Subject: [PATCH] [cargo-miri] Don't skip `rlib` crates --- cargo-miri/bin.rs | 13 +++++-------- test-cargo-miri/Cargo.lock | 7 +++++++ test-cargo-miri/Cargo.toml | 1 + test-cargo-miri/rlib-dep/Cargo.toml | 8 ++++++++ test-cargo-miri/rlib-dep/src/lib.rs | 3 +++ test-cargo-miri/src/lib.rs | 2 +- 6 files changed, 25 insertions(+), 9 deletions(-) create mode 100644 test-cargo-miri/rlib-dep/Cargo.toml create mode 100644 test-cargo-miri/rlib-dep/src/lib.rs diff --git a/cargo-miri/bin.rs b/cargo-miri/bin.rs index 21a6b68c619..f38e79732b2 100644 --- a/cargo-miri/bin.rs +++ b/cargo-miri/bin.rs @@ -596,16 +596,13 @@ fn phase_cargo_rustc(args: env::Args) { let target_crate = is_target_crate(); let print = get_arg_flag_value("--print").is_some(); // whether this is cargo passing `--print` to get some infos - // rlib and cdylib are just skipped, we cannot interpret them and do not need them + // cdylib is just skipped, we cannot interpret it and do not need it // for the rest of the build either. - match get_arg_flag_value("--crate-type").as_deref() { - Some("rlib") | Some("cdylib") => { - if verbose { - eprint!("[cargo-miri rustc] (rlib/cdylib skipped)"); - } - return; + if get_arg_flag_value("--crate-type").as_deref() == Some("cdylib") { + if verbose { + eprint!("[cargo-miri rustc] (cdylib skipped)"); } - _ => {}, + return; } let store_json = |info: CrateRunInfo| { diff --git a/test-cargo-miri/Cargo.lock b/test-cargo-miri/Cargo.lock index e02439df5d5..84b69f57333 100644 --- a/test-cargo-miri/Cargo.lock +++ b/test-cargo-miri/Cargo.lock @@ -1,5 +1,7 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "byteorder" version = "1.3.4" @@ -13,6 +15,7 @@ dependencies = [ "byteorder", "issue_1567", "rand", + "rlib-dep", "serde_derive", ] @@ -140,6 +143,10 @@ dependencies = [ "rand_core", ] +[[package]] +name = "rlib-dep" +version = "0.1.0" + [[package]] name = "serde_derive" version = "1.0.118" diff --git a/test-cargo-miri/Cargo.toml b/test-cargo-miri/Cargo.toml index 1613f067ed3..ab44f6b304a 100644 --- a/test-cargo-miri/Cargo.toml +++ b/test-cargo-miri/Cargo.toml @@ -9,6 +9,7 @@ edition = "2018" [dependencies] byteorder = "1.0" +rlib-dep.path = "rlib-dep" issue_1567 = { path ="issue-1567" } [dev-dependencies] diff --git a/test-cargo-miri/rlib-dep/Cargo.toml b/test-cargo-miri/rlib-dep/Cargo.toml new file mode 100644 index 00000000000..c12653e9c83 --- /dev/null +++ b/test-cargo-miri/rlib-dep/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "rlib-dep" +version = "0.1.0" +authors = ["Miri Team"] +edition = "2018" + +[lib] +crate-type = ["rlib"] diff --git a/test-cargo-miri/rlib-dep/src/lib.rs b/test-cargo-miri/rlib-dep/src/lib.rs new file mode 100644 index 00000000000..efde2b58e19 --- /dev/null +++ b/test-cargo-miri/rlib-dep/src/lib.rs @@ -0,0 +1,3 @@ +pub fn use_me() -> bool { + true +} diff --git a/test-cargo-miri/src/lib.rs b/test-cargo-miri/src/lib.rs index 4e2c8b572c7..46d76bce127 100644 --- a/test-cargo-miri/src/lib.rs +++ b/test-cargo-miri/src/lib.rs @@ -3,5 +3,5 @@ /// assert!(cargo_miri_test::make_true()); /// ``` pub fn make_true() -> bool { - true + rlib_dep::use_me() }