From 4f319fa98bcf444a456b878cb381bf814e173098 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Mon, 9 Mar 2020 16:28:00 -0700 Subject: [PATCH] misc: Added Dockerfile for clang This will create a Docker image with all gem5 dependencies, allowing for a specific clang version to be specified via `--build args version=X`. I.e., to create an image with clang 6, `docker build util/dockerfiles/clang-version --build-arg version=6` Issue-on: https://gem5.atlassian.net/browse/GEM5-235 Change-Id: I7d12acd265d7aef2a9e90f348f4214231effe509 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/26484 Reviewed-by: Giacomo Travaglini Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- util/dockerfiles/clang-version/Dockerfile | 54 +++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 util/dockerfiles/clang-version/Dockerfile diff --git a/util/dockerfiles/clang-version/Dockerfile b/util/dockerfiles/clang-version/Dockerfile new file mode 100644 index 000000000..428bd0291 --- /dev/null +++ b/util/dockerfiles/clang-version/Dockerfile @@ -0,0 +1,54 @@ +# Copyright (c) 2020 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:18.04 + +# Valid version values: +# 3.9 +# 4.0 +# 5.0 +# 6.0 +# 7 +# 8 +# 9 +ARG version + +RUN apt -y update +RUN apt -y upgrade +RUN apt -y install git m4 scons zlib1g zlib1g-dev clang-${version} \ + libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev \ + python-dev python python-six doxygen + +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 -- 2.30.2