From 98acc54844ac238fe63756f92e3b03b1c042014e Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Mon, 9 Mar 2020 16:11:20 -0700 Subject: [PATCH] misc: Added Dockerfile for GCC of different versions This will create a Docker image with all gem5 dependencies, allowing for a specfic GCC version to be specified via `--build-arg version=X`. I.e., to create an image with GCC 8, `docker build util/dockerfiles/gcc-version --build-arg version=8`. Issue-on: https://gem5.atlassian.net/browse/GEM5-228 Change-Id: I927eb90b6446059cce70e3b722a8fc3985068285 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/26507 Reviewed-by: Giacomo Travaglini Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- util/dockerfiles/gcc-version/Dockerfile | 49 +++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 util/dockerfiles/gcc-version/Dockerfile diff --git a/util/dockerfiles/gcc-version/Dockerfile b/util/dockerfiles/gcc-version/Dockerfile new file mode 100644 index 000000000..902e4a014 --- /dev/null +++ b/util/dockerfiles/gcc-version/Dockerfile @@ -0,0 +1,49 @@ +# 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: +# 4.8 +# 5 +# 6 +# 7 +# 8 +ARG version + +RUN apt -y update +RUN apt -y upgrade +RUN apt -y install git m4 scons zlib1g zlib1g-dev gcc-multilib \ + libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev \ + python-dev python python-six doxygen wget zip gcc-${version} g++-${version} + +RUN update-alternatives --install \ + /usr/bin/g++ g++ /usr/bin/g++-${version} 100 +RUN update-alternatives --install \ + /usr/bin/gcc gcc /usr/bin/gcc-${version} 100 +RUN update-alternatives --install \ + /usr/bin/c++ c++ /usr/bin/g++-${version} 100 +RUN update-alternatives --install \ + /usr/bin/cc cc /usr/bin/gcc-${version} 100 -- 2.30.2