diff --git a/.github/.cspell/project-dictionary.txt b/.github/.cspell/project-dictionary.txt
index 422f712c..644c3ec1 100644
--- a/.github/.cspell/project-dictionary.txt
+++ b/.github/.cspell/project-dictionary.txt
@@ -14,6 +14,7 @@ mcdc
microkernel
MSYSTEM
nextest
+normpath
notcovered
profdata
profraw
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index bcb0939d..d2771ddf 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -40,6 +40,8 @@ jobs:
uses: taiki-e/github-actions/.github/workflows/msrv.yml@main
with:
event_name: ${{ github.event_name }}
+ # MSRV is 1.74 on Windows due to normpath.
+ target: x86_64-unknown-linux-gnu
release-dry-run:
uses: taiki-e/github-actions/.github/workflows/release-dry-run.yml@main
tidy:
diff --git a/Cargo.toml b/Cargo.toml
index 256c1a5f..fb4c4d86 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -24,7 +24,7 @@ pkg-fmt = "tgz"
[dependencies]
anyhow = "1.0.47"
camino = "1.0.5"
-cargo-config2 = "0.1.29"
+cargo-config2 = "0.1.31"
duct = "0.13.1"
fs-err = "3"
glob = "0.3"
@@ -43,9 +43,6 @@ tar = "0.4.40"
termcolor = "1.1.2"
walkdir = "2.2.3"
-[target.'cfg(windows)'.dependencies]
-home = "0.5"
-
[dev-dependencies]
easy-ext = "1"
rustversion = "1"
diff --git a/README.md b/README.md
index eacc4e23..1a920af6 100644
--- a/README.md
+++ b/README.md
@@ -634,7 +634,7 @@ cargo-llvm-cov --json | some-program
cargo +stable install cargo-llvm-cov --locked
```
-Currently, installing cargo-llvm-cov requires rustc 1.73+.
+Currently, installing cargo-llvm-cov requires rustc 1.73+ for non-Windows and rustc 1.74+ for Windows.
cargo-llvm-cov is usually runnable with Cargo versions older than the Rust version
required for installation (e.g., `cargo +1.60 llvm-cov`). Currently, to run
diff --git a/src/env.rs b/src/env.rs
index 89cc7709..3c6ef1ac 100644
--- a/src/env.rs
+++ b/src/env.rs
@@ -1,12 +1,10 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT
pub(crate) use std::env::*;
-use std::{
- ffi::OsString,
- path::{Path, PathBuf},
-};
+use std::ffi::OsString;
use anyhow::Result;
+pub(crate) use cargo_config2::{cargo_home_with_cwd, home_dir, rustup_home_with_cwd};
pub(crate) fn var(key: &str) -> Result