diff options
| author | Joshua Nelson <jnelson@cloudflare.com> | 2022-02-06 19:54:35 -0600 |
|---|---|---|
| committer | Joshua Nelson <jnelson@cloudflare.com> | 2022-02-06 19:54:35 -0600 |
| commit | b5b21507c1a9ce2aa94a5cce6789d2b3281e62b8 (patch) | |
| tree | b82b5b2818703ac5f665f6e9a01c539ef183af8b | |
| parent | 7b43cfc9b25ac4a906bd56d32d3111085dd9e6a1 (diff) | |
| download | rust-b5b21507c1a9ce2aa94a5cce6789d2b3281e62b8.tar.gz rust-b5b21507c1a9ce2aa94a5cce6789d2b3281e62b8.zip | |
Rerun bootstrap's build script when RUSTC changes
Previously, rustbuild would give strange errors if you tried to reuse the same build directory under two names:
```
$ mkdir tmp && cd tmp
$ ../x.py check
Building rustbuild
Finished dev [unoptimized] target(s) in 35.27s
Checking stage0 std artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
^C
$ cd ..
$ mv tmp/build build
$ ./x.py check
Building rustbuild
Compiling bootstrap v0.0.0 (/home/jnelson/rust-lang/rust/src/bootstrap)
Finished dev [unoptimized] target(s) in 11.18s
failed to execute command: "/home/jnelson/rust-lang/rust/tmp/build/x86_64-unknown-linux-gnu/stage0/bin/rustc" "--target" "x86_64-unknown-linux-gnu" "--print" "target-libdir"
error: No such file or directory (os error 2)
```
This fixes the error. Reusing the same build directory is useful if you want to test path-things in
bootstrap itself, without having to recompile it each time.
For good measure, this also reruns the build script when PATH changes.
| -rw-r--r-- | src/bootstrap/build.rs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/bootstrap/build.rs b/src/bootstrap/build.rs index d40b924e0ff..6e39ea00f80 100644 --- a/src/bootstrap/build.rs +++ b/src/bootstrap/build.rs @@ -3,6 +3,8 @@ use std::path::PathBuf; fn main() { println!("cargo:rerun-if-changed=build.rs"); + println!("cargo:rerun-if-env-changed=RUSTC"); + println!("cargo:rerun-if-env-changed=PATH"); println!("cargo:rustc-env=BUILD_TRIPLE={}", env::var("HOST").unwrap()); // This may not be a canonicalized path. |
