#
# ./rustup-toolchain $COMMIT: Update "miri" toolchain and `rust-version` file to match that commit.
+# Make sure rustup-toolchain-install-master is installed.
+if ! which rustup-toolchain-install-master >/dev/null; then
+ echo "Please install rustup-toolchain-install-master by running 'cargo install rustup-toolchain-install-master'"
+ exit 1
+fi
+
# Determine new commit.
if [[ "$1" == "" ]]; then
NEW_COMMIT=$(cat rust-version)
echo "$NEW_COMMIT" > rust-version
# Check if we already are at that commit.
-CUR_COMMIT=$(rustc +miri --version -v | egrep "^commit-hash: " | cut -d " " -f 2)
+CUR_COMMIT=$(rustc +miri --version -v 2>/dev/null | egrep "^commit-hash: " | cut -d " " -f 2)
if [[ "$CUR_COMMIT" == "$NEW_COMMIT" ]]; then
echo "miri toolchain is already at commit $CUR_COMMIT."
rustup override set miri
exit 0
fi
-# Cleanup.
-cargo +nightly clean # Use nightly cargo as miri toolchain might be broken.
-rustup toolchain uninstall miri
-
# Install and setup new toolchain.
-rustup-toolchain-install-master -n miri -c rust-src -c rustc-dev -- "$NEW_COMMIT"
+rustup toolchain uninstall miri
+rustup-toolchain-install-master -n miri -c rust-src -c rustc-dev -c llvm-tools -- "$NEW_COMMIT"
rustup override set miri
+
+# Cleanup.
+cargo clean