about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2014-10-29 19:54:52 -0700
committerBrian Anderson <banderson@mozilla.com>2014-10-29 19:54:52 -0700
commitb8e7c4fcb9655ff92f8f2feba4ba4221646acc6f (patch)
treeb822e1fb20c0bb7cc4b3892ef65fa488447ff832
parent77f44d4a7bf14805fda5fc41310a6aeffda30fd4 (diff)
downloadrust-b8e7c4fcb9655ff92f8f2feba4ba4221646acc6f.tar.gz
rust-b8e7c4fcb9655ff92f8f2feba4ba4221646acc6f.zip
mk: Clean just one llvm build at a time. Closes #17852
When building for multiple targets, the initial 'make' invocation
always fails. The missing build stamp causes clean-llvm to be
invoked, but clean-llvm cleans *all* llvm builds. So what happens
is that 1) all llvm's are cleaned (a no-op), 2) llvm-${target1}
builds, 3) all llvm's are cleaned (deleting llvm-${target1}),
4) llvm-${target2} is built, 5) the remaining build for ${target1}
fails because llvm does not exist.

This makes the clean operation only clean the correct llvm build.
Should greatly reduce bot failures.
-rw-r--r--mk/llvm.mk2
1 files changed, 1 insertions, 1 deletions
diff --git a/mk/llvm.mk b/mk/llvm.mk
index 177e4de3103..bce43902056 100644
--- a/mk/llvm.mk
+++ b/mk/llvm.mk
@@ -38,7 +38,7 @@ endif
 # the stamp in the source dir.
 $$(LLVM_STAMP_$(1)): $(S)src/rustllvm/llvm-auto-clean-trigger
 	@$$(call E, make: cleaning llvm)
-	$(Q)$(MAKE) clean-llvm
+	$(Q)$(MAKE) clean-llvm$(1)
 	@$$(call E, make: done cleaning llvm)
 	touch $$@