From ebbf9fca0d2ab4cdb1ca4241144f59aa97cb8fc0 Mon Sep 17 00:00:00 2001 From: Mike Hommey Date: Tue, 25 Jan 2022 21:51:17 +0000 Subject: [PATCH] Bug 1751839 - Build clang stage 1 as a separate task. r=firefox-build-system-reviewers,andi This allows to start building other toolchains, compiler runtimes, much earlier, since we don't have to wait for a complete 4-stage-optimized compiler to start these, while the output produced by clang is presumably the same whether it's a stage 1 or a stage 4 clang. Differential Revision: https://phabricator.services.mozilla.com/D136844 --- build/build-clang/1stage.json | 4 +++ build/build-clang/skip-stage-1.json | 6 +++++ taskcluster/ci/toolchain/clang.yml | 27 ++++++++++++++++++- taskcluster/ci/toolchain/compiler-rt.yml | 14 +++++----- taskcluster/docker/toolchain-build/Dockerfile | 1 + 5 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 build/build-clang/1stage.json create mode 100644 build/build-clang/skip-stage-1.json diff --git a/build/build-clang/1stage.json b/build/build-clang/1stage.json new file mode 100644 index 000000000000..5fd0aaf1653a --- /dev/null +++ b/build/build-clang/1stage.json @@ -0,0 +1,4 @@ +{ + "stages": "1", + "pgo": false +} diff --git a/build/build-clang/skip-stage-1.json b/build/build-clang/skip-stage-1.json new file mode 100644 index 000000000000..aa1101b13b67 --- /dev/null +++ b/build/build-clang/skip-stage-1.json @@ -0,0 +1,6 @@ +{ + "skip_stages": "1", + "cc": "{MOZ_FETCHES_DIR}/clang/bin/clang", + "cxx": "{MOZ_FETCHES_DIR}/clang/bin/clang++", + "as": "{MOZ_FETCHES_DIR}/clang/bin/clang" +} diff --git a/taskcluster/ci/toolchain/clang.yml b/taskcluster/ci/toolchain/clang.yml index bef43f9620da..13f12cca60cc 100644 --- a/taskcluster/ci/toolchain/clang.yml +++ b/taskcluster/ci/toolchain/clang.yml @@ -101,6 +101,29 @@ linux64-clang-trunk: - linux64-toolchain-sysroot - wasm32-wasi-compiler-rt +linux64-clang-13-stage1: + description: "Clang 13 toolchain build" + treeherder: + symbol: TL(clang13-stage1) + run-on-projects: [trunk] + run: + using: toolchain-script + script: build-clang.sh + arguments: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-13.json' + - 'build/build-clang/1stage.json' + resources: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-13.json' + - 'build/build-clang/1stage.json' + toolchain-alias: + - linux64-clang-toolchain + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-13 + linux64-clang-13: description: "Clang 13 toolchain build" attributes: @@ -114,17 +137,19 @@ linux64-clang-13: arguments: - 'build/build-clang/linux64.json' - 'build/build-clang/clang-13.json' + - 'build/build-clang/skip-stage-1.json' resources: - 'build/build-clang/linux64.json' - 'build/build-clang/clang-13.json' + - 'build/build-clang/skip-stage-1.json' toolchain-alias: - linux64-clang - - linux64-clang-toolchain toolchain-artifact: public/build/clang.tar.zst fetches: fetch: - clang-13 toolchain: + - linux64-clang-13-stage1 - linux64-toolchain-sysroot - wasm32-wasi-compiler-rt-13 diff --git a/taskcluster/ci/toolchain/compiler-rt.yml b/taskcluster/ci/toolchain/compiler-rt.yml index 444872d40449..0fd200bad7bf 100644 --- a/taskcluster/ci/toolchain/compiler-rt.yml +++ b/taskcluster/ci/toolchain/compiler-rt.yml @@ -25,7 +25,7 @@ android-aarch64-compiler-rt-13: fetch: - clang-13 toolchain: - - linux64-clang-13 + - linux64-clang-13-stage1 - linux64-android-ndk-linux-repack android-arm-compiler-rt-13: @@ -42,7 +42,7 @@ android-arm-compiler-rt-13: fetch: - clang-13 toolchain: - - linux64-clang-13 + - linux64-clang-13-stage1 - linux64-android-ndk-linux-repack android-x86-compiler-rt-13: @@ -59,7 +59,7 @@ android-x86-compiler-rt-13: fetch: - clang-13 toolchain: - - linux64-clang-13 + - linux64-clang-13-stage1 - linux64-android-ndk-linux-repack android-x64-compiler-rt-13: @@ -76,7 +76,7 @@ android-x64-compiler-rt-13: fetch: - clang-13 toolchain: - - linux64-clang-13 + - linux64-clang-13-stage1 - linux64-android-ndk-linux-repack linux64-aarch64-compiler-rt-13: @@ -94,7 +94,7 @@ linux64-aarch64-compiler-rt-13: - clang-13 toolchain: - linux64-binutils - - linux64-clang-13 + - linux64-clang-13-stage1 - sysroot-aarch64-linux-gnu macosx64-x64-compiler-rt-13: @@ -109,7 +109,7 @@ macosx64-x64-compiler-rt-13: - clang-13 toolchain: - linux64-cctools-port-clang-13 - - linux64-clang-13 + - linux64-clang-13-stage1 - macosx64-sdk-11.0 macosx64-aarch64-compiler-rt-13: @@ -124,7 +124,7 @@ macosx64-aarch64-compiler-rt-13: - clang-13 toolchain: - linux64-cctools-port-clang-13 - - linux64-clang-13 + - linux64-clang-13-stage1 - macosx64-sdk-11.0 wasm32-wasi-compiler-rt-13: diff --git a/taskcluster/docker/toolchain-build/Dockerfile b/taskcluster/docker/toolchain-build/Dockerfile index 846926c26918..0c0375e815d8 100644 --- a/taskcluster/docker/toolchain-build/Dockerfile +++ b/taskcluster/docker/toolchain-build/Dockerfile @@ -30,6 +30,7 @@ RUN apt-get update && \ libssl-dev \ libtool \ libucl-dev \ + libxml2-dev \ ninja-build \ openssh-client \ p7zip-full \