about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-10-30 14:13:42 +0000
committerbors <bors@rust-lang.org>2022-10-30 14:13:42 +0000
commit5ab74459b86465e751fc8f6fa9934687423ce2a6 (patch)
treee6fda540bb3ced6e22d1e8ed7cd5becfb2920061
parentfab0432952b24df769459d4c973dbb8d08561a83 (diff)
parent354e95ac62333102465426a772852bf62443192d (diff)
downloadrust-5ab74459b86465e751fc8f6fa9934687423ce2a6.tar.gz
rust-5ab74459b86465e751fc8f6fa9934687423ce2a6.zip
Auto merge of #103295 - ishitatsuyuki:ninja, r=cuviper
ci: Bring back ninja for dist builders

The primary reason for this is that make can result in a substantial under utilization of parallelism (noticed while testing on a workstation), mostly due to the submake structure preventing good dependency tracking and scheduling.

In f758c7b2a78 (Debian 6 doesn't have ninja, so use make for the dist builds) llvm.ninja was disabled due to lack of distro package. This is no longer the case with the CentOS 7 base, so bring ninja back for a performance boost.
-rw-r--r--src/ci/docker/host-x86_64/dist-i686-linux/Dockerfile2
-rw-r--r--src/ci/docker/host-x86_64/dist-x86_64-linux/Dockerfile2
-rwxr-xr-xsrc/ci/docker/host-x86_64/dist-x86_64-linux/build-clang.sh5
3 files changed, 5 insertions, 4 deletions
diff --git a/src/ci/docker/host-x86_64/dist-i686-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-i686-linux/Dockerfile
index cd86d9fb584..bff3f8f2192 100644
--- a/src/ci/docker/host-x86_64/dist-i686-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-i686-linux/Dockerfile
@@ -23,6 +23,7 @@ RUN yum upgrade -y && \
       libstdc++-devel.x86_64 \
       make \
       ncurses-devel \
+      ninja-build \
       openssl-devel \
       patch \
       perl \
@@ -64,7 +65,6 @@ ENV RUST_CONFIGURE_ARGS \
       --enable-profiler \
       --set target.i686-unknown-linux-gnu.linker=clang \
       --build=i686-unknown-linux-gnu \
-      --set llvm.ninja=false \
       --set rust.jemalloc
 ENV SCRIPT python3 ../x.py dist --build $HOSTS --host $HOSTS --target $HOSTS
 ENV CARGO_TARGET_I686_UNKNOWN_LINUX_GNU_LINKER=clang
diff --git a/src/ci/docker/host-x86_64/dist-x86_64-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-x86_64-linux/Dockerfile
index 423aba06cca..6fdf05aebd6 100644
--- a/src/ci/docker/host-x86_64/dist-x86_64-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-x86_64-linux/Dockerfile
@@ -23,6 +23,7 @@ RUN yum upgrade -y && \
       libstdc++-devel.x86_64 \
       make \
       ncurses-devel \
+      ninja-build \
       openssl-devel \
       patch \
       perl \
@@ -76,7 +77,6 @@ ENV RUST_CONFIGURE_ARGS \
       --set target.x86_64-unknown-linux-gnu.ar=/rustroot/bin/llvm-ar \
       --set target.x86_64-unknown-linux-gnu.ranlib=/rustroot/bin/llvm-ranlib \
       --set llvm.thin-lto=true \
-      --set llvm.ninja=false \
       --set rust.jemalloc \
       --set rust.use-lld=true \
       --set rust.lto=thin
diff --git a/src/ci/docker/host-x86_64/dist-x86_64-linux/build-clang.sh b/src/ci/docker/host-x86_64/dist-x86_64-linux/build-clang.sh
index 9abfd4e9731..15ab3e5bd6e 100755
--- a/src/ci/docker/host-x86_64/dist-x86_64-linux/build-clang.sh
+++ b/src/ci/docker/host-x86_64/dist-x86_64-linux/build-clang.sh
@@ -25,6 +25,7 @@ INC="/rustroot/include:/usr/include"
 # disable them. BOLT is used for optimizing LLVM.
 hide_output \
     cmake ../llvm \
+      -GNinja \
       -DCMAKE_C_COMPILER=/rustroot/bin/gcc \
       -DCMAKE_CXX_COMPILER=/rustroot/bin/g++ \
       -DCMAKE_BUILD_TYPE=Release \
@@ -39,8 +40,8 @@ hide_output \
       -DLLVM_ENABLE_PROJECTS="clang;lld;compiler-rt;bolt" \
       -DC_INCLUDE_DIRS="$INC"
 
-hide_output make -j$(nproc)
-hide_output make install
+hide_output ninja
+hide_output ninja install
 
 cd ../..
 rm -rf llvm-project