[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