From a79dc3f23c7411927def5ed43b642e57c5b1836f Mon Sep 17 00:00:00 2001 From: Melissa Jost Date: Wed, 27 Sep 2023 09:38:39 -0700 Subject: [PATCH] util: Add steps to compile clang-15 and clang-16 This updates the dockerfiles for ubuntu 22.04 to include the steps necessary to compile clang-15 and clang-16. Change-Id: I2bba6393ab93a6ce05a2c3ce31f3bbc71bcdca7c --- util/dockerfiles/docker-compose.yaml | 12 ++++ .../ubuntu-22.04_clang-16/Dockerfile | 57 +++++++++++++++++++ .../ubuntu-22.04_clang-version/Dockerfile | 1 + 3 files changed, 70 insertions(+) create mode 100644 util/dockerfiles/ubuntu-22.04_clang-16/Dockerfile diff --git a/util/dockerfiles/docker-compose.yaml b/util/dockerfiles/docker-compose.yaml index e2d327b0b2..fcbc3e9f70 100644 --- a/util/dockerfiles/docker-compose.yaml +++ b/util/dockerfiles/docker-compose.yaml @@ -127,6 +127,18 @@ services: args: - version=14 image: gcr.io/gem5-test/clang-version-14:latest + clang-15: + build: + context: ubuntu-22.04_clang-version + dockerfile: Dockerfile + args: + - version=15 + image: gcr.io/gem5-test/clang-version-15:latest + clang-16: + build: + context: ubuntu-22.04_clang-16 + dockerfile: Dockerfile + image: gcr.io/gem5-test/clang-version-16:latest llvm-gnu-cross-compiler-riscv64: build: context: llvm-gnu-cross-compiler-riscv64 diff --git a/util/dockerfiles/ubuntu-22.04_clang-16/Dockerfile b/util/dockerfiles/ubuntu-22.04_clang-16/Dockerfile new file mode 100644 index 0000000000..d06cf6fd67 --- /dev/null +++ b/util/dockerfiles/ubuntu-22.04_clang-16/Dockerfile @@ -0,0 +1,57 @@ +# Copyright (c) 2023 The Regents of the University of California +# All Rights Reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer; +# redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution; +# neither the name of the copyright holders nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +FROM ubuntu:22.04 + +# Valid version values: +# 16 +ARG version + +ENV DEBIAN_FRONTEND=noninteractive +RUN apt -y update && apt -y upgrade && \ + apt -y install git m4 scons zlib1g zlib1g-dev libprotobuf-dev \ + protobuf-compiler libprotoc-dev libgoogle-perftools-dev python3-dev \ + python-is-python3 doxygen libboost-all-dev libhdf5-serial-dev \ + python3-pydot libpng-dev make + +RUN apt-get update && apt-get -y install sudo wget + +# extra installations to have wget work +RUN apt -y install lsb-release wget software-properties-common gnupg +RUN wget https://apt.llvm.org/llvm.sh ++ +RUN chmod u+x llvm.sh +RUN ./llvm.sh 16 + +RUN apt-get --purge -y remove gcc + +RUN update-alternatives --install \ + /usr/bin/clang++ clang++ /usr/bin/clang++-${version} 100 +RUN update-alternatives --install \ + /usr/bin/clang clang /usr/bin/clang-${version} 100 +RUN update-alternatives --install \ + /usr/bin/c++ c++ /usr/bin/clang++-${version} 100 +RUN update-alternatives --install \ + /usr/bin/cc cc /usr/bin/clang-${version} 100 diff --git a/util/dockerfiles/ubuntu-22.04_clang-version/Dockerfile b/util/dockerfiles/ubuntu-22.04_clang-version/Dockerfile index 148b71dea3..2c8d7c7b21 100644 --- a/util/dockerfiles/ubuntu-22.04_clang-version/Dockerfile +++ b/util/dockerfiles/ubuntu-22.04_clang-version/Dockerfile @@ -27,6 +27,7 @@ FROM ubuntu:22.04 # Valid version values: # 13 +# 15 ARG version ENV DEBIAN_FRONTEND=noninteractive