Skip to content

Commit 602f6b6

Browse files
committed
Revert "Check if rust-src contains a vendor dir, and patch it in"
This reverts commit eadb4fc.
1 parent 0fd4d96 commit 602f6b6

File tree

15 files changed

+72
-188
lines changed

15 files changed

+72
-188
lines changed

src/cargo/core/compiler/standard_lib.rs

Lines changed: 16 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ use crate::ops::{self, Packages};
1010
use crate::util::errors::CargoResult;
1111
use std::collections::{HashMap, HashSet};
1212
use std::env;
13-
use std::fs;
1413
use std::path::PathBuf;
1514

1615
/// Parse the `-Zbuild-std` flag.
@@ -39,46 +38,28 @@ pub fn resolve_std<'cfg>(
3938
crates: &[String],
4039
) -> CargoResult<(PackageSet<'cfg>, Resolve, ResolvedFeatures)> {
4140
let src_path = detect_sysroot_src_path(target_data)?;
42-
43-
// Special std packages should be pulled from `library/` and should be
44-
// prefixed with `rustc-std-workspace-` in certain places.
45-
let libs_prefix = "library/";
46-
let special_std_prefix = "rustc-std-workspace-";
47-
let libs_path = src_path.join(libs_prefix);
48-
49-
// Crates in rust-src to build. libtest is in some sense the "root" package
50-
// of std, as nothing else depends on it, so it must be explicitly added.
51-
let mut members = vec![format!("{}test", libs_prefix)];
52-
53-
// If rust-src contains a "vendor" directory, then patch in all the crates it contains.
54-
let vendor_path = src_path.join("vendor");
55-
let vendor_dir = fs::read_dir(vendor_path)?;
56-
let patches = vendor_dir
57-
.into_iter()
58-
.map(|entry| {
59-
let entry = entry?;
60-
let name = entry
61-
.file_name()
62-
.into_string()
63-
.map_err(|_| anyhow::anyhow!("package name wasn't utf8"))?;
64-
65-
// Remap the rustc-std-workspace crates to the actual rust-src libraries
66-
let path = if let Some(real_name) = name.strip_prefix(special_std_prefix) {
67-
// Record this crate as something to build in the workspace
68-
members.push(format!("{}{}", libs_prefix, real_name));
69-
libs_path.join(&name)
70-
} else {
71-
entry.path()
72-
};
73-
let source_path = SourceId::for_path(&path)?;
74-
let dep = Dependency::parse_no_deprecated(&name, None, source_path)?;
41+
let to_patch = [
42+
"rustc-std-workspace-core",
43+
"rustc-std-workspace-alloc",
44+
"rustc-std-workspace-std",
45+
];
46+
let patches = to_patch
47+
.iter()
48+
.map(|&name| {
49+
let source_path = SourceId::for_path(&src_path.join("library").join(name))?;
50+
let dep = Dependency::parse_no_deprecated(name, None, source_path)?;
7551
Ok(dep)
7652
})
7753
.collect::<CargoResult<Vec<_>>>()?;
78-
7954
let crates_io_url = crate::sources::CRATES_IO_INDEX.parse().unwrap();
8055
let mut patch = HashMap::new();
8156
patch.insert(crates_io_url, patches);
57+
let members = vec![
58+
String::from("library/std"),
59+
String::from("library/core"),
60+
String::from("library/alloc"),
61+
String::from("library/test"),
62+
];
8263
let ws_config = crate::core::WorkspaceConfig::Root(crate::core::WorkspaceRootConfig::new(
8364
&src_path,
8465
&Some(members),

tests/testsuite/mock-std/library/test/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ std = { path = "../std" }
1010
panic_unwind = { path = "../panic_unwind" }
1111
compiler_builtins = { path = "../compiler_builtins" }
1212
registry-dep-using-std = { version = "*", features = ['mockbuild'] }
13-
registry-dep-only-used-by-test = { version = "*" }
1413

1514
[features]
1615
panic-unwind = []

tests/testsuite/mock-std/library/test/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,4 @@ extern crate test;
77
pub use test::*;
88

99
pub fn custom_api() {
10-
registry_dep_only_used_by_test::wow_testing_is_so_easy();
1110
}

tests/testsuite/mock-std/vendor/registry-dep-only-used-by-test/Cargo.toml

Lines changed: 0 additions & 9 deletions
This file was deleted.

tests/testsuite/mock-std/vendor/registry-dep-only-used-by-test/src/lib.rs

Lines changed: 0 additions & 2 deletions
This file was deleted.

tests/testsuite/mock-std/vendor/registry-dep-using-alloc/Cargo.toml

Lines changed: 0 additions & 12 deletions
This file was deleted.

tests/testsuite/mock-std/vendor/registry-dep-using-alloc/src/lib.rs

Lines changed: 0 additions & 9 deletions
This file was deleted.

tests/testsuite/mock-std/vendor/registry-dep-using-core/Cargo.toml

Lines changed: 0 additions & 11 deletions
This file was deleted.

tests/testsuite/mock-std/vendor/registry-dep-using-core/src/lib.rs

Lines changed: 0 additions & 8 deletions
This file was deleted.

tests/testsuite/mock-std/vendor/registry-dep-using-std/Cargo.toml

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)