File tree Expand file tree Collapse file tree 4 files changed +15
-17
lines changed Expand file tree Collapse file tree 4 files changed +15
-17
lines changed Original file line number Diff line number Diff line change 5454 # contains package information of crates installed via `cargo install`.
5555 ~/.cargo/.crates.toml
5656 ~/.cargo/.crates2.json
57- key : ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
58- restore-keys : ${{ runner.os }}-cargo
57+ key : ${{ runner.os }}-cargo-reset20230315- ${{ hashFiles('**/Cargo.lock') }}
58+ restore-keys : ${{ runner.os }}-cargo-reset20230315
5959
6060 - name : Install rustup-toolchain-install-master
6161 if : ${{ steps.cache.outputs.cache-hit != 'true' }}
@@ -106,8 +106,8 @@ jobs:
106106 # contains package information of crates installed via `cargo install`.
107107 ~/.cargo/.crates.toml
108108 ~/.cargo/.crates2.json
109- key : ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
110- restore-keys : ${{ runner.os }}-cargo
109+ key : ${{ runner.os }}-cargo-reset20230315- ${{ hashFiles('**/Cargo.lock') }}
110+ restore-keys : ${{ runner.os }}-cargo-reset20230315
111111
112112 - name : Install rustup-toolchain-install-master
113113 if : ${{ steps.cache.outputs.cache-hit != 'true' }}
Original file line number Diff line number Diff line change @@ -129,18 +129,15 @@ development version of Miri using
129129./miri install
130130```
131131
132- and then you can use it as if it was installed by ` rustup ` . Make sure you use
133- the same toolchain when calling ` cargo miri` that you used when installing Miri!
134- Usually this means you have to write ` cargo +miri miri ... ` to select the ` miri `
135- toolchain that was installed by ` ./miri toolchain ` .
132+ and then you can use it as if it was installed by ` rustup ` as a component of the
133+ ` miri ` toolchain. Note that the ` miri ` and ` cargo-miri ` executables are placed
134+ in the ` miri ` toolchain's sysroot to prevent conflicts with other toolchains.
135+ The Miri binaries in the ` cargo ` bin directory (usually ` ~/.cargo/bin ` ) are managed by rustup .
136136
137137There's a test for the cargo wrapper in the ` test-cargo-miri ` directory; run
138138` ./run-test.py ` in there to execute it. Like ` ./miri test ` , this respects the
139139` MIRI_TEST_TARGET ` environment variable to execute the test for another target.
140140
141- Note that installing Miri like this will "take away" Miri management from ` rustup ` .
142- If you want to later go back to a rustup-installed Miri, run ` rustup update ` .
143-
144141### Using a modified standard library
145142
146143Miri re-builds the standard library into a custom sysroot, so it is fairly easy
Original file line number Diff line number Diff line change @@ -62,8 +62,8 @@ function run_tests {
6262 if [ " $HOST_TARGET " = x86_64-unknown-linux-gnu ]; then
6363 # These act up on Windows (`which miri` produces a filename that does not exist?!?),
6464 # so let's do this only on Linux. Also makes sure things work without these set.
65- export RUSTC=$( which rustc)
66- export MIRI=$( which miri)
65+ export RUSTC=$( which rustc) # Produces a warning unless we also set MIRI
66+ export MIRI=$( rustc + miri --print sysroot ) /bin/miri
6767 fi
6868 mkdir -p .cargo
6969 echo ' build.rustc-wrapper = "thisdoesnotexist"' > .cargo/config.toml
Original file line number Diff line number Diff line change @@ -6,8 +6,8 @@ USAGE=$(cat <<"EOF"
66./miri install <flags>:
77Installs the miri driver and cargo-miri. <flags> are passed to `cargo
88install`. Sets up the rpath such that the installed binary should work in any
9- working directory. However, the rustup toolchain when invoking `cargo miri`
10- needs to be the same one used for `./miri install` .
9+ working directory. Note that the binaries are placed in the ` miri` toolchain
10+ sysroot, to prevent conflicts with other toolchains .
1111
1212./miri build <flags>:
1313Just build miri. <flags> are passed to `cargo build`.
@@ -281,8 +281,9 @@ find_sysroot() {
281281case " $COMMAND " in
282282install)
283283 # "--locked" to respect the Cargo.lock file if it exists.
284- $CARGO install $CARGO_EXTRA_FLAGS --path " $MIRIDIR " --force --locked " $@ "
285- $CARGO install $CARGO_EXTRA_FLAGS --path " $MIRIDIR " /cargo-miri --force --locked " $@ "
284+ # Install binaries to the miri toolchain's sysroot so they do not interact with other toolchains.
285+ $CARGO install $CARGO_EXTRA_FLAGS --path " $MIRIDIR " --force --locked --root " $SYSROOT " " $@ "
286+ $CARGO install $CARGO_EXTRA_FLAGS --path " $MIRIDIR " /cargo-miri --force --locked --root " $SYSROOT " " $@ "
286287 ;;
287288check)
288289 # Check, and let caller control flags.
You can’t perform that action at this time.
0 commit comments