[libcxx-commits] [libcxx] deb5103 - [libc++] Rework buildbot configuration for the greater good.

Eric Fiselier via libcxx-commits libcxx-commits at lists.llvm.org
Sat Mar 21 07:03:00 PDT 2020


Author: Eric Fiselier
Date: 2020-03-21T10:02:40-04:00
New Revision: deb51033784090de8176cf95871ba928e44951ba

URL: https://github.com/llvm/llvm-project/commit/deb51033784090de8176cf95871ba928e44951ba
DIFF: https://github.com/llvm/llvm-project/commit/deb51033784090de8176cf95871ba928e44951ba.diff

LOG: [libc++] Rework buildbot configuration for the greater good.

This commit rewrites/removes the docker files used to create
the libc++ buildbots.

The major changes in this patch are:

1. Delete Dockerfiles used to build compilers. These have moved to
   github.com/efcs/compiler-images

2. Minimize the llvm-buildbot docker image. Instead of running the
buildbots from a committed docker image, the builders now build the
image on startup. This means changes to the docker file automatically
propogate to the builders (within ~24 hours without restart).

3. Version the compilers used by the builders. This means the bots
won't start failing because the apt.llvm.org clang package updated.

Added: 
    libcxx/utils/docker/debian9/buildbot/Dockerfile
    libcxx/utils/docker/debian9/buildbot/buildbot-auth.json
    libcxx/utils/docker/debian9/buildbot/docker-compose.yml
    libcxx/utils/docker/debian9/buildbot/install-gcloud-agents.sh
    libcxx/utils/docker/debian9/buildbot/install-packages.sh
    libcxx/utils/docker/debian9/buildbot/run_buildbot.sh

Modified: 
    

Removed: 
    libcxx/utils/docker/debian9/compilers.yml
    libcxx/utils/docker/debian9/compilers/clang.Dockerfile
    libcxx/utils/docker/debian9/compilers/compiler-zoo.Dockerfile
    libcxx/utils/docker/debian9/compilers/gcc.Dockerfile
    libcxx/utils/docker/debian9/docker-compose.yml
    libcxx/utils/docker/debian9/llvm-buildbot-worker.Dockerfile
    libcxx/utils/docker/debian9/llvm-builder-base.Dockerfile
    libcxx/utils/docker/debian9/scripts/build_gcc_version.sh
    libcxx/utils/docker/debian9/scripts/build_llvm_version.sh
    libcxx/utils/docker/debian9/scripts/buildbot/docker_start_buildbots.sh
    libcxx/utils/docker/debian9/scripts/buildbot/run_buildbot.sh
    libcxx/utils/docker/debian9/scripts/install_clang_packages.sh


################################################################################
diff  --git a/libcxx/utils/docker/debian9/buildbot/Dockerfile b/libcxx/utils/docker/debian9/buildbot/Dockerfile
new file mode 100644
index 000000000000..ea2ac9d55933
--- /dev/null
+++ b/libcxx/utils/docker/debian9/buildbot/Dockerfile
@@ -0,0 +1,40 @@
+
+#===-------------------------------------------------------------------------------------------===//
+# buildslave
+#===-------------------------------------------------------------------------------------------===//
+ARG gcc_tot
+ARG llvm_tot
+
+FROM ${gcc_tot} AS gcc-tot
+FROM ${llvm_tot} AS llvm-tot
+
+FROM debian:stretch AS base-image
+
+ADD install-packages.sh /tmp/
+RUN /tmp/install-packages.sh && rm /tmp/install-packages.sh
+
+COPY --from=ericwf/gcc:5.5.0 /compiler /opt/gcc-5
+COPY --from=ericwf/llvm:9.x /compiler /opt/llvm-9
+
+FROM base-image as worker-image
+
+COPY --from=gcc-tot /compiler /opt/gcc-tot
+COPY --from=llvm-tot /compiler /opt/llvm-tot
+
+ENV PATH /opt/llvm-tot/bin:$PATH
+
+RUN clang++ --version && echo hello
+RUN g++ --version
+
+
+RUN /opt/gcc-tot/bin/g++ --version
+RUN /opt/llvm-tot/bin/clang++ --version
+RUN /opt/llvm-tot/bin/clang --version
+
+# FIXME(EricWF): remove this once the buildbot's config doesn't clobber the path.
+RUN ln -s /opt/llvm-tot/bin/clang /usr/local/bin/clang
+RUN ln -s /opt/llvm-tot/bin/clang++ /usr/local/bin/clang++
+
+
+ADD run_buildbot.sh /
+CMD /run_buildbot.sh /run/secrets/buildbot-auth

diff  --git a/libcxx/utils/docker/debian9/buildbot/buildbot-auth.json b/libcxx/utils/docker/debian9/buildbot/buildbot-auth.json
new file mode 100644
index 000000000000..5e91e2d4158f
--- /dev/null
+++ b/libcxx/utils/docker/debian9/buildbot/buildbot-auth.json
@@ -0,0 +1,4 @@
+{
+  "login": "<login>",
+  "password": "<password>"
+}

diff  --git a/libcxx/utils/docker/debian9/buildbot/docker-compose.yml b/libcxx/utils/docker/debian9/buildbot/docker-compose.yml
new file mode 100644
index 000000000000..358b9c8e5189
--- /dev/null
+++ b/libcxx/utils/docker/debian9/buildbot/docker-compose.yml
@@ -0,0 +1,19 @@
+version: '3.7'
+services:
+  llvm-buildbot-worker:
+    build:
+      context: https://github.com/llvm-project/llvm-project.git#master:libcxx/utils/docker/debian9/buildbot
+      args:
+        gcc_tot: "ericwf/gcc:9.2.0"
+        llvm_tot: "ericwf/llvm:9.x"
+    image: llvm-buildbot-worker
+    volumes:
+    - /var/run/docker.sock:/var/run/docker.sock
+    secrets:
+    - buildbot-auth
+    logging:
+      driver: gcplogs
+
+secrets:
+  buildbot-auth:
+    file: buildbot-auth.json

diff  --git a/libcxx/utils/docker/debian9/buildbot/install-gcloud-agents.sh b/libcxx/utils/docker/debian9/buildbot/install-gcloud-agents.sh
new file mode 100755
index 000000000000..d2656ca5092a
--- /dev/null
+++ b/libcxx/utils/docker/debian9/buildbot/install-gcloud-agents.sh
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+cd /tmp/
+
+curl -sSO https://dl.google.com/cloudagents/install-monitoring-agent.sh
+sudo bash install-monitoring-agent.sh
+rm install-monitoring-agent.sh
+
+curl -sSO https://dl.google.com/cloudagents/install-logging-agent.sh
+sudo bash install-logging-agent.sh
+rm install-logging-agent.sh

diff  --git a/libcxx/utils/docker/debian9/buildbot/install-packages.sh b/libcxx/utils/docker/debian9/buildbot/install-packages.sh
new file mode 100755
index 000000000000..9956944799ca
--- /dev/null
+++ b/libcxx/utils/docker/debian9/buildbot/install-packages.sh
@@ -0,0 +1,35 @@
+#!/usr/bin/env bash
+
+set -x
+set -e
+
+apt-get update && \
+    apt-get install -y --no-install-recommends \
+      buildbot-slave \
+      ca-certificates \
+      gnupg \
+      build-essential \
+      wget \
+      unzip \
+      python \
+      cmake \
+      ninja-build \
+      curl \
+      git \
+      gcc-multilib \
+      g++-multilib \
+      libc6-dev \
+      libtool \
+      binutils-dev \
+      binutils-gold \
+      software-properties-common \
+      gnupg \
+      apt-transport-https \
+      sudo \
+      bash-completion \
+      vim \
+      jq \
+      systemd \
+      sysvinit-utils \
+      systemd-sysv && \
+  rm -rf /var/lib/apt/lists/*

diff  --git a/libcxx/utils/docker/debian9/scripts/buildbot/run_buildbot.sh b/libcxx/utils/docker/debian9/buildbot/run_buildbot.sh
similarity index 72%
rename from libcxx/utils/docker/debian9/scripts/buildbot/run_buildbot.sh
rename to libcxx/utils/docker/debian9/buildbot/run_buildbot.sh
index 7448eb26b79b..e008a30558c9 100755
--- a/libcxx/utils/docker/debian9/scripts/buildbot/run_buildbot.sh
+++ b/libcxx/utils/docker/debian9/buildbot/run_buildbot.sh
@@ -2,27 +2,27 @@
 set -x
 
 readonly BOT_ROOT=/b
-readonly BOT_ROOT_NAME=$1
-readonly BOT_PASS=$2
+readonly AUTH_FILE=$1
+readonly BOT_ROOT_NAME=$(jq -r ".login" $AUTH_FILE)
 
-#pushd /tmp
-#curl -sSO https://dl.google.com/cloudagents/install-monitoring-agent.sh
-#bash install-monitoring-agent.sh
-#curl -sSO https://dl.google.com/cloudagents/install-logging-agent.sh
-#bash install-logging-agent.sh --structured
-#popd
+systemctl daemon-reload
+service buildslave stop
+mkdir -p /b
+rm -rf /b/*
+service buildslave stop
 
-apt-get update -y
-apt-get upgrade -y
+pushd /tmp/
 
-apt-get install sudo -y
+curl -sSO https://dl.google.com/cloudagents/install-monitoring-agent.sh
+sudo bash install-monitoring-agent.sh
+rm install-monitoring-agent.sh
+
+curl -sSO https://dl.google.com/cloudagents/install-logging-agent.sh
+sudo bash install-logging-agent.sh
+rm install-logging-agent.sh
+
+popd
 
-# FIXME(EricWF): Remove this hack. It's only in place to temporarily fix linking libclang_rt from the
-# debian packages.
-# WARNING: If you're not a buildbot, DO NOT RUN!
-apt-get install lld-11 -y
-rm /usr/bin/ld
-ln -s /usr/bin/lld-11 /usr/bin/ld
 
 systemctl set-property buildslave.service TasksMax=100000
 
@@ -32,10 +32,10 @@ function setup_numbered_bot() {
   mkdir -p $BOT_DIR
 
   buildslave stop $BOT_DIR
-  chown buildbot:buildbot $BOT_DIR
+  chown buildbot $BOT_DIR
   rm -rf $BOT_DIR/*
 
-  buildslave create-slave --allow-shutdown=signal "$BOT_DIR" "lab.llvm.org:9990" "$BOT_NAME" "$BOT_PASS"
+  buildslave create-slave --allow-shutdown=signal "$BOT_DIR" "lab.llvm.org:9990" "$BOT_NAME" $(jq -r ".password" $AUTH_FILE)
 
   echo "Eric Fiselier <ericwf at google.com>" > $BOT_DIR/info/admin
 
@@ -44,6 +44,7 @@ function setup_numbered_bot() {
     uname -a | head -n1
     cmake --version | head -n1
     g++ --version | head -n1
+    clang++ --version | head -n1
     ld --version | head -n1
     date
     lscpu
@@ -74,7 +75,7 @@ function try_start_builder {
   systemctl daemon-reload
   service buildslave restart
 
-  chown -R buildbot:buildbot $BOT_DIR/
+  chown -R buildbot $BOT_DIR/
   sudo -u buildbot /usr/bin/buildslave start $BOT_DIR/
 
   sleep 30

diff  --git a/libcxx/utils/docker/debian9/compilers.yml b/libcxx/utils/docker/debian9/compilers.yml
deleted file mode 100644
index bc4917ade7de..000000000000
--- a/libcxx/utils/docker/debian9/compilers.yml
+++ /dev/null
@@ -1,174 +0,0 @@
-version: '3.7'
-
-x-build-clang: &build-clang
-    context: .
-    dockerfile: compilers/clang.Dockerfile
-
-x-build-gcc: &build-gcc
-    context: .
-    dockerfile: compilers/gcc.Dockerfile
-
-services:
-  gcc-4.8.5:
-    build:
-      <<: *build-gcc
-      args:
-        branch: releases/gcc-4.8.5
-        install_prefix: /opt/gcc-4.8.5
-        cherry_pick: 3a27b4db566c2cde8e043220f3d2c5401159b10e
-    image: ericwf/compiler:gcc-4.8.5
-  gcc-4.9.4:
-    build:
-      <<: *build-gcc
-      args:
-        branch: releases/gcc-4.9.4
-        install_prefix: /opt/gcc-4.9.4
-    image: ericwf/compiler:gcc-4.9.4
-  gcc-5:
-    build:
-      <<: *build-gcc
-      args:
-        branch: releases/gcc-5.5.0
-        install_prefix: /opt/gcc-5
-    image: ericwf/compiler:gcc-5
-  gcc-6:
-    build:
-      <<: *build-gcc
-      args:
-        branch: releases/gcc-6.5.0
-        install_prefix: /opt/gcc-6
-    image: ericwf/compiler:gcc-6
-  gcc-7:
-    build:
-      <<: *build-gcc
-      args:
-        branch: releases/gcc-7.4.0
-        install_prefix: /opt/gcc-7
-    image: ericwf/compiler:gcc-7
-  gcc-8:
-    build:
-      <<: *build-gcc
-      args:
-        branch: releases/gcc-8.2.0
-        install_prefix: /opt/gcc-8
-    image: ericwf/compiler:gcc-8
-  gcc-9:
-    build:
-      <<: *build-gcc
-      args:
-        branch: releases/gcc-9.2.0
-        install_prefix: /opt/gcc-9
-    image: ericwf/compiler:gcc-9
-  # Add LLVM compilers
-  llvm-3.6:
-    build:
-      <<: *build-clang
-      args:
-        branch: release/3.6.x
-        install_prefix: /opt/llvm-3.6
-    image: ericwf/compiler:llvm-3.6
-  llvm-3.7:
-    build:
-      <<: *build-clang
-      args:
-        branch: release/3.7.x
-        install_prefix: /opt/llvm-3.7
-    image: ericwf/compiler:llvm-3.7
-  llvm-3.8:
-    build:
-      <<: *build-clang
-      args:
-        branch: release/3.8.x
-        install_prefix: /opt/llvm-3.8
-    image: ericwf/compiler:llvm-3.8
-  llvm-3.9:
-    build:
-      <<: *build-clang
-      args:
-        branch: release/3.9.x
-        install_prefix: /opt/llvm-3.9
-    image: ericwf/compiler:llvm-3.9
-  llvm-4:
-    build:
-      <<: *build-clang
-      args:
-        branch: release/4.x
-        install_prefix: /opt/llvm-4
-    image: ericwf/compiler:llvm-4
-  llvm-5:
-    build:
-      <<: *build-clang
-      args:
-        branch: release/5.x
-        install_prefix: /opt/llvm-5
-    image: ericwf/compiler:llvm-5
-  llvm-6:
-    build:
-      <<: *build-clang
-      args:
-        branch: release/6.x
-        install_prefix: /opt/llvm-6
-    image: ericwf/compiler:llvm-6
-  llvm-7:
-    build:
-      <<: *build-clang
-      args:
-        branch: release/7.x
-        install_prefix: /opt/llvm-7
-    image: ericwf/compiler:llvm-7
-  llvm-8:
-    build:
-      <<: *build-clang
-      args:
-        branch: release/8.x
-        install_prefix: /opt/llvm-8
-    image: ericwf/compiler:llvm-8
-  llvm-9:
-    build:
-      <<: *build-clang
-      args:
-        branch: release/9.x
-        install_prefix: /opt/llvm-9
-    image: ericwf/compiler:llvm-9
-  gcc-tot:
-    build:
-      <<: *build-gcc
-      args:
-        branch: master
-        cache_date: feb-27
-        install_prefix: /opt/gcc-tot
-    image: ericwf/compiler:gcc-tot
-  llvm-tot:
-    build:
-      <<: *build-clang
-      args:
-        branch: master
-        cache_date: feb-27
-        install_prefix: /opt/llvm-tot
-    image: ericwf/compiler:llvm-tot
-  compiler-zoo:
-    build:
-      context: .
-      dockerfile: compilers/compiler-zoo.Dockerfile
-      target: compiler-zoo
-    image: ericwf/compiler-zoo:latest
-    depends_on:
-      - gcc-4.8.5
-      - gcc-4.9.4
-      - gcc-5
-      - gcc-6
-      - gcc-7
-      - gcc-8
-      - gcc-9
-      - gcc-tot
-      - llvm-3.6
-      - llvm-3.7
-      - llvm-3.8
-      - llvm-3.9
-      - llvm-4
-      - llvm-5
-      - llvm-6
-      - llvm-7
-      - llvm-8
-      - llvm-9
-      - llvm-tot

diff  --git a/libcxx/utils/docker/debian9/compilers/clang.Dockerfile b/libcxx/utils/docker/debian9/compilers/clang.Dockerfile
deleted file mode 100644
index 6f12f6485a5f..000000000000
--- a/libcxx/utils/docker/debian9/compilers/clang.Dockerfile
+++ /dev/null
@@ -1,19 +0,0 @@
-#===----------------------------------------------------------------------===//
-#
-# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-#
-#===----------------------------------------------------------------------===//
-
-# Build GCC versions
-FROM ericwf/llvm-builder-base:latest
-LABEL maintainer "libc++ Developers"
-
-ARG install_prefix
-ARG branch
-ARG cache_date=stable
-
-ADD scripts/build_llvm_version.sh /tmp/
-RUN /tmp/build_llvm_version.sh --install "$install_prefix" --branch "$branch" \
-  && rm /tmp/build_llvm_version.sh

diff  --git a/libcxx/utils/docker/debian9/compilers/compiler-zoo.Dockerfile b/libcxx/utils/docker/debian9/compilers/compiler-zoo.Dockerfile
deleted file mode 100644
index cadc8b3a7bdb..000000000000
--- a/libcxx/utils/docker/debian9/compilers/compiler-zoo.Dockerfile
+++ /dev/null
@@ -1,37 +0,0 @@
-#===- libcxx/utils/docker/debian9/Dockerfile --------------------------------------------------===//
-#
-# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-#
-#===-------------------------------------------------------------------------------------------===//
-
-#===-------------------------------------------------------------------------------------------===//
-#  compiler-zoo
-#===-------------------------------------------------------------------------------------------===//
-FROM  ericwf/llvm-builder-base:latest AS compiler-zoo
-LABEL maintainer "libc++ Developers"
-
-# Copy over the GCC and Clang installations
-COPY --from=ericwf/compiler:gcc-4.8.5 /opt/gcc-4.8.5 /opt/gcc-4.8.5
-COPY --from=ericwf/compiler:gcc-4.9.4 /opt/gcc-4.9.4 /opt/gcc-4.9.4
-COPY --from=ericwf/compiler:gcc-5 /opt/gcc-5   /opt/gcc-5
-COPY --from=ericwf/compiler:gcc-6 /opt/gcc-6   /opt/gcc-6
-COPY --from=ericwf/compiler:gcc-7 /opt/gcc-7   /opt/gcc-7
-COPY --from=ericwf/compiler:gcc-8 /opt/gcc-8   /opt/gcc-8
-COPY --from=ericwf/compiler:gcc-9 /opt/gcc-9   /opt/gcc-9
-COPY --from=ericwf/compiler:gcc-tot /opt/gcc-tot /opt/gcc-tot
-
-COPY --from=ericwf/compiler:llvm-3.6 /opt/llvm-3.6 /opt/llvm-3.6
-COPY --from=ericwf/compiler:llvm-3.7 /opt/llvm-3.7 /opt/llvm-3.7
-COPY --from=ericwf/compiler:llvm-3.8 /opt/llvm-3.8 /opt/llvm-3.8
-COPY --from=ericwf/compiler:llvm-3.9 /opt/llvm-3.9 /opt/llvm-3.9
-COPY --from=ericwf/compiler:llvm-4 /opt/llvm-4 /opt/llvm-4
-COPY --from=ericwf/compiler:llvm-5 /opt/llvm-5 /opt/llvm-5
-COPY --from=ericwf/compiler:llvm-6 /opt/llvm-6 /opt/llvm-6
-COPY --from=ericwf/compiler:llvm-7 /opt/llvm-7 /opt/llvm-7
-COPY --from=ericwf/compiler:llvm-8 /opt/llvm-8 /opt/llvm-8
-COPY --from=ericwf/compiler:llvm-9 /opt/llvm-9 /opt/llvm-9
-COPY --from=ericwf/compiler:llvm-tot /opt/llvm-tot /opt/llvm-tot
-
-

diff  --git a/libcxx/utils/docker/debian9/compilers/gcc.Dockerfile b/libcxx/utils/docker/debian9/compilers/gcc.Dockerfile
deleted file mode 100644
index adc019803d81..000000000000
--- a/libcxx/utils/docker/debian9/compilers/gcc.Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-#===- libcxx/utils/docker/debian9/Dockerfile --------------------------------------------------===//
-#
-# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-#
-#===-------------------------------------------------------------------------------------------===//
-
-# Build GCC versions
-FROM ericwf/llvm-builder-base:latest
-LABEL maintainer "libc++ Developers"
-
-
-ARG branch
-ARG cherry_pick=""
-ARG install_prefix
-ARG cache_date=stable
-
-ADD scripts/build_gcc_version.sh /tmp/
-RUN /tmp/build_gcc_version.sh \
-    --install "$install_prefix" \
-    --branch "$branch" \
-    --cherry-pick "$cherry_pick" \
-    && rm /tmp/build_gcc_version.sh

diff  --git a/libcxx/utils/docker/debian9/docker-compose.yml b/libcxx/utils/docker/debian9/docker-compose.yml
deleted file mode 100644
index 03b1efcdad0a..000000000000
--- a/libcxx/utils/docker/debian9/docker-compose.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-version: '3.7'
-services:
-  llvm-builder-base:
-    build:
-      context: .
-      dockerfile: llvm-builder-base.Dockerfile
-      target: llvm-builder-base
-    image: ericwf/llvm-builder-base:latest
-  llvm-buildbot-worker:
-    build:
-      context: .
-      dockerfile: llvm-buildbot-worker.Dockerfile
-      target: llvm-buildbot-worker
-    image: ericwf/llvm-buildbot-worker:latest

diff  --git a/libcxx/utils/docker/debian9/llvm-buildbot-worker.Dockerfile b/libcxx/utils/docker/debian9/llvm-buildbot-worker.Dockerfile
deleted file mode 100644
index 7699c5a109d8..000000000000
--- a/libcxx/utils/docker/debian9/llvm-buildbot-worker.Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#===-------------------------------------------------------------------------------------------===//
-# buildslave
-#===-------------------------------------------------------------------------------------------===//
-FROM ericwf/llvm-builder-base:latest AS llvm-buildbot-worker
-
-COPY --from=ericwf/compiler:gcc-5 /opt/gcc-5 /opt/gcc-5
-COPY --from=ericwf/compiler:gcc-tot /opt/gcc-tot /opt/gcc-tot
-COPY --from=ericwf/compiler:llvm-4 /opt/llvm-4 /opt/llvm-4.0
-
-# FIXME(EricWF): Remove this hack once zorg has been updated.
-RUN ln -s /opt/gcc-5/bin/gcc /usr/local/bin/gcc-4.9 && \
-    ln -s /opt/gcc-5/bin/g++ /usr/local/bin/g++-4.9
-
-RUN apt-get update && \
-    apt-get install -y --no-install-recommends \
-    buildbot-slave \
-  && rm -rf /var/lib/apt/lists/*
-
-ADD scripts/install_clang_packages.sh /tmp/
-RUN /tmp/install_clang_packages.sh && rm /tmp/install_clang_packages.sh
-
-RUN rm -rf /llvm-project/ && git clone --depth=1 https://github.com/llvm/llvm-project.git /llvm-project

diff  --git a/libcxx/utils/docker/debian9/llvm-builder-base.Dockerfile b/libcxx/utils/docker/debian9/llvm-builder-base.Dockerfile
deleted file mode 100644
index 2464641f0bd3..000000000000
--- a/libcxx/utils/docker/debian9/llvm-builder-base.Dockerfile
+++ /dev/null
@@ -1,47 +0,0 @@
-#===----------------------------------------------------------------------===//
-#
-# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-#
-#===----------------------------------------------------------------------===//
-
-FROM launcher.gcr.io/google/debian9:latest AS llvm-builder-base
-LABEL maintainer "libc++ Developers"
-
-RUN apt-get update && \
-    apt-get install -y --no-install-recommends \
-      ca-certificates \
-      gnupg \
-      build-essential \
-      wget \
-      subversion \
-      unzip \
-      automake \
-      python \
-      cmake \
-      ninja-build \
-      curl \
-      git \
-      gcc-multilib \
-      g++-multilib \
-      libc6-dev \
-      bison \
-      flex \
-      libtool \
-      autoconf \
-      binutils-dev \
-      binutils-gold \
-      software-properties-common \
-      gnupg \
-      apt-transport-https \
-      sudo \
-      bash-completion \
-      vim \
-      systemd \
-      sysvinit-utils \
-      systemd-sysv && \
-  update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/ld.gold" 20 && \
-  update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/ld.bfd" 10 && \
-  rm -rf /var/lib/apt/lists/*
-

diff  --git a/libcxx/utils/docker/debian9/scripts/build_gcc_version.sh b/libcxx/utils/docker/debian9/scripts/build_gcc_version.sh
deleted file mode 100755
index b759373f0116..000000000000
--- a/libcxx/utils/docker/debian9/scripts/build_gcc_version.sh
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/usr/bin/env bash
-#===- libcxx/utils/docker/scripts/build-gcc.sh ----------------------------===//
-#
-# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-#
-#===-----------------------------------------------------------------------===//
-
-set -e
-
-function show_usage() {
-  cat << EOF
-Usage: build_gcc_version.sh [options]
-
-Run autoconf with the specified arguments. Used inside docker container.
-
-Available options:
-  -h|--help           show this help message
-  --branch            the branch of gcc you want to build.
-  --cherry-pick       a commit hash to apply to the GCC sources.
-  --install           destination directory where to install the targets.
-Required options: --install and --branch
-
-All options after '--' are passed to CMake invocation.
-EOF
-}
-
-GCC_INSTALL_DIR=""
-GCC_BRANCH=""
-CHERRY_PICK=""
-
-while [[ $# -gt 0 ]]; do
-  case "$1" in
-    --install)
-      shift
-      GCC_INSTALL_DIR="$1"
-      shift
-      ;;
-    --branch)
-      shift
-      GCC_BRANCH="$1"
-      shift
-      ;;
-    --cherry-pick)
-      shift
-      CHERRY_PICK="$1"
-      shift
-      ;;
-    -h|--help)
-      show_usage
-      exit 0
-      ;;
-    *)
-      echo "Unknown option: $1"
-      exit 1
-  esac
-done
-
-if [ "$GCC_INSTALL_DIR" == "" ]; then
-  echo "No install directory. Please specify the --install argument."
-  exit 1
-fi
-
-if [ "$GCC_BRANCH" == "" ]; then
-  echo "No branch specified. Please specify the --branch argument."
-  exit 1
-fi
-
-set -x
-
-NPROC=`nproc`
-TMP_ROOT="$(mktemp -d -p /tmp)"
-GCC_SOURCE_DIR="$TMP_ROOT/gcc"
-GCC_BUILD_DIR="$TMP_ROOT/build"
-
-echo "Cloning source directory for branch $GCC_BRANCH"
-git clone --branch "$GCC_BRANCH" --single-branch --depth=1 git://gcc.gnu.org/git/gcc.git $GCC_SOURCE_DIR
-
-pushd "$GCC_SOURCE_DIR"
-if [ "$CHERRY_PICK" != "" ]; then
-  git fetch origin master --unshallow # Urg, we have to get the entire history. This will take a while.
-  git cherry-pick --no-commit -X theirs "$CHERRY_PICK"
-fi
-./contrib/download_prerequisites
-popd
-
-
-mkdir "$GCC_BUILD_DIR"
-pushd "$GCC_BUILD_DIR"
-
-# Run the build as specified in the build arguments.
-echo "Running configuration"
-$GCC_SOURCE_DIR/configure --prefix=$GCC_INSTALL_DIR \
-  --disable-bootstrap --disable-libgomp --disable-libitm \
-  --disable-libvtv --disable-libcilkrts --disable-libmpx \
-  --disable-liboffloadmic --disable-libcc1 --enable-languages=c,c++
-
-echo "Running build with $NPROC threads"
-make -j$NPROC
-echo "Installing to $GCC_INSTALL_DIR"
-make install -j$NPROC
-popd
-
-# Cleanup.
-rm -rf "$TMP_ROOT"
-
-echo "Done"

diff  --git a/libcxx/utils/docker/debian9/scripts/build_llvm_version.sh b/libcxx/utils/docker/debian9/scripts/build_llvm_version.sh
deleted file mode 100755
index 613a7babd335..000000000000
--- a/libcxx/utils/docker/debian9/scripts/build_llvm_version.sh
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/usr/bin/env bash
-#===- libcxx/utils/docker/scripts/build_install_llvm_version_default.sh -----------------------===//
-#
-# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-#
-#===-------------------------------------------------------------------------------------------===//
-
-set -e
-
-function show_usage() {
-  cat << EOF
-Usage: build_install_llvm.sh [options] -- [cmake-args]
-
-Run cmake with the specified arguments. Used inside docker container.
-Passes additional -DCMAKE_INSTALL_PREFIX and puts the build results into
-the directory specified by --to option.
-
-Available options:
-  -h|--help           show this help message
-  --install           destination directory where to install the targets.
-  --branch            the branch or tag of LLVM to build
-Required options: --install, and --version.
-
-All options after '--' are passed to CMake invocation.
-EOF
-}
-
-LLVM_BRANCH=""
-CMAKE_ARGS=""
-LLVM_INSTALL_DIR=""
-
-while [[ $# -gt 0 ]]; do
-  case "$1" in
-    --install)
-      shift
-      LLVM_INSTALL_DIR="$1"
-      shift
-      ;;
-    --branch)
-      shift
-      LLVM_BRANCH="$1"
-      shift
-      ;;
-    --)
-      shift
-      CMAKE_ARGS="$*"
-      shift $#
-      ;;
-    -h|--help)
-      show_usage
-      exit 0
-      ;;
-    *)
-      echo "Unknown option: $1"
-      exit 1
-  esac
-done
-
-
-if [ "$LLVM_INSTALL_DIR" == "" ]; then
-  echo "No install directory. Please specify the --install argument."
-  exit 1
-fi
-
-if [ "$LLVM_BRANCH" == "" ]; then
-  echo "No install directory. Please specify the --branch argument."
-  exit 1
-fi
-
-if [ "$CMAKE_ARGS" == "" ]; then
-  CMAKE_ARGS="-DCMAKE_BUILD_TYPE=RELEASE '-DCMAKE_C_FLAGS=-gline-tables-only' '-DCMAKE_CXX_FLAGS=-gline-tables-only' -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON"
-fi
-
-set -x
-
-TMP_ROOT="$(mktemp -d -p /tmp)"
-LLVM_SOURCE_DIR="$TMP_ROOT/llvm-project"
-LLVM_BUILD_DIR="$TMP_ROOT/build"
-LLVM="$LLVM_SOURCE_DIR/llvm"
-
-git clone --branch $LLVM_BRANCH --single-branch --depth=1 https://github.com/llvm/llvm-project.git $LLVM_SOURCE_DIR
-
-pushd "$LLVM_SOURCE_DIR"
-
-# Setup the source-tree using the old style layout
-ln -s $LLVM_SOURCE_DIR/libcxx $LLVM/projects/libcxx
-ln -s $LLVM_SOURCE_DIR/libcxxabi $LLVM/projects/libcxxabi
-ln -s $LLVM_SOURCE_DIR/compiler-rt $LLVM/projects/compiler-rt
-ln -s $LLVM_SOURCE_DIR/clang $LLVM/tools/clang
-ln -s $LLVM_SOURCE_DIR/clang-tools-extra $LLVM/tools/clang/tools/extra
-
-popd
-
-# Configure and build
-mkdir "$LLVM_BUILD_DIR"
-pushd "$LLVM_BUILD_DIR"
-cmake -GNinja "-DCMAKE_INSTALL_PREFIX=$LLVM_INSTALL_DIR" $CMAKE_ARGS $LLVM
-ninja install
-popd
-
-# Cleanup
-rm -rf "$TMP_ROOT/"
-
-echo "Done"

diff  --git a/libcxx/utils/docker/debian9/scripts/buildbot/docker_start_buildbots.sh b/libcxx/utils/docker/debian9/scripts/buildbot/docker_start_buildbots.sh
deleted file mode 100755
index b655170ec80e..000000000000
--- a/libcxx/utils/docker/debian9/scripts/buildbot/docker_start_buildbots.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env bash
-set -x
-
-# Update the libc++ sources in the image in order to use the most recent version of
-# run_buildbots.sh
-cd /llvm-project/
-git pull
-/llvm-project/libcxx/utils/docker/debian9/scripts/buildbot/run_buildbot.sh "$@"

diff  --git a/libcxx/utils/docker/debian9/scripts/install_clang_packages.sh b/libcxx/utils/docker/debian9/scripts/install_clang_packages.sh
deleted file mode 100755
index 785f7a73e98f..000000000000
--- a/libcxx/utils/docker/debian9/scripts/install_clang_packages.sh
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/env bash
-#===- libcxx/utils/docker/scripts/install_clang_package.sh -----------------===//
-#
-# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-#
-#===-----------------------------------------------------------------------===//
-
-set -e
-
-function show_usage() {
-  cat << EOF
-Usage: install_clang_package.sh [options]
-
-Install
-Available options:
-  -h|--help           show this help message
-  --version           the numeric version of the package to use.
-EOF
-}
-
-VERSION="11"
-
-while [[ $# -gt 0 ]]; do
-  case "$1" in
-    --version)
-      shift
-      VERSION="$1"
-      shift
-      ;;
-    -h|--help)
-      show_usage
-      exit 0
-      ;;
-    *)
-      echo "Unknown option: $1"
-      exit 1
-  esac
-done
-
-set -x
-
-curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
-add-apt-repository -s "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs) main"
-apt-get update
-apt-get upgrade -y
-apt-get install -y --no-install-recommends "clang-$VERSION"
-
-# FIXME(EricWF): Remove this once the clang packages are no longer broken.
-if [ -f "/usr/local/bin/clang" ]; then
-  echo "clang already exists"
-  exit 1
-else
-  CC_BINARY="$(which clang-$VERSION)"
-  ln -s "$CC_BINARY" "/usr/local/bin/clang"
-fi
-if [ -f "/usr/local/bin/clang++" ]; then
-  echo "clang++ already exists"
-  exit 1
-else
-  CXX_BINARY="$(which clang++-$VERSION)"
-  ln -s "$CXX_BINARY" "/usr/local/bin/clang++"
-fi
-
-echo "Testing clang version..."
-clang --version
-
-echo "Testing clang++ version..."
-clang++ --version
-
-# Figure out the libc++ and libc++abi package versions that we want.
-if [ "$VERSION" == "" ]; then
-  VERSION="$(apt-cache search 'libc\+\+-[0-9]+-dev' | awk '{print $1}' | awk -F- '{print $2}')"
-  echo "Installing version '$VERSION'"
-fi
-
-apt-get purge -y "libc++-$VERSION-dev" "libc++abi-$VERSION-dev"
-apt-get install -y --no-install-recommends "libc++-$VERSION-dev" "libc++abi-$VERSION-dev"
-
-echo "Done"


        


More information about the libcxx-commits mailing list