Bug 1414558 - Build Clang toolchain on a Docker volume; r?Build
Before, the build root was not in a Docker cache or volume. With
current Docker works, that meant AUFS. We know AUFS is slow under
I/O load and can cause random failures due to missing data after
writes.
This commit changes the build root to a known Docker volume, which
will be backed by EXT4 and won't have the problems of AUFS.
MozReview-Commit-ID: 6WOH0yednAv
--- a/build/build-clang/build-clang.py
+++ b/build/build-clang/build-clang.py
@@ -318,19 +318,19 @@ def prune_final_dir_for_clang_tidy(final
for f in glob.glob("%s/share/clang/*" % final_dir):
if re_clang_tidy.search(os.path.basename(f)) is None:
delete(f)
if __name__ == "__main__":
# The directories end up in the debug info, so the easy way of getting
# a reproducible build is to run it in a know absolute directory.
- # We use a directory in /builds/slave because the mozilla infrastructure
- # cleans it up automatically.
- base_dir = "/builds/slave/moz-toolchain"
+ # We use a directory that is registered as a volume in the Docker image.
+ base_dir = "/builds/worker/workspace/moz-toolchain"
+
if is_windows():
# TODO: Because Windows taskcluster builds are run with distinct
# user IDs for each job, we can't store things in some globally
# accessible directory: one job will run, checkout LLVM to that
# directory, and then if another job runs, the new user won't be
# able to access the previously-checked out code--or be able to
# delete it. So on Windows, we build in the task-specific home
# directory; we will eventually add -fdebug-prefix-map options