about summary refs log tree commit diff
path: root/src/ci/docker
diff options
context:
space:
mode:
authorPetr Hosek <phosek@google.com>2017-09-21 15:36:05 -0700
committerJames Tucker <jftucker@gmail.com>2017-09-24 13:55:55 -0700
commit1fdbfa9930d87ed90c77eb2adc4a6f5cce92122d (patch)
tree529c22fa2d07cf1924097588371b3f315f4dad2b /src/ci/docker
parent0ef87cc109bcec982fd86edad5b1ee4cf929eed3 (diff)
downloadrust-1fdbfa9930d87ed90c77eb2adc4a6f5cce92122d.tar.gz
rust-1fdbfa9930d87ed90c77eb2adc4a6f5cce92122d.zip
Use Zircon's Clang rather than building our own
This toolchain is already used to build Zircon itself and is the
official Clang toolchain used by all Fuchsia developers.
Diffstat (limited to 'src/ci/docker')
-rw-r--r--src/ci/docker/dist-fuchsia/Dockerfile9
-rwxr-xr-xsrc/ci/docker/dist-fuchsia/build-toolchain.sh67
2 files changed, 19 insertions, 57 deletions
diff --git a/src/ci/docker/dist-fuchsia/Dockerfile b/src/ci/docker/dist-fuchsia/Dockerfile
index f0bd74be369..6f35a53c8ad 100644
--- a/src/ci/docker/dist-fuchsia/Dockerfile
+++ b/src/ci/docker/dist-fuchsia/Dockerfile
@@ -3,7 +3,6 @@ FROM ubuntu:16.04
 RUN apt-get update && apt-get install -y --no-install-recommends \
   g++ \
   make \
-  ninja-build \
   file \
   curl \
   ca-certificates \
@@ -11,16 +10,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
   git \
   sudo \
   bzip2 \
-  xz-utils \
-  swig \
-  libedit-dev \
-  libncurses5-dev \
-  patch \
   unzip
 
-RUN curl -L https://cmake.org/files/v3.9/cmake-3.9.2-Linux-x86_64.tar.gz | \
-      tar xzf - -C /usr/local --strip-components=1
-
 WORKDIR /tmp
 COPY dist-fuchsia/shared.sh dist-fuchsia/build-toolchain.sh /tmp/
 RUN /tmp/build-toolchain.sh
diff --git a/src/ci/docker/dist-fuchsia/build-toolchain.sh b/src/ci/docker/dist-fuchsia/build-toolchain.sh
index f6deda2a36b..105f712ce51 100755
--- a/src/ci/docker/dist-fuchsia/build-toolchain.sh
+++ b/src/ci/docker/dist-fuchsia/build-toolchain.sh
@@ -14,38 +14,22 @@
 set -ex
 source shared.sh
 
-# Download sources
-SRCS=(
-  "https://fuchsia.googlesource.com/zircon zircon e9a26dbc70d631029f8ee9763103910b7e3a2fe1"
-  "https://llvm.googlesource.com/llvm llvm 65bdf0ae4a87e6992c24f06e2612909952468710"
-  "https://llvm.googlesource.com/clang llvm/tools/clang 914987de45cf83636537909ce09156aa7a37d6ec"
-  "https://llvm.googlesource.com/clang-tools-extra llvm/tools/clang/tools/extra 83de24124250a7cdc7a0fdc61b7e3c3d64b80225"
-  "https://llvm.googlesource.com/lld llvm/tools/lld f8ed4483c589b390daafac92e28f4680ad052643"
-  "https://llvm.googlesource.com/lldb llvm/tools/lldb 55cf8753321782668cb7e2d879457ee1ad57a2b9"
-  "https://llvm.googlesource.com/compiler-rt llvm/runtimes/compiler-rt a8682fdf74d3cb93769b7394f2cdffc5cefb8bd8"
-  "https://llvm.googlesource.com/libcxx llvm/runtimes/libcxx 5f919fe349450b3da0e29611ae37f6a940179290"
-  "https://llvm.googlesource.com/libcxxabi llvm/runtimes/libcxxabi caa78daf9285dada17e3e6b8aebcf7d128427f83"
-  "https://llvm.googlesource.com/libunwind llvm/runtimes/libunwind 469bacd2ea64679c15bb4d86adf000f2f2c27328"
-)
+ZIRCON=e9a26dbc70d631029f8ee9763103910b7e3a2fe1
 
-fetch() {
-  mkdir -p $2
-  pushd $2 > /dev/null
-  git init
-  git remote add origin $1
-  git fetch --depth=1 origin $3
-  git reset --hard FETCH_HEAD
-  popd > /dev/null
-}
+mkdir -p zircon
+pushd zircon > /dev/null
 
-for i in "${SRCS[@]}"; do
-  fetch $i
-done
+# Download sources
+git init
+git remote add origin https://fuchsia.googlesource.com/zircon
+git fetch --depth=1 origin $ZIRCON
+git reset --hard FETCH_HEAD
 
-# Build sysroot
-./zircon/scripts/download-toolchain
+# Download toolchain
+./scripts/download-toolchain
+cp -a prebuilt/downloads/clang+llvm-x86_64-linux/. /usr/local
 
-build_sysroot() {
+build() {
   local arch="$1"
 
   case "${arch}" in
@@ -53,33 +37,20 @@ build_sysroot() {
     aarch64) tgt="zircon-qemu-arm64" ;;
   esac
 
-  hide_output make -C zircon -j$(getconf _NPROCESSORS_ONLN) $tgt
+  hide_output make -j$(getconf _NPROCESSORS_ONLN) $tgt
   dst=/usr/local/${arch}-unknown-fuchsia
   mkdir -p $dst
-  cp -r zircon/build-${tgt}/sysroot/include $dst/
-  cp -r zircon/build-${tgt}/sysroot/lib $dst/
+  cp -a build-${tgt}/sysroot/include $dst/
+  cp -a build-${tgt}/sysroot/lib $dst/
 }
 
+# Build sysroot
 for arch in x86_64 aarch64; do
-  build_sysroot ${arch}
+  build ${arch}
 done
 
-# Build toolchain
-cd llvm
-mkdir build
-cd build
-hide_output cmake -GNinja \
-  -DFUCHSIA_x86_64_SYSROOT=/usr/local/x86_64-unknown-fuchsia \
-  -DFUCHSIA_aarch64_SYSROOT=/usr/local/aarch64-unknown-fuchsia \
-  -DLLVM_ENABLE_LTO=OFF \
-  -DCLANG_BOOTSTRAP_PASSTHROUGH=LLVM_ENABLE_LTO \
-  -C ../tools/clang/cmake/caches/Fuchsia.cmake \
-  ..
-hide_output ninja stage2-distribution
-hide_output ninja stage2-install-distribution
-cd ../..
-
-rm -rf zircon llvm
+popd > /dev/null
+rm -rf zircon
 
 for arch in x86_64 aarch64; do
   for tool in clang clang++; do